From 64dbbfe1d6488635e160189a704afccffc7d34d0 Mon Sep 17 00:00:00 2001 From: wxr <464027401@qq.com> Date: 星期一, 07 十二月 2020 11:33:06 +0800 Subject: [PATCH] Merge branch 'WJC' --- HDL_ON/UI/UI2/4-PersonalCenter/MemberManagement/MemberFunctionPermissionPageBLL.cs | 247 ++++++++++++++++++++++++++++++++++++++++++++---- 1 files changed, 224 insertions(+), 23 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..2fafb92 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,214 @@ 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") + if (titleId == StringId.PermissionToUse)//浠庝釜浜轰腑蹇冭繘鍏ュ崟鐙垎浜� { - new PublicAssmebly().TipMsgAutoClose(Language.StringByID(StringId.OperationFailed), true); - return; + new Thread(() => + { + bool result = false; + Action act = () => { }; + Application.RunOnMainThread(() => + { + act = new PublicAssmebly().TipLoadingMsgDialog(Language.StringByID(StringId.SavingPleaseWait)); + }); + //foreach (var f in funs_Del) + //{ + // LoadMethod_DelSharedData(f); + //} + //foreach (var f in funs_New) + //{ + // var sd = funs.Find((obj) => obj.shareTypeId == f.shareTypeId); + // //濡傛灉璇ュ姛鑳藉凡缁忓垎浜紝鏇存柊鍘熸湁鐨勬暟鎹� + // if (null != sd) + // { + // sd.ShareDataBytes = System.Text.Encoding.UTF8.GetBytes(Newtonsoft.Json.JsonConvert.SerializeObject(f)); + // result = EditShareData(sd); + // } + // else//濡傛灉璇ュ姛鑳芥湭琚垎浜紝鍒欐柊澧炲垎浜� + // { + // result = LoadMethod_AddShareData(f); + // } + // if (!result) + // { + // Application.RunOnMainThread(() => + // { + // new PublicAssmebly().TipMsgAutoClose(Language.StringByID(StringId.FunctionSharingFailed), true); + // }); + // } + //} + + //1.鎵归噺鍒犻櫎鍒嗕韩 + var deleteShareObj = new DeleteShareObj() { + shareDatas = funs_Del, + homeId = DB_ResidenceData.residenceData.residecenInfo.RegionID, + }; + LoadMethod_DelSharedData(deleteShareObj); + + //2.鎵归噺涓婁紶 + var funs_NeedAdd = new List<ShareData>(); + foreach (var f in funs_New) + { + var sd = funs.Find((obj) => obj.shareTypeId == f.shareTypeId); + //濡傛灉璇ュ姛鑳藉凡缁忓垎浜紝鏇存柊鍘熸湁鐨勬暟鎹� + if (null == sd) + { + funs_NeedAdd.Add(f); + } + } + + List<string> childAccountIds = new List<string>(); + childAccountIds.Add(memberInfo.childAccountId); + var addShareObj = new AddShareObj() + { + shareDatas = funs_NeedAdd, + childAccountIds = childAccountIds, + homeId = DB_ResidenceData.residenceData.residecenInfo.RegionID, + }; + result = LoadMethod_AddShareData(addShareObj); + + if (!result) + { + Application.RunOnMainThread(() => + { + new PublicAssmebly().TipMsgAutoClose(Language.StringByID(StringId.FunctionSharingFailed), true); + }); + } + + + Application.RunOnMainThread(() => + { + act(); + }); + if (result) + { + Application.RunOnMainThread(() => + { + new PublicAssmebly().TipMsgAutoClose(Language.StringByID(StringId.FunctionSharingSucceeded), true); + memberInfo.CurResidenceShareDate = funs_New; + }); + Thread.Sleep(1600); + Application.RunOnMainThread(() => + { + //MainPage.BasePageView.RemoveAt(MainPage.BasePageView.ChildrenCount - 1); + MainPage.BasePageView.GetChildren(MainPage.BasePageView.ChildrenCount - 1).RemoveFromParent(); + refreshFunctionCount?.Invoke(funs_New.Count.ToString()); + }); + } + }) + { IsBackground = true }.Start(); } else { - ssdd.DistributedMark = responePack.ResponseData.ToString(); + //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; } - memberInfo.CurShareData = ssdd; + }; + } + + /// <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> + ///// 鏇存柊鍏变韩鏁版嵁 + ///// </summary> + //bool EditShareData(ShareData sd) + //{ + // var responePack = new HttpServerRequest().EditShareData(sd); + // if (responePack.Code == StateCode.SUCCESS) + // { + // return true; + // } + // else + // { + // return false; + // } + //} + + void LoadMethod_SharedDataChange(Button btnChoose, Button btn2, FrameLayout btn3, Function function) { EventHandler<MouseEventArgs> eventHandler = (sender, e) => { btnChoose.IsSelected = !btnChoose.IsSelected; + var sd = funs.Find((obj) => obj.shareTypeId == function.deviceId); if (btnChoose.IsSelected) { try { - funs.Add(function); + if (null != sd) + { + if (!funs_New.Contains(sd)) + { + funs_New.Add(sd); + } + if (funs_Del.Contains(sd)) + { + funs_Del.Remove(sd); + } + } + else + { + var newSd = new ShareData(); + newSd.shareTypeId = function.deviceId; + + funs_New.Add(newSd); + } + btnChooseAll.IsSelected = true; + foreach (var f in room.GetRoomFunctions(false)) + { + if (funs_New.Find((obj) => obj.shareTypeId == f.deviceId) == null) + { + btnChooseAll.IsSelected = false; + break; + } + } } catch (Exception ex) { @@ -57,31 +228,61 @@ } else { - funs.Remove(function); + var onFuns = funs_New.Find((obj) => obj.shareTypeId == function.deviceId); + if (funs_New.Contains(onFuns)) + { + funs_New.Remove(onFuns); + } + + if (null != sd) + { + if (!funs_Del.Contains(sd)) + { + funs_Del.Add(sd); + } + } + btnChooseAll.IsSelected = false; } }; btnChoose.MouseUpEventHandler = eventHandler; btn2.MouseUpEventHandler = eventHandler; 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_New = new List<ShareData>(); if (btnChooseAll.IsSelected) { - funs.AddRange( room.functions); + foreach(var f in room.GetRoomFunctions(false)) + { + var ssdd = new ShareData(); + ssdd.shareTypeId = f.deviceId; + funs_New.Add(ssdd); + } } - LoadFunctionRow(); + else + { + foreach(var f in room.GetRoomFunctions(false)) + { + var sd = funs.Find((obj) => obj.shareTypeId == f.deviceId); + if (sd != null) + { + funs_Del.Add(sd); + } + } + } + LoadFunctionRow(funs_New); }; btnChooseAll.MouseUpEventHandler = eventHandler; allRoomView.MouseUpEventHandler = eventHandler; } - } } -- Gitblit v1.8.0