From 66a9965c44ecc32a6696abca876ab9d1cd091584 Mon Sep 17 00:00:00 2001 From: gxc <guoxuecheng@guoxuechengdeMacBook-Pro.local> Date: 星期五, 28 二月 2020 15:25:13 +0800 Subject: [PATCH] 2020.2.28 --- ZigbeeApp/Shared/Phone/Device/Account/AccountLoginByCode.cs | 270 ++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 254 insertions(+), 16 deletions(-) diff --git a/ZigbeeApp/Shared/Phone/Device/Account/AccountLoginByCode.cs b/ZigbeeApp/Shared/Phone/Device/Account/AccountLoginByCode.cs old mode 100755 new mode 100644 index 78a13f4..798fe31 --- a/ZigbeeApp/Shared/Phone/Device/Account/AccountLoginByCode.cs +++ b/ZigbeeApp/Shared/Phone/Device/Account/AccountLoginByCode.cs @@ -67,6 +67,10 @@ /// 楠岃瘉鐮� /// </summary> private string code; + /// <summary> + /// wechat + /// </summary> + private Button wechatBtn; private Timer t; private DateTime dateBegin; @@ -87,6 +91,7 @@ /// </summary> public AccountLoginByCode() { + CommonPage.Instance.IsDrawerLockMode = true; Tag = "Login"; BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor; t = new Timer(); @@ -150,7 +155,8 @@ Width = Application.GetRealWidth(300), Gravity = Gravity.CenterHorizontal, TextID = R.MyInternationalizationString.AppName, - TextColor = ZigbeeColor.Current.GXCTextWhiteColor + TextColor = ZigbeeColor.Current.GXCTextWhiteColor, + TextSize = 16 }; midFrameLayout.AddChidren(logoName); @@ -166,6 +172,8 @@ Height = Application.GetRealHeight(58), TextColor = ZigbeeColor.Current.GXCTextRed, TextAlignment = TextAlignment.CenterLeft, + TextSize = CommonFormResouce.TextSize, + IsBold = true }; midFrameLayout.AddChidren(loginErrorBtn); @@ -188,7 +196,7 @@ Y = Application.GetRealHeight(1198), Width = Application.GetRealWidth(250), Height = Application.GetRealHeight(58), - TextID = R.MyInternationalizationString.ForgotPWD, + TextID = R.MyInternationalizationString.ForgotPWD_1, TextSize = CommonFormResouce.loginTextSize, TextColor = Shared.Common.ZigbeeColor.Current.GXCTextGrayColor, TextAlignment = TextAlignment.CenterRight @@ -202,7 +210,8 @@ Height = Application.GetRealHeight(127), Gravity = Gravity.CenterHorizontal, TextID = R.MyInternationalizationString.Login, - TextSize = 15, + TextSize = 16, + IsBold=true, TextColor = ZigbeeColor.Current.GXCTextGrayColor, SelectedTextColor = ZigbeeColor.Current.GXCTextWhiteColor, SelectedBackgroundColor = ZigbeeColor.Current.GXCButtonBlackSelectedColor, @@ -239,6 +248,17 @@ }; midFrameLayout.AddChidren(registerBtn); + wechatBtn = new Button + { + X = Application.GetRealWidth(395), + Y = Application.GetRealHeight(1737), + Width = Application.GetMinRealAverage(115), + Height = Application.GetMinRealAverage(115), + UnSelectedImagePath = "Account/Wechat.png", + Gravity = Gravity.CenterHorizontal + }; + midFrameLayout.AddChidren(wechatBtn); + BindEvent(); } @@ -260,6 +280,8 @@ registerBtn.MouseUpEventHandler += Register; //蹇樿瀵嗙爜 forgotPasswordBtn.MouseUpEventHandler += ForgetPWD_MouseUpEvent; + //wechat + wechatBtn.MouseUpEventHandler += LoginByWechat; } @@ -278,6 +300,10 @@ CommonPage.Loading.Start(); try { + if (CheckAccount(account) == false) + { + return; + } var reqLoginByCode = new SendDataToServer.LoginValidCodeOBJ() { Account = account, @@ -305,14 +331,12 @@ var responseDataObj = Newtonsoft.Json.JsonConvert.DeserializeObject<Shared.Common.ResponseEntity.UserLoginRes>(requestRevetLoginCodeOBJ.ResponseData.ToString()); var revertData = responseDataObj; Config.ReFresh(); + Config.Instance.Password = string.Empty; Config.Instance.Account = revertData.Account; - Config.Instance.MqttKey = revertData.MqttKey; Config.Instance.Guid = revertData.Guid; Config.Instance.MD5PWD = revertData.MD5PWD; Config.Instance.LoginDateTime = DateTime.Now; - Config.Instance.ConnectZigbeeMqttBrokerPwd = revertData.ConnectZigbeeMqttBrokerPwd; - Config.Instance.ConnectZigbeeMqttClientId = revertData.ConnectZigbeeMqttClientId; - Config.Instance.ZigbeeMqttBrokerLoadSubDomain = revertData.ZigbeeMqttBrokerLoadSubDomain; + Config.Instance.LoginToken = revertData.Token; if (Config.Instance.AccountList.Find((obj) => obj == revertData.Account) == null) { Config.Instance.AccountList.Add(revertData.Account); @@ -322,10 +346,11 @@ Config.Instance.Save(); var resultRegID = await CommonPage.Instance.PushRegID(); var homes = await House.GetHomeLists(); + + //鍒锋柊涓汉涓績鐨勫唴瀛樺強绾跨▼ + await UserCenter.UserCenterLogic.InitUserCenterMenmoryAndThread(); //鍚姩ZigBee ZigBee.Common.Application.Init(); - //鍒锋柊涓汉涓績鐨勫唴瀛樺強绾跨▼ - await UserCenter.UserCenterLogic.InitUserCenterMenmoryAndThread(); Shared.Common.Room.InitAllRoom(); Application.RunOnMainThread(() => @@ -360,8 +385,12 @@ else if (stateCodeStr == "VALIDCODEANDPHONENOEQUAL") { CommonPage.Loading.Hide(); - //楠岃瘉鐮侀敊璇� loginErrorBtn.TextID = R.MyInternationalizationString.VALIDCODEANDPHONENOEQUAL; + } + else if (stateCodeStr == "NORECORD") + { + CommonPage.Loading.Hide(); + loginErrorBtn.TextID = R.MyInternationalizationString.NORECORD; } else if (stateCodeStr == "YOUDATANOISLOCALREGION") { @@ -415,8 +444,9 @@ private void SelectPhoneOrEmail_MouseUpEvent(object sender, MouseEventArgs mouseEventArgs) { phoneEmailForm.SelectedPhone.IsSelected = phoneEmailForm.SelectedEmail.IsSelected = false; + phoneEmailForm.SelectedPhone.IsBold = phoneEmailForm.SelectedEmail.IsBold = false; loginBtn.Enable = loginBtn.IsSelected = false; - (sender as Button).IsSelected = true; + (sender as Button).IsSelected = (sender as Button).IsBold = true; if ((sender as Button).Tag.ToString() == "Phone") { AddPhoneOrEmailFL(accountCodeFL, "Phone"); @@ -434,7 +464,8 @@ private void AddPhoneOrEmailFL(FrameLayout accountCodeFrameLayout, string phoneOrEmail) { accountCodeFrameLayout.RemoveAll(); - + account = string.Empty; + loginErrorBtn.Text = string.Empty; if (phoneOrEmail == "Phone") { phoneRow = new PhoneRowForm(); @@ -453,6 +484,179 @@ codeRow.SendCodeBtn.MouseUpEventHandler += SendCode_MouseUpEventAsync; codeRow.VerificationCodeET.TextChangeEventHandler += Code_TextChange; } + + /// <summary> + /// wechat鐧诲綍 + /// </summary> + /// <param name="sender"></param> + /// <param name="mouseEventArgs"></param> + private void LoginByWechat(object sender, MouseEventArgs mouseEventArgs) + { +#if Android + //var alert = new Alert(Language.StringByID(R.MyInternationalizationString.TIP), + // Language.StringByID(R.MyInternationalizationString.LoginByWechat), + // Language.StringByID(R.MyInternationalizationString.Cancel), + // Language.StringByID(R.MyInternationalizationString.Confrim)); + //alert.Show(); + //alert.ResultEventHandler += (send, e) => + //{ + //if (e) + //{ + com.hdl.home.Application.WXLogin(); + com.hdl.home.WXEntryActivity.RespAction = (authStr) => + { + if (authStr == null) + { + + } + else + { + new System.Threading.Thread(async () => + { + var re = await isBindAuthAsync(authStr); + if (re) + { + Application.RunOnMainThread(() => + { + //鐩存帴鐧诲綍 + HomePage.Instance.ShowLoginLoadView(); + }); + var resultRegID = await Shared.Common.CommonPage.Instance.PushRegID(); + var homes = await House.GetHomeLists(); + //鍚姩ZigBee + ZigBee.Common.Application.Init(); + //鍒锋柊涓汉涓績鐨勫唴瀛樺強绾跨▼ + await UserCenter.UserCenterLogic.InitUserCenterMenmoryAndThread(); + Shared.Common.Room.InitAllRoom(); + Application.RunOnMainThread(() => + { + this.RemoveFromParent(); + CommonPage.Instance.RemoveViewByTag("Login"); + UserPage.Instance.Fresh(); + }); + } + else + { + var authRes = Newtonsoft.Json.JsonConvert.DeserializeObject<Common.ResponseEntity.AuthUserRes>(authStr); + Application.RunOnMainThread(() => + { + var registerPage = new AccountRegister(); + Shared.Common.CommonPage.Instance.AddChidren(registerPage); + registerPage.OpenID = authRes.openid; + registerPage.Show(); + }); + } + }) + { IsBackground = true }.Start(); + } + }; + //} + //}; +#endif + +#if iOS + Home.IOS.AppDelegate.WXLogin(); + Home.IOS.AppDelegate.RespAction = (authStr) => + { + if (authStr == null) + { + + } + else + { + new System.Threading.Thread(async () => + { + + var re = await isBindAuthAsync(authStr); + if (re) + { + //鐩存帴鐧诲綍 + //this.RemoveFromParent(); + + //UserPage.Instance.Fresh(); + var resultRegID = await Shared.Common.CommonPage.Instance.PushRegID(); + var homes = await House.GetHomeLists(); + //鍚姩ZigBee + ZigBee.Common.Application.Init(); + //鍒锋柊涓汉涓績鐨勫唴瀛樺強绾跨▼ + await UserCenter.UserCenterLogic.InitUserCenterMenmoryAndThread(); + Shared.Common.Room.InitAllRoom(); + Application.RunOnMainThread(() => + { + this.RemoveFromParent(); + UserPage.Instance.Fresh(); + }); + } + else + { + var authRes = Newtonsoft.Json.JsonConvert.DeserializeObject<Common.ResponseEntity.AuthUserRes>(authStr); + Application.RunOnMainThread(() => + { + var registerPage = new AccountRegister(); + Shared.Common.CommonPage.Instance.AddChidren(registerPage); + registerPage.OpenID = authRes.openid; + registerPage.Show(); + }); + } + }) + { IsBackground = true }.Start(); + } + }; +#endif + } + + /// <summary> + /// qq鐧诲綍 + /// </summary> + /// <param name="sender"></param> + /// <param name="mouseEventArgs"></param> + private void LoginByQQ(object sender, MouseEventArgs mouseEventArgs) + { + + } + + /// <summary> + /// 鏄惁宸茬粦瀹� + /// </summary> + /// <param name="authStr"></param> + /// <returns></returns> + private async System.Threading.Tasks.Task<bool> isBindAuthAsync(string authStr) + { + var authRes = Newtonsoft.Json.JsonConvert.DeserializeObject<Common.ResponseEntity.AuthUserRes>(authStr); + var auth = new SendDataToServer.AuthUser() + { + AccessToken = authRes.access_token, + RefreshToken = authRes.refresh_token, + OpenID = authRes.openid + }; + var requestJson = Newtonsoft.Json.JsonConvert.SerializeObject(auth); + var revertObj = await CommonPage.Instance.RequestHttpsZigbeeAsync("ZigbeeUsers/InsertOrUpdateAuthUser", System.Text.Encoding.UTF8.GetBytes(requestJson)); + if (revertObj == null) + { + return false; + } + var stateCodeStr = revertObj.StateCode.ToUpper(); + if (stateCodeStr == "SUCCESS") + { + var responseDataObj = Newtonsoft.Json.JsonConvert.DeserializeObject<Shared.Common.ResponseEntity.UserLoginRes>(revertObj.ResponseData.ToString()); + var revertData = responseDataObj; + Config.Instance.Account = revertData.Account; + Config.Instance.MD5PWD = revertData.MD5PWD; + Config.Instance.Guid = revertData.Guid; + Config.Instance.LoginDateTime = DateTime.Now; + if (Config.Instance.AccountList.Find((obj) => obj == revertData.Account) == null) + { + Config.Instance.AccountList.Add(revertData.Account); + } + Config.Instance.Save(); + return true; + } + else + { + return false; + } + } + #endregion #region 鈼� 璐﹀彿銆侀獙璇佺爜鐩戝惉______________________ @@ -463,11 +667,12 @@ /// <param name="mouseEventArgs">The ${ParameterType} instance containing the event data.</param> private void Account_TextChange(object sender, string mouseEventArgs) { - loginErrorBtn.Text = ""; + loginErrorBtn.Text = string.Empty; if ((sender as EditText).Text.Trim().Length > 0) { IsRightAccount = true; codeRow.SendCodeBtn.Enable = codeRow.SendCodeBtn.IsSelected = true; + account= (sender as EditText).Text.Trim(); } else { @@ -542,9 +747,9 @@ private void Register(object sender, MouseEventArgs mouseEventArgs) { this.RemoveFromParent(); - var login = new AccountLogin(); - CommonPage.Instance.AddChidren(login); - login.Show(); + var registerPage = new AccountRegister(); + CommonPage.Instance.AddChidren(registerPage); + registerPage.Show(); } #endregion @@ -571,6 +776,11 @@ /// <param name="mouseEventArgs"></param> private async void SendCode_MouseUpEventAsync(object sender, MouseEventArgs mouseEventArgs) { + if (CheckAccount(account) == false) + { + return; + } + (sender as Button).Enable = (sender as Button).IsSelected = false; CommonPage.Loading.Start(); try @@ -639,6 +849,34 @@ CommonPage.Loading.Hide(); } } + + /// <summary> + /// CheckAccount + /// </summary> + /// <param name="accountStr"></param> + /// <returns></returns> + private bool CheckAccount(string accountStr) + { + loginErrorBtn.Text = string.Empty; + if (phoneEmailForm.SelectedEmail.IsSelected) + { + if (AccountLogic.Instance.CheckEmail(accountStr) == false) + { + loginErrorBtn.TextID = R.MyInternationalizationString.TheEmailError; + return false; + } + } + else + { + if (AccountLogic.Instance.CheckPhoneWithZone(accountStr, CommonPage.PhoneZoneStr) == false) + { + loginErrorBtn.TextID = R.MyInternationalizationString.ThePhoneError; + return false; + } + } + return true; + } + #endregion #region 鈼� 楠岃瘉楠岃瘉鐮乢_______________________ -- Gitblit v1.8.0