From 48ba446936b51fffafa7c3600c0dadc6ac0e8c20 Mon Sep 17 00:00:00 2001 From: 陈嘉乐 <cjl@hdlchina.com.cn> Date: 星期五, 10 七月 2020 10:52:13 +0800 Subject: [PATCH] 2020-07-10-01 --- ZigbeeApp/Shared/Phone/UserView/HomePage.cs | 255 +++++++++++++++++++++----------------------------- 1 files changed, 107 insertions(+), 148 deletions(-) diff --git a/ZigbeeApp/Shared/Phone/UserView/HomePage.cs b/ZigbeeApp/Shared/Phone/UserView/HomePage.cs index 6a34fb4..960d44d 100755 --- a/ZigbeeApp/Shared/Phone/UserView/HomePage.cs +++ b/ZigbeeApp/Shared/Phone/UserView/HomePage.cs @@ -49,84 +49,63 @@ } }; + //鐩存帴鐧诲綍 if (Config.Instance.IsLogin) { - ShowLoginLoadView(); + //鏄剧ず鍚姩椤� + this.ShowLoginLoadView(); CommonPage.Loading.Start(); - Action action = async () => - { - //CommonPage.Loading.Start(Language.StringByID(R.MyInternationalizationString.Logining)); - var loginSuccess = await LoginByPWDResultAsync(Config.Instance.Account, Config.Instance.Password); - if (loginSuccess == 1) - { - new System.Threading.Thread(async () => - { - //鍚姩ZigBee - ZigBee.Common.Application.Init(); - //鐧诲綍鎴愬姛 - var homes = await House.GetHomeLists(); - //鍒锋柊涓汉涓績鐨勫唴瀛樺強绾跨▼ - await UserCenter.UserCenterLogic.InitUserCenterMenmoryAndThread(); - - Room.InitAllRoom(); - - Application.RunOnMainThread(() => - { - CommonPage.Instance.RemoveViewByTag("Login"); - UserPage.Instance.Fresh(); - CommonPage.Loading.Hide(); - }); - }) - { IsBackground = true }.Start(); - } - else - { - //鏈櫥褰曟垚鍔熷脊鍑虹櫥褰曠晫闈� 鍚屾椂闇�瑕佹爣璁颁负鏈櫥褰曠姸鎬� - //Config.Instance.LoginDateTime = new DateTime(1970, 1, 1); - //Config.Instance.Save(); - //var accountLogin = new Device.Account.AccountLogin { }; - //CommonPage.Instance.AddChidren(accountLogin); - //accountLogin.Show(); - //CommonPage.Loading.Hide(); - - //鐧诲綍澶辫触锛屼篃鐩存帴杩涘叆涓婚〉 - new System.Threading.Thread(async () => - { - //鍚姩ZigBee - ZigBee.Common.Application.Init(); - - //鐧诲綍鎴愬姛 - var homes = await House.GetHomeLists(); - - //鍒锋柊涓汉涓績鐨勫唴瀛樺強绾跨▼ - await UserCenter.UserCenterLogic.InitUserCenterMenmoryAndThread(); - - Room.InitAllRoom(); - - Application.RunOnMainThread(() => - { - CommonPage.Instance.RemoveViewByTag("Login"); - UserPage.Instance.Fresh(); - CommonPage.Loading.Hide(); - }); - }) - { IsBackground = true }.Start(); - } - }; - //鐧诲綍杩囩洿鎺ュ悗鍙扮櫥褰� - action(); + UserCenter.HdlThreadLogic.Current.RunThread(async () => + { + //鐧诲綍 + var loginSuccess = await LoginByPWDAsync(Config.Instance.Account, Config.Instance.Password); + //鐧诲綍鎴愬姛,鎴栬�呮病鏈夌綉缁滈兘鍙互鐧诲綍 + if (loginSuccess == 1 || loginSuccess == 2) + { + var homes = await UserCenter.HdlResidenceLogic.Current.GetHomeListsFromDb(); + //鍒锋柊涓汉涓績鐨勫唴瀛樺強绾跨▼ + await UserCenter.UserCenterLogic.InitUserCenterMenmoryAndThread(); + //鍚姩ZigBee + ZigBee.Common.Application.Init(); + + UserCenter.HdlThreadLogic.Current.RunMain(() => + { + CommonPage.Instance.RemoveViewByTag("Login"); + UserPage.Instance.ReFreshControl(); + CommonPage.Loading.Hide(); + }); + } + else + { + //璁惧畾涓�涓椂闂� + Config.Instance.LoginDateTime = new DateTime(1970, 1, 1); + Config.Instance.Save(); + + UserCenter.HdlThreadLogic.Current.RunMain(() => + { + CommonPage.Loading.Hide(); + CommonPage.Instance.RemoveViewByTag("Login"); + //鐧诲綍寮瑰嚭鐧诲綍鐣岄潰 + var accountLogin = new Login.AccountLoginForm { }; + Shared.Common.CommonPage.Instance.AddChidren(accountLogin); + accountLogin.ShowForm(); + }); + } + }); } else { //鏈櫥褰曞脊鍑虹櫥褰曠晫闈� - var accountLogin = new Device.Account.AccountLogin { }; + var accountLogin = new Login.AccountLoginForm { }; Shared.Common.CommonPage.Instance.AddChidren(accountLogin); - accountLogin.Show(); + accountLogin.ShowForm(); } } - + /// <summary> + /// 鏄剧ず鍚姩椤� + /// </summary> public void ShowLoginLoadView() { var loginLoad = new LoginLoading { }; @@ -135,7 +114,7 @@ } /// <summary> - /// Logins the by PWDA sync. + /// 1:鐧诲綍鎴愬姛 0:瀵嗙爜閿欒 -1:鍏朵粬寮傚父 2:鏃犳硶鑱旂綉 /// </summary> /// <returns>The by PWDA sync.</returns> /// <param name="account">Account.</param> @@ -144,88 +123,68 @@ /// <param name="company">Company.</param> public async System.Threading.Tasks.Task<int> LoginByPWDAsync(string account, string password, string source = "", int company = 0) { - var isLoginSuccess = -1; - try - { - var requestObj = new SendDataToServer.LoginObj - { - Account = account, - Password = password, - Source = source, - Company = company - }; - var requestJson = Newtonsoft.Json.JsonConvert.SerializeObject(requestObj); - var revertObj = await CommonPage.Instance.RequestHttpsZigbeeAsync("ZigbeeUsers/Login", System.Text.Encoding.UTF8.GetBytes(requestJson)); - if (revertObj == null) - { - isLoginSuccess = -1; - return isLoginSuccess; - } - var stateCodeStr = revertObj.StateCode.ToUpper(); - //Error 涓嶈兘鐩存帴浠庢湇鍔″櫒鍙栵紝鍙兘鏍规嵁鐘舵�佺爜閫愪竴鍒ゆ柇 - if (stateCodeStr == "SUCCESS") - { - if (revertObj.ResponseData == null) - { - return -1; - } - //鍒濆鍖栫鐞嗗憳鏉冮檺淇℃伅(閲岄潰鏈夌壒娈婂垽鏂簡,鍙互鐩存帴璋冪敤) - await UserCenter.UserCenterLogic.InitAdminConnectMqttInfo(); - - var responseDataObj = Newtonsoft.Json.JsonConvert.DeserializeObject<Shared.Common.ResponseEntity.UserLoginRes>(revertObj.ResponseData.ToString()); - var revertData = responseDataObj; - Config.Instance.Account = revertData.Account; - Config.Instance.Password = password; - Config.Instance.MD5PWD = revertData.MD5PWD; - Config.Instance.Guid = revertData.Guid; - Config.Instance.MqttKey = revertData.MqttKey; - Config.Instance.LoginDateTime = DateTime.Now; - Config.Instance.ConnectZigbeeMqttBrokerPwd = revertData.ConnectZigbeeMqttBrokerPwd; - Config.Instance.ConnectZigbeeMqttClientId = revertData.ConnectZigbeeMqttClientId; - Config.Instance.ZigbeeMqttBrokerLoadSubDomain = revertData.ZigbeeMqttBrokerLoadSubDomain; - if (Config.Instance.AccountList.Find((obj) => obj == revertData.Account) == null) - { - Config.Instance.AccountList.Add(revertData.Account); - } - isLoginSuccess = 1; - var resultRegID = await Shared.Common.CommonPage.Instance.PushRegID(); - System.Console.WriteLine($"鍚庡彴鐧诲綍鎴愬姛--{Config.Instance.LoginDateTime}"); - } - else if (stateCodeStr == "YOUDATANOISLOCALREGION") - { - isLoginSuccess = -1; - //涓嶅湪鏈尯鍩燂紝闇�瑕侀噸瀹氬悜鍖哄煙鍚庡啀娆¤姹傜櫥褰� - if (revertObj.ResponseData == null) - { - return isLoginSuccess; - } - var responseDataObj = Newtonsoft.Json.JsonConvert.DeserializeObject<Shared.Common.ResponseEntity.UserLoginLocalRegionRes>(revertObj.ResponseData.ToString()); - CommonPage.RequestHttpsHost = responseDataObj.RegionServer; - } - else - { - isLoginSuccess = -1; - } + var isLoginSuccess = -1; + var requestObj = new SendDataToServer.LoginObj + { + Account = account, + Password = password, + Source = source, + Company = company + }; + var requestJson = Newtonsoft.Json.JsonConvert.SerializeObject(requestObj); + var revertObj = await CommonPage.Instance.RequestHttpsZigbeeAsync("ZigbeeUsers/Login", System.Text.Encoding.UTF8.GetBytes(requestJson)); + if (revertObj == null) + { + return 2; + } + var stateCodeStr = revertObj.StateCode.ToUpper(); + //Error 涓嶈兘鐩存帴浠庢湇鍔″櫒鍙栵紝鍙兘鏍规嵁鐘舵�佺爜閫愪竴鍒ゆ柇 + if (stateCodeStr == "SUCCESS") + { + var responseDataObj = Newtonsoft.Json.JsonConvert.DeserializeObject<Shared.Common.ResponseEntity.UserLoginRes>(revertObj.ResponseData.ToString()); + var revertData = responseDataObj; + //鏍囪涓婁竴娆℃槸涓嶆槸鍚屼竴涓处鍙风櫥闄� + Config.Instance.TheSameLoginAccount = Config.Instance.Guid == revertData.Guid; + Config.Instance.Account = revertData.Account; + Config.Instance.Password = password; + Config.Instance.MD5PWD = revertData.MD5PWD; + Config.Instance.Guid = revertData.Guid; + Config.Instance.LoginDateTime = DateTime.Now; + Config.Instance.LoginToken = revertData.Token; + //涓婃姤璁惧ID + await CommonPage.Instance.PushRegID(); + isLoginSuccess = 1; + } + else if (stateCodeStr == "YOUDATANOISLOCALREGION") + { + //涓嶅湪鏈尯鍩燂紝闇�瑕侀噸瀹氬悜鍖哄煙鍚庡啀娆¤姹傜櫥褰� + var responseDataObj = Newtonsoft.Json.JsonConvert.DeserializeObject<Shared.Common.ResponseEntity.UserLoginLocalRegionRes>(revertObj.ResponseData.ToString()); + CommonPage.RequestHttpsHost = responseDataObj.RegionServer; + //鍐嶆鐧诲綍 + return await this.LoginByPWDAsync(account, password, source, company); + } + if (stateCodeStr == "NOTVERIFY") + { + //鏈縺娲� + } + else if (stateCodeStr == "NOTENABLE") + { + //璇ョ敤鎴峰睘浜庤皟璇曡处鍙凤紝骞舵湭鍚敤 + } + else if (stateCodeStr == "PARAMETEROREMPTY") + { + //鎻愪緵鐨勫弬鏁伴敊璇� + } + else if (stateCodeStr == "USERNAMEORPWDERROR") + { + //璐﹀彿鎴栧瘑鐮侀敊璇� + isLoginSuccess = 0; + } + else if (stateCodeStr == "ACCOUNTNOEXISTS") + { + //璐﹀彿涓嶅瓨鍦� + isLoginSuccess = 0; } - catch - { - isLoginSuccess = -1; - } - return isLoginSuccess; - } - - /// <summary> - /// 鍚庡彴鐧诲綍 - /// -1 澶辫触 1 鎴愬姛 - /// </summary> - /// <returns>The by PWDA sync.</returns> - /// <param name="account">Account.</param> - /// <param name="password">Password.</param> - /// <param name="source">Source.</param> - /// <param name="company">Company.</param> - public async System.Threading.Tasks.Task<int> LoginByPWDResultAsync(string account, string password, string source = "", int company = 0) - { - var isLoginSuccess = await LoginByPWDAsync(account, password, source, company); return isLoginSuccess; } } -- Gitblit v1.8.0