From 9c16d3614d9b88c637f967518a329f239fcd3aaf Mon Sep 17 00:00:00 2001
From: lss <316519258@qq.com>
Date: 星期五, 12 六月 2020 09:22:04 +0800
Subject: [PATCH] 2020.06.12

---
 ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/UserCenterLogic.cs |  163 +++++++++++++++++++++++++++++++++---------------------
 1 files changed, 100 insertions(+), 63 deletions(-)

diff --git a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/UserCenterLogic.cs b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/UserCenterLogic.cs
index cace472..c78a7f6 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/UserCenterLogic.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/UserCenterLogic.cs
@@ -33,7 +33,7 @@
             if (UserCenterResourse.UserInfo.InitUserInfoSuccess == false)
             {
                 //涓嶇缁撴灉鎬庝箞鏍�,濡傛灉璋冪敤浜嗚繖涓嚱鏁�,闇�瑕侀噸澶磋幏鍙朤oken,鎵�浠ュ繀椤昏繑鍥炲け璐�
-                await ReInitUserAccoutInfo();
+                await ReInitUserAccoutInfo(listNotShowError);
                 return false;
             }
             //鑾峰彇鎺ュ彛鐨勮繛鎺ユā寮�
@@ -74,7 +74,7 @@
             if (UserCenterResourse.UserInfo.InitUserInfoSuccess == false)
             {
                 //涓嶇缁撴灉鎬庝箞鏍�,濡傛灉璋冪敤浜嗚繖涓嚱鏁�,闇�瑕侀噸澶磋幏鍙朤oken,鎵�浠ュ繀椤昏繑鍥炲け璐�
-                await ReInitUserAccoutInfo();
+                await ReInitUserAccoutInfo(listNotShowError);
                 return "Error";
             }
 
@@ -95,6 +95,10 @@
                 }
             }
             var revertObj = JsonConvert.DeserializeObject<ResponsePack>(Encoding.UTF8.GetString(byteData));
+            if (revertObj == null)
+            {
+                return "Error";
+            }
             return revertObj.StateCode;
         }
 
@@ -115,7 +119,7 @@
             if (UserCenterResourse.UserInfo.InitUserInfoSuccess == false)
             {
                 //涓嶇缁撴灉鎬庝箞鏍�,濡傛灉璋冪敤浜嗚繖涓嚱鏁�,闇�瑕侀噸澶磋幏鍙朤oken,鎵�浠ュ繀椤昏繑鍥炲け璐�
-                await ReInitUserAccoutInfo();
+                await ReInitUserAccoutInfo(listNotShowError);
                 return null;
             }
             //鑾峰彇鎺ュ彛鐨勮繛鎺ユā寮�
@@ -143,7 +147,7 @@
             }
             if (revertObj == null || revertObj.ResponseData == null)
             {
-                return string.Empty;
+                return null;
             }
             return revertObj.ResponseData.ToString();
         }
@@ -165,7 +169,7 @@
             if (UserCenterResourse.UserInfo.InitUserInfoSuccess == false)
             {
                 //涓嶇缁撴灉鎬庝箞鏍�,濡傛灉璋冪敤浜嗚繖涓嚱鏁�,闇�瑕侀噸澶磋幏鍙朤oken,鎵�浠ュ繀椤昏繑鍥炲け璐�
-                await ReInitUserAccoutInfo();
+                await ReInitUserAccoutInfo(listNotShowError);
                 return null;
             }
             //鑾峰彇鎺ュ彛鐨勮繛鎺ユā寮�
@@ -423,9 +427,10 @@
                     int index = UserCenterResourse.listActionFormId.IndexOf(UserCenterResourse.NowActionFormID) - 1;
                     //鍒濆鍊�
                     UserCenterResourse.NowActionFormID = string.Empty;
+                    var actionForm = UserView.HomePage.Instance.GetChildren(UserView.HomePage.Instance.ChildrenCount - 1);
+
                     if (index >= 0)
                     {
-                        var actionForm = UserView.HomePage.Instance.GetChildren(UserView.HomePage.Instance.ChildrenCount - 1);
                         if (actionForm != null && actionForm is CommonFormBase)
                         {
                             string formId = ((CommonFormBase)actionForm).FormID;
@@ -436,16 +441,12 @@
                                 CallFormActionAgainEvent(form, index);
                             }
                         }
-                        else if (actionForm != null && actionForm is UserView.UserPage)
-                        {
-                            //杩欓噷瀹冨凡缁忛��鍒颁富椤典簡
-                            if (UserCenterResourse.listActionFormId.Contains("UserMainForm") == true//涓汉涓績
-                                || UserCenterResourse.listActionFormId.Contains("HomeMainPageForm") == true)//
-                            {
-                                //璋冪敤鐣岄潰閲嶆柊婵�娲荤殑鍑芥暟
-                                CallFormActionAgainEvent(form, index);
-                            }
-                        }
+                    }
+                    else if (actionForm != null && actionForm is UserView.UserPage)
+                    {
+                        //杩欓噷瀹冨凡缁忛��鍒颁富椤典簡
+                        var nowForm = UserView.UserPage.Instance.GetNowActionForm();
+                        nowForm?.FormActionAgainEvent();
                     }
                 }
                 //绉婚櫎ID
@@ -559,7 +560,7 @@
             double Longitude = Config.Instance.Home.Longitude;
             double Latitude = Config.Instance.Home.Latitude;
             //杩樺師浣忓畢瀵硅薄
-            Config.Instance.Home = House.GetHouseByHouseId(Config.Instance.Home.Id);
+            Config.Instance.Home = HdlResidenceLogic.Current.GetHouseByHouseId(Config.Instance.Home.Id);
             Config.Instance.Home.IsOthreShare = isOthreShare;
             Config.Instance.Home.AccountType = accountType;
             Config.Instance.Home.MainUserDistributedMark = mainMark;
@@ -640,6 +641,11 @@
                 //濡傛灉鏄櫄鎷熶綇瀹�
                 HdlThreadLogic.Current.RunMain(() =>
                 {
+                    //璁惧畾涓�涓椂闂�
+                    Config.Instance.LoginDateTime = new DateTime(1970, 1, 1);
+                    //娓呯┖褰撳墠浣忓畢id
+                    Config.Instance.HomeId = string.Empty;
+                    Config.Instance.Save();
                     //鏀惰捣宸﹁彍鍗�
                     CommonPage.Instance.CloseLeftMenu();
                     //鍏抽棴鎵�鏈夋墦寮�浜嗙殑鐣岄潰
@@ -670,14 +676,14 @@
                 Config.Instance.Save();
 
                 //娓呯┖褰撳墠浣忓畢id
-                Shared.Common.Config.Instance.HomeId = string.Empty;
+                Config.Instance.HomeId = string.Empty;
                 HdlGatewayLogic.Current.ClearAllRealGateway();
-                try
+
+                //鏂紑杩滅▼Mqtt杩炴帴
+                HdlThreadLogic.Current.RunThread(async () =>
                 {
-                    //鏂紑杩滅▼Mqtt杩炴帴
-                    ZigBee.Device.ZbGateway.DisConnectRemoteMqttClient();
-                }
-                catch { }
+                    await ZigBee.Device.ZbGateway.DisConnectRemoteMqttClient();
+                }, ShowErrorMode.NO);
 
                 HdlThreadLogic.Current.RunMain(() =>
                 {
@@ -798,13 +804,24 @@
             string errorMsgBase = strResultData;
             if (errorMsgBase == null)
             {
-                Type myType = resultData.GetType();
-                object errorObj = myType.InvokeMember("errorMessageBase", System.Reflection.BindingFlags.GetField, null, resultData, null);
-                if (errorObj == null)
+                if (resultData is ReceiptGatewayResult)
                 {
-                    return errorMsg;
+                    errorMsgBase = string.Empty;
+                    if (((ReceiptGatewayResult)resultData).ErrorMsgDiv == 0)
+                    {
+                        errorMsgBase = "鍥炲瓒呮椂";
+                    }
                 }
-                errorMsgBase = errorObj.ToString();
+                else
+                {
+                    Type myType = resultData.GetType();
+                    object errorObj = myType.InvokeMember("errorMessageBase", System.Reflection.BindingFlags.GetField, null, resultData, null);
+                    if (errorObj == null)
+                    {
+                        return errorMsg;
+                    }
+                    errorMsgBase = errorObj.ToString();
+                }
             }
 
             if (errorMsgBase.Contains("鍥炲瓒呮椂") == false)
@@ -856,12 +873,11 @@
             if (Common.Config.Instance.HomeId != UserCenterResourse.AccountOption.OldHomeStringId
                 || Common.Config.Instance.Account != UserCenterResourse.AccountOption.OldAccountId)
             {
-                try
+                //鏂紑杩滅▼Mqtt杩炴帴
+                HdlThreadLogic.Current.RunThread(async () =>
                 {
-                    //鏂紑杩滅▼Mqtt杩炴帴
                     await ZigBee.Device.ZbGateway.DisConnectRemoteMqttClient();
-                }
-                catch { }
+                }, ShowErrorMode.NO);
 
                 //娓呯┖鎵�鏈夋垚鍛樼紦瀛�
                 ClearAllMemberMemory();
@@ -878,7 +894,7 @@
                 //鍒濆鍖栫櫥闄嗚处鍙风殑淇℃伅
                 var hadNet = await InitUserAccoutInfo(true);
                 //濡傛灉鏈夌綉缁滅殑璇�
-                if (hadNet == true)
+                if (hadNet == 1)
                 {
                     //閲嶆柊鍙戦�佸懡浠ゅ幓缁戝畾鏂綉鎯呭喌涓嬪浠界殑缃戝叧
                     HdlGatewayLogic.Current.ResetComandToBindBackupGateway();
@@ -905,7 +921,7 @@
 
                 //鍚屾鏁版嵁(浜屾璋冪敤娌″叧绯�)
                 int result = -1;
-                if (hadNet == true)
+                if (hadNet == 1)
                 {
                     result = await HdlAutoBackupLogic.SynchronizeDbAutoBackupData();
                 }
@@ -913,12 +929,12 @@
                 //鍒濆鍖栨湰鍦扮殑缃戝叧淇℃伅
                 HdlGatewayLogic.Current.ReFreshByLocal();
                 //鍒濆鍖栨湰鍦扮殑璁惧淇℃伅
-                Common.LocalDevice.Current.ReFreshByLocal();
+                LocalDevice.Current.ReFreshByLocal();
 
                 //鍒濆鍖栨埧闂�(閮洩鍩庨偅杈逛笉鍋氬鐞�,闇�瑕佽繖閲岀壒娈婃墽琛屼竴姝�)
                 HdlRoomLogic.Current.RefreshAllRoomByLocation();
 
-                if (hadNet == true)
+                if (hadNet == 1)
                 {
                     //鍚屾浜戠鐨勭綉鍏砳d锛屽鏋滄湰鍦版嫢鏈変簯绔笉瀛樺湪鐨刬d锛屽垯琛ㄧず搴旇琚崲缁戜簡锛岀洿鎺ュ垹闄�
                     HdlGatewayLogic.Current.SynchronizeDbGateway();
@@ -981,11 +997,6 @@
                 }
             });
 
-            //褰撳墠涓婚〉,鍦烘櫙鍜屽姛鑳芥墍閫夋嫨鐨勫垎鏀� 1:鍦烘櫙 2:鍔熻兘
-            UserCenterResourse.ResidenceOption.HomeMainPageSwitchIndex = 1;
-            //褰撳墠鍒嗙被,鍦烘櫙鍜屽姛鑳芥墍閫夋嫨鐨勫垎鏀� 0:鍦烘櫙 1:鍔熻兘 2:鑷姩鍖�
-            UserCenterResourse.ResidenceOption.CategoryPageSwitchIndex = 0;
-
             //鍒囨崲浣忓畢娓呴櫎涔嬪墠閫昏緫缂撳瓨鏁版嵁;
             Common.Logic.LogicList.Clear();
             Common.Logic.LockLogicList.Clear();
@@ -997,11 +1008,11 @@
         #region 鈻� 鍒濆鍖栫櫥闄嗚处鍙风殑淇℃伅_______________
 
         /// <summary>
-        /// 鍒濆鍖栫櫥闄嗚处鍙风殑淇℃伅
+        /// 鍒濆鍖栫櫥闄嗚处鍙风殑淇℃伅 -1:鏃犵綉 1:姝e父 2:鍏朵粬閿欒
         /// </summary>
         /// <param name="reLoad">鏄惁浠庢柊浠庢湰鍦板姞杞�(閲嶆柊鍒濆鍖栫櫥闄嗚处鍙风殑淇℃伅,涓嶉渶瑕侀噸鏂板姞杞�)</param>
         /// <returns></returns>
-        private async static Task<bool> InitUserAccoutInfo(bool reLoad)
+        private async static Task<int> InitUserAccoutInfo(bool reLoad)
         {
             //鍒濆鍖栦釜浜轰俊鎭殑鏍囪瘑
             UserCenterResourse.UserInfo.InitUserInfoSuccess = false;
@@ -1020,13 +1031,13 @@
             byte[] byteData = await CommonPage.Instance.RequestHttpsZigbeeBytesResultAsync("ZigbeeUsers/GetAccountInfo", Encoding.UTF8.GetBytes(requestJson));
             if (byteData == null)
             {
-                return false;
+                return -1;
             }
             //妫�娴嬮敊璇�
             var revertObj = JsonConvert.DeserializeObject<ResponsePack>(Encoding.UTF8.GetString(byteData));
             if (revertObj.StateCode.ToUpper() != "SUCCESS")
             {
-                return false;
+                return 2;
             }
 
             var userInfo = Newtonsoft.Json.JsonConvert.DeserializeObject<UserInformation>(revertObj.ResponseData.ToString());
@@ -1103,9 +1114,9 @@
             UserCenterResourse.UserInfo.StringPwd = null;
 
             //鍒濆鍖栫鐞嗗憳鎺у埗涓讳汉鐨勮繛鎺ュ湴鍧�(鍥犱负杩欎釜杩炴帴Token鏄笉浼氭敼鍙樼殑,鎵�浠ュ彧闇�瑕佸垵濮嬪寲涓�娆�)
-            bool flage = await InitAdminConnectMainInfo();
+            var flage = await InitAdminConnectMainInfo();
             //鍒濆鍖栦釜浜轰俊鎭殑鏍囪瘑
-            UserCenterResourse.UserInfo.InitUserInfoSuccess = flage;
+            UserCenterResourse.UserInfo.InitUserInfoSuccess = flage == 1;
 
             return flage;
         }
@@ -1130,20 +1141,36 @@
         /// 閲嶆柊鍒濆鍖栫櫥闄嗚处鍙风殑淇℃伅(鏃ㄥ湪瀵瑰簲閭d竴鐬棿,缃戠粶涓嶅ソ,瀵艰嚧璇垽鐨勬儏鍐�)
         /// </summary>
         /// <returns></returns>
-        private async static Task<bool> ReInitUserAccoutInfo()
+        private async static Task<bool> ReInitUserAccoutInfo(List<string> listNotShowError)
         {
             //閲嶆柊鍒濆鍖栬处鍙蜂俊鎭�
             var result = await InitUserAccoutInfo(false);
-            if (result == false)
+            //杩炴帴涓嶄簡澶栫綉鐨勬椂鍊�
+            if (result == -1)
             {
-                return result;
+                if (listNotShowError != null &&
+                    (listNotShowError.Contains("NotSetAgain") == true || listNotShowError.Contains("NotCheck") == true))
+                {
+                    //鏈夎繖涓や釜鏍囪瘑鏃�,涓嶆彁绀洪敊璇�
+                    return false;
+                }
+                Application.RunOnMainThread(() =>
+                {
+                    //褰撳墠鏃犵綉缁滆繛鎺�,璇风‘璁ょ綉缁�
+                    var alert = new ShowMsgControl(ShowMsgType.Tip, Language.StringByID(R.MyInternationalizationString.uNowIsDonotNetworkAndCheckNetwork));
+                    alert.Show();
+                });
             }
-            //鍚屾浜戠鐨勭綉鍏砳d锛屽鏋滄湰鍦版嫢鏈変簯绔笉瀛樺湪鐨刬d锛屽垯琛ㄧず搴旇琚崲缁戜簡锛岀洿鎺ュ垹闄�
-            HdlGatewayLogic.Current.SynchronizeDbGateway();
-            //鍒濆鍖栦釜浜轰俊鎭殑鏍囪瘑
-            UserCenterResourse.UserInfo.InitUserInfoSuccess = true;
+            if (result == 1)
+            {
+                //鍚屾浜戠鐨勭綉鍏砳d锛屽鏋滄湰鍦版嫢鏈変簯绔笉瀛樺湪鐨刬d锛屽垯琛ㄧず搴旇琚崲缁戜簡锛岀洿鎺ュ垹闄�
+                HdlGatewayLogic.Current.SynchronizeDbGateway();
+                //鍒濆鍖栦釜浜轰俊鎭殑鏍囪瘑
+                UserCenterResourse.UserInfo.InitUserInfoSuccess = true;
 
-            return true;
+                return true;
+            }
+            return false;
         }
 
         /// <summary>
@@ -1174,15 +1201,15 @@
         #region 鈻� 鍒濆鍖栫鐞嗗憳鏉冮檺杩滅▼杩炴帴___________
 
         /// <summary>
-        /// 鍒濆鍖栫鐞嗗憳鏉冮檺杩滅▼杩炴帴涓讳汉鐨勪俊鎭�
+        /// 鍒濆鍖栫鐞嗗憳鏉冮檺杩滅▼杩炴帴涓讳汉鐨勪俊鎭� -1:鏃犵綉 1:姝e父 2:鍏朵粬閿欒
         /// </summary>
         /// <returns></returns>
-        private static async Task<bool> InitAdminConnectMainInfo()
+        private static async Task<int> InitAdminConnectMainInfo()
         {
             if (UserCenterResourse.UserInfo.AuthorityNo != 2 && UserCenterResourse.UserInfo.AuthorityNo != 3)
             {
                 //鏃朵唬鍙樹簡,杩欓噷绠$悊鍛樺拰鎴愬憳閮借兘璋冪敤
-                return true;
+                return 1;
             }
             var pra = new
             {
@@ -1198,13 +1225,13 @@
             byte[] byteData = await CommonPage.Instance.RequestHttpsZigbeeBytesResultAsync("App/GetSharedHomeApiControl", Encoding.UTF8.GetBytes(requestJson));
             if (byteData == null)
             {
-                return false;
+                return -1;
             }
             //妫�娴嬮敊璇�
             var revertObj = JsonConvert.DeserializeObject<ResponsePack>(Encoding.UTF8.GetString(byteData));
             if (revertObj.StateCode.ToUpper() != "SUCCESS")
             {
-                return false;
+                return 2;
             }
 
             //鍒嗕韩閾炬帴
@@ -1212,7 +1239,7 @@
             Config.Instance.AdminRequestBaseUrl = info.RequestBaseUrl;
             Config.Instance.AdminRequestToken = info.RequestToken;
 
-            return true;
+            return 1;
         }
 
         #endregion
@@ -1474,14 +1501,24 @@
         #region 鈻� 鏂囦欢淇濆瓨鍜岃鍙朹____________________
 
         /// <summary>
-        /// 鏂囦欢淇濆瓨,浠呴檺褰撳墠浣忓畢(鏁村ぉ蹇樿,鎵�浠ュ缓涓�涓嚱鏁版潵鐜╃帺)
+        /// 鏂囦欢淇濆瓨(鏁村ぉ蹇樿,鎵�浠ュ缓涓�涓嚱鏁版潵鐜╃帺)
         /// </summary>
         /// <param name="fullName">鍏ㄨ矾寰�</param>
         /// <param name="obj">闇�瑕佸簭鍒楀寲鐨勪笢瑗�</param>
         public static void SaveFileContent(string fullName, object obj)
         {
             var data = JsonConvert.SerializeObject(obj);
-            var byteData = Encoding.UTF8.GetBytes(data);
+            SaveTexToFile(fullName, data);
+        }
+
+        /// <summary>
+        /// 鏂囦欢淇濆瓨(鏁村ぉ蹇樿,鎵�浠ュ缓涓�涓嚱鏁版潵鐜╃帺)
+        /// </summary>
+        /// <param name="fullName">鍏ㄨ矾寰�</param>
+        /// <param name="obj">闇�瑕佸簭鍒楀寲鐨勪笢瑗�</param>
+        public static void SaveTexToFile(string fullName, string textValue)
+        {
+            var byteData = Encoding.UTF8.GetBytes(textValue);
             //鍐欏叆鍐呭
             System.IO.FileStream fileStream = null;
             try

--
Gitblit v1.8.0