From d87400af518ebc9274f4447f06476959c3aa5102 Mon Sep 17 00:00:00 2001 From: xm <1271024303@qq.com> Date: 星期二, 14 七月 2020 16:29:42 +0800 Subject: [PATCH] Merge branch 'dev-tzy' into dev-2020xm --- ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/UserCenterLogic.cs | 499 ++++++++++++++----------------------------------------- 1 files changed, 127 insertions(+), 372 deletions(-) diff --git a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/UserCenterLogic.cs b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/UserCenterLogic.cs index 3542581..bf5c4b9 100755 --- a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/UserCenterLogic.cs +++ b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/UserCenterLogic.cs @@ -2,8 +2,6 @@ using Shared.Common; using Newtonsoft.Json; using Shared.Common.ResponseEntity; -using System.Threading.Tasks; -using System.Text.RegularExpressions; using System.Collections.Generic; using System.Text; @@ -23,30 +21,28 @@ /// <param name="RequestName">璁块棶鍦板潃</param> /// <param name="checkAuthority">鏄惁妫�娴嬫潈闄愶紝璇ュ弬鏁颁笉鑳界渷鐣�</param> /// <param name="obj">涓�涓被</param> - /// <param name="listNotShowError"> - /// <pra>涓嶉渶瑕佹樉绀洪敊璇殑閿欒绫诲埆(鎺ュ彛杩斿洖鐨勯敊璇被鍒�),濡傛灉鍖呭惈锛屽垯浼氳繑鍥炪�恡rue銆�</pra> - /// <pra>濡傛灉鎸囧畾鏈塏otSetAgain,鍒欎笉浜屾鍙戦��(姣斿鏂綉),鐒跺悗杩斿洖銆恌alse銆�</pra> - /// </param> - public static async Task<bool> GetResultStatuByRequestHttps(string RequestName, bool checkAuthority, object obj, List<string> listNotShowError = null) + /// <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) { - //妫�娴嬫槸鍚﹀凡缁忓畬鎴愯处鍙蜂俊鎭垵濮嬪寲 - if (UserCenterResourse.UserInfo.InitUserInfoSuccess == false) + if (HdlWifiLogic.Current.CanAccessHttp == false && setAgain == false) { - //涓嶇缁撴灉鎬庝箞鏍�,濡傛灉璋冪敤浜嗚繖涓嚱鏁�,闇�瑕侀噸澶磋幏鍙朤oken,鎵�浠ュ繀椤昏繑鍥炲け璐� - await ReInitUserAccoutInfo(listNotShowError); + //褰撳墠鏃犳硶璁块棶缃戠粶(褰撻渶瑕侀噸鏂板彂閫佹椂,璺宠繃杩欎釜鍒ゆ柇) + ShowNotNetMsg(listNotShowError); return false; } //鑾峰彇鎺ュ彛鐨勮繛鎺ユā寮� var connectMode = GetHttpConnectMode(checkAuthority); //鑾峰彇浠庢帴鍙i偅閲屽彇鍒扮殑姣旂壒鏁版嵁 - var byteData = await GettByteResponsePack(RequestName, connectMode, obj); - if (byteData == null) + var byteData = GettByteResponsePack(RequestName, connectMode, obj); + if (byteData == null && setAgain == true) { - if (listNotShowError != null && listNotShowError.Contains("NotSetAgain") == true) + if (setAgain == false) { + //涓嶆寚瀹氶噸鍙� return false; } - byteData = await ResetByteRequestHttps(RequestName, checkAuthority, obj); + byteData = ResetByteRequestHttps(RequestName, checkAuthority, obj); if (byteData == null) { return false; @@ -64,31 +60,30 @@ /// <param name="RequestName">璁块棶鍦板潃</param> /// <param name="checkAuthority">鏄惁妫�娴嬫潈闄愶紝璇ュ弬鏁颁笉鑳界渷鐣�</param> /// <param name="obj">涓�涓被</param> - /// <param name="listNotShowError"> - /// <pra>涓嶉渶瑕佹樉绀洪敊璇殑閿欒绫诲埆(鎺ュ彛杩斿洖鐨勯敊璇被鍒�),濡傛灉鍖呭惈锛屽垯浼氳繑鍥炪�怱uccess銆�</pra> - /// <pra>濡傛灉鎸囧畾鏈塏otSetAgain,鍒欎笉浜屾鍙戦��(姣斿鏂綉),鐒跺悗杩斿洖銆怑rrorEx銆�</pra> + /// <param name="listNotShowError">涓嶉渶瑕佹樉绀洪敊璇殑閿欒绫诲埆(鎺ュ彛杩斿洖鐨勯敊璇被鍒�),濡傛灉鍖呭惈锛屽垯浼氳繑鍥炪�恡rue銆�</param> + /// <param name="setAgain">褰撳彂閫佸け璐ユ椂,鏄惁閲嶅彂,榛樿涓嶉噸鍙�</param> /// </param> - public static async Task<string> GetResultCodeByRequestHttps(string RequestName, bool checkAuthority, object obj, List<string> listNotShowError = null) + public static string GetResultCodeByRequestHttps(string RequestName, bool checkAuthority, object obj, List<string> listNotShowError = null, bool setAgain = false) { - //妫�娴嬫槸鍚﹀凡缁忓畬鎴愯处鍙蜂俊鎭垵濮嬪寲 - if (UserCenterResourse.UserInfo.InitUserInfoSuccess == false) + if (HdlWifiLogic.Current.CanAccessHttp == false && setAgain == false) { - //涓嶇缁撴灉鎬庝箞鏍�,濡傛灉璋冪敤浜嗚繖涓嚱鏁�,闇�瑕侀噸澶磋幏鍙朤oken,鎵�浠ュ繀椤昏繑鍥炲け璐� - await ReInitUserAccoutInfo(listNotShowError); + //褰撳墠鏃犳硶璁块棶缃戠粶(褰撻渶瑕侀噸鏂板彂閫佹椂,璺宠繃杩欎釜鍒ゆ柇) + ShowNotNetMsg(listNotShowError); return "Error"; } //鑾峰彇鎺ュ彛鐨勮繛鎺ユā寮� var connectMode = GetHttpConnectMode(checkAuthority); //鑾峰彇浠庢帴鍙i偅閲屽彇鍒扮殑姣旂壒鏁版嵁 - var byteData = await GettByteResponsePack(RequestName, connectMode, obj); + var byteData = GettByteResponsePack(RequestName, connectMode, obj); if (byteData == null) { - if (listNotShowError != null && listNotShowError.Contains("NotSetAgain") == true) + if (setAgain == false) { - return "ErrorEx"; + //涓嶆寚瀹氶噸鍙� + return "Error"; } - byteData = await ResetByteRequestHttps(RequestName, checkAuthority, obj); + byteData = ResetByteRequestHttps(RequestName, checkAuthority, obj); if (byteData == null) { return "Error"; @@ -109,30 +104,29 @@ /// <param name="RequestName">璁块棶鍦板潃</param> /// <param name="checkAuthority">鏄惁妫�娴嬫潈闄愶紝璇ュ弬鏁颁笉鑳界渷鐣�</param> /// <param name="obj">涓�涓被</param> - /// <param name="listNotShowError"> - /// <pra>涓嶉渶瑕佹樉绀洪敊璇殑閿欒绫诲埆(鎺ュ彛杩斿洖鐨勯敊璇被鍒�),濡傛灉鍖呭惈锛屽垯浼氳繑鍥炵┖瀛楃涓�</pra> - /// <pra>濡傛灉鎸囧畾鏈塏otSetAgain,鍒欎笉浜屾鍙戦��(姣斿鏂綉),鐒跺悗杩斿洖绌哄瓧绗︿覆</pra> + /// <param name="listNotShowError">涓嶉渶瑕佹樉绀洪敊璇殑閿欒绫诲埆(鎺ュ彛杩斿洖鐨勯敊璇被鍒�),濡傛灉鍖呭惈锛屽垯浼氳繑鍥炪�恡rue銆�</param> + /// <param name="setAgain">褰撳彂閫佸け璐ユ椂,鏄惁閲嶅彂,榛樿涓嶉噸鍙�</param> /// </param> - public static async Task<string> GetResponseDataByRequestHttps(string RequestName, bool checkAuthority, object obj, List<string> listNotShowError = null) + public static string GetResponseDataByRequestHttps(string RequestName, bool checkAuthority, object obj, List<string> listNotShowError = null, bool setAgain = false) { - //妫�娴嬫槸鍚﹀凡缁忓畬鎴愯处鍙蜂俊鎭垵濮嬪寲 - if (UserCenterResourse.UserInfo.InitUserInfoSuccess == false) + if (HdlWifiLogic.Current.CanAccessHttp == false && setAgain == false) { - //涓嶇缁撴灉鎬庝箞鏍�,濡傛灉璋冪敤浜嗚繖涓嚱鏁�,闇�瑕侀噸澶磋幏鍙朤oken,鎵�浠ュ繀椤昏繑鍥炲け璐� - await ReInitUserAccoutInfo(listNotShowError); + //褰撳墠鏃犳硶璁块棶缃戠粶(褰撻渶瑕侀噸鏂板彂閫佹椂,璺宠繃杩欎釜鍒ゆ柇) + ShowNotNetMsg(listNotShowError); return null; } //鑾峰彇鎺ュ彛鐨勮繛鎺ユā寮� var connectMode = GetHttpConnectMode(checkAuthority); //鑾峰彇浠庢帴鍙i偅閲屽彇鍒扮殑姣旂壒鏁版嵁 - var byteData = await GettByteResponsePack(RequestName, connectMode, obj); + var byteData = GettByteResponsePack(RequestName, connectMode, obj); if (byteData == null) { - if (listNotShowError != null && listNotShowError.Contains("NotSetAgain") == true) + if (setAgain == false) { - return string.Empty; + //涓嶆寚瀹氶噸鍙� + return null; } - byteData = await ResetByteRequestHttps(RequestName, checkAuthority, obj); + byteData = ResetByteRequestHttps(RequestName, checkAuthority, obj); if (byteData == null) { return null; @@ -159,32 +153,29 @@ /// <param name="RequestName">璁块棶鍦板潃</param> /// <param name="checkAuthority">鏄惁妫�娴嬫潈闄愶紝璇ュ弬鏁颁笉鑳界渷鐣�</param> /// <param name="obj">涓�涓被</param> - /// <param name="listNotShowError"> - /// <pra>涓嶉渶瑕佹樉绀洪敊璇殑閿欒绫诲埆(鎺ュ彛杩斿洖鐨勯敊璇被鍒�),濡傛灉鍖呭惈锛屽垯浼氳繑鍥炵┖瀛楃涓�</pra> - /// <pra>濡傛灉鎸囧畾鏈塏otSetAgain,鍒欎笉浜屾鍙戦��(姣斿鏂綉),鐒跺悗杩斿洖null</pra> - /// </param> - public static async Task<byte[]> GetByteResponseDataByRequestHttps(string RequestName, bool checkAuthority, object obj, List<string> listNotShowError = null) + /// <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) { - //妫�娴嬫槸鍚﹀凡缁忓畬鎴愯处鍙蜂俊鎭垵濮嬪寲 - if (UserCenterResourse.UserInfo.InitUserInfoSuccess == false) + if (HdlWifiLogic.Current.CanAccessHttp == false && setAgain == false) { - //涓嶇缁撴灉鎬庝箞鏍�,濡傛灉璋冪敤浜嗚繖涓嚱鏁�,闇�瑕侀噸澶磋幏鍙朤oken,鎵�浠ュ繀椤昏繑鍥炲け璐� - await ReInitUserAccoutInfo(listNotShowError); + //褰撳墠鏃犳硶璁块棶缃戠粶(褰撻渶瑕侀噸鏂板彂閫佹椂,璺宠繃杩欎釜鍒ゆ柇) + ShowNotNetMsg(listNotShowError); return null; } //鑾峰彇鎺ュ彛鐨勮繛鎺ユā寮� var connectMode = GetHttpConnectMode(checkAuthority); //鑾峰彇浠庢帴鍙i偅閲屽彇鍒扮殑姣旂壒鏁版嵁 - var revertObj = await GettByteResponsePack(RequestName, connectMode, obj); + var revertObj = GettByteResponsePack(RequestName, connectMode, obj); if (revertObj == null) { - if (listNotShowError != null && listNotShowError.Contains("NotSetAgain") == true) + if (setAgain == false) { + //涓嶆寚瀹氶噸鍙� return null; } - //閲嶆柊鍙戦�� - revertObj = await ResetByteRequestHttps(RequestName, checkAuthority, obj); + revertObj = ResetByteRequestHttps(RequestName, checkAuthority, obj); if (revertObj == null) { return null; @@ -216,7 +207,7 @@ /// <param name="checkAuthority">鏄惁妫�娴嬫潈闄愶紝璇ュ弬鏁颁笉鑳界渷鐣�</param> /// <param name="obj">涓�涓被</param> /// <returns></returns> - private static async Task<byte[]> ResetByteRequestHttps(string RequestName, bool checkAuthority, object obj) + private static byte[] ResetByteRequestHttps(string RequestName, bool checkAuthority, object obj) { //鑾峰彇鎺ュ彛鐨勮繛鎺ユā寮� var connectMode = GetHttpConnectMode(checkAuthority); @@ -225,9 +216,9 @@ int count = 0; while (true) { - await Task.Delay(1000); + System.Threading.Thread.Sleep(1000); //璋冪敤鎺ュ彛 - responsePack = await GettByteResponsePack(RequestName, connectMode, obj); + responsePack = GettByteResponsePack(RequestName, connectMode, obj); if (responsePack != null) { break; @@ -235,13 +226,8 @@ count++; if (count == 3) { - Application.RunOnMainThread(() => - { - //缃戠粶涓嶇ǔ瀹�,璇风◢鍚庡啀璇� - string msg = Language.StringByID(R.MyInternationalizationString.uNetIsUnStabilityAndDoAgain); - var control = new ShowMsgControl(ShowMsgType.Tip, msg); - control.Show(); - }); + //鏄剧ず娌℃湁缃戠粶鐨凪sg + ShowNotNetMsg(null); break; } } @@ -255,7 +241,7 @@ /// <param name="RequestName">璁块棶鍦板潃</param> /// <param name="connectMode">鎺ュ彛鐨勮繛鎺ユā寮�</param> /// <param name="obj">涓�涓被</param> - private static async Task<byte[]> GettByteResponsePack(string RequestName, HttpConnectMode connectMode, object obj) + private static byte[] GettByteResponsePack(string RequestName, HttpConnectMode connectMode, object obj) { try { @@ -266,12 +252,12 @@ if (connectMode == HttpConnectMode.Normal) { //鏅�氳闂� - result = await CommonPage.Instance.RequestHttpsZigbeeBytesResultAsync(RequestName, Encoding.UTF8.GetBytes(requestJson)); + result = CommonPage.Instance.RequestHttpsZigbeeBytesResultAsync(RequestName, Encoding.UTF8.GetBytes(requestJson)); } else if (connectMode == HttpConnectMode.Admin) { //浠ョ鐞嗗憳鐨勮韩浠借闂紝鑷韩鏄垚鍛� - result = await CommonPage.Instance.RequestZigbeeHttpsByAdmin(RequestName, Encoding.UTF8.GetBytes(requestJson)); + result = CommonPage.Instance.RequestZigbeeHttpsByAdmin(RequestName, Encoding.UTF8.GetBytes(requestJson)); } return result; } @@ -299,13 +285,13 @@ } if (revertObj == null) { - Application.RunOnMainThread(() => + HdlThreadLogic.Current.RunMain(() => { //缃戠粶涓嶇ǔ瀹�,璇风◢鍚庡啀璇� string msg = Language.StringByID(R.MyInternationalizationString.uNetIsUnStabilityAndDoAgain); var control = new ShowMsgControl(ShowMsgType.Tip, msg); control.Show(); - }); + }, ShowErrorMode.NO); return false; } @@ -316,7 +302,7 @@ //涓嶆樉绀洪敊璇�,鐒跺悗杩斿洖true return true; } - Application.RunOnMainThread(() => + HdlThreadLogic.Current.RunMain(() => { if (HdlCheckLogic.Current.IsAccountLoginOut() == true) { @@ -332,10 +318,10 @@ //鏃犳晥鐧诲綍Token if (revertObj.StateCode == "NoLogin") { - UserCenterLogic.ReLoginAgain(Config.Instance.Account, false); + ReLoginAgain(Config.Instance.Account, false); } } - }); + }, ShowErrorMode.NO); return false; } @@ -358,6 +344,25 @@ return HttpConnectMode.Admin; } return HttpConnectMode.Normal; + } + + /// <summary> + /// 鏄剧ず娌℃湁缃戠粶鐨凪sg + /// </summary> + private static void ShowNotNetMsg(List<string> listNotShowError) + { + if (listNotShowError != null && listNotShowError.Contains("NotCheck") == true) + { + //涓嶆娴� + return; + } + HdlThreadLogic.Current.RunMain(() => + { + // 褰撳墠鏃犵綉缁滆繛鎺�,璇风‘璁ょ綉缁� + string msg = Language.StringByID(R.MyInternationalizationString.uNowIsDonotNetworkAndCheckNetwork); + var control = new ShowMsgControl(ShowMsgType.Tip, msg); + control.Show(); + }, ShowErrorMode.NO); } #endregion @@ -529,6 +534,12 @@ HdlGatewayLogic.Current.SynchronizeDbGateway(); //浠庢湰鍦伴噸鏂板姞杞藉叏閮ㄧ殑鎴块棿 HdlRoomLogic.Current.RefreshAllRoomByLocation(); + //鏂紑杩滅▼Mqtt杩炴帴,閲嶆柊杩炴帴 + HdlThreadLogic.Current.RunThread(async () => + { + HdlGatewayLogic.Current.ClearAllRealGateway(); + await ZigBee.Device.ZbGateway.DisConnectRemoteMqttClient(); + }, ShowErrorMode.NO); } /// <summary> @@ -551,62 +562,6 @@ Config.Instance.Home.Longitude = Longitude; Config.Instance.Home.Latitude = Latitude; Config.Instance.Home.Save(false); - } - - #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) - { - return; - } - - //鐒跺悗鑾峰彇鍏ㄩ儴鐨勬枃浠� - List<string> listFile = Global.FileListByHomeId(); - foreach (string file in listFile) - { - if (all == false && IsNotDeleteFile(file) == true) - { - //杩欐槸涓嶈兘鍒犻櫎鐨勬枃浠� - continue; - } - //鍒犻櫎鏂囦欢 - 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; } #endregion @@ -648,12 +603,12 @@ //娓呴櫎鍗囩骇鍒楄〃 FirmwareUpdateResourse.dicUpdateList.Clear(); - HdlThreadLogic.Current.RunThread(async () => + HdlThreadLogic.Current.RunThread(() => { //妫�娴婣PP鏄惁鑳藉閫�鍑� while (UserCenterResourse.AccountOption.AppCanSignout == false) { - await Task.Delay(500); + System.Threading.Thread.Sleep(500); } //璁惧畾涓�涓椂闂� Config.Instance.LoginDateTime = new DateTime(1970, 1, 1); @@ -685,7 +640,7 @@ if (noticeDb == true) { //閫氱煡浜戠锛屽凡缁忛��鍑虹櫥闄� - var result = await CommonPage.Instance.RequestHttpsZigbeeBytesResultAsync("ZigbeeUsers/SignOut", null, "GET"); + var result = CommonPage.Instance.RequestHttpsZigbeeBytesResultAsync("ZigbeeUsers/SignOut", null, "GET"); } }); } @@ -746,29 +701,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> /// 鎷兼帴缃戝叧鍥炲瓒呮椂鐨勪俊鎭� @@ -835,10 +767,13 @@ /// </summary> /// <param name="ShowPrompted">鏂拌拷鍔犲彉閲忥細鏄惁鏄剧ず鎻愮ず鑷姩澶囦唤鐨勭晫闈�</param> /// <returns></returns> - public async static Task<bool> InitUserCenterMenmoryAndThread(bool ShowPrompted = true) + public static bool InitUserCenterMenmoryAndThread(bool ShowPrompted = true) { //璋冪敤杩欎釜鏂规硶,閮介渶瑕侀噸鏂板埛鏂颁富椤� - UserView.UserPage.Instance.RefreshForm = true; + UserView.UserPage.Instance.RefreshAllForm = true; + + //娣诲姞缃戠粶鐘舵�佺洃鍚� + HdlWifiLogic.Current.StartListenNetWork(); //濡傛灉鏄櫄鎷熶綇瀹� if (Config.Instance.Home.IsVirtually == true) @@ -857,12 +792,6 @@ 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); - //娓呯┖鎵�鏈夋垚鍛樼紦瀛� ClearAllMemberMemory(); @@ -870,27 +799,23 @@ 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(); //鍒濆鍖栫櫥闄嗚处鍙风殑淇℃伅 - var hadNet = await InitUserAccoutInfo(true); + var hadNet = InitUserAccoutInfo(true); //濡傛灉鏈夌綉缁滅殑璇� if (hadNet == 1) { //閲嶆柊鍙戦�佸懡浠ゅ幓缁戝畾鏂綉鎯呭喌涓嬪浠界殑缃戝叧 HdlGatewayLogic.Current.ResetComandToBindBackupGateway(); //璇诲彇闅愬尶閰嶇疆 - await HdlBackupLogic.Current.LoadHideOption(); + HdlBackupLogic.Current.LoadHideOption(); } - - //鍒濆鍖栫紦瀛樻垚鍛樼殑淇℃伅 - InitLocalMemberListInfo(); - //棰勫垱寤轰釜浜轰腑蹇冨叏閮ㄧ殑鏂囦欢澶� - CreatAllUserCenterDirectory(); + HdlFileLogic.Current.CreatAllUserCenterDirectory(); //鍏抽棴鎵�鏈夋帴鏀� HdlGatewayReceiveLogic.Current.RemoveAllEvent(); @@ -907,7 +832,7 @@ int result = -1; if (hadNet == 1) { - result = await HdlAutoBackupLogic.SynchronizeDbAutoBackupData(); + result = HdlAutoBackupLogic.SynchronizeDbAutoBackupData(); } //鍒濆鍖栨湰鍦扮殑缃戝叧淇℃伅 @@ -923,6 +848,13 @@ //鍚屾浜戠鐨勭綉鍏砳d锛屽鏋滄湰鍦版嫢鏈変簯绔笉瀛樺湪鐨刬d锛屽垯琛ㄧず搴旇琚崲缁戜簡锛岀洿鎺ュ垹闄� HdlGatewayLogic.Current.SynchronizeDbGateway(); } + + //鏂紑杩滅▼Mqtt杩炴帴,閲嶆柊杩炴帴 + HdlThreadLogic.Current.RunThread(async () => + { + HdlGatewayLogic.Current.ClearAllRealGateway(); + await ZigBee.Device.ZbGateway.DisConnectRemoteMqttClient(); + }, ShowErrorMode.NO); //鍒锋柊APP鍓嶄竴娆¢�夋嫨鐨勭綉鍏矷D(鍙互鍙嶅璋冪敤,闇�瑕佸湪缃戝叧鍒濆鍖栧畬浜嗕箣鍚庢墠鑳借皟鐢�) HdlGatewayLogic.Current.RefreshAppOldSelectGatewayId(); @@ -951,7 +883,7 @@ //娓呯┖鎵�鏈夋垚鍛樼紦瀛� ClearAllMemberMemory(); //棰勫垱寤轰釜浜轰腑蹇冨叏閮ㄧ殑鏂囦欢澶� - CreatAllUserCenterDirectory(); + HdlFileLogic.Current.CreatAllUserCenterDirectory(); //鍏抽棴鎵�鏈夋帴鏀� HdlGatewayReceiveLogic.Current.RemoveAllEvent(); //鍒濆鍖栨湰鍦扮殑缃戝叧淇℃伅 @@ -996,7 +928,7 @@ /// </summary> /// <param name="reLoad">鏄惁浠庢柊浠庢湰鍦板姞杞�(閲嶆柊鍒濆鍖栫櫥闄嗚处鍙风殑淇℃伅,涓嶉渶瑕侀噸鏂板姞杞�)</param> /// <returns></returns> - private async static Task<int> InitUserAccoutInfo(bool reLoad) + private static int InitUserAccoutInfo(bool reLoad) { //鍒濆鍖栦釜浜轰俊鎭殑鏍囪瘑 UserCenterResourse.UserInfo.InitUserInfoSuccess = false; @@ -1006,13 +938,18 @@ UserCenterResourse.UserInfo = GetUserInformationFromLocation(); UserCenterResourse.UserInfo.UserIconFile = System.IO.Path.Combine(UserCenterResourse.AccountOption.UserPictruePath, "Admin.png"); } + if (HdlWifiLogic.Current.CanAccessHttp == false) + { + //鏃犳硶杩炴帴澶栫綉 + return -1; + } //鑾峰彇鐧诲綍璐﹀彿鐨勪俊鎭� var pra = new AccountInfoPra(); //搴忓垪鍖栧璞� var requestJson = JsonConvert.SerializeObject(pra); //璁块棶鎺ュ彛 - byte[] byteData = await 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; @@ -1051,29 +988,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) @@ -1096,9 +1031,11 @@ //瀵嗙爜楠岃瘉 UserCenterResourse.AccountOption.PswAuthentication = UserCenterResourse.UserInfo.StringPwd == null ? string.Empty : UserCenterResourse.UserInfo.StringPwd; UserCenterResourse.UserInfo.StringPwd = null; + //淇濆瓨缂撳瓨 + UserCenterResourse.AccountOption.Save(); //鍒濆鍖栫鐞嗗憳鎺у埗涓讳汉鐨勮繛鎺ュ湴鍧�(鍥犱负杩欎釜杩炴帴Token鏄笉浼氭敼鍙樼殑,鎵�浠ュ彧闇�瑕佸垵濮嬪寲涓�娆�) - var flage = await InitAdminConnectMainInfo(); + var flage = InitAdminConnectMainInfo(); //鍒濆鍖栦釜浜轰俊鎭殑鏍囪瘑 UserCenterResourse.UserInfo.InitUserInfoSuccess = flage == 1; @@ -1111,8 +1048,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(); @@ -1125,26 +1061,10 @@ /// 閲嶆柊鍒濆鍖栫櫥闄嗚处鍙风殑淇℃伅(鏃ㄥ湪瀵瑰簲閭d竴鐬棿,缃戠粶涓嶅ソ,瀵艰嚧璇垽鐨勬儏鍐�) /// </summary> /// <returns></returns> - private async static Task<bool> ReInitUserAccoutInfo(List<string> listNotShowError) + public static bool ReInitUserAccoutInfo() { //閲嶆柊鍒濆鍖栬处鍙蜂俊鎭� - var result = await InitUserAccoutInfo(false); - //杩炴帴涓嶄簡澶栫綉鐨勬椂鍊� - if (result == -1) - { - 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(); - }); - } + var result = InitUserAccoutInfo(false); if (result == 1) { //鍚屾浜戠鐨勭綉鍏砳d锛屽鏋滄湰鍦版嫢鏈変簯绔笉瀛樺湪鐨刬d锛屽垯琛ㄧず搴旇琚崲缁戜簡锛岀洿鎺ュ垹闄� @@ -1162,9 +1082,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"); @@ -1188,7 +1107,7 @@ /// 鍒濆鍖栫鐞嗗憳鏉冮檺杩滅▼杩炴帴涓讳汉鐨勪俊鎭� -1:鏃犵綉 1:姝e父 2:鍏朵粬閿欒 /// </summary> /// <returns></returns> - private static async Task<int> InitAdminConnectMainInfo() + private static int InitAdminConnectMainInfo() { if (UserCenterResourse.UserInfo.AuthorityNo != 2 && UserCenterResourse.UserInfo.AuthorityNo != 3) { @@ -1206,7 +1125,7 @@ //搴忓垪鍖栧璞� var requestJson = JsonConvert.SerializeObject(pra); //璁块棶鎺ュ彛 - byte[] byteData = await CommonPage.Instance.RequestHttpsZigbeeBytesResultAsync("App/GetSharedHomeApiControl", Encoding.UTF8.GetBytes(requestJson)); + byte[] byteData = CommonPage.Instance.RequestHttpsZigbeeBytesResultAsync("App/GetSharedHomeApiControl", Encoding.UTF8.GetBytes(requestJson)); if (byteData == null) { return -1; @@ -1224,87 +1143,6 @@ Config.Instance.AdminRequestToken = info.RequestToken; return 1; - } - - #endregion - - #region 鈻� 鍒濆鍖栫紦瀛樻垚鍛樼殑淇℃伅_______________ - - /// <summary> - /// 鍒濆鍖栫紦瀛樻垚鍛樼殑淇℃伅 - /// </summary> - private static void InitLocalMemberListInfo() - { - //鍏堟竻绌� - UserCenterResourse.ListMemberInfo.Clear(); - string fileName = CombinePath(DirNameResourse.LocalMemoryDirectory, DirNameResourse.MemberListInfoFile); - if (System.IO.File.Exists(fileName) == false) - { - return; - } - var varByte = Shared.IO.FileUtils.ReadFile(fileName); - UserCenterResourse.ListMemberInfo = JsonConvert.DeserializeObject<List<MemberInfoRes>>(System.Text.Encoding.UTF8.GetString(varByte)); - } - - /// <summary> - /// 淇濆瓨缂撳瓨鎴愬憳鐨勪俊鎭� - /// </summary> - public static void SaveLocalMemberListInfo() - { - var data = Newtonsoft.Json.JsonConvert.SerializeObject(UserCenterResourse.ListMemberInfo); - var byteData = System.Text.Encoding.UTF8.GetBytes(data); - - string fullName = UserCenterLogic.CombinePath(DirNameResourse.LocalMemoryDirectory, DirNameResourse.MemberListInfoFile); - //鍐欏叆鍐呭 - Shared.IO.FileUtils.WriteFileByBytes(fullName, byteData); - } - - #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 @@ -1335,7 +1173,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) { //涓嶉渶瑕佹樉绀� @@ -1478,89 +1316,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