From cb7fd6a89ad9fcd9cf575025ab43873f17bf17c8 Mon Sep 17 00:00:00 2001
From: 陈嘉乐 <cjl@hdlchina.com.cn>
Date: 星期四, 31 十二月 2020 16:46:59 +0800
Subject: [PATCH] 2020-12-31-1
---
ZigbeeApp/Shared/Phone/UserView/HomePage.cs | 256 ++++++++++++++++++++++-----------------------------
1 files changed, 110 insertions(+), 146 deletions(-)
diff --git a/ZigbeeApp/Shared/Phone/UserView/HomePage.cs b/ZigbeeApp/Shared/Phone/UserView/HomePage.cs
index 2607704..7072a40 100755
--- a/ZigbeeApp/Shared/Phone/UserView/HomePage.cs
+++ b/ZigbeeApp/Shared/Phone/UserView/HomePage.cs
@@ -49,175 +49,139 @@
}
};
+ //鐩存帴鐧诲綍
if (Config.Instance.IsLogin)
{
- 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 () =>
- {
- //鐧诲綍鎴愬姛
- var homes = await House.GetHomeLists();
- //鍒锋柊涓汉涓績鐨勫唴瀛樺強绾跨▼
- await UserCenter.UserCenterLogic.InitUserCenterMenmoryAndThread();
- //鍚姩ZigBee
- ZigBee.Common.Application.Init();
- UserCenter.HdlRoomLogic.Current.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 () =>
- {
- //鐧诲綍鎴愬姛
- var homes = await House.GetHomeLists();
- //鍒锋柊涓汉涓績鐨勫唴瀛樺強绾跨▼
- await UserCenter.UserCenterLogic.InitUserCenterMenmoryAndThread();
- //鍚姩ZigBee
- ZigBee.Common.Application.Init();
-
- UserCenter.HdlRoomLogic.Current.InitAllRoom();
-
- Application.RunOnMainThread(() =>
- {
- CommonPage.Instance.RemoveViewByTag("Login");
- UserPage.Instance.Fresh();
- CommonPage.Loading.Hide();
- });
- })
- { IsBackground = true }.Start();
- }
- };
- //鐧诲綍杩囩洿鎺ュ悗鍙扮櫥褰�
- action();
+ UserCenter.HdlThreadLogic.Current.RunThread(() =>
+ {
+ //鐧诲綍
+ var loginSuccess = LoginByPWDAsync(Config.Instance.Account, Config.Instance.Password);
+ //鐧诲綍鎴愬姛,鎴栬�呮病鏈夌綉缁滈兘鍙互鐧诲綍
+ if (loginSuccess == 1 || loginSuccess == 2)
+ {
+ var homes = UserCenter.HdlResidenceLogic.Current.GetHomeListsFromDb(true);
+ //鍒锋柊涓汉涓績鐨勫唴瀛樺強绾跨▼
+ bool result = UserCenter.UserCenterLogic.InitUserCenterMenmoryAndThread();
+ //鍚姩ZigBee
+ ZigBee.Common.Application.Init();
+
+ UserCenter.HdlThreadLogic.Current.RunMain(() =>
+ {
+ CommonPage.Instance.RemoveViewByTag("Login");
+ CommonPage.Loading.Hide();
+ if (result == true)
+ {
+ //false:寮�鍚簡璋冭瘯鍔熻兘
+ UserPage.Instance.ReFreshControl();
+ }
+ });
+ }
+ 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 Login.AccountLogin { };
+ var accountLogin = new Login.AccountLoginForm { };
Shared.Common.CommonPage.Instance.AddChidren(accountLogin);
- accountLogin.Show();
+ accountLogin.ShowForm();
}
}
-
- public void ShowLoginLoadView()
- {
- var loginLoad = new LoginLoading { };
- CommonPage.Instance.AddChidren(loginLoad);
- loginLoad.Show();
- }
-
/// <summary>
- /// Logins the by PWDA sync.
+ /// 1:鐧诲綍鎴愬姛 0:瀵嗙爜閿欒 -1:鍏朵粬寮傚父 2:鏃犳硶鑱旂綉
/// </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> LoginByPWDAsync(string account, string password, string source = "", int company = 0)
+ public 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;
- }
-
- 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.LoginDateTime = DateTime.Now;
- Config.Instance.LoginToken = revertData.Token;
- 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
+ };
+ var requestJson = Newtonsoft.Json.JsonConvert.SerializeObject(requestObj);
+ //鐧婚檰鎺ュ彛鐗规畩,闇�瑕佸揩涓�鐐硅闂�,璁剧疆3绉掕秴鏃�
+ var revertObj = CommonPage.Instance.RequestHttpsZigbeeAsync("ZigbeeUsers/Login", System.Text.Encoding.UTF8.GetBytes(requestJson), 3);
+ 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
+ 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 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
+ else if (stateCodeStr == "BERESTRICT")
{
- isLoginSuccess = -1;
+ //姝よ处鍙锋棤鏉冪櫥褰�
+ isLoginSuccess = 0;
}
- 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