From 43b0d5870d528f23ecd6aeceb6cfd4325188b46f Mon Sep 17 00:00:00 2001
From: wxr <464027401@qq.com>
Date: 星期四, 01 七月 2021 15:50:43 +0800
Subject: [PATCH] Revert "1"

---
 HDL_ON/UI/UI1-Login/LoginPageBLL.cs |  904 +++++++++++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 721 insertions(+), 183 deletions(-)

diff --git a/HDL_ON/UI/UI1-Login/LoginPageBLL.cs b/HDL_ON/UI/UI1-Login/LoginPageBLL.cs
index d788099..201b868 100644
--- a/HDL_ON/UI/UI1-Login/LoginPageBLL.cs
+++ b/HDL_ON/UI/UI1-Login/LoginPageBLL.cs
@@ -1,8 +1,11 @@
 锘縰sing System;
+using System.Text.RegularExpressions;
 using System.Threading;
-using HDL_ON.DAL.Server;
+using System.Collections.Generic;
 using HDL_ON.UI.CSS;
 using Shared;
+using HDL_ON.Entity;
+using HDL_ON.DAL.Server;
 
 namespace HDL_ON.UI.UI1Login
 {
@@ -17,11 +20,30 @@
             LoadPage_SwitchLoginType();
             LoadMethod_VisiblePassword();
             LoadPage_SwitchLoginMode();
-            LoadMethod_LoginMethod();
+            LoadEvent_Login();
             LoadPage_SelectionEditText();
             LoadPage_RegisterPage();
             GetVerificationCode();
+            LoadMethod_ForgetPassword();
+        }
 
+        /// <summary>
+        /// 妫�娴嬪綋鍓嶉厤缃煙鍚嶆槸鍚︿竴鑷达紝涓嶄竴鑷村垯鏇挎崲
+        /// </summary>
+        /// <param name="result"></param>
+        void CheckAndSetUserRequestHost(ResponsePackNew result)
+        {
+            try
+            {
+                var mGlobalRegionListObj = Newtonsoft.Json.JsonConvert.DeserializeObject<GlobalRegionListRes>(result.Data.ToString());
+                if (OnAppConfig.Instance.RequestHttpsHost != mGlobalRegionListObj.regionUrl)
+                {
+                    OnAppConfig.Instance.RequestHttpsHost = mGlobalRegionListObj.regionUrl;
+                    OnAppConfig.Instance.GlobalRegion = mGlobalRegionListObj;
+                    OnAppConfig.Instance.SaveConfig();
+                }
+            }
+            catch { }
         }
 
         /// <summary>
@@ -29,57 +51,145 @@
         /// </summary>
         void GetVerificationCode()
         {
-            btnGetVerificationCode.MouseUpEventHandler += (sender, e) =>
+            btnGetVerificationCode.MouseUpEventHandler = (sender, e) =>
             {
-#if DEBUG
-                etAccount.Text = "17576024298";
-#endif
-                string phoneNumber = etAccount.Text.Trim();
-                btnGetVerificationCode.Enable = false;
-                btnGetVerificationCode.TextColor = CSS_Color.PromptingColor1;
-                int time = 60;
-                new Thread(() =>
+                if (btnGetVerificationCode.IsSelected)
                 {
-                    while (time != 0)
+                    string phoneNumber = etAccount.Text.Trim();
+                    if (string.IsNullOrEmpty(phoneNumber))
                     {
-                        time--;
-                        Application.RunOnMainThread(() =>
+                        var tip = new Tip()
                         {
-                            btnGetVerificationCode.Text = time.ToString() + "s";
-                        });
-                        Thread.Sleep(1000);
+                            Text = Language.StringByID(StringId.PlsEntryPhoneNumber),
+                            CloseTime = 1,
+                            Direction = AMPopTipDirection.None
+                        };
+                        tip.Show(bodyView);
+
+                        btnAccountViewBottomLine.BackgroundColor = CSS_Color.AuxiliaryColor2;
+                        btnAccountViewBottomLine.Height = Application.GetRealHeight(2);
+                        return;
                     }
-                })
-                { IsBackground = true }.Start();
-                //妫�鏌ユ墜鏈烘槸鍚﹀凡缁忚娉ㄥ唽
-                var checkPhoneResult = pm.IsExistingAccount(etAccount.Text.Trim());
-                //鎵嬫満宸茬粡琚敞鍐�
-                if (checkPhoneResult.StateCode == HttpRequesResult.SUCCESS.ToString())
-                {
-                    //鑾峰彇楠岃瘉鐮�
-                    pm.GetPhoneVerificationCode(phoneNumber,MainPage.Company);
+                    if (!Utlis.CheckPhoneNumber(phoneNumber, phoneZoneCode))
+                    {
+                        var tip = new Tip()
+                        {
+                            Text = Language.StringByID(StringId.PlsEntryCorrectMobilNeumber),
+                            CloseTime = 1,
+                            Direction = AMPopTipDirection.None
+                        };
+                        tip.Show(bodyView);
+
+                        btnAccountViewBottomLine.BackgroundColor = CSS_Color.AuxiliaryColor2;
+                        btnAccountViewBottomLine.Height = Application.GetRealHeight(2);
+                        return;
+                    }
+                    //鍔犺浇Loading鏁堟灉
+                    var waitPage = new Loading();
+                    bodyView.AddChidren(waitPage);
+                    waitPage.Start(Language.StringByID(StringId.PleaseWait));
+
+                    int time = 60;
+                    new Thread(() =>
+                    {
+                        try
+                        {
+                            //1.鍏堟鏌ヨ处鍙锋槸鍚︽敞鍐岃繃
+                            var result = pm.GetRegionByAccount(account);
+                            if (result.Code != StateCode.SUCCESS)
+                            {
+                                IMessageCommon.Current.ShowErrorInfoAlter(result.Code);
+                                ShowBtnAccountViewBottomLineError();
+                                return;
+                            }
+                            else
+                            {
+                                //妫�娴嬪綋鍓嶉厤缃煙鍚嶆槸鍚︿竴鑷达紝涓嶄竴鑷村垯鏇挎崲
+                                CheckAndSetUserRequestHost(result);
+
+                                //2.1璇锋眰鑾峰彇楠岃瘉鐮�
+                                var resultObj = pm.VerificationCodeSend(VerifyType.VERIFY_LOGIN, account, true, phoneZoneCode);
+                                if (resultObj.Code != StateCode.SUCCESS)
+                                {
+                                    //2.2璇锋眰鑾峰彇楠岃瘉鐮佸け璐�
+                                    Application.RunOnMainThread(() =>
+                                    {
+                                        btnPasswordViewBottomLine.BackgroundColor = CSS_Color.AuxiliaryColor2;
+                                        btnPasswordViewBottomLine.Height = Application.GetRealHeight(2);
+                                    });
+                                    // 鎻愮ず閿欒
+                                    IMessageCommon.Current.ShowErrorInfoAlter(resultObj.Code);
+                                }
+                                else
+                                {
+                                    Application.RunOnMainThread(() =>
+                                    {
+                                        btnGetVerificationCode.IsSelected = false;
+                                        btnGetVerificationCode.TextColor = CSS_Color.PromptingColor1;
+                                    });
+
+                                    new Thread(() =>
+                                    {
+                                        while (time > 0)
+                                        {
+                                            time--;
+                                            Application.RunOnMainThread(() =>
+                                            {
+                                                btnGetVerificationCode.Text = time.ToString() + "s";
+                                            });
+                                            Thread.Sleep(1000);
+                                        }
+                                        Application.RunOnMainThread(() =>
+                                        {
+                                            btnGetVerificationCode.IsSelected = true;
+                                            btnGetVerificationCode.TextID = StringId.GetVerificationCode;
+                                        });
+                                    })
+                                    { IsBackground = true }.Start();
+                                }
+                            }
+                        }
+                        catch { }
+                        finally
+                        {
+                            Application.RunOnMainThread(() =>
+                            {
+                                if (waitPage != null)
+                                {
+                                    waitPage.RemoveFromParent();
+                                    waitPage = null;
+                                }
+                            });
+                        }
+                    })
+                    { IsBackground = true }.Start();
+
                 }
             };
         }
 
         /// <summary>
-        /// 鍒囨崲鐧诲綍绫诲瀷
+        /// 
         /// </summary>
-        void LoadPage_SwitchLoginType()
+        /// <param name="type">鏄惁閫夋嫨鎵嬫満鐧诲綍</param>
+        void LoginTypeChange(bool isPhone)
         {
-            //閫夋嫨鎵嬫満鐧诲綍
-            btnPhoneLogin.MouseUpEventHandler += (sender, e) =>
+            if (isPhone)
             {
+                if (loginType == 0)
+                    return;
+                etAccount.Text = registerPhone;
+                etPassword.Text = "";
                 #region 鍒囨崲閫変腑鎸夐挳
                 btnEmailLogin.TextColor = CSS_Color.PromptingColor1;
                 btnEmailLogin.TextSize = CSS_FontSize.TextFontSize;
                 btnPhoneLogin.TextColor = CSS_Color.MainColor;
                 btnPhoneLogin.TextSize = CSS_FontSize.EmphasisFontSize_Secondary;
-                etAccount.PlaceholderText = Language.StringByID(R.InternationalizationString.PlsEntryCorrectMobilNeumber);
+                etAccount.PlaceholderText = Language.StringByID(StringId.PlsEntryPhoneNumber);
                 #endregion
 
                 #region 鍒囨崲鐧诲綍鏂瑰紡鍙婂浘鏍�
-                logintType = 0;
+                loginType = 0;
                 if (btnAccountIcon.Parent != null)
                 {
                     btnAccountIcon.RemoveFromParent();
@@ -88,79 +198,18 @@
                 //鏄剧ず楠岃瘉鐮佺櫥褰曟柟寮忥紝鎵嬫満鐧诲綍鏈夐獙璇佺爜鐧诲綍
                 btnSwitchLoginMode.Visible = true;
                 #endregion
-            };
 
-            //閫夋嫨閭鐧诲綍
-            btnEmailLogin.MouseUpEventHandler += (sender, e) =>
-            {
-                #region 鍒囨崲閫変腑鎸夐挳
-                btnPhoneLogin.TextColor = CSS_Color.PromptingColor1;
-                btnPhoneLogin.TextSize = CSS_FontSize.TextFontSize;
-                btnEmailLogin.TextColor = CSS_Color.MainColor;
-                btnEmailLogin.TextSize = CSS_FontSize.EmphasisFontSize_Secondary;
-                etAccount.PlaceholderText = Language.StringByID(R.InternationalizationString.PlsEntryEmailAddress);
-                #endregion
-
-                #region 鍒囨崲鐧诲綍绫诲瀷鍙婂浘鏍�
-                logintType = 1;
-                if (btnGlobalRoaming.Parent != null)
+                #region
+                if (logintMode == 1)
                 {
-                    btnGlobalRoaming.RemoveFromParent();
-                }
-                accountView.AddChidren(btnAccountIcon);
-                #endregion
-
-                //閭鍙湁瀵嗙爜鐧诲綍妯″紡
-                logintMode = 0;
-                //瀵嗙爜鐧诲綍
-                btnSwitchLoginMode.TextID = R.InternationalizationString.VerificationCodeLogin;
-                passwordView.AddChidren(btnVisiblePassword);
-                passwordView.AddChidren(btnDividingLineVertical_PasswordView2);
-                passwordView.AddChidren(btnForgetPassword);
-                btnPasswordIcon.IsSelected = false;
-
-                if (btnGetVerificationCode.Parent != null)
-                {
-                    btnGetVerificationCode.RemoveFromParent();
-                }
-                //闅愯棌瀵嗙爜
-                etPassword.SecureTextEntry = true;
-                //闅愯棌楠岃瘉鐮佺櫥褰曟柟寮忥紝閭鐧诲綍娌℃湁楠岃瘉鐮佺櫥褰�
-                btnSwitchLoginMode.Visible = false;
-            };
-        }
-
-        /// <summary>
-        /// 鍒囨崲鐧诲綍鏂瑰紡
-        /// 楠岃瘉鐮�/瀵嗙爜
-        /// </summary>
-        void LoadPage_SwitchLoginMode()
-        {
-            btnSwitchLoginMode.MouseUpEventHandler += (sender, e) =>
-            {
-                logintMode = logintMode == 0 ? 1 : 0;
-                //娓呴櫎瀵嗙爜妗嗘枃鏈暟鎹�
-                etPassword.Text = "";
-                //瀵嗙爜鐧诲綍
-                if (logintMode == 0)
-                {
-                    btnSwitchLoginMode.TextID = R.InternationalizationString.VerificationCodeLogin;
-                    passwordView.AddChidren(btnVisiblePassword);
-                    passwordView.AddChidren(btnDividingLineVertical_PasswordView2);
-                    passwordView.AddChidren(btnForgetPassword);
-                    btnPasswordIcon.IsSelected = false;
-                    if (btnGetVerificationCode.Parent != null)
+                    if (Regex.IsMatch(account, @"^[1]+\d{10}") && (account.Length == 11) && btnGetVerificationCode.Text == Language.StringByID(StringId.GetVerificationCode))
                     {
-                        btnGetVerificationCode.RemoveFromParent();
+                        btnGetVerificationCode.IsSelected = true;
                     }
-                    //闅愯棌瀵嗙爜
-                    etPassword.SecureTextEntry = true;
-                }
-                //楠岃瘉鐮佺櫥褰�
-                else if (logintMode == 1)
-                {
-                    btnSwitchLoginMode.TextID = R.InternationalizationString.PasswordLogin;
-                    passwordView.AddChidren(btnGetVerificationCode);
+                    btnSwitchLoginMode.TextID = StringId.PasswordLogin;
+                    //passwordView.AddChidren(btnGetVerificationCode);
+                    btnGetVerificationCode.Visible = true;
+                    etPassword.PlaceholderText = Language.StringByID(StringId.PlsEntryVerificationCode);
                     btnPasswordIcon.IsSelected = true;
                     if (btnVisiblePassword.Parent != null)
                     {
@@ -177,16 +226,143 @@
                     //楠岃瘉鐮佷笉闇�瑕侀殣钘�
                     etPassword.SecureTextEntry = false;
                 }
+                #endregion
+            }
+            else
+            {
+                if (loginType == 1)
+                    return;
+                etAccount.Text = registerEmail;
+                etPassword.Text = "";
+                #region 鍒囨崲閫変腑鎸夐挳
+                btnPhoneLogin.TextColor = CSS_Color.PromptingColor1;
+                btnPhoneLogin.TextSize = CSS_FontSize.TextFontSize;
+                btnEmailLogin.TextColor = CSS_Color.MainColor;
+                btnEmailLogin.TextSize = CSS_FontSize.EmphasisFontSize_Secondary;
+                etAccount.PlaceholderText = Language.StringByID(StringId.PlsEntryEmailAddress);
+                #endregion
+
+                #region 鍒囨崲鐧诲綍绫诲瀷鍙婂浘鏍�
+                loginType = 1;
+                if (btnGlobalRoaming.Parent != null)
+                {
+                    btnGlobalRoaming.RemoveFromParent();
+                }
+                accountView.AddChidren(btnAccountIcon);
+                #endregion
+
+                //閭鍙湁瀵嗙爜鐧诲綍妯″紡
+                //logintMode = 0;
+                //瀵嗙爜鐧诲綍
+                btnSwitchLoginMode.TextID = StringId.VerificationCodeLogin;
+                passwordView.AddChidren(btnVisiblePassword);
+                passwordView.AddChidren(btnDividingLineVertical_PasswordView2);
+                passwordView.AddChidren(btnForgetPassword);
+                btnPasswordIcon.IsSelected = false;
+
+                //if (btnGetVerificationCode.Parent != null)
+                //{
+                //btnGetVerificationCode.RemoveFromParent();
+                btnGetVerificationCode.Visible = false;
+                //}
+                //闅愯棌瀵嗙爜
+                etPassword.SecureTextEntry = true;
+                //闅愯棌楠岃瘉鐮佺櫥褰曟柟寮忥紝閭鐧诲綍娌℃湁楠岃瘉鐮佺櫥褰�
+                btnSwitchLoginMode.Visible = false;
+            }
+        }
+
+        /// <summary>
+        /// 鍒囨崲鐧诲綍绫诲瀷
+        /// </summary>
+        void LoadPage_SwitchLoginType()
+        {
+            //閫夋嫨鎵嬫満鐧诲綍
+            btnPhoneLogin.MouseUpEventHandler = (sender, e) =>
+            {
+                LoginTypeChange(true);
+            };
+
+            //閫夋嫨閭鐧诲綍
+            btnEmailLogin.MouseUpEventHandler += (sender, e) =>
+            {
+                LoginTypeChange(false);
             };
         }
 
         /// <summary>
-        /// 鏂囨湰妗嗛�変腑浜嬩欢
+        /// 鍒囨崲鐧诲綍鏂瑰紡 楠岃瘉鐮�/瀵嗙爜
+        /// </summary>
+        void LoginModeChange()
+        {
+            //娓呴櫎瀵嗙爜妗嗘枃鏈暟鎹�
+            etPassword.Text = "";
+            //瀵嗙爜鐧诲綍
+            if (logintMode == 0)
+            {
+                btnSwitchLoginMode.TextID = StringId.VerificationCodeLogin;
+                passwordView.AddChidren(btnVisiblePassword);
+                passwordView.AddChidren(btnDividingLineVertical_PasswordView2);
+                etPassword.PlaceholderText = Language.StringByID(StringId.PlsEntryPassword);
+                passwordView.AddChidren(btnForgetPassword);
+                btnPasswordIcon.IsSelected = false;
+                //if (btnGetVerificationCode.Parent != null)
+                //{
+                //btnGetVerificationCode.RemoveFromParent();
+                btnGetVerificationCode.Visible = false;
+                //}
+                //闅愯棌瀵嗙爜
+                etPassword.SecureTextEntry = true;
+            }
+            //楠岃瘉鐮佺櫥褰�
+            else if (logintMode == 1)
+            {
+                if (Regex.IsMatch(account, @"^[1]+\d{10}") && (account.Length == 11) && btnGetVerificationCode.Text == Language.StringByID(StringId.GetVerificationCode))
+                {
+                    btnGetVerificationCode.IsSelected = true;
+                }
+                btnSwitchLoginMode.TextID = StringId.PasswordLogin;
+                //passwordView.AddChidren(btnGetVerificationCode);
+                btnGetVerificationCode.Visible = true;
+                etPassword.PlaceholderText = Language.StringByID(StringId.PlsEntryVerificationCode);
+                btnPasswordIcon.IsSelected = true;
+                if (btnVisiblePassword.Parent != null)
+                {
+                    btnVisiblePassword.RemoveFromParent();
+                }
+                if (btnDividingLineVertical_PasswordView2.Parent != null)
+                {
+                    btnDividingLineVertical_PasswordView2.RemoveFromParent();
+                }
+                if (btnForgetPassword.Parent != null)
+                {
+                    btnForgetPassword.RemoveFromParent();
+                }
+                //楠岃瘉鐮佷笉闇�瑕侀殣钘�
+                etPassword.SecureTextEntry = false;
+            }
+        }
+
+        /// <summary>
+        /// 鍒囨崲鐧诲綍鏂瑰紡
+        /// 楠岃瘉鐮�/瀵嗙爜
+        /// </summary>
+        void LoadPage_SwitchLoginMode()
+        {
+            btnSwitchLoginMode.MouseUpEventHandler = (sender, e) =>
+            {
+                logintMode = logintMode == 0 ? 1 : 0;
+                LoginModeChange();
+            };
+        }
+
+        /// <summary>
+        /// 鏂囨湰妗嗙劍鐐瑰彉鍖栦簨浠�
         /// </summary>
         void LoadPage_SelectionEditText()
         {
             //褰撶劍鐐瑰湪璐﹀彿鏂囨湰妗嗘椂锛屾枃鏈搴曠嚎鐐逛寒
-            etAccount.FoucsChanged += (sender, e) =>
+            etAccount.FoucsChanged = (sender, e) =>
             {
                 if (etAccount.Foucs)
                 {
@@ -197,10 +373,59 @@
                 {
                     btnAccountViewBottomLine.BackgroundColor = CSS_Color.DividingLineColor;
                     btnAccountViewBottomLine.Height = Application.GetRealHeight(1);
+                    account = etAccount.Text.Trim();
+                    if (loginType == 0)
+                    {
+                        registerPhone = account;
+                    }
+                    else
+                    {
+                        registerEmail = account;
+                    }
+                    if (account.Length == 0)
+                        return;
+                    if (loginType == 0)
+                    {
+                        if (!Utlis.CheckPhoneNumber(registerPhone, phoneZoneCode))
+                        {
+                            var tip = new Tip()
+                            {
+                                Text = Language.StringByID(StringId.PlsEntryCorrectMobilNeumber),
+                                CloseTime = 1,
+                                Direction = AMPopTipDirection.None
+                            };
+                            tip.Show(bodyView);
+
+                            btnAccountViewBottomLine.BackgroundColor = CSS_Color.AuxiliaryColor2;
+                            btnAccountViewBottomLine.Height = Application.GetRealHeight(2);
+                        }
+                        else
+                        {
+                            if (btnGetVerificationCode.Text == Language.StringByID(StringId.GetVerificationCode))
+                            {
+                                btnGetVerificationCode.IsSelected = true;
+                            }
+                        }
+                    }
+                    else
+                    {
+                        if (!Utlis.CheckEmail(registerEmail))
+                        {
+                            var tip = new Tip()
+                            {
+                                Text = Language.StringByID(StringId.PlsEntryCorrectEmailAddress),
+                                CloseTime = 1,
+                                Direction = AMPopTipDirection.None
+                            };
+                            tip.Show(bodyView);
+                            btnAccountViewBottomLine.BackgroundColor = CSS_Color.AuxiliaryColor2;
+                            btnAccountViewBottomLine.Height = Application.GetRealHeight(2);
+                        }
+                    }
                 }
             };
             //褰撶劍鐐瑰湪瀵嗙爜鏂囨湰妗嗘椂锛屾枃鏈搴曠嚎鐐逛寒
-            etPassword.FoucsChanged += (sender, e) =>
+            etPassword.FoucsChanged = (sender, e) =>
             {
                 if (etPassword.Foucs)
                 {
@@ -222,8 +447,13 @@
             //褰撶劍鐐瑰湪瀵嗙爜鏂囨湰妗嗘椂锛岀偣鍑婚敭鐩樺洖鎾ゆ寜閿紝瑙﹀彂鐨勪簨浠�
             etPassword.EditorEnterAction += (obj) =>
             {
-                etPassword.Foucs = false;
+                Application.HideSoftInput();
             };
+            etPassword.MouseUpEventHandler = (sender, e) =>
+            {
+                etPassword.Foucs = true;
+            };
+
         }
 
         /// <summary>
@@ -248,29 +478,74 @@
         /// <summary>
         /// 鐧诲綍鎸夐挳鐐瑰嚮浜嬩欢
         /// </summary>
-        void LoadMethod_LoginMethod()
+        void LoadEvent_Login()
         {
             btnLogin.MouseUpEventHandler += (sender, e) =>
             {
                 if (btnLogin.IsSelected)
                 {
+                    //鍒ゆ柇鏄惁鍚屾剰浜嗛殣绉佹斂绛�
+                    if (CheckPrivacyPolicy() == false) return;
+
                     account = etAccount.Text.Trim();
                     password = etPassword.Text.Trim();
+
+                    if (loginType == 0)
+                    {
+                        if (!Utlis.CheckPhoneNumber(account, phoneZoneCode))
+                        {
+                            var tip = new Tip()
+                            {
+                                Text = Language.StringByID(StringId.PlsEntryCorrectMobilNeumber),
+                                CloseTime = 1,
+                                Direction = AMPopTipDirection.None
+                            };
+                            tip.Show(bodyView);
+                            return;
+                        }
+                    }
+                    else
+                    {
+                        if (!Utlis.CheckEmail(account))
+                        {
+                            var tip = new Tip()
+                            {
+                                Text = Language.StringByID(StringId.PlsEntryCorrectEmailAddress),
+                                CloseTime = 1,
+                                Direction = AMPopTipDirection.None
+                            };
+                            tip.Show(bodyView);
+                            return;
+                        }
+                    }
+
                     //鍒涘缓鐧诲綍绾跨▼
-                    var loginThread = LoadMethod_LoginThread();
-                    LoadPage_WaitPage(loginThread);
+                    var loginThread = LoadThread_Login();
+                    waitPage = new Loading();
+                    new PublicAssmebly().LoadPage_WaitPage(loginThread, bodyView, waitPage);
                 }
             };
             #region 褰撹处鍙峰瘑鐮侀兘杈撳叆鏃讹紝鎵嶈兘鐐瑰嚮鐧诲綍鎸夐挳
-            etAccount.TextChangeEventHandler += (sender, e) =>
+            etAccount.TextChangeEventHandler = (sender, e) =>
             {
-                if (etAccount.Text.Trim().Length > 0 && etPassword.Text.Trim().Length > 0)
+                account = etAccount.Text.Trim();
+                if (account.Length > 0 && etPassword.Text.Trim().Length > 0)
                 {
                     btnLogin.IsSelected = true;
                 }
                 else
                 {
                     btnLogin.IsSelected = false;
+                }
+                if (Regex.IsMatch(account, @"^[1]+\d{10}"))//&& account.Length == 11)
+                {
+                    btnGetVerificationCode.IsSelected = true;
+                    btnGetVerificationCode.TextColor = CSS_Color.MainBackgroundColor;
+                }
+                else
+                {
+                    btnGetVerificationCode.IsSelected = false;
+                    btnGetVerificationCode.TextColor = CSS_Color.PromptingColor1;
                 }
             };
             etPassword.TextChangeEventHandler += (sender, e) =>
@@ -288,97 +563,281 @@
         }
 
         /// <summary>
-        /// 鍔犺浇绛夊緟鐣岄潰
-        /// </summary>
-        void LoadPage_WaitPage(Thread thread)
-        {
-            waitPage = new Loading();
-            bodyView.AddChidren(waitPage);
-            waitPage.Start(Language.StringByID(R.InternationalizationString.PleaseWait));
-            var showedTime = DateTime.Now;
-            //濡傛灉绛夊緟浜嬩欢杩囬暱锛屽彲浠ュ厑璁哥敤鎴峰彇娑堝綋鍓嶆搷浣�
-            waitPage.MouseUpEventHandler += (sender, e) =>
-            {
-                if (showedTime.AddSeconds(30) > DateTime.Now)
-                {
-                    waitPage.RemoveFromParent();
-                    waitPage = null;
-                    thread.Abort();
-                }
-            };
-            thread.Start();
-        }
-
-        /// <summary>
         /// 鍔犺浇鐧诲綍绾跨▼
         /// </summary>
-        Thread LoadMethod_LoginThread()
+        Thread LoadThread_Login()
         {
             var loginThread = new Thread(() =>
             {
                 try
                 {
-                    var loginResult = pm.LoginByPassword(account,password,MainPage.Company);
-                    Application.RunOnMainThread(() =>
+                    //濡傛灉鏄处鍙峰瘑鐮佺櫥褰曪紝鍏堟鏌ヤ竴娆¤处鍙锋槸鍚︽敞鍐岃繃
+                    if (logintMode == 0)
                     {
-                        waitPage.RemoveFromParent();
-                        waitPage = null;
-                    });
-                    //鐧诲綍鎴愬姛
-                    if (loginResult.StateCode == HttpRequesResult.SUCCESS.ToString())
-                    {
-                        var loginResponseData = Newtonsoft.Json.JsonConvert.DeserializeObject<UserLoginRes>(loginResult.ResponseData.ToString());
-                        //璁板綍鐢ㄦ埛鏁版嵁
-                        MainPage.LoginUser = new UserInfo
+                        //1.鍏堟鏌ヨ处鍙锋槸鍚︽敞鍐岃繃
+                        var result = pm.GetRegionByAccount(account);
+                        if (result.Code != StateCode.SUCCESS)
                         {
-                            ID = loginResponseData.UserId,
-                            MasterID = loginResponseData.MainUserId,
-                            AccountType = loginResponseData.UserType,
-                            AccountString = account,
-                            Password = password,
-                            LastTime = DateTime.Now,
-                            SIP_Account = loginResponseData.AllVisionRegisterDevUserNameGuid,
-                        };
-                        MainPage.LoginUser.SaveUserInfo();
-                        MainPage.Log("鐧诲綍鎴愬姛銆�");
-
-                        /*
-                         * Wait : 鎺ㄩ�佹敞鍐�
-                         */
+                            IMessageCommon.Current.ShowErrorInfoAlter(result.Code);
+                            ShowBtnAccountViewBottomLineError();
+                            return;
+                        }
+                        else
+                        {
+                            //璁剧疆鐢ㄦ埛鎵�娉ㄥ唽鍦板尯鐨勫煙鍚嶏紝鐢ㄦ埛鐩稿叧鎿嶄綔閮界敤杩欎釜鍩熷悕
+                            CheckAndSetUserRequestHost(result);
+                        }
                     }
-                    //鐧诲綍澶辫触
-                    else
+
+                    //鐧诲綍
+                    var loginResult = LoadMethod_Login();
+                    if (!string.IsNullOrEmpty(verAccount))//楠岃瘉鐧诲綍璐﹀彿
                     {
                         Application.RunOnMainThread(() =>
                         {
-                            //鎻愮ず鍘熷洜
-                            var tip = new Tip()
+                            if (verAccount == etPassword.Text.Trim())
                             {
-                                Text = loginResult.ErrorInfo,
-                                CloseTime = 3,
-                                Direction = AMPopTipDirection.None
-                            };
-                            tip.Show(bodyView);
-                            //if (loginResult.StateCode == HttpRequesResult.LoginFailed_AccountErorr.ToString())
-                            {
-                                btnAccountViewBottomLine.BackgroundColor = CSS_Color.AuxiliaryColor2;
-                                btnAccountViewBottomLine.Height = Application.GetRealHeight(2);
-                                //}
-                                //else if (loginResult.StateCode == HttpRequesResult.LoginFailed_PasswordErorr.ToString())
-                                //{
-                                btnPasswordViewBottomLine.BackgroundColor = CSS_Color.AuxiliaryColor2;
-                                btnPasswordViewBottomLine.Height = Application.GetRealHeight(2);
+                                //璺宠浆椤甸潰----
+                                MainPage.GoUserPage(true);
+                                return;
                             }
                         });
+                    }
+                    if (loginResult)
+                    {
+                        //鑾峰彇浣忓畢淇℃伅
+                        var getResidencesResult = LoadMethod_GetResidences();
+                        if (getResidencesResult)
+                        {
+                            /*
+                             * Wait : 鎺ㄩ�佹敞鍐�
+                             */
+
+                            /*
+                             * 鏌ョ湅鏈湴鏄惁瀛樺湪鏁版嵁
+                             * 瀛樺湪鍒欏鍑�
+                             */
+                            //var isExis = FileUtils.IsExisFolder(DB_ResidenceData.residenceData.CurReginID);
+                            //if (isExis)
+                            //{
+                            //    FileUtils.DeleteAllFile();
+                            //    string regionRootPath = FileUtils.CreateRegionBackup(DB_ResidenceData.residenceData.CurReginID);
+                            //    FileUtils.RestoreRegionFiles(regionRootPath);
+                            //    DB_ResidenceData.residenceData.EixtAccount();
+                            //    OnAppConfig.Instance.RefreshUserConfig();
+                            //    SpatialInfo.CurrentSpatial.InitRoomFunction();
+                            //}
+                            Application.RunOnMainThread(() =>
+                            {
+                                //20201223-鐧诲綍鎴愬姛涔嬪悗锛屽皢涓嬭浇鏁版嵁瀹屾垚鏍囪鏍囪涓篺alse锛岄槻姝富椤垫彁鍓嶅姞杞�
+                                Common.ApiUtlis.Ins.DownloadDataComplete = false;
+                                //璺宠浆椤甸潰----
+                                MainPage.GoUserPage(true);
+                            });
+                        }
+                        else
+                        {
+                            //Application.RunOnMainThread(() =>
+                            //{
+                            //    BindingResidencePage page = new BindingResidencePage();
+                            //    MainPage.BaseView.AddChidren(page);
+                            //    page.LoadView();
+                            //});
+
+
+
+                            //2020-11-13 寰呯‘璁�
+                            //鑾峰彇浣忓畢澶辫触锛岄噸鏂版爣璁颁负鏈櫥褰曠姸鎬�
+                            UserInfo.Current.LastTime = DateTime.MinValue;
+                            UserInfo.Current.SaveUserInfo();
+                            //鐧诲綍澶辫触锛岃鍏堟坊鍔犱綇瀹咃紒
+                            //Utlis.ShowAlertOnMainThread(Language.StringByID(StringId.FailedGetHomeList));
+                        }
                     }
                 }
                 catch (Exception ex)
                 {
                     MainPage.Log($"LoginPage : {ex.Message}");
                 }
+                finally
+                {
+                    Application.RunOnMainThread(() =>
+                    {
+                        if (waitPage != null)
+                        {
+                            waitPage.RemoveFromParent();
+                            waitPage = null;
+                        }
+
+                    });
+                }
             })
             { IsBackground = true };
             return loginThread;
+        }
+        /// <summary>
+        /// 璋冪敤鐧诲綍鎺ュ彛鐧诲綍
+        /// </summary>
+        bool LoadMethod_Login()
+        {
+            var result = false;
+            ResponsePackNew loginResult;
+            if (logintMode == 0 || loginType == 1)
+            {
+                //璋冪敤鐧诲綍鎺ュ彛
+                loginResult = pm.LoginByPassword(account, password);
+            }
+            else
+            {
+                //璋冪敤楠岃瘉鐮佺櫥褰曟帴鍙�
+                loginResult = pm.LoginValidCode(account, password);
+            }
+            if (loginResult.Code == StateCode.SUCCESS)
+            {
+                var revertData = Newtonsoft.Json.JsonConvert.DeserializeObject<UserLoginRes>(loginResult.Data.ToString());
+                // UserInfo.Current = new UserInfo
+                //{
+                //    userType = revertData.userType,
+                //    accountString = account,
+                //    password = password,
+                //    lastTime = DateTime.Now,
+                //    ID = revertData.userId,
+                //    loginTokenString = revertData.headerPrefix + revertData.accessToken,
+                //    refreshToken = revertData.refreshToken,
+                //    userName = revertData.name
+                //};
+                if (OnAppConfig.Instance.LastLoginUserId != revertData.userId)
+                {
+                    OnAppConfig.Instance.LastLoginUserId = revertData.userId;
+                    OnAppConfig.Instance.SaveConfig();
+                }
+                UserInfo.Current.ClearUserInfo();
+                UserInfo.Current.userType = revertData.userType;
+                UserInfo.Current.AccountString = account;
+                //UserInfo.Current.password = password;
+                UserInfo.Current.LastTime = DateTime.Now;
+                UserInfo.Current.ID = revertData.userId;
+                UserInfo.Current.LoginTokenString = revertData.headerPrefix + revertData.accessToken;
+                UserInfo.Current.RefreshToken = revertData.refreshToken;
+                UserInfo.Current.userName = revertData.name;
+                //UserInfo.Current.userMobileInfo = "";//閲嶇疆鐢ㄦ埛鎵嬫満
+                //UserInfo.Current.userEmailInfo = "";//閲嶇疆鐢ㄦ埛閭
+                //UserInfo.Current.headImagePagePath = "LoginIcon/2.png";//
+                //UserInfo.Current.CurrentRegion.RegionID = "";
+                UserInfo.Current.SaveUserInfo();
+                MainPage.Log("鐧诲綍鎴愬姛銆�");
+                result = true;
+                //鑾峰彇鐢ㄦ埛淇℃伅
+                new Thread(() =>
+                {
+                    pm.GetUserInfo();
+                })
+                { IsBackground = true }.Start();
+            }
+            //鐧诲綍澶辫触
+            else
+            {
+                //璐﹀彿鎴栬�呭瘑鐮侀敊璇�
+                Application.RunOnMainThread(() =>
+                {
+                    waitPage.Hide();
+
+                    if (loginResult.Code == "10008")
+                    {
+                        //鐢ㄦ埛鍚嶆垨瀵嗙爜閿欒
+                        btnPasswordViewBottomLine.BackgroundColor = CSS_Color.AuxiliaryColor2;
+                        btnPasswordViewBottomLine.Height = Application.GetRealHeight(2);
+                    }
+                    else if (loginResult.Code == "10010")
+                    {
+                        //鐢ㄦ埛涓嶅瓨鍦�
+                        btnAccountViewBottomLine.BackgroundColor = CSS_Color.AuxiliaryColor2;
+                        btnAccountViewBottomLine.Height = Application.GetRealHeight(2);
+                    }
+                    else if (loginResult.Code == StateCode.VERIFICATION_CODE_WRONG)
+                    {
+                        btnPasswordViewBottomLine.BackgroundColor = CSS_Color.AuxiliaryColor2;
+                        btnPasswordViewBottomLine.Height = Application.GetRealHeight(2);
+                    }
+                    else if (loginResult.Code == StateCode.AccountLoginLock)
+                    {
+                        ShowAccountLoginLockTip(loginResult);
+                        //var tipStr = Language.StringByID(StringId.AccountLoginLock) + "\r\n" + Language.StringByID(StringId.PleaseTryToForgetPassword);
+                        //Utlis.ShowTip(tipStr);
+                        return;
+                    }
+                    IMessageCommon.Current.ShowErrorInfoAlter(loginResult.Code);
+                });
+
+
+            }
+            return result;
+        }
+
+        /// <summary>
+        /// 瑙f瀽鎻愮ず鐢ㄦ埛瑙i攣鏃堕棿
+        /// 瀵嗙爜閿欒娆℃暟杩囧锛岃处鍙疯閿佸畾锛佽閫氳繃蹇樿瀵嗙爜鎵惧洖瀵嗙爜鎴杮0}鍒嗛挓鍚庨噸璇�.
+        /// </summary>
+        /// <param name="loginResult"></param>
+        void ShowAccountLoginLockTip(ResponsePackNew loginResult)
+        {
+            //瀵嗙爜閿欒娆℃暟杩囧锛岃处鍙疯閿佸畾锛�
+            var tipStr = Language.StringByID(StringId.AccountLoginLock);
+            try
+            {
+                if (loginResult.extra != null)
+                {
+                    //璇烽�氳繃蹇樿瀵嗙爜鎵惧洖瀵嗙爜鎴杮0}鍒嗛挓鍚庨噸璇�.
+                    var revertData = Newtonsoft.Json.JsonConvert.DeserializeObject<AccountLoginLockExtraRes>(loginResult.extra.ToString());
+                    string msg = Language.StringByID(StringId.PleaseTryToForgetPassword);
+                    //var unlockTime = Utlis.UnixToDateTimeWithFormatMS(revertData.unlockTime, "HH:mm");
+                    //msg = msg.Replace("{0}", unlockTime);
+
+                    var unlockDatetime = Utlis.UnixToDateTimeMS(revertData.unlockTime);
+                    var unlockTimeInt = unlockDatetime.Minute - DateTime.Now.Minute;
+                    if (unlockTimeInt <= 0)
+                    {
+                        unlockTimeInt = 1;
+                    }
+                    msg = msg.Replace("{0}", unlockTimeInt.ToString());
+                    tipStr = tipStr + "\r\n" + msg;
+                }
+            }
+            catch { }
+
+            Utlis.ShowTip(tipStr);
+        }
+
+        /// <summary>
+        /// 鑾峰彇浣忓畢鍒楄〃
+        /// </summary>
+        bool LoadMethod_GetResidences()
+        {
+            var result = false;
+            var code = pm.GetHomePager();
+            if (code == StateCode.SUCCESS)
+            {
+                ////2020-11-13 寰呯‘璁わ紝娌℃湁浣忓畢锛屼笉绠楃櫥褰曟垚鍔�
+                //if (UserInfo.Current.regionList != null && UserInfo.Current.regionList.Count > 0)
+                //{
+                //    result = true;
+                //}
+                //2020-12-10 娌℃湁浣忓畢鐧诲綍鎴愬姛锛屼絾鏄笉鑳借繘鍏ヤ富鐣岄潰
+                result = true;
+            }
+            else if( code == "null")
+            {
+                Application.RunOnMainThread(() =>
+                {
+                    MainPage.GoUserPage(false);
+                });
+            }
+            else
+            {
+                // 鎻愮ず閿欒
+                IMessageCommon.Current.ShowErrorInfoAlter(code);
+            }
+            return result;
         }
 
         /// <summary>
@@ -386,23 +845,102 @@
         /// </summary>
         void LoadPage_RegisterPage()
         {
-            btnRegister.MouseUpEventHandler += (sender, e) => {
-                //鍥炶皟浜嬩欢
-                Action<string> callBackAction = (callBackPar_Action) =>
+            btnRegister.MouseUpEventHandler += (sender, e) =>
+            {
+                //2020-12-22 澧炲姞鐐瑰嚮闅愯棌閿洏浜嬩欢
+                Application.HideSoftInput();
+
+                //鍒ゆ柇鏄惁鍚屾剰浜嗛殣绉佹斂绛�
+                if (CheckPrivacyPolicy() == false) return;
+
+                Action<string, string, bool> autoLoginAction = (account, password, isPhone) =>
                 {
                     try
                     {
-                        etAccount.Text = callBackPar_Action;
+                        AutoLoginAction(account, password, isPhone);
                     }
-                    catch (Exception ex) {
+                    catch (Exception ex)
+                    {
                         MainPage.Log($"login callBackAction : {ex.Message}");
                     }
                 };
 
-                var registerPage = new RegisterPage(callBackAction);
+
+                var registerPage = new RegisterPage(autoLoginAction);
                 registerPage.Show();
                 registerPage.ShowDialog();
             };
         }
+
+        /// <summary>
+        /// 蹇樿瀵嗙爜
+        /// </summary>
+        void LoadMethod_ForgetPassword()
+        {
+            btnForgetPassword.MouseUpEventHandler += (sender, e) =>
+            {
+                //2020-12-22 澧炲姞鐐瑰嚮闅愯棌閿洏浜嬩欢
+                Application.HideSoftInput();
+
+                //鍒ゆ柇鏄惁鍚屾剰浜嗛殣绉佹斂绛�
+                if (CheckPrivacyPolicy() == false) return;
+
+                Action<string, string, bool> autoLoginAction = (account, password, isPhone) =>
+                {
+
+                    try
+                    {
+                        AutoLoginAction(account, password, isPhone);
+                    }
+                    catch (Exception ex)
+                    {
+                        MainPage.Log($"login callBackAction : {ex.Message}");
+                    }
+                };
+
+                var forgetPasswordDialog = new ForgetPasswordPage(autoLoginAction);
+                forgetPasswordDialog.Show();
+                forgetPasswordDialog.ShowDialog();
+
+            };
+        }
+
+        /// <summary>
+        /// 鐢ㄦ埛涓嶅瓨鍦�
+        /// </summary>
+        void ShowBtnAccountViewBottomLineError()
+        {
+            Application.RunOnMainThread(() =>
+            {
+                //鐢ㄦ埛涓嶅瓨鍦�
+                btnAccountViewBottomLine.BackgroundColor = CSS_Color.AuxiliaryColor2;
+                btnAccountViewBottomLine.Height = Application.GetRealHeight(2);
+            });
+        }
+
+        /// <summary>
+        /// 鑷姩鐧诲綍鍥炶皟浜嬩欢
+        /// </summary>
+        /// <param name="mAccount"></param>
+        /// <param name="mPassword"></param>
+        /// <param name="isPhone"></param>
+        void AutoLoginAction(string mAccount, string mPassword, bool isPhone)
+        {
+            //鍒囨崲鍥炴墜鏈烘垨鑰呴偖绠辩櫥褰�
+            LoginTypeChange(isPhone);
+            //鍒囨崲鍥炲瘑鐮佺櫥褰�1
+            logintMode = 0;
+            //鍒囨崲鍥炲瘑鐮佺櫥褰�2
+            LoginModeChange();
+            //璁剧疆璐︽埛鍚嶅拰瀵嗙爜
+            etAccount.Text = account;
+            etPassword.Text = password;
+            this.account = mAccount;
+            this.password = mPassword;
+            //鍒涘缓鐧诲綍绾跨▼
+            var loginThread = LoadThread_Login();
+            waitPage = new Loading();
+            new PublicAssmebly().LoadPage_WaitPage(loginThread, bodyView, waitPage);
+        }
     }
-}
+}
\ No newline at end of file

--
Gitblit v1.8.0