From f4c9d8aed59049476cfbf7b08e59936bbd80a6c9 Mon Sep 17 00:00:00 2001 From: JLChen <551775569@qq.com> Date: 星期二, 08 十二月 2020 17:27:53 +0800 Subject: [PATCH] 2020-12-08 1.增加分享设备的时候,判断当前房间分享设备总数,从而决定是否需要增加或者移除房间分享 --- HDL_ON/Common/Constant.cs | 4 HDL_ON/UI/UI2/4-PersonalCenter/MemberManagement/MemberFunctionPermissionPage.cs | 15 ++ HDL_ON/UI/UI2/4-PersonalCenter/MemberManagement/MemberFunctionPermissionPageBLL.cs | 241 +++++++++++++++++++++++++++------------ .vs/HDL_APP_Project/xs/UserPrefs.xml | 49 ++++---- 4 files changed, 207 insertions(+), 102 deletions(-) diff --git a/.vs/HDL_APP_Project/xs/UserPrefs.xml b/.vs/HDL_APP_Project/xs/UserPrefs.xml index ef261b8..2f4a81d 100644 --- a/.vs/HDL_APP_Project/xs/UserPrefs.xml +++ b/.vs/HDL_APP_Project/xs/UserPrefs.xml @@ -1,12 +1,24 @@ 锘�<Properties StartupConfiguration="{D998E133-F0DD-4760-BE3C-461632F54DA4}|Default"> <MonoDevelop.Ide.ItemProperties.HDL-ON__iOS PreferredExecutionTarget="MonoDevelop.IPhone.IPhoneDeviceTarget.00008030-00014C392121802E" /> - <MonoDevelop.Ide.Workbench ActiveDocument="HDL_ON/Entity/UserInfo.cs"> + <MonoDevelop.Ide.Workbench ActiveDocument="HDL_ON/UI/UI2/4-PersonalCenter/MemberManagement/MemberFunctionPermissionPage.cs"> <Files> <File FileName="HDL_ON/DAL/Server/HttpUtil.cs" Line="157" Column="54" /> - <File FileName="HDL_ON/UI/UI1-Login/SelectServerDialog.cs" Line="74" Column="119" /> + <File FileName="HDL_ON/UI/UI1-Login/SelectServerDialog.cs" Line="109" Column="37" /> <File FileName="HDL_ON/DAL/Server/NewAPI.cs" Line="15" Column="29" /> - <File FileName="HDL_ON/DAL/Server/HttpServerRequest.cs" Line="102" Column="40" /> - <File FileName="HDL_ON/Entity/UserInfo.cs" Line="56" Column="39" /> + <File FileName="HDL_ON/DAL/Server/HttpServerRequest.cs" Line="729" Column="51" /> + <File FileName="HDL_ON/Entity/UserInfo.cs" Line="45" Column="13" /> + <File FileName="HDL_ON/UI/UI2/2-Classification/ClassificationPage.cs" Line="435" Column="1" /> + <File FileName="HDL_ON/UI/MainPage.cs" Line="12" Column="19" /> + <File FileName="HDL_ON/Common/Constant.cs" Line="199" Column="26" /> + <File FileName="HDL_ON/UI/UI2/4-PersonalCenter/MemberManagement/AddMemberScanPageBLL.cs" Line="1" Column="1" /> + <File FileName="HDL_ON/UI/UI2/4-PersonalCenter/MemberManagement/ChooseShareMemberTargetListPage.cs" Line="1" Column="1" /> + <File FileName="HDL_ON/UI/UI2/4-PersonalCenter/MemberManagement/ChooseShareMemberTargetListPageBLL.cs" Line="1" Column="1" /> + <File FileName="HDL_ON/UI/UI2/4-PersonalCenter/MemberManagement/MemberFunctionPermissionPage.cs" Line="76" Column="21" /> + <File FileName="HDL_ON/UI/UI2/4-PersonalCenter/MemberManagement/MemberFunctionPermissionPageBLL.cs" Line="259" Column="34" /> + <File FileName="HDL_ON/DAL/Server/NewApiRes.cs" Line="1334" Column="18" /> + <File FileName="HDL_ON/Entity/Room.cs" Line="51" Column="23" /> + <File FileName="HDL_ON/Entity/ResponseEntity/ResidenceMemberInfo.cs" Line="41" Column="32" /> + <File FileName="HDL_ON/UI/UI2/4-PersonalCenter/MemberManagement/MemberPermissionPage.cs" Line="219" Column="31" /> </Files> <Pads> <Pad Id="ProjectPad"> @@ -15,32 +27,19 @@ <Node name="HDL_ON" expanded="True"> <Node name="Common" expanded="True" /> <Node name="DAL" expanded="True"> - <Node name="Mqtt" expanded="True" /> <Node name="Server" expanded="True" /> </Node> <Node name="Entity" expanded="True"> - <Node name="UserInfo.cs" selected="True" /> + <Node name="ResponseEntity" expanded="True" /> </Node> <Node name="UI" expanded="True"> - <Node name="CSS" expanded="True" /> - <Node name="UI0-Public" expanded="True"> - <Node name="Widget" expanded="True" /> - </Node> - <Node name="UI1-Login" expanded="True" /> <Node name="UI2" expanded="True"> - <Node name="2-Classification" expanded="True" /> - <Node name="3-Intelligence" expanded="True"> - <Node name="Scene" expanded="True" /> - </Node> <Node name="4-PersonalCenter" expanded="True"> - <Node name="AboutOn" expanded="True" /> - <Node name="AccountBindInfo" expanded="True" /> - <Node name="MemberManagement" expanded="True" /> - <Node name="ResetAccountPassword" expanded="True" /> - </Node> - <Node name="FuntionControlView" expanded="True"> - <Node name="EnvironmentalScience" expanded="True" /> - <Node name="Music" expanded="True" /> + <Node name="MemberManagement" expanded="True"> + <Node name="MemberFunctionPermissionPage.cs" selected="True" /> + </Node> + <Node name="RoomListManage" expanded="True" /> + <Node name="SearchDevice" expanded="True" /> </Node> </Node> </Node> @@ -66,7 +65,9 @@ <MonoDevelop.Ide.Workspace ActiveConfiguration="Debug|iPhone" /> <MonoDevelop.Ide.ItemProperties.HDL-ON__Android PreferredExecutionTarget="Android.822QECU5228FU" /> <MonoDevelop.Ide.DebuggingService.Breakpoints> - <BreakpointStore /> + <BreakpointStore> + <Breakpoint file="/Users/jlchen/JLChen/ProjectsCode/HDLGit/ON+/HDL_ON/UI/UI2/4-PersonalCenter/MemberManagement/MemberFunctionPermissionPage.cs" relfile="HDL_ON/UI/UI2/4-PersonalCenter/MemberManagement/MemberFunctionPermissionPage.cs" line="60" column="1" /> + </BreakpointStore> </MonoDevelop.Ide.DebuggingService.Breakpoints> <MultiItemStartupConfigurations /> </Properties> \ No newline at end of file diff --git a/HDL_ON/Common/Constant.cs b/HDL_ON/Common/Constant.cs index 3d949c0..df7d457 100644 --- a/HDL_ON/Common/Constant.cs +++ b/HDL_ON/Common/Constant.cs @@ -210,6 +210,10 @@ /// /// </summary> SCENE, + /// <summary> + /// + /// </summary> + LOGIC, } /// <summary> diff --git a/HDL_ON/UI/UI2/4-PersonalCenter/MemberManagement/MemberFunctionPermissionPage.cs b/HDL_ON/UI/UI2/4-PersonalCenter/MemberManagement/MemberFunctionPermissionPage.cs index 1e50762..172eb57 100644 --- a/HDL_ON/UI/UI2/4-PersonalCenter/MemberManagement/MemberFunctionPermissionPage.cs +++ b/HDL_ON/UI/UI2/4-PersonalCenter/MemberManagement/MemberFunctionPermissionPage.cs @@ -35,8 +35,17 @@ Action<string> refreshFunctionCount; + /// <summary> + /// 涔嬪墠鐨勫垎浜垪琛� + /// </summary> List<ShareData> funs; + /// <summary> + /// 灞炰簬褰撳墠鎴块棿鏈�缁堢殑璁惧鍒嗕韩鍒楄〃 + /// </summary> List<ShareData> funs_New; + /// <summary> + /// 鍒犻櫎鐨勫垎浜垪琛� + /// </summary> List<ShareData> funs_Del; public MemberFunctionPermissionPage(ResidenceMemberInfo mInfo, Room r, Action<string> action) @@ -180,9 +189,13 @@ Tag = "ChooseIcon" }; roomView.AddChidren(btnChoose); - if (shareDatas.Find((obj) => obj.shareTypeId == function.deviceId) != null) + + var shareData = shareDatas.Find((obj) => obj.shareTypeId == function.deviceId); + if (shareData != null) { btnChoose.IsSelected = true; + //鍒锋柊灞炰簬褰撳墠鎴块棿鐨勫垎浜粺璁� + funs_New.Add(shareData); } else { diff --git a/HDL_ON/UI/UI2/4-PersonalCenter/MemberManagement/MemberFunctionPermissionPageBLL.cs b/HDL_ON/UI/UI2/4-PersonalCenter/MemberManagement/MemberFunctionPermissionPageBLL.cs index 2fafb92..0c37300 100644 --- a/HDL_ON/UI/UI2/4-PersonalCenter/MemberManagement/MemberFunctionPermissionPageBLL.cs +++ b/HDL_ON/UI/UI2/4-PersonalCenter/MemberManagement/MemberFunctionPermissionPageBLL.cs @@ -26,94 +26,122 @@ { new Thread(() => { - bool result = false; - Action act = () => { }; - Application.RunOnMainThread(() => + try { - 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) + bool result = false; + Action act = () => { }; + Application.RunOnMainThread(() => { - funs_NeedAdd.Add(f); + 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("鍒犻櫎鎴块棿鍒嗕韩澶辫触"); + } + } - 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); + //2.鎵归噺鍒犻櫎鍒嗕韩 + var deleteShareObj = new DeleteShareObj() + { + shareDatas = funs_Del, + homeId = DB_ResidenceData.residenceData.residecenInfo.RegionID, + }; + LoadMethod_DelSharedData(deleteShareObj); - if (!result) - { + //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); + + } + } + + 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(() => { - new PublicAssmebly().TipMsgAutoClose(Language.StringByID(StringId.FunctionSharingFailed), true); + act(); }); - } - - - Application.RunOnMainThread(() => - { - act(); - }); - if (result) - { - Application.RunOnMainThread(() => + if (result) { - new PublicAssmebly().TipMsgAutoClose(Language.StringByID(StringId.FunctionSharingSucceeded), true); - memberInfo.CurResidenceShareDate = funs_New; - }); - Thread.Sleep(1600); - Application.RunOnMainThread(() => - { + //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()); - }); + refreshFunctionCount?.Invoke(funs_New.Count.ToString()); + }); + } + } + catch { } + finally + { + } }) { IsBackground = true }.Start(); @@ -167,6 +195,65 @@ } } + /// <summary> + /// 鍒嗕韩鎴块棿 + /// </summary> + /// <returns></returns> + bool ShareRoom() + { + var roomList = new List<ShareData>(); + roomList.Add(new ShareData() { + 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.residenceData.residecenInfo.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.residenceData.residecenInfo.RegionID, + }; + var responePack = new HttpServerRequest().DeleteShareData(deleteShareObj); + if (responePack.Code != StateCode.SUCCESS) + { + return false; + } + else + { + return true; + } + } + ///// <summary> ///// 鏇存柊鍏变韩鏁版嵁 ///// </summary> -- Gitblit v1.8.0