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