| | |
| | | }; |
| | | |
| | | //直接登录 |
| | | if (Config.Instance.IsLogin) |
| | | if (Config.Instance.CanAutoLogin) |
| | | { |
| | | //显示启动页 |
| | | CommonPage.Loading.Start(); |
| | | |
| | | UserCenter.HdlThreadLogic.Current.RunThread(() => |
| | | HdlThreadLogic.Current.RunThread(() => |
| | | {
|
| | | //登录
|
| | | var loginSuccess = LoginByPWDAsync(Config.Instance.Account, Config.Instance.Password);
|
| | | var loginSuccess = HdlAccountLogic.Current.AutoLoginByRefreshToken();
|
| | | //登录成功,或者没有网络都可以登录
|
| | | if (loginSuccess == 1 || loginSuccess == 2)
|
| | | if (loginSuccess == AccountStatu.Sucess || loginSuccess == AccountStatu.NotNetWork)
|
| | | {
|
| | | var homes = UserCenter.HdlResidenceLogic.Current.GetHomeListsFromDb(true);
|
| | | //刷新个人中心的内存及线程
|
| | | bool result = UserCenter.UserCenterLogic.InitUserCenterMenmoryAndThread();
|
| | | bool result = HdlUserCenterLogic.Current.InitUserCenterMenmoryAndThread(true);
|
| | | //启动ZigBee
|
| | | ZigBee.Common.Application.Init();
|
| | |
|
| | | UserCenter.HdlThreadLogic.Current.RunMain(() =>
|
| | | HdlThreadLogic.Current.RunMain(() =>
|
| | | {
|
| | | CommonPage.Instance.RemoveViewByTag("Login");
|
| | | CommonPage.Loading.Hide();
|
| | |
| | | Config.Instance.LoginDateTime = new DateTime(1970, 1, 1);
|
| | | Config.Instance.Save();
|
| | |
|
| | | UserCenter.HdlThreadLogic.Current.RunMain(() =>
|
| | | HdlThreadLogic.Current.RunMain(() =>
|
| | | {
|
| | | CommonPage.Loading.Hide();
|
| | | CommonPage.Instance.RemoveViewByTag("Login");
|
| | |
| | | Shared.Common.CommonPage.Instance.AddChidren(accountLogin); |
| | | accountLogin.ShowForm(); |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 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 int LoginByPWDAsync(string account, string password, string source = "", int company = 0) |
| | | { |
| | | 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;
|
| | | } |
| | | else if (stateCodeStr == "BERESTRICT") |
| | | { |
| | | //此账号无权登录 |
| | | isLoginSuccess = 0; |
| | | } |
| | | return isLoginSuccess; |
| | | } |
| | | } |
| | | } |