From eda3fb873e59544ff36301b51e05aef64f87b0f9 Mon Sep 17 00:00:00 2001 From: wei <kaede@kaededeMacBook-Air.local> Date: 星期五, 27 八月 2021 13:21:21 +0800 Subject: [PATCH] Merge branch 'newBranch1' of http://172.16.1.23:6688/r/~wxr/HDL_APP_Project into newBranch1 --- HDL_ON/UI/UI2/4-PersonalCenter/MemberManagement/MemberFunctionPermissionPageBLL.cs | 369 +++++++++++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 345 insertions(+), 24 deletions(-) diff --git a/HDL_ON/UI/UI2/4-PersonalCenter/MemberManagement/MemberFunctionPermissionPageBLL.cs b/HDL_ON/UI/UI2/4-PersonalCenter/MemberManagement/MemberFunctionPermissionPageBLL.cs index 4a1bb7a..d008e3f 100644 --- a/HDL_ON/UI/UI2/4-PersonalCenter/MemberManagement/MemberFunctionPermissionPageBLL.cs +++ b/HDL_ON/UI/UI2/4-PersonalCenter/MemberManagement/MemberFunctionPermissionPageBLL.cs @@ -1,4 +1,6 @@ 锘縰sing System; +using System.Collections.Generic; +using System.Threading; using HDL_ON.DAL; using HDL_ON.DAL.Server; using HDL_ON.Entity; @@ -10,45 +12,329 @@ void LoadEventList() { LoadEvent_AllSharedDataChange(); + LoadEvent_OptionClick(); } - void EditShareData() + /// <summary> + /// 搴曢儴鎿嶄綔鎸夐挳鐐瑰嚮浜嬩欢 + /// </summary> + void LoadEvent_OptionClick() { - if (memberInfo.CurShareData.ShareName == "") + btnOption.MouseUpEventHandler = (sender, e) => { - var ssdd = new ShareData(); - ssdd.ShareName = DB_ResidenceData.residenceData.residecenInfo.RegionID; - ssdd.HouseDistributedMark = DB_ResidenceData.residenceData.residecenInfo.RegionID; - ssdd.ShareDataBytes = CommonPage.MyEncodingUTF8.GetBytes(Newtonsoft.Json.JsonConvert.SerializeObject(funs)); - ssdd.SubAccountDistributedMark = memberInfo.SubAccountDistributedMark; - ResponsePack responePack = new HttpServerRequest().AddShareData(ssdd); - if (responePack.StateCode.ToUpper() != "SUCCESS") + Action action = () => { - new PublicAssmebly().TipMsgAutoClose(Language.StringByID(StringId.OperationFailed), true); - return; - } - else + UploadShareDeviceList(); + }; + //鏄惁闇�瑕佷繚瀛� + new PublicAssmebly().TipOptionMsg(StringId.Tip, StringId.IfNeedToSave, action); + + //if (titleId == StringId.PermissionToUse)//浠庝釜浜轰腑蹇冭繘鍏ュ崟鐙垎浜� + //{ + // Action action = () => + // { + // UploadShareDeviceList(); + // }; + // //鏄惁闇�瑕佷繚瀛� + // new PublicAssmebly().TipOptionMsg(StringId.Tip, StringId.IfNeedToSave, action); + //} + //else + //{ + // //var sharedBytes = System.Text.Encoding.UTF8.GetBytes(Newtonsoft.Json.JsonConvert.SerializeObject(funs_New)); + // //2020-12-01 灞忚斀椤甸潰 + // //var page = new ChooseShareMemberTargetListPage(funs_New, memberInfo); + // //MainPage.BasePageView.AddChidren(page); + // //page.LoadPage(); + // //MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1; + //} + }; + } + + /// <summary> + /// 绠$悊璁惧鍒嗕韩 + /// 2020-12-08 1.澧炲姞鍒嗕韩璁惧鐨勬椂鍊欙紝鍒ゆ柇褰撳墠鎴块棿鍒嗕韩璁惧鎬绘暟锛屼粠鑰屽喅瀹氭槸鍚﹂渶瑕佸鍔犳垨鑰呯Щ闄ゆ埧闂村垎浜� + /// </summary> + void UploadShareDeviceList() + { + new Thread(() => + { + try { - ssdd.DistributedMark = responePack.ResponseData.ToString(); + bool result = false; + Action act = () => { }; + Application.RunOnMainThread(() => + { + act = new PublicAssmebly().TipLoadingMsgDialog(Language.StringByID(StringId.SavingPleaseWait)); + }); + + //2020-12-22 灞忚斀鎴块棿鍒嗕韩绠$悊 + //if (!string.IsNullOrEmpty(roomId)) + //{ + // //濡傛灉鎴块棿ID涓嶄负绌猴紝绠$悊鎴块棿 + // ManageRoomSharing(); + //} + + + //2.鎵归噺鍒犻櫎鍒嗕韩 + var deleteShareObj = new DeleteShareObj() + { + shareDatas = funs_Del, + homeId = DB_ResidenceData.Instance.CurrentRegion.id, + }; + LoadMethod_DelSharedData(deleteShareObj); + + //3.鎵归噺涓婁紶 + var funs_NeedAdd = new List<ShareData>(); + foreach (var f in funs_RoomAll) + { + var sd = curResidenceShareData.Find((obj) => obj.shareTypeId == f.shareTypeId); + //濡傛灉璇ュ姛鑳藉凡缁忓垎浜紝涓嶇敤鍒嗕韩 + if (null == sd) + { + funs_NeedAdd.Add(f); + } + } + //3.1 鎻愪氦璇锋眰 + List<string> childAccountIds = new List<string>(); + childAccountIds.Add(memberInfo.childAccountId); + var addShareObj = new AddShareObj() + { + shareDatas = funs_NeedAdd, + childAccountIds = childAccountIds, + homeId = DB_ResidenceData.Instance.CurrentRegion.id, + }; + result = LoadMethod_AddShareData(addShareObj); + + if (!result) + { + Application.RunOnMainThread(() => + { + new PublicAssmebly().TipMsgAutoClose(Language.StringByID(StringId.FunctionSharingFailed), true); + }); + } + + Application.RunOnMainThread(() => + { + act(); + }); + if (result) + { + //4.1绠$悊鏈�缁堢殑鍒嗕韩鍒楄〃 + var funs_final = new List<ShareData>(); + funs_final.AddRange(curResidenceShareData); + //4.2绉婚櫎鍒犻櫎鐨� + foreach (var share_d in funs_Del) + { + var sd = funs_final.Find((obj) => obj.shareTypeId == share_d.shareTypeId); + //濡傛灉璇ュ姛鑳藉凡缁忓垎浜紝涓嶇敤鍒嗕韩 + if (null != sd) + { + funs_final.Remove(share_d); + } + } + //4.3娣诲姞鏂板鐨� + funs_final.AddRange(funs_NeedAdd); + + Application.RunOnMainThread(() => + { + new PublicAssmebly().TipMsgAutoClose(Language.StringByID(StringId.FunctionSharingSucceeded), true); + memberInfo.CurResidenceShareData = funs_final; + }); + Thread.Sleep(1600); + Application.RunOnMainThread(() => + { + MainPage.BasePageView.GetChildren(MainPage.BasePageView.ChildrenCount - 1).RemoveFromParent(); + refreshAction?.Invoke(); + }); + } } - memberInfo.CurShareData = ssdd; + catch { } + finally + { + + } + }) + { IsBackground = true }.Start(); + } + + /// <summary> + /// 鏂板鍏变韩鏁版嵁鐐瑰嚮浜嬩欢 + /// </summary> + bool LoadMethod_AddShareData(AddShareObj ssdd) + { + //澧炲姞鍏变韩鏁版嵁鐩綍 + var responePack = new HttpServerRequest().AddShareData(ssdd); + if (responePack.Code != StateCode.SUCCESS) + { + return false; } else { - UpdataShareData(); + return true; + //var responeObj = Newtonsoft.Json.JsonConvert.DeserializeObject<ShareData>(responePack.Data.ToString()); + //ssdd.id = responeObj.id; + //// 鏇存柊鍏变韩鏁版嵁 + //return EditShareData(ssdd); + } + } + /// <summary> + /// 鍒犻櫎鍏变韩鏁版嵁鐐瑰嚮浜嬩欢 + /// </summary> + /// <param name="function"></param> + bool LoadMethod_DelSharedData(DeleteShareObj sd) + { + var responePack = new HttpServerRequest().DeleteShareData(sd); + if (responePack.Code != StateCode.SUCCESS) + { + return false; + } + else + { + return true; } } - void LoadEvent_SharedDataChange(Button btnChoose, Button btn2, FrameLayout btn3, Entity.Function function) + /// <summary> + /// 绠$悊鎴块棿鍒嗕韩鎿嶄綔 + /// funs_New 澶т簬1鍒嗕韩鎴块棿 + /// </summary> + bool ManageRoomSharing() + { + bool success = false; + //1.绠$悊鏈�缁堝睘浜庢埧闂寸殑鍒嗕韩 + if (funs_RoomAll != null && funs_RoomAll.Count > 0) + { + //鏈�缁堝睘浜庢埧闂寸殑鍒嗕韩澶т簬0 + success = ShareRoom(); + if (success) + { + Utlis.WriteLine("娣诲姞鎴块棿鍒嗕韩鎴愬姛"); + } + else + { + Utlis.WriteLine("娣诲姞鎴块棿鍒嗕韩澶辫触"); + } + } + else + { + success = DeleteShareRoom(); + if (success) + { + Utlis.WriteLine("鍒犻櫎鎴块棿鍒嗕韩鎴愬姛"); + } + else + { + Utlis.WriteLine("鍒犻櫎鎴块棿鍒嗕韩澶辫触"); + } + } + return success; + } + + /// <summary> + /// 鍒嗕韩鎴块棿 + /// </summary> + /// <returns></returns> + bool ShareRoom() + { + var roomList = new List<ShareData>(); + roomList.Add(new ShareData() + { + shareType = ShareType.ROOM.ToString(), + shareTypeId = roomId + }); + List<string> childAccountIds = new List<string>(); + childAccountIds.Add(memberInfo.childAccountId); + var addShareObj = new AddShareObj() + { + childAccountIds = childAccountIds, + homeId = DB_ResidenceData.Instance.CurrentRegion.id, + shareDatas = roomList + }; + var responePack = new HttpServerRequest().AddShareData(addShareObj); + if (responePack.Code != StateCode.SUCCESS) + { + return false; + } + else + { + return true; + } + } + + /// <summary> + /// 鍒犻櫎鎴块棿鍒嗕韩 + /// </summary> + /// <returns></returns> + bool DeleteShareRoom() + { + var roomList = new List<ShareData>(); + roomList.Add(new ShareData() + { + shareType = ShareType.ROOM.ToString(), + shareTypeId = roomId + }); + + var deleteShareObj = new DeleteShareObj() + { + shareDatas = roomList, + homeId = DB_ResidenceData.Instance.CurrentRegion.id, + }; + var responePack = new HttpServerRequest().DeleteShareData(deleteShareObj); + if (responePack.Code != StateCode.SUCCESS) + { + return false; + } + else + { + return true; + } + } + + /// <summary> + /// LoadMethod_SharedDataChange + /// </summary> + /// <param name="btnChoose"></param> + /// <param name="btn2"></param> + /// <param name="btn3"></param> + /// <param name="function"></param> + void LoadMethod_SharedDataChange(Button btnChoose, Button btn2, FrameLayout btn3, RoomData roomData) { EventHandler<MouseEventArgs> eventHandler = (sender, e) => { btnChoose.IsSelected = !btnChoose.IsSelected; + var sd = curResidenceShareData.Find((obj) => obj.shareTypeId == roomData.shareTypeId); if (btnChoose.IsSelected) { try { - funs.Add(function); + if (null != sd) + { + if (!funs_RoomAll.Contains(sd)) + { + funs_RoomAll.Add(sd); + } + if (funs_Del.Contains(sd)) + { + funs_Del.Remove(sd); + } + } + else + { + var newSd = new ShareData(); + newSd.shareTypeId = roomData.shareTypeId; + newSd.shareType = roomData.shareType; + + funs_RoomAll.Add(newSd); + } + btnChooseAll.IsSelected = true; + foreach (var f in roomFunctionOrSceneList) + { + if (funs_RoomAll.Find((obj) => obj.shareTypeId == f.shareTypeId) == null) + { + btnChooseAll.IsSelected = false; + break; + } + } } catch (Exception ex) { @@ -57,7 +343,20 @@ } else { - funs.Remove(function); + var onFuns = funs_RoomAll.Find((obj) => obj.shareTypeId == roomData.shareTypeId); + if (funs_RoomAll.Contains(onFuns)) + { + funs_RoomAll.Remove(onFuns); + } + + if (null != sd) + { + if (!funs_Del.Contains(sd)) + { + funs_Del.Add(sd); + } + } + btnChooseAll.IsSelected = false; } }; btnChoose.MouseUpEventHandler = eventHandler; @@ -65,23 +364,45 @@ btn3.MouseUpEventHandler = eventHandler; } + /// <summary> + /// 鍏ㄩ�夋寜閽偣鍑讳簨浠� + /// </summary> void LoadEvent_AllSharedDataChange() { EventHandler<MouseEventArgs> eventHandler = (sender, e) => { btnChooseAll.IsSelected = !btnChooseAll.IsSelected; - funs.Clear(); - funs = new System.Collections.Generic.List<Function>(); + funs_Del = new List<ShareData>(); + funs_RoomAll = new List<ShareData>(); if (btnChooseAll.IsSelected) { - funs.AddRange( room.functions); + foreach (var f in roomFunctionOrSceneList) + { + var ssdd = new ShareData(); + ssdd.shareTypeId = f.shareTypeId; + ssdd.shareType = f.shareType; + funs_RoomAll.Add(ssdd); + } } - LoadFunctionRow(); + else + { + foreach (var f in roomFunctionOrSceneList) + { + var sd = curResidenceShareData.Find((obj) => obj.shareTypeId == f.shareTypeId); + if (sd != null) + { + funs_Del.Add(sd); + } + } + } + LoadFunctionRow(funs_RoomAll); }; btnChooseAll.MouseUpEventHandler = eventHandler; allRoomView.MouseUpEventHandler = eventHandler; } - } + + + } -- Gitblit v1.8.0