From d724f7f21c5cc8c5dd5aa0cf7345a62a662eb2bf Mon Sep 17 00:00:00 2001 From: JLChen <551775569@qq.com> Date: 星期三, 16 十二月 2020 15:12:18 +0800 Subject: [PATCH] 2020-12-16 1.子账号和解锁部分接口增加Loading处理 --- HDL_ON/UI/UI2/4-PersonalCenter/MemberManagement/MemberFunctionPermissionPageBLL.cs | 305 +++++++++++++++++++++++++++++++++++--------------- 1 files changed, 214 insertions(+), 91 deletions(-) diff --git a/HDL_ON/UI/UI2/4-PersonalCenter/MemberManagement/MemberFunctionPermissionPageBLL.cs b/HDL_ON/UI/UI2/4-PersonalCenter/MemberManagement/MemberFunctionPermissionPageBLL.cs index d2d4498..eba16f4 100644 --- a/HDL_ON/UI/UI2/4-PersonalCenter/MemberManagement/MemberFunctionPermissionPageBLL.cs +++ b/HDL_ON/UI/UI2/4-PersonalCenter/MemberManagement/MemberFunctionPermissionPageBLL.cs @@ -15,7 +15,6 @@ LoadEvent_OptionClick(); } - /// <summary> /// 搴曢儴鎿嶄綔鎸夐挳鐐瑰嚮浜嬩欢 /// </summary> @@ -25,98 +24,175 @@ { if (titleId == StringId.PermissionToUse)//浠庝釜浜轰腑蹇冭繘鍏ュ崟鐙垎浜� { - 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.ShareName == f.ShareName); - //濡傛灉璇ュ姛鑳藉凡缁忓垎浜紝鏇存柊鍘熸湁鐨勬暟鎹� - if (null != sd) - { - sd.ShareDataBytes = CommonPage.MyEncodingUTF8.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); - }); - } - } - 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(); + UploadShareDeviceList(); } else { - //var sharedBytes = CommonPage.MyEncodingUTF8.GetBytes(Newtonsoft.Json.JsonConvert.SerializeObject(funs_New)); - var page = new ChooseShareMemberTargetListPage(funs_New); - MainPage.BasePageView.AddChidren(page); - page.LoadPage(); - MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1; + //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 + { + bool result = false; + Action act = () => { }; + Application.RunOnMainThread(() => + { + act = new PublicAssmebly().TipLoadingMsgDialog(Language.StringByID(StringId.SavingPleaseWait)); + }); + + //1.绠$悊鏈�缁堝睘浜庢埧闂寸殑鍒嗕韩 + if (funs_New != null && funs_New.Count > 0) + { + //鏈�缁堝睘浜庢埧闂寸殑鍒嗕韩澶т簬0 + var success = ShareRoom(); + if (success) + { + Utlis.WriteLine("娣诲姞鎴块棿鍒嗕韩鎴愬姛"); + } + else + { + Utlis.WriteLine("娣诲姞鎴块棿鍒嗕韩澶辫触"); + } + } + else + { + var success = DeleteShareRoom(); + if (success) + { + Utlis.WriteLine("鍒犻櫎鎴块棿鍒嗕韩鎴愬姛"); + } + else + { + Utlis.WriteLine("鍒犻櫎鎴块棿鍒嗕韩澶辫触"); + } + } + + //2.鎵归噺鍒犻櫎鍒嗕韩 + var deleteShareObj = new DeleteShareObj() + { + shareDatas = funs_Del, + homeId = DB_ResidenceData.Instance.CurrentRegion.RegionID, + }; + LoadMethod_DelSharedData(deleteShareObj); + + //3.鎵归噺涓婁紶 + 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); + } + } + //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.RegionID, + }; + 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(funs); + //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.CurResidenceShareDate = funs_final; + }); + 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()); + }); + } + } + catch { } + finally + { + + } + }) + { IsBackground = true }.Start(); + } + + /// <summary> /// 鏂板鍏变韩鏁版嵁鐐瑰嚮浜嬩欢 /// </summary> - bool LoadMethod_AddShareData(ShareData ssdd) + bool LoadMethod_AddShareData(AddShareObj ssdd) { //澧炲姞鍏变韩鏁版嵁鐩綍 - ResponsePack responePack = new HttpServerRequest().AddShareData(ssdd); - if (responePack.StateCode.ToUpper() != "SUCCESS") + var responePack = new HttpServerRequest().AddShareData(ssdd); + if (responePack.Code != StateCode.SUCCESS) { return false; } else { - ssdd.DistributedMark = responePack.ResponseData.ToString(); - // 鏇存柊鍏变韩鏁版嵁 - return EditShareData(ssdd); + 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(ShareData sd) + bool LoadMethod_DelSharedData(DeleteShareObj sd) { - ResponsePack responePack = new HttpServerRequest().DeleteShareData(sd); - if (responePack.StateCode.ToUpper() != "SUCCESS") + var responePack = new HttpServerRequest().DeleteShareData(sd); + if (responePack.Code != StateCode.SUCCESS) { return false; } @@ -127,27 +203,78 @@ } /// <summary> - /// 鏇存柊鍏变韩鏁版嵁 + /// 鍒嗕韩鎴块棿 /// </summary> - bool EditShareData(ShareData sd) + /// <returns></returns> + bool ShareRoom() { - ResponsePack responePack = new HttpServerRequest().EditShareData(sd); - if (responePack.StateCode.ToUpper() == "SUCCESS") + var roomList = new List<ShareData>(); + roomList.Add(new ShareData() { - return true; - } - else + shareType = ShareType.ROOM.ToString(), + shareTypeId = room.roomId + }); + List<string> childAccountIds = new List<string>(); + childAccountIds.Add(memberInfo.childAccountId); + var addShareObj = new AddShareObj() + { + childAccountIds = childAccountIds, + homeId = DB_ResidenceData.Instance.CurrentRegion.RegionID, + 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 = room.roomId + }); + + var deleteShareObj = new DeleteShareObj() + { + shareDatas = roomList, + homeId = DB_ResidenceData.Instance.CurrentRegion.RegionID, + }; + 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, Function function) { EventHandler<MouseEventArgs> eventHandler = (sender, e) => { btnChoose.IsSelected = !btnChoose.IsSelected; - var sd = funs.Find((obj) => obj.ShareName == function.sid); + var sd = funs.Find((obj) => obj.shareTypeId == function.deviceId); if (btnChoose.IsSelected) { try @@ -166,16 +293,14 @@ else { var newSd = new ShareData(); - newSd.ShareName = function.sid; - newSd.HouseDistributedMark = DB_ResidenceData.residenceData.residecenInfo.RegionID; - newSd.ShareDataBytes = CommonPage.MyEncodingUTF8.GetBytes(Newtonsoft.Json.JsonConvert.SerializeObject(function)); - newSd.SubAccountDistributedMark = memberInfo.SubAccountDistributedMark; + newSd.shareTypeId = function.deviceId; + funs_New.Add(newSd); } btnChooseAll.IsSelected = true; - foreach (var f in room.functions) + foreach (var f in room.GetRoomFunctions(false)) { - if (funs_New.Find((obj) => obj.ShareName == f.sid) == null) + if (funs_New.Find((obj) => obj.shareTypeId == f.deviceId) == null) { btnChooseAll.IsSelected = false; break; @@ -189,7 +314,7 @@ } else { - var onFuns = funs_New.Find((obj) => obj.ShareName == function.sid); + var onFuns = funs_New.Find((obj) => obj.shareTypeId == function.deviceId); if (funs_New.Contains(onFuns)) { funs_New.Remove(onFuns); @@ -209,6 +334,7 @@ btn2.MouseUpEventHandler = eventHandler; btn3.MouseUpEventHandler = eventHandler; } + /// <summary> /// 鍏ㄩ�夋寜閽偣鍑讳簨浠� /// </summary> @@ -221,21 +347,18 @@ funs_New = new List<ShareData>(); if (btnChooseAll.IsSelected) { - foreach(var f in room.functions) + foreach (var f in room.GetRoomFunctions(false)) { var ssdd = new ShareData(); - ssdd.ShareName = f.sid; - ssdd.HouseDistributedMark = DB_ResidenceData.residenceData.residecenInfo.RegionID; - ssdd.ShareDataBytes = CommonPage.MyEncodingUTF8.GetBytes(Newtonsoft.Json.JsonConvert.SerializeObject(f)); - ssdd.SubAccountDistributedMark = memberInfo.SubAccountDistributedMark; + ssdd.shareTypeId = f.deviceId; funs_New.Add(ssdd); } } else { - foreach(var f in room.functions) + foreach (var f in room.GetRoomFunctions(false)) { - var sd = funs.Find((obj) => obj.ShareName == f.sid); + var sd = funs.Find((obj) => obj.shareTypeId == f.deviceId); if (sd != null) { funs_Del.Add(sd); -- Gitblit v1.8.0