old mode 100755
new mode 100644
| | |
| | | } |
| | | }; |
| | | |
| | | //直接登录 |
| | | 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();
|
| | | //启动ZigBee
|
| | | ZigBee.Common.Application.Init(); |
| | | //刷新个人中心的内存及线程 |
| | | 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 () => |
| | | { |
| | | //登录成功 |
| | | var homes = await House.GetHomeLists();
|
| | | //启动ZigBee
|
| | | ZigBee.Common.Application.Init(); |
| | | |
| | | //刷新个人中心的内存及线程 |
| | | 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(() => |
| | | {
|
| | | //登录
|
| | | 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 Device.Account.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; |
| | | } |
| | | //初始化管理员权限信息(里面有特殊判断了,可以直接调用) |
| | | await UserCenter.UserCenterLogic.InitAdminConnectMqttInfo(); |
| | | 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; |
| | | |
| | | 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; |
| | | } |
| | | //#if iOS
|
| | | // //初始化全视通 |
| | | // Shared.IOS.HDLFVSDK.Video.Init("",revertData.UserID.ToString()); |
| | | //#endif
|
| | | }
|
| | | 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; |
| | | } |
| | | } |