From c7df85937f73fb347ee0b19e9c052d2d00a6df6c Mon Sep 17 00:00:00 2001
From: 黄学彪 <hxb@hdlchina.com.cn>
Date: 星期五, 18 九月 2020 13:58:19 +0800
Subject: [PATCH] 新版本

---
 ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/UserCenterLogic.cs |  491 +++++++++++++++++-------------------------------------
 1 files changed, 153 insertions(+), 338 deletions(-)

diff --git a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/UserCenterLogic.cs b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/UserCenterLogic.cs
index daed4fb..d8943b3 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/UserCenterLogic.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/UserCenterLogic.cs
@@ -22,31 +22,19 @@
         /// <param name="checkAuthority">鏄惁妫�娴嬫潈闄愶紝璇ュ弬鏁颁笉鑳界渷鐣�</param>
         /// <param name="obj">涓�涓被</param>
         /// <param name="listNotShowError">涓嶉渶瑕佹樉绀洪敊璇殑閿欒绫诲埆(鎺ュ彛杩斿洖鐨勯敊璇被鍒�),濡傛灉鍖呭惈锛屽垯浼氳繑鍥炪�恡rue銆�</param>
-        /// <param name="setAgain">褰撳彂閫佸け璐ユ椂,鏄惁閲嶅彂,榛樿涓嶉噸鍙�</param>
-        public static bool GetResultStatuByRequestHttps(string RequestName, bool checkAuthority, object obj, List<string> listNotShowError = null, bool setAgain = false)
+        /// <param name="setAgain">褰撳彂閫佸け璐ユ椂,鏄惁閲嶅彂,榛樿閲嶅彂</param>
+        public static bool GetResultStatuByRequestHttps(string RequestName, bool checkAuthority, object obj, List<string> listNotShowError = null, bool setAgain = true)
         {
-            if (HdlWifiLogic.Current.CanAccessHttp == false && setAgain == false)
-            {
-                //褰撳墠鏃犳硶璁块棶缃戠粶(褰撻渶瑕侀噸鏂板彂閫佹椂,璺宠繃杩欎釜鍒ゆ柇)
-                ShowNotNetMsg(listNotShowError);
-                return false;
-            }
-            //妫�娴嬫槸鍚﹀凡缁忓畬鎴愯处鍙蜂俊鎭垵濮嬪寲
-            if (UserCenterResourse.UserInfo.InitUserInfoSuccess == false)
-            {
-                //涓嶇缁撴灉鎬庝箞鏍�,濡傛灉璋冪敤浜嗚繖涓嚱鏁�,闇�瑕侀噸澶磋幏鍙朤oken,鎵�浠ュ繀椤昏繑鍥炲け璐�
-                ReInitUserAccoutInfo(listNotShowError);
-                return false;
-            }
             //鑾峰彇鎺ュ彛鐨勮繛鎺ユā寮�
             var connectMode = GetHttpConnectMode(checkAuthority);
             //鑾峰彇浠庢帴鍙i偅閲屽彇鍒扮殑姣旂壒鏁版嵁
             var byteData = GettByteResponsePack(RequestName, connectMode, obj);
-            if (byteData == null && setAgain == true)
+            if (byteData == null)
             {
                 if (setAgain == false)
                 {
-                    //涓嶆寚瀹氶噸鍙�
+                    //褰撳墠鏃犳硶璁块棶缃戠粶
+                    ShowNotNetMsg(RequestName, listNotShowError);
                     return false;
                 }
                 byteData = ResetByteRequestHttps(RequestName, checkAuthority, obj);
@@ -68,24 +56,10 @@
         /// <param name="checkAuthority">鏄惁妫�娴嬫潈闄愶紝璇ュ弬鏁颁笉鑳界渷鐣�</param>
         /// <param name="obj">涓�涓被</param>
         /// <param name="listNotShowError">涓嶉渶瑕佹樉绀洪敊璇殑閿欒绫诲埆(鎺ュ彛杩斿洖鐨勯敊璇被鍒�),濡傛灉鍖呭惈锛屽垯浼氳繑鍥炪�恡rue銆�</param>
-        /// <param name="setAgain">褰撳彂閫佸け璐ユ椂,鏄惁閲嶅彂,榛樿涓嶉噸鍙�</param>
+        /// <param name="setAgain">褰撳彂閫佸け璐ユ椂,鏄惁閲嶅彂,榛樿閲嶅彂</param>
         /// </param>
-        public static string GetResultCodeByRequestHttps(string RequestName, bool checkAuthority, object obj, List<string> listNotShowError = null, bool setAgain = false)
+        public static string GetResultCodeByRequestHttps(string RequestName, bool checkAuthority, object obj, List<string> listNotShowError = null, bool setAgain = true)
         {
-            if (HdlWifiLogic.Current.CanAccessHttp == false && setAgain == false)
-            {
-                //褰撳墠鏃犳硶璁块棶缃戠粶(褰撻渶瑕侀噸鏂板彂閫佹椂,璺宠繃杩欎釜鍒ゆ柇)
-                ShowNotNetMsg(listNotShowError);
-                return "Error";
-            }
-            //妫�娴嬫槸鍚﹀凡缁忓畬鎴愯处鍙蜂俊鎭垵濮嬪寲
-            if (UserCenterResourse.UserInfo.InitUserInfoSuccess == false)
-            {
-                //涓嶇缁撴灉鎬庝箞鏍�,濡傛灉璋冪敤浜嗚繖涓嚱鏁�,闇�瑕侀噸澶磋幏鍙朤oken,鎵�浠ュ繀椤昏繑鍥炲け璐�
-                ReInitUserAccoutInfo(listNotShowError);
-                return "Error";
-            }
-
             //鑾峰彇鎺ュ彛鐨勮繛鎺ユā寮�
             var connectMode = GetHttpConnectMode(checkAuthority);
             //鑾峰彇浠庢帴鍙i偅閲屽彇鍒扮殑姣旂壒鏁版嵁
@@ -94,7 +68,8 @@
             {
                 if (setAgain == false)
                 {
-                    //涓嶆寚瀹氶噸鍙�
+                    //褰撳墠鏃犳硶璁块棶缃戠粶
+                    ShowNotNetMsg(RequestName, listNotShowError);
                     return "Error";
                 }
                 byteData = ResetByteRequestHttps(RequestName, checkAuthority, obj);
@@ -119,23 +94,10 @@
         /// <param name="checkAuthority">鏄惁妫�娴嬫潈闄愶紝璇ュ弬鏁颁笉鑳界渷鐣�</param>
         /// <param name="obj">涓�涓被</param>
         /// <param name="listNotShowError">涓嶉渶瑕佹樉绀洪敊璇殑閿欒绫诲埆(鎺ュ彛杩斿洖鐨勯敊璇被鍒�),濡傛灉鍖呭惈锛屽垯浼氳繑鍥炪�恡rue銆�</param>
-        /// <param name="setAgain">褰撳彂閫佸け璐ユ椂,鏄惁閲嶅彂,榛樿涓嶉噸鍙�</param>
+        /// <param name="setAgain">褰撳彂閫佸け璐ユ椂,鏄惁閲嶅彂,榛樿閲嶅彂</param>
         /// </param>
-        public static string GetResponseDataByRequestHttps(string RequestName, bool checkAuthority, object obj, List<string> listNotShowError = null, bool setAgain = false)
+        public static string GetResponseDataByRequestHttps(string RequestName, bool checkAuthority, object obj, List<string> listNotShowError = null, bool setAgain = true)
         {
-            if (HdlWifiLogic.Current.CanAccessHttp == false && setAgain == false)
-            {
-                //褰撳墠鏃犳硶璁块棶缃戠粶(褰撻渶瑕侀噸鏂板彂閫佹椂,璺宠繃杩欎釜鍒ゆ柇)
-                ShowNotNetMsg(listNotShowError);
-                return null;
-            }
-            //妫�娴嬫槸鍚﹀凡缁忓畬鎴愯处鍙蜂俊鎭垵濮嬪寲
-            if (UserCenterResourse.UserInfo.InitUserInfoSuccess == false)
-            {
-                //涓嶇缁撴灉鎬庝箞鏍�,濡傛灉璋冪敤浜嗚繖涓嚱鏁�,闇�瑕侀噸澶磋幏鍙朤oken,鎵�浠ュ繀椤昏繑鍥炲け璐�
-                ReInitUserAccoutInfo(listNotShowError);
-                return null;
-            }
             //鑾峰彇鎺ュ彛鐨勮繛鎺ユā寮�
             var connectMode = GetHttpConnectMode(checkAuthority);
             //鑾峰彇浠庢帴鍙i偅閲屽彇鍒扮殑姣旂壒鏁版嵁
@@ -144,7 +106,8 @@
             {
                 if (setAgain == false)
                 {
-                    //涓嶆寚瀹氶噸鍙�
+                    //褰撳墠鏃犳硶璁块棶缃戠粶
+                    ShowNotNetMsg(RequestName, listNotShowError);
                     return null;
                 }
                 byteData = ResetByteRequestHttps(RequestName, checkAuthority, obj);
@@ -175,22 +138,9 @@
         /// <param name="checkAuthority">鏄惁妫�娴嬫潈闄愶紝璇ュ弬鏁颁笉鑳界渷鐣�</param>
         /// <param name="obj">涓�涓被</param>
         /// <param name="listNotShowError">涓嶉渶瑕佹樉绀洪敊璇殑閿欒绫诲埆(鎺ュ彛杩斿洖鐨勯敊璇被鍒�),濡傛灉鍖呭惈锛屽垯浼氳繑鍥炪�恡rue銆�</param>
-        /// <param name="setAgain">褰撳彂閫佸け璐ユ椂,鏄惁閲嶅彂,榛樿涓嶉噸鍙�</param>
-        public static byte[] GetByteResponseDataByRequestHttps(string RequestName, bool checkAuthority, object obj, List<string> listNotShowError = null, bool setAgain = false)
+        /// <param name="setAgain">褰撳彂閫佸け璐ユ椂,鏄惁閲嶅彂,榛樿閲嶅彂</param>
+        public static byte[] GetByteResponseDataByRequestHttps(string RequestName, bool checkAuthority, object obj, List<string> listNotShowError = null, bool setAgain = true)
         {
-            if (HdlWifiLogic.Current.CanAccessHttp == false && setAgain == false)
-            {
-                //褰撳墠鏃犳硶璁块棶缃戠粶(褰撻渶瑕侀噸鏂板彂閫佹椂,璺宠繃杩欎釜鍒ゆ柇)
-                ShowNotNetMsg(listNotShowError);
-                return null;
-            }
-            //妫�娴嬫槸鍚﹀凡缁忓畬鎴愯处鍙蜂俊鎭垵濮嬪寲
-            if (UserCenterResourse.UserInfo.InitUserInfoSuccess == false)
-            {
-                //涓嶇缁撴灉鎬庝箞鏍�,濡傛灉璋冪敤浜嗚繖涓嚱鏁�,闇�瑕侀噸澶磋幏鍙朤oken,鎵�浠ュ繀椤昏繑鍥炲け璐�
-                ReInitUserAccoutInfo(listNotShowError);
-                return null;
-            }
             //鑾峰彇鎺ュ彛鐨勮繛鎺ユā寮�
             var connectMode = GetHttpConnectMode(checkAuthority);
             //鑾峰彇浠庢帴鍙i偅閲屽彇鍒扮殑姣旂壒鏁版嵁
@@ -200,7 +150,8 @@
             {
                 if (setAgain == false)
                 {
-                    //涓嶆寚瀹氶噸鍙�
+                    //褰撳墠鏃犳硶璁块棶缃戠粶
+                    ShowNotNetMsg(RequestName, listNotShowError);
                     return null;
                 }
                 revertObj = ResetByteRequestHttps(RequestName, checkAuthority, obj);
@@ -255,7 +206,7 @@
                 if (count == 3)
                 {
                     //鏄剧ず娌℃湁缃戠粶鐨凪sg
-                    ShowNotNetMsg(null);
+                    ShowNotNetMsg(RequestName, null);
                     break;
                 }
             }
@@ -377,13 +328,15 @@
         /// <summary>
         /// 鏄剧ず娌℃湁缃戠粶鐨凪sg
         /// </summary>
-        private static void ShowNotNetMsg(List<string> listNotShowError)
+        private static void ShowNotNetMsg(string RequestName, List<string> listNotShowError)
         {
             if (listNotShowError != null && listNotShowError.Contains("NotCheck") == true)
             {
                 //涓嶆娴�
                 return;
             }
+            //HdlLogLogic.Current.WriteLog(-1, "褰撳墠鏃犵綉缁滆繛鎺�:" + RequestName);
+
             HdlThreadLogic.Current.RunMain(() =>
             {
                 // 褰撳墠鏃犵綉缁滆繛鎺�,璇风‘璁ょ綉缁�
@@ -547,13 +500,18 @@
         #endregion
 
         #region 鈻� 鍒锋柊鏈湴缂撳瓨_______________________
+
         /// <summary>
-        /// 鍒锋柊鏈湴鎵�鏈夌紦瀛�
+        /// 鍒锋柊鏈湴鎵�鏈夌紦瀛�(鐩墠姝ゆ柟娉曞彧鎻愪緵缁欐仮澶嶅浠芥暟鎹娇鐢�)
         /// </summary>
         public static void RefreshAllMemory()
         {
             //鍒锋柊浣忓畢瀵硅薄
             RefreshHomeObject();
+            //鏍规嵁妯℃澘鏂囦欢,鎭㈠鏁版嵁
+            TemplateData.TemplateCommonLogic.Current.RecoverDataByTemplateBinFile();
+            //寮哄埗鐢熸垚璁惧鍜岀綉鍏虫枃浠�
+            TemplateData.TemplateCommonLogic.Current.CreatDeviceAndGatewayFileFromMemoryByForce();
             //鍒锋柊鏈湴缃戝叧鏂囦欢
             HdlGatewayLogic.Current.ReFreshByLocal();
             //鍒锋柊鏈湴璁惧
@@ -562,6 +520,12 @@
             HdlGatewayLogic.Current.SynchronizeDbGateway();
             //浠庢湰鍦伴噸鏂板姞杞藉叏閮ㄧ殑鎴块棿
             HdlRoomLogic.Current.RefreshAllRoomByLocation();
+            //鏂紑杩滅▼Mqtt杩炴帴,閲嶆柊杩炴帴
+            HdlThreadLogic.Current.RunThread(async () =>
+            {
+                HdlGatewayLogic.Current.ClearAllRealGatewayConection(true);
+                await ZigBee.Device.ZbGateway.DisConnectRemoteMqttClient();
+            }, ShowErrorMode.NO);
         }
 
         /// <summary>
@@ -569,77 +533,25 @@
         /// </summary>
         public static void RefreshHomeObject()
         {
-            //澶囦唤鐨勬暟鎹紝鏈夊彲鑳芥槸涓讳汉鑷繁涓婁紶鐨勶紝濡傛灉绠$悊鍛樼櫥闄嗘椂锛屼粬鑾峰彇鐨勫浠芥暟鎹湁鐐圭壒娈�
-            //姣斿涓嬮潰杩欎笁涓笢瑗垮湪涓昏处鍙烽偅閲屾槸涓嶉渶瑕佺殑
-            bool isOthreShare = Config.Instance.Home.IsOthreShare;
-            int accountType = Config.Instance.Home.AccountType;
-            string mainMark = Config.Instance.Home.MainUserDistributedMark;
-            double Longitude = Config.Instance.Home.Longitude;
-            double Latitude = Config.Instance.Home.Latitude;
-            //杩樺師浣忓畢瀵硅薄
-            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;
-            Config.Instance.Home.Longitude = Longitude;
-            Config.Instance.Home.Latitude = Latitude;
-            Config.Instance.Home.Save(false);
-        }
+            var home = HdlResidenceLogic.Current.GetHouseByHouseId(Config.Instance.Home.Id);
 
-        #endregion
-
-        #region 鈻� 鍒犻櫎鏈湴鏂囦欢_______________________
-
-        /// <summary>
-        /// 鍒犻櫎鏈湴鎵�鏈夋枃浠�
-        /// </summary>
-        /// <param name="all">true:鍏ㄩ儴鍒犻櫎(鐢ㄤ簬浣忓畢鍒犻櫎) false:閲嶈鐨勬枃浠朵笉鍒犻櫎</param>
-        public static void DeleteAllLocationFile(bool all = true)
-        {
-            string dPath = Config.Instance.FullPath;
-            if (System.IO.Directory.Exists(dPath) == false)
+            //鍒锋柊妤煎眰
+            Config.Instance.Home.FloorDics = home.FloorDics;
+            Config.Instance.Home.CurrentFloorId = string.Empty;
+            if (Config.Instance.Home.TemplateMode == -1)
             {
-                return;
-            }
-
-            //鐒跺悗鑾峰彇鍏ㄩ儴鐨勬枃浠�
-            List<string> listFile = Global.FileListByHomeId();
-            foreach (string file in listFile)
-            {
-                if (all == false && IsNotDeleteFile(file) == true)
+                Config.Instance.Home.TemplateMode = home.TemplateMode;
+                if (Config.Instance.Home.TemplateMode == -1)
                 {
-                    //杩欐槸涓嶈兘鍒犻櫎鐨勬枃浠�
-                    continue;
+                    //榛樿鍒濆鍊�
+                    Config.Instance.Home.TemplateMode = 1;
                 }
-                //鍒犻櫎鏂囦欢
-                Global.DeleteFilebyHomeId(file);
             }
-            //濡傛灉鏄妸鏂囦欢鍏ㄩ儴鍒犻櫎鐨勮瘽锛岄偅涔堟枃浠跺す涔熶竴璧峰垹闄ゆ帀
-            if (all == true)
-            {
-                //鍒犻櫎鏂囦欢澶�
-                System.IO.Directory.Delete(dPath, true);
-            }
-        }
 
-        /// <summary>
-        /// 鍒ゆ柇鏄笉鏄笉搴旇鍒犻櫎鐨勬枃浠�
-        /// </summary>
-        /// <param name="fileName"></param>
-        /// <returns></returns>
-        public static bool IsNotDeleteFile(string fileName)
-        {
-            if (fileName == "Config.json")
-            {
-                //涓嶈兘鍒犻櫎Config鏂囦欢
-                return true;
-            }
-            else if (fileName.StartsWith("House_") == true)
-            {
-                //涓嶈兘鍒犻櫎浣忓畢鏂囦欢
-                return true;
-            }
-            return false;
+            Config.Instance.Home.Save(false);
+
+            //涓婚〉闇�瑕侀噸鏂板埛鏂�
+            UserView.UserPage.Instance.RefreshAllForm = true;
         }
 
         #endregion
@@ -660,13 +572,15 @@
                 {
                     //璁惧畾涓�涓椂闂�
                     Config.Instance.LoginDateTime = new DateTime(1970, 1, 1);
+                    Config.Instance.Save();
                     //娓呯┖褰撳墠浣忓畢id
                     Config.Instance.HomeId = string.Empty;
-                    Config.Instance.Save();
                     //鏀惰捣宸﹁彍鍗�
                     CommonPage.Instance.CloseLeftMenu();
+                    //鍏抽棴鍏ㄩ儴寮圭獥
+                    ShowMsgControl.CloseAllMsgDialog();
                     //鍏抽棴鎵�鏈夋墦寮�浜嗙殑鐣岄潰
-                    CloseAllOpenForm();
+                    CloseAllOpenForm(null, false);
 
                     //鏄剧ず鐧婚檰鐢婚潰
                     var formLogin = new Login.AccountLoginForm();
@@ -694,7 +608,7 @@
 
                 //娓呯┖褰撳墠浣忓畢id
                 Config.Instance.HomeId = string.Empty;
-                HdlGatewayLogic.Current.ClearAllRealGateway();
+                HdlGatewayLogic.Current.ClearAllRealGatewayConection(false);
 
                 //鏂紑杩滅▼Mqtt杩炴帴
                 HdlThreadLogic.Current.RunThread(async () =>
@@ -707,7 +621,7 @@
                     //鏀惰捣宸﹁彍鍗�
                     CommonPage.Instance.CloseLeftMenu();
                     //鍏抽棴鎵�鏈夋墦寮�浜嗙殑鐣岄潰
-                    CloseAllOpenForm();
+                    CloseAllOpenForm(null, false);
 
                     //鏄剧ず鐧婚檰鐢婚潰
                     var formLogin = new Login.AccountLoginForm();
@@ -727,7 +641,8 @@
         /// 鍏抽棴鎵�鏈夋墦寮�浜嗙殑鐣岄潰
         /// </summary>
         /// <param name="tagetFrom">鐩爣鐣岄潰,濡傛灉鎸囧畾浜嗙殑璇�,鍒欏叧闂洰鏍囩晫闈笂灞傜殑鍏ㄩ儴鐣岄潰(瀹冭嚜韬笉鍏抽棴)</param>
-        public static void CloseAllOpenForm(string tagetFrom = null)
+        /// <param name="refreshMainPage">褰撳叧闂殑鐣岄潰杈惧埌涓婚〉鏃�,鏄惁鍒锋柊涓婚〉</param>
+        public static void CloseAllOpenForm(string tagetFrom = null, bool refreshMainPage = true)
         {
             while (UserView.HomePage.Instance.ChildrenCount > 0)
             {
@@ -750,6 +665,11 @@
                 }
                 else if (view is UserView.UserPage)
                 {
+                    //鍒锋柊涓婚〉
+                    if (refreshMainPage == true)
+                    {
+                        UserView.UserPage.Instance.ReFreshControl();
+                    }
                     return;
                 }
                 else
@@ -779,29 +699,6 @@
         #endregion
 
         #region 鈻� 鎷兼帴淇℃伅___________________________
-
-        /// <summary>
-        /// 鎷兼帴璺緞(鍏ㄨ矾寰�)锛屼互浣忓畢ID鐨勬枃浠跺す涓鸿捣鐐癸紝褰撴病鏈夋寚瀹氬弬鏁版椂锛屽垯杩斿洖銆愪綇瀹匢D鐨勬枃浠跺す銆戠殑鍏ㄨ矾寰�
-        /// </summary>
-        /// <param name="listNames">瑕佹嫾鎺ョ殑璺緞</param>
-        /// <returns></returns>
-        public static string CombinePath(params object[] listNames)
-        {
-            string rootPath = Config.Instance.FullPath;
-            if (listNames == null || listNames.Length == 0)
-            {
-                return rootPath;
-            }
-            foreach (var file in listNames)
-            {
-                if (file == null)
-                {
-                    continue;
-                }
-                rootPath = System.IO.Path.Combine(rootPath, file.ToString());
-            }
-            return rootPath;
-        }
 
         /// <summary>
         /// 鎷兼帴缃戝叧鍥炲瓒呮椂鐨勪俊鎭�
@@ -871,7 +768,7 @@
         public static bool InitUserCenterMenmoryAndThread(bool ShowPrompted = true)
         {
             //璋冪敤杩欎釜鏂规硶,閮介渶瑕侀噸鏂板埛鏂颁富椤�
-            UserView.UserPage.Instance.RefreshForm = true;
+            UserView.UserPage.Instance.RefreshAllForm = true;
 
             //娣诲姞缃戠粶鐘舵�佺洃鍚�
             HdlWifiLogic.Current.StartListenNetWork();
@@ -893,11 +790,9 @@
             if (Common.Config.Instance.HomeId != UserCenterResourse.AccountOption.OldHomeStringId
                 || Common.Config.Instance.Account != UserCenterResourse.AccountOption.OldAccountId)
             {
-                //鏂紑杩滅▼Mqtt杩炴帴
-                HdlThreadLogic.Current.RunThread(async () =>
-                {
-                    await ZigBee.Device.ZbGateway.DisConnectRemoteMqttClient();
-                }, ShowErrorMode.NO);
+                //鍊熺敤涓�涓嬭繖涓彉閲�(妫�娴嬭兘鍚﹀箍鎾埌缃戝叧)
+                UserCenterResourse.DicReceiveGatewayTest = new Dictionary<string, ZigBee.Device.ZbGateway>();
+                UserCenterResourse.HideOption.CheckCanReceiveGateway = 1;
 
                 //娓呯┖鎵�鏈夋垚鍛樼紦瀛�
                 ClearAllMemberMemory();
@@ -906,10 +801,13 @@
                 var optionInfo = UserCenterResourse.AccountOption.Load();
                 UserCenterResourse.AccountOption = optionInfo;
                 //鍙樻洿鏍圭敤鎴峰浘鐗囩洰褰曡矾寰�
-                UserCenterResourse.AccountOption.UserPictruePath = System.IO.Path.Combine(Shared.IO.FileUtils.RootPath, Config.Instance.Guid, DirNameResourse.UserPictrueDirectory);
+                UserCenterResourse.AccountOption.UserPictruePath = DirNameResourse.UserPictrueDirectory;
 
                 //鍔犺浇浣忓畢閰嶇疆淇℃伅
                 UserCenterResourse.ResidenceOption = UserCenterResourse.ResidenceOption.Load();
+
+                //棰勫垱寤轰釜浜轰腑蹇冨叏閮ㄧ殑鏂囦欢澶�
+                HdlFileLogic.Current.CreatAllUserCenterDirectory();
 
                 //鍒濆鍖栫櫥闄嗚处鍙风殑淇℃伅
                 var hadNet = InitUserAccoutInfo(true);
@@ -920,10 +818,18 @@
                     HdlGatewayLogic.Current.ResetComandToBindBackupGateway();
                     //璇诲彇闅愬尶閰嶇疆
                     HdlBackupLogic.Current.LoadHideOption();
+                    //璋冭瘯锛氬己鍒跺紑鍚悗鍙拌皟璇旳pp鍔熻兘
+                    if (UserCenterResourse.HideOption.StartDebugApp == 1)
+                    {
+                        HdlThreadLogic.Current.RunMain(() =>
+                        {
+                            var form = new HideOption.HideOptionMainForm();
+                            form.AddForm();
+                        });
+                        ProgressBar.Close(true);
+                        return false;
+                    }
                 }
-
-                //棰勫垱寤轰釜浜轰腑蹇冨叏閮ㄧ殑鏂囦欢澶�
-                CreatAllUserCenterDirectory();
 
                 //鍏抽棴鎵�鏈夋帴鏀�
                 HdlGatewayReceiveLogic.Current.RemoveAllEvent();
@@ -957,8 +863,18 @@
                     HdlGatewayLogic.Current.SynchronizeDbGateway();
                 }
 
+                //鏂紑杩滅▼Mqtt杩炴帴,閲嶆柊杩炴帴
+                HdlThreadLogic.Current.RunThread(async () =>
+                {
+                    HdlGatewayLogic.Current.ClearAllRealGatewayConection(true);
+                    await ZigBee.Device.ZbGateway.DisConnectRemoteMqttClient();
+                }, ShowErrorMode.NO);
+
                 //鍒锋柊APP鍓嶄竴娆¢�夋嫨鐨勭綉鍏矷D(鍙互鍙嶅璋冪敤,闇�瑕佸湪缃戝叧鍒濆鍖栧畬浜嗕箣鍚庢墠鑳借皟鐢�)
                 HdlGatewayLogic.Current.RefreshAppOldSelectGatewayId();
+
+                //鍔犺浇妯℃澘缂撳瓨
+                //TemplateData.TemplateCommonLogic.Current.LoadLocalTemplateMemoryData();
 
                 //0:宸茬粡鍚屾杩囷紝涓嶉渶瑕佸悓姝�,杩欎釜鏃跺�欓渶瑕佹彁绀哄浠�
                 if (result == 0 && ShowPrompted == true)
@@ -968,9 +884,25 @@
                 }
                 //鏄剧ず寮曞鐣岄潰
                 ShowGuideForm(result);
+
+                //鍏抽棴debug骞挎挱
+                UserCenterResourse.HideOption.CheckCanReceiveGateway = 0;
+                System.Threading.Thread.Sleep(30);
+                if (hadNet == 1)
+                {
+                    //浣忓畢鍒囨崲鏃�,妫�娴嬬綉鍏宠繛鎺ユ儏鍐�
+                    CheckGatewayConnection();
+
+                }
+                UserCenterResourse.DicReceiveGatewayTest = null;
             }
             //APP缂撳瓨鍔犺浇瀹屾垚
             UserCenterResourse.AccountOption.AppCanSignout = true;
+            if (Shared.Phone.Device.Logic.Send.If_Exist == "1")
+            {
+                //浠ユ湰鍦扮姸鎬佷负涓绘墦寮�GPS鏈嶅姟
+                Application.StartGPSLocationService();
+            }
 
             return true;
         }
@@ -984,7 +916,7 @@
             //娓呯┖鎵�鏈夋垚鍛樼紦瀛�
             ClearAllMemberMemory();
             //棰勫垱寤轰釜浜轰腑蹇冨叏閮ㄧ殑鏂囦欢澶�
-            CreatAllUserCenterDirectory();
+            HdlFileLogic.Current.CreatAllUserCenterDirectory();
             //鍏抽棴鎵�鏈夋帴鏀�
             HdlGatewayReceiveLogic.Current.RemoveAllEvent();
             //鍒濆鍖栨湰鍦扮殑缃戝叧淇℃伅
@@ -995,6 +927,8 @@
             HdlRoomLogic.Current.RefreshAllRoomByLocation();
             //鍒锋柊宸﹁竟鍒锋柊鎴块棿瑙嗗浘鍒楄〃
             HdlRoomLogic.Current.RefreshRoomListView();
+            //鍔犺浇妯℃澘缂撳瓨
+            //TemplateData.TemplateCommonLogic.Current.LoadLocalTemplateMemoryData();
         }
 
         /// <summary>
@@ -1018,6 +952,35 @@
             Common.Logic.LogicList.Clear();
             Common.Logic.LockLogicList.Clear();
             Common.Logic.SoneLogicList.Clear();
+        }
+
+        /// <summary>
+        /// 浣忓畢鍒囨崲鏃�,妫�娴嬬綉鍏宠繛鎺ユ儏鍐�
+        /// </summary>
+        private static void CheckGatewayConnection()
+        {
+            try
+            {
+                bool canReceiveGw = false;
+                foreach (var gateway in UserCenterResourse.DicReceiveGatewayTest.Values)
+                {
+                    if (gateway.HomeId == Config.Instance.Home.Id)
+                    {
+                        //鑳藉鎼滅储寰楀埌缃戝叧
+                        canReceiveGw = true;
+                        break;
+                    }
+                }
+                UserCenterResourse.DicReceiveGatewayTest = null;
+                //璁剧疆杩滅▼杩炴帴鐨勫垵濮嬪��
+                ZigBee.Device.ZbGateway.IsRemote = canReceiveGw == false;
+                if (canReceiveGw == false)
+                {
+                    //濡傛灉鏄繙绋嬬殑璇�,杩藉姞绛夊緟鏃堕棿
+                    System.Threading.Thread.Sleep(1500);
+                }
+            }
+            catch { }
         }
 
         #endregion
@@ -1050,7 +1013,7 @@
             //搴忓垪鍖栧璞�
             var requestJson = JsonConvert.SerializeObject(pra);
             //璁块棶鎺ュ彛
-            byte[] byteData = CommonPage.Instance.RequestHttpsZigbeeBytesResultAsync("ZigbeeUsers/GetAccountInfo", Encoding.UTF8.GetBytes(requestJson));
+            byte[] byteData = CommonPage.Instance.RequestHttpsZigbeeBytesResultAsync("ZigbeeUsers/GetAccountInfo", Encoding.UTF8.GetBytes(requestJson), "POST", 4);
             if (byteData == null)
             {
                 return -1;
@@ -1089,29 +1052,27 @@
                 userInfo.AuthorityText = Language.StringByID(R.MyInternationalizationString.uMember);
             }
 
-            if (UserCenterResourse.UserInfo.AuthorityNo != userInfo.AuthorityNo)
+            //UserInfo.AuthorityNo==0浠h〃鏈湴杩樻病鏈夌敓鎴愭枃浠�,杩欎釜鏃跺�欎笉闇�瑕佸鐞�
+            if (UserCenterResourse.UserInfo.AuthorityNo != userInfo.AuthorityNo
+                && UserCenterResourse.UserInfo.AuthorityNo != 0)
             {
                 //濡傛灉鐧婚檰鐨勮处鍙风殑鏉冮檺鍜屼笂涓�娆$殑涓嶄竴鏍�,鍒欏垹闄ゆ湰鍦拌繖涓綇瀹呭叏閮ㄧ殑鏂囦欢,浠庡ご鍐嶆潵
-                string dirPath = CombinePath();
+                string dirPath = Config.Instance.FullPath;
                 if (System.IO.Directory.Exists(dirPath) == true)
                 {
                     try
                     {
                         //鍚屾鏁版嵁鐨勫垽鏂枃浠�(浠ラ槻涓囦竴鍒犻櫎鏁翠釜鏂囦欢澶瑰け璐ョ殑鏃跺��,杩欎釜鏂囦欢琚垹鐨勮瘽,搴旇娌′粈涔堝ぇ闂)
-                        string SynchronizeFile = UserCenterLogic.CombinePath(DirNameResourse.LocalMemoryDirectory, DirNameResourse.AutoDownLoadBackupCheckFile);
+                        string SynchronizeFile = DirNameResourse.AutoDownLoadBackupCheckFile;
                         //濡傛灉鏈湴宸茬粡鎷ユ湁浜嗚繖涓枃浠讹紝鍒欒鏄庝笉鏄柊鎵嬫満锛屼笉鍐嶈嚜鍔ㄨ繕鍘�
-                        if (System.IO.File.Exists(SynchronizeFile) == true)
-                        {
-                            System.IO.File.Delete(SynchronizeFile);
-                        }
-                        //鍒犻櫎鏁翠釜鏂囦欢澶�
-                        System.IO.Directory.Delete(dirPath, true);
+                        HdlFileLogic.Current.DeleteFile(SynchronizeFile);
+                        HdlFileLogic.Current.DeleteDirectory(dirPath);
                     }
                     catch { }
                     //鍒涘缓浣忓畢鏂囦欢澶�
                     Global.CreateHomeDirectory(Config.Instance.HomeId);
                     //棰勫垱寤轰釜浜轰腑蹇冨叏閮ㄧ殑鏂囦欢澶�
-                    CreatAllUserCenterDirectory();
+                    HdlFileLogic.Current.CreatAllUserCenterDirectory();
                 }
             }
             if (string.IsNullOrEmpty(userInfo.UserName) == true)
@@ -1125,7 +1086,7 @@
             if (UserCenterResourse.UserInfo.HeadImage != null)
             {
                 //鍐欏叆澶村儚鍐呭
-                Shared.IO.FileUtils.WriteFileByBytes(UserCenterResourse.UserInfo.UserIconFile, UserCenterResourse.UserInfo.HeadImage);
+                HdlFileLogic.Current.SaveByteToFile(UserCenterResourse.UserInfo.UserIconFile, UserCenterResourse.UserInfo.HeadImage);
             }
             UserCenterResourse.UserInfo.HeadImage = null;
             //鎵嬪娍瀵嗙爜
@@ -1134,6 +1095,8 @@
             //瀵嗙爜楠岃瘉
             UserCenterResourse.AccountOption.PswAuthentication = UserCenterResourse.UserInfo.StringPwd == null ? string.Empty : UserCenterResourse.UserInfo.StringPwd;
             UserCenterResourse.UserInfo.StringPwd = null;
+            //淇濆瓨缂撳瓨
+            UserCenterResourse.AccountOption.Save();
 
             //鍒濆鍖栫鐞嗗憳鎺у埗涓讳汉鐨勮繛鎺ュ湴鍧�(鍥犱负杩欎釜杩炴帴Token鏄笉浼氭敼鍙樼殑,鎵�浠ュ彧闇�瑕佸垵濮嬪寲涓�娆�)
             var flage = InitAdminConnectMainInfo();
@@ -1149,8 +1112,7 @@
         /// <returns></returns>
         private static UserInformation GetUserInformationFromLocation()
         {
-            string fileName = CombinePath(DirNameResourse.LocalMemoryDirectory, DirNameResourse.UserInfoFile);
-            var value = LoadFileContent(fileName);
+            var value = HdlFileLogic.Current.ReadFileTextContent(DirNameResourse.UserInfoFile);
             if (value == null)
             {
                 return new UserInformation();
@@ -1163,25 +1125,10 @@
         /// 閲嶆柊鍒濆鍖栫櫥闄嗚处鍙风殑淇℃伅(鏃ㄥ湪瀵瑰簲閭d竴鐬棿,缃戠粶涓嶅ソ,瀵艰嚧璇垽鐨勬儏鍐�)
         /// </summary>
         /// <returns></returns>
-        private static bool ReInitUserAccoutInfo(List<string> listNotShowError)
+        public static bool ReInitUserAccoutInfo()
         {
             //閲嶆柊鍒濆鍖栬处鍙蜂俊鎭�
             var result = InitUserAccoutInfo(false);
-            //杩炴帴涓嶄簡澶栫綉鐨勬椂鍊�
-            if (result == -1)
-            {
-                if (listNotShowError != null && listNotShowError.Contains("NotCheck") == true)
-                {
-                    //鏈夎繖涓爣璇嗘椂,涓嶆彁绀洪敊璇�
-                    return false;
-                }
-                Application.RunOnMainThread(() =>
-                {
-                    //褰撳墠鏃犵綉缁滆繛鎺�,璇风‘璁ょ綉缁�
-                    var alert = new ShowMsgControl(ShowMsgType.Tip, Language.StringByID(R.MyInternationalizationString.uNowIsDonotNetworkAndCheckNetwork));
-                    alert.Show();
-                });
-            }
             if (result == 1)
             {
                 //鍚屾浜戠鐨勭綉鍏砳d锛屽鏋滄湰鍦版嫢鏈変簯绔笉瀛樺湪鐨刬d锛屽垯琛ㄧず搴旇琚崲缁戜簡锛岀洿鎺ュ垹闄�
@@ -1199,9 +1146,8 @@
         /// </summary>
         private static void SaveUserInformationToLocation()
         {
-            string fullName = UserCenterLogic.CombinePath(DirNameResourse.LocalMemoryDirectory, DirNameResourse.UserInfoFile);
             //鍐欏叆鍐呭
-            SaveFileContent(fullName, UserCenterResourse.UserInfo);
+            HdlFileLogic.Current.SaveFileContent(DirNameResourse.UserInfoFile, UserCenterResourse.UserInfo);
 
             //鎼炰竴涓嬩富浜虹殑榛樿澶村儚
             string defultFile = IO.FileUtils.GetImageFilePath("Center/Admin.png");
@@ -1265,54 +1211,6 @@
 
         #endregion
 
-        #region 鈻� 棰勫垱寤轰釜浜轰腑蹇冨叏閮ㄧ殑鏂囦欢澶筥________
-
-        /// <summary>
-        /// 棰勫垱寤轰釜浜轰腑蹇冨叏閮ㄧ殑鏂囦欢澶�
-        /// </summary>
-        public static void CreatAllUserCenterDirectory()
-        {
-            //鏈湴缂撳瓨鐨勬牴鐩綍
-            string LocalDirectory = UserCenterLogic.CombinePath(DirNameResourse.LocalMemoryDirectory);
-            Global.CreateEmptyDirectory(LocalDirectory);
-
-            //鑷姩澶囦唤銆愭枃浠跺す銆�(缂栬緫,杩藉姞)
-            string directory = System.IO.Path.Combine(LocalDirectory, DirNameResourse.AutoBackupDirectory);
-            Global.CreateEmptyDirectory(directory);
-
-            //鑷姩澶囦唤銆愭枃浠跺す銆�(鍒犻櫎)
-            directory = System.IO.Path.Combine(LocalDirectory, DirNameResourse.AutoBackupdeleteDirectory);
-            Global.CreateEmptyDirectory(directory);
-
-            //涓嬭浇澶囦唤鐨勬椂鍊欐墍浣跨敤鐨勪复鏃躲�愭枃浠跺す銆�
-            directory = System.IO.Path.Combine(LocalDirectory, DirNameResourse.DownLoadBackupTempDirectory);
-            Global.CreateEmptyDirectory(directory);
-
-            //淇濆瓨瀹夐槻璁板綍鐨勩�愭枃浠跺す銆�
-            directory = System.IO.Path.Combine(LocalDirectory, DirNameResourse.SafeguardAlarmDirectory);
-            Global.CreateEmptyDirectory(directory);
-
-            //涓婁紶缃戝叧澶囦唤鏂囦欢鍒颁簯绔殑涓存椂銆愭枃浠跺す銆�
-            directory = System.IO.Path.Combine(LocalDirectory, DirNameResourse.GatewayBackupDirectory);
-            Global.CreateEmptyDirectory(directory);
-
-            //涓嬭浇鍒嗕韩鏂囦欢鐨勪复鏃躲�愭枃浠跺す銆�
-            directory = System.IO.Path.Combine(LocalDirectory, DirNameResourse.DownLoadShardDirectory);
-            Global.CreateEmptyDirectory(directory);
-
-            //LOG鍑哄姏銆愭枃浠跺す銆�
-            directory = System.IO.Path.Combine(LocalDirectory, DirNameResourse.LogDirectory);
-            Global.CreateEmptyDirectory(directory);
-
-            //鐢ㄦ埛鍥剧墖鐩綍璺緞銆愭枃浠跺す銆�
-            if (UserCenterResourse.AccountOption.UserPictruePath != string.Empty && !System.IO.Directory.Exists(UserCenterResourse.AccountOption.UserPictruePath))
-            {
-                System.IO.Directory.CreateDirectory(UserCenterResourse.AccountOption.UserPictruePath);
-            }
-        }
-
-        #endregion
-
         #region 鈻� 鑾峰彇鎺у埗涓讳汉璐﹀彿鐨凾oken____________
 
         /// <summary>
@@ -1339,7 +1237,7 @@
         /// <param name="result">鍚屾缁撴灉 -1锛氬紓甯�   0:宸茬粡鍚屾杩囷紝涓嶉渶瑕佸悓姝�  1锛氭甯稿悓姝�  2:娌℃湁鑷姩澶囦唤鏁版嵁</param>
         private static void ShowGuideForm(int result)
         {
-            var checkFile = System.IO.Path.Combine(Shared.IO.FileUtils.RootPath, DirNameResourse.GuideFile);
+            var checkFile = DirNameResourse.GuideFile;
             if (System.IO.File.Exists(checkFile) == true)
             {
                 //涓嶉渶瑕佹樉绀�
@@ -1412,7 +1310,7 @@
         {
             try
             {
-                if (strPsw == string.Empty)
+                if (string.IsNullOrEmpty(strPsw) == true)
                 {
                     return strPsw;
                 }
@@ -1482,89 +1380,6 @@
         {
             var utcTime = Convert.ToDateTime(timeText);
             return TimeZoneInfo.ConvertTimeFromUtc(utcTime, TimeZoneInfo.Local);
-        }
-
-        #endregion
-
-        #region 鈻� 鏂囦欢淇濆瓨鍜岃鍙朹____________________
-
-        /// <summary>
-        /// 鏂囦欢淇濆瓨(鏁村ぉ蹇樿,鎵�浠ュ缓涓�涓嚱鏁版潵鐜╃帺)
-        /// </summary>
-        /// <param name="fullName">鍏ㄨ矾寰�</param>
-        /// <param name="obj">闇�瑕佸簭鍒楀寲鐨勪笢瑗�</param>
-        public static void SaveFileContent(string fullName, object obj)
-        {
-            var data = JsonConvert.SerializeObject(obj);
-            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
-            {
-                fileStream = new System.IO.FileStream(fullName, System.IO.FileMode.Create, System.IO.FileAccess.Write);
-                fileStream.Write(byteData, 0, byteData.Length);
-                fileStream.Flush();
-            }
-            catch { }
-            finally
-            {
-                fileStream?.Close();
-            }
-        }
-
-        /// <summary>
-        /// 璇诲彇鏂囦欢,涓嶉檺鍒朵綇瀹�(鏂囦欢涓嶅瓨鍦ㄨ繑鍥瀗ull,鏁村ぉ蹇樿,鎵�浠ュ缓涓�涓嚱鏁版潵鐜╃帺)
-        /// </summary>
-        /// <param name="fullName">鍏ㄨ矾寰�</param>
-        /// <returns></returns>
-        public static string LoadFileContent(string fullName)
-        {
-            //璇诲彇鏂囦欢
-            var varByte = ReadFileContent(fullName);
-            if (varByte == null)
-            {
-                return null;
-            }
-            return Encoding.UTF8.GetString(varByte);
-        }
-
-        /// <summary>
-        /// 璇诲彇鏂囦欢,涓嶉檺鍒朵綇瀹�,鏂囦欢涓嶅瓨鍦ㄨ繑鍥瀗ull
-        /// </summary>
-        /// <param name="fullName">鍏ㄨ矾寰�</param>
-        /// <returns></returns>
-        public static byte[] ReadFileContent(string fullName)
-        {
-            if (System.IO.File.Exists(fullName) == false)
-            {
-                return null;
-            }
-            System.IO.FileStream fileStream = null;
-            try
-            {
-                fileStream = new System.IO.FileStream(fullName, System.IO.FileMode.Open, System.IO.FileAccess.Read);
-                byte[] array = new byte[fileStream.Length];
-                fileStream.Read(array, 0, array.Length);
-                return array;
-            }
-            catch
-            {
-                return null;
-            }
-            finally
-            {
-                fileStream?.Close();
-            }
         }
 
         #endregion

--
Gitblit v1.8.0