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 |  332 ++++++++++++++++++++++++++++++++++++++++--------------
 1 files changed, 244 insertions(+), 88 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..d008e3f 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>
@@ -23,100 +22,169 @@
         {
             btnOption.MouseUpEventHandler = (sender, e) =>
             {
-                if (titleId == StringId.PermissionToUse)//浠庝釜浜轰腑蹇冭繘鍏ュ崟鐙垎浜�
+                Action action = () =>
                 {
-                    new Thread(() =>
+                    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
+                {
+                    bool result = false;
+                    Action act = () => { };
+                    Application.RunOnMainThread(() =>
                     {
-                        bool result = false;
-                        Action act = () => { };
+                        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(() =>
                         {
-                            act = new PublicAssmebly().TipLoadingMsgDialog(Language.StringByID(StringId.SavingPleaseWait));
+                            new PublicAssmebly().TipMsgAutoClose(Language.StringByID(StringId.FunctionSharingFailed), true);
                         });
-                        foreach (var f in funs_Del)
+                    }
+
+                    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)
                         {
-                            LoadMethod_DelSharedData(f);
-                        }
-                        foreach (var f in funs_New)
-                        {
-                            var sd = funs.Find((obj) => obj.ShareName == f.ShareName);
-                            //濡傛灉璇ュ姛鑳藉凡缁忓垎浜紝鏇存柊鍘熸湁鐨勬暟鎹�
+                            var sd = funs_final.Find((obj) => obj.shareTypeId == share_d.shareTypeId);
+                            //濡傛灉璇ュ姛鑳藉凡缁忓垎浜紝涓嶇敤鍒嗕韩
                             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);
-                                });
+                                funs_final.Remove(share_d);
                             }
                         }
+                        //4.3娣诲姞鏂板鐨�
+                        funs_final.AddRange(funs_NeedAdd);
+
                         Application.RunOnMainThread(() =>
                         {
-                            act();
+                            new PublicAssmebly().TipMsgAutoClose(Language.StringByID(StringId.FunctionSharingSucceeded), true);
+                            memberInfo.CurResidenceShareData = funs_final;
                         });
-                        if (result)
+                        Thread.Sleep(1600);
+                        Application.RunOnMainThread(() =>
                         {
-                            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();
+                            MainPage.BasePageView.GetChildren(MainPage.BasePageView.ChildrenCount - 1).RemoveFromParent();
+                            refreshAction?.Invoke();
+                        });
+                    }
                 }
-                else
+                catch { }
+                finally
                 {
-                    //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;
+
                 }
-            };
+            })
+            { 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,36 +195,123 @@
         }
 
         /// <summary>
-        /// 鏇存柊鍏变韩鏁版嵁
+        /// 绠$悊鎴块棿鍒嗕韩鎿嶄綔
+        /// funs_New 澶т簬1鍒嗕韩鎴块棿
         /// </summary>
-        bool EditShareData(ShareData sd)
+        bool ManageRoomSharing()
         {
-            ResponsePack responePack = new HttpServerRequest().EditShareData(sd);
-            if (responePack.StateCode.ToUpper() == "SUCCESS")
+            bool success = false;
+            //1.绠$悊鏈�缁堝睘浜庢埧闂寸殑鍒嗕韩
+            if (funs_RoomAll != null && funs_RoomAll.Count > 0)
             {
-                return true;
+                //鏈�缁堝睘浜庢埧闂寸殑鍒嗕韩澶т簬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;
             }
         }
 
-        void LoadMethod_SharedDataChange(Button btnChoose, Button btn2, FrameLayout btn3, Function function)
+        /// <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 = funs.Find((obj) => obj.ShareName == function.sid);
+                var sd = curResidenceShareData.Find((obj) => obj.shareTypeId == roomData.shareTypeId);
                 if (btnChoose.IsSelected)
                 {
                     try
                     {
                         if (null != sd)
                         {
-                            if (!funs_New.Contains(sd))
+                            if (!funs_RoomAll.Contains(sd))
                             {
-                                funs_New.Add(sd);
+                                funs_RoomAll.Add(sd);
                             }
                             if (funs_Del.Contains(sd))
                             {
@@ -166,16 +321,15 @@
                         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;
-                            funs_New.Add(newSd);
+                            newSd.shareTypeId = roomData.shareTypeId;
+                            newSd.shareType = roomData.shareType;
+
+                            funs_RoomAll.Add(newSd);
                         }
                         btnChooseAll.IsSelected = true;
-                        foreach (var f in room.functions)
+                        foreach (var f in roomFunctionOrSceneList)
                         {
-                            if (funs_New.Find((obj) => obj.ShareName == f.sid) == null)
+                            if (funs_RoomAll.Find((obj) => obj.shareTypeId == f.shareTypeId) == null)
                             {
                                 btnChooseAll.IsSelected = false;
                                 break;
@@ -189,10 +343,10 @@
                 }
                 else
                 {
-                    var onFuns = funs_New.Find((obj) => obj.ShareName == function.sid);
-                    if (funs_New.Contains(onFuns))
+                    var onFuns = funs_RoomAll.Find((obj) => obj.shareTypeId == roomData.shareTypeId);
+                    if (funs_RoomAll.Contains(onFuns))
                     {
-                        funs_New.Remove(onFuns);
+                        funs_RoomAll.Remove(onFuns);
                     }
 
                     if (null != sd)
@@ -209,6 +363,7 @@
             btn2.MouseUpEventHandler = eventHandler;
             btn3.MouseUpEventHandler = eventHandler;
         }
+
         /// <summary>
         /// 鍏ㄩ�夋寜閽偣鍑讳簨浠�
         /// </summary>
@@ -218,35 +373,36 @@
             {
                 btnChooseAll.IsSelected = !btnChooseAll.IsSelected;
                 funs_Del = new List<ShareData>();
-                funs_New = new List<ShareData>();
+                funs_RoomAll = new List<ShareData>();
                 if (btnChooseAll.IsSelected)
                 {
-                    foreach(var f in room.functions)
+                    foreach (var f in roomFunctionOrSceneList)
                     {
                         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;
-                        funs_New.Add(ssdd);
+                        ssdd.shareTypeId = f.shareTypeId;
+                        ssdd.shareType = f.shareType;
+                        funs_RoomAll.Add(ssdd);
                     }
                 }
                 else
                 {
-                    foreach(var f in room.functions)
+                    foreach (var f in roomFunctionOrSceneList)
                     {
-                        var sd = funs.Find((obj) => obj.ShareName == f.sid);
+                        var sd = curResidenceShareData.Find((obj) => obj.shareTypeId == f.shareTypeId);
                         if (sd != null)
                         {
                             funs_Del.Add(sd);
                         }
                     }
                 }
-                LoadFunctionRow(funs_New);
+                LoadFunctionRow(funs_RoomAll);
             };
             btnChooseAll.MouseUpEventHandler = eventHandler;
             allRoomView.MouseUpEventHandler = eventHandler;
 
         }
     }
+
+
+   
 }

--
Gitblit v1.8.0