From 0f2e0147e8990e913d16d99bc1b94fb6bc53abd7 Mon Sep 17 00:00:00 2001
From: 陈嘉乐 <cjl@hdlchina.com.cn>
Date: 星期四, 03 十二月 2020 15:35:42 +0800
Subject: [PATCH] 2020-12-03-1

---
 HDL_ON/UI/UI1-Login/ForgetPasswordPageBLL.cs |  279 +++++++++++++++++++++++++++----------------------------
 1 files changed, 139 insertions(+), 140 deletions(-)

diff --git a/HDL_ON/UI/UI1-Login/ForgetPasswordPageBLL.cs b/HDL_ON/UI/UI1-Login/ForgetPasswordPageBLL.cs
index 509ce4c..25b6fc5 100644
--- a/HDL_ON/UI/UI1-Login/ForgetPasswordPageBLL.cs
+++ b/HDL_ON/UI/UI1-Login/ForgetPasswordPageBLL.cs
@@ -30,12 +30,20 @@
             //閫夋嫨鎵嬫満鏂瑰紡
             btnPhoneLogin.MouseUpEventHandler += (sender, e) =>
             {
+                if (registerType == 0)
+                    return;
+                etAccount.IsNumberKeyboardType = true;
+                etAccount.Text = registerPhone;
+                etPassword.Text = "";
+                etRepeatPassword.Text = "";
                 #region 鍒囨崲閫変腑鎸夐挳
+                btnGetVerificationCode_Phone.Visible = true;
+                btnGetVerificationCode_Mail.Visible = false;
                 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(StringId.PlsEntryCorrectMobilNeumber);
+                etAccount.PlaceholderText = Language.StringByID(StringId.PlsEntryPhoneNumber);
                 #endregion
 
                 #region 鍒囨崲鏂瑰紡鏂瑰紡鍙婂浘鏍�
@@ -51,7 +59,15 @@
             //閫夋嫨閭鏂瑰紡
             btnEmailLogin.MouseUpEventHandler += (sender, e) =>
             {
+                if (registerType == 1)
+                    return;
+                etAccount.IsNumberKeyboardType = false;
+                etAccount.Text = registerEmail;
+                etPassword.Text = "";
+                etRepeatPassword.Text = "";
                 #region 鍒囨崲閫変腑鎸夐挳
+                btnGetVerificationCode_Phone.Visible = false;
+                btnGetVerificationCode_Mail.Visible = true;
                 btnPhoneLogin.TextColor = CSS_Color.PromptingColor1;
                 btnPhoneLogin.TextSize = CSS_FontSize.TextFontSize;
                 btnEmailLogin.TextColor = CSS_Color.MainColor;
@@ -78,17 +94,30 @@
         {
             etAccount.TextChangeEventHandler += (sender, e) =>
             {
-                Regex reg = new Regex(@"^[1]+\d{10}");
-                var mFalg = reg.Match(etAccount.Text.Trim());
-                if (!mFalg.Success || (btnGlobalRoaming.Text == "+86" && etAccount.Text.Trim().Length != 11))
+                //Regex reg = new Regex(@"^[1]+\d{10}");
+                //var mFalg = reg.Match(etAccount.Text.Trim());
+                if (registerType == 0)//鎵嬫満鑾峰彇楠岃瘉鐮佹寜閽敓鏁堟潯浠�
                 {
-                    btnGetVerificationCode.IsSelected = false;
-                }
-                else
-                {
-                    if (btnGetVerificationCode.Text == Language.StringByID(StringId.GetVerificationCode))
+                    if (!Utlis.CheckPhoneNumber(etAccount.Text.Trim(), phoneZoneCode))
                     {
-                        btnGetVerificationCode.IsSelected = true;
+                        btnGetVerificationCode_Phone.IsSelected = false;
+                    }
+                    else
+                    {
+                        if (btnGetVerificationCode_Phone.Text == Language.StringByID(StringId.GetVerificationCode))
+                            btnGetVerificationCode_Phone.IsSelected = true;
+                    }
+                }
+                else//閭鑾峰彇楠岃瘉鐮佹寜閽敓鏁堟潯浠�
+                {
+                    if (!Utlis.CheckEmail(etAccount.Text.Trim()))
+                    {
+                        btnGetVerificationCode_Mail.IsSelected = false;
+                    }
+                    else
+                    {
+                        if (btnGetVerificationCode_Mail.Text == Language.StringByID(StringId.GetVerificationCode))
+                            btnGetVerificationCode_Mail.IsSelected = true;
                     }
                 }
             };
@@ -110,55 +139,52 @@
                 else
                 {
                     //鏍囪鎵嬫満鍙风爜鏃犳晥
-                    btnGetVerificationCode.IsSelected = false;
                     btnAccountViewBottomLine.BackgroundColor = CSS_Color.DividingLineColor;
                     btnAccountViewBottomLine.Height = Application.GetRealHeight(1);
                     //鎵嬫満鏂瑰紡-楠岃瘉鎵嬫満鍙风爜鏄惁姝g‘
                     if (registerType == 0)
                     {
-                        Regex reg = new Regex(@"^[1]+\d{9}");
-                        var mFalg = reg.Match(etAccount.Text.Trim());
-                        if (!mFalg.Success || (btnGlobalRoaming.Text == "+86" && etAccount.Text.Trim().Length != 11))
+                        btnGetVerificationCode_Phone.IsSelected = false;
+                        if (!Utlis.CheckPhoneNumber(etAccount.Text.Trim(), phoneZoneCode))
                         {
                             btnAccountViewBottomLine.BackgroundColor = CSS_Color.AuxiliaryColor2;
                             btnAccountViewBottomLine.Height = Application.GetRealHeight(2);
                             new Tip()
                             {
-                                CloseTime = 3,
+                                CloseTime = 1,
                                 Text = Language.StringByID(StringId.PlsEntryCorrectMobilNeumber),
                                 Direction = AMPopTipDirection.None,
                             }.Show(bodyView);
                         }
                         else
                         {
-                            if (btnGetVerificationCode.Text == Language.StringByID( StringId.GetVerificationCode))
+                            if (btnGetVerificationCode_Phone.Text == Language.StringByID( StringId.GetVerificationCode))
                             {
-                                btnGetVerificationCode.IsSelected = true;
+                                btnGetVerificationCode_Phone.IsSelected = true;
                             }
                             LoadMothed_EnableResetButton();
                         }
                     }
                     else if (registerType == 1)
                     {
+                        btnGetVerificationCode_Mail.IsSelected = false;
                         //閭鏂瑰紡-楠岃瘉閭鏄惁姝g‘
-                        var reg = new Regex("^\\s*([A-Za-z0-9_-]+(\\.\\w+)*@(\\w+\\.)+\\w{2,5})\\s*$");
-                        var mFalg = reg.Match(etAccount.Text.Trim());
-                        if (!mFalg.Success )
+                        if (!Utlis.CheckEmail(etAccount.Text.Trim()))
                         {
                             btnAccountViewBottomLine.BackgroundColor = CSS_Color.AuxiliaryColor2;
                             btnAccountViewBottomLine.Height = Application.GetRealHeight(2);
                             new Tip()
                             {
-                                CloseTime = 3,
+                                CloseTime = 1,
                                 Text = Language.StringByID(StringId.PlsEntryCorrectEmailAddress),
                                 Direction = AMPopTipDirection.None,
                             }.Show(bodyView);
                         }
                         else
                         {
-                            if (btnGetVerificationCode.Text == Language.StringByID(StringId.GetVerificationCode))
+                            if (btnGetVerificationCode_Mail.Text == Language.StringByID(StringId.GetVerificationCode))
                             {
-                                btnGetVerificationCode.IsSelected = true;
+                                btnGetVerificationCode_Mail.IsSelected = true;
                             }
                             LoadMothed_EnableResetButton();
                         }
@@ -183,7 +209,7 @@
                     {
                         new Tip()
                         {
-                            CloseTime = 3,
+                            CloseTime = 1,
                             Direction = AMPopTipDirection.None,
                             Text = Language.StringByID(StringId.PasswordIsUnqualified)
                         }.Show(bodyView);
@@ -210,7 +236,7 @@
                         btnRepeatPasswordViewBottomLine.Height = Application.GetRealHeight(2);
                         new Tip()
                         {
-                            CloseTime = 3,
+                            CloseTime = 1,
                             Direction = AMPopTipDirection.None,
                             Text = Language.StringByID(StringId.IncorrectRepeatPassword)
                         }.Show(bodyView);
@@ -263,76 +289,101 @@
         }
 
         /// <summary>
+        /// 妫�娴嬪綋鍓嶉厤缃煙鍚嶆槸鍚︿竴鑷达紝涓嶄竴鑷村垯鏇挎崲
+        /// </summary>
+        /// <param name="result"></param>
+        void CheckAndSetUserRequestHost(ResponsePackNew result) {
+            try
+            {
+                var mGlobalRegionListObj = Newtonsoft.Json.JsonConvert.DeserializeObject<GlobalRegionListRes>(result.Data.ToString());
+                if (UserInfo.Current.RequestHttpsHost != mGlobalRegionListObj.regionUrl)
+                {
+                    UserInfo.Current.RequestHttpsHost = mGlobalRegionListObj.regionUrl;
+                    UserInfo.Current.GlobalRegion = mGlobalRegionListObj;
+                    UserInfo.Current.SaveUserInfo();
+                }
+            }
+            catch { }
+        }
+
+
+        /// <summary>
         /// 鑾峰彇楠岃瘉鐮�
         /// </summary>
         void LoadEvent_GetVerificationCode()
         {
-            btnGetVerificationCode.MouseUpEventHandler += (sender, e) =>
+            EventHandler<MouseEventArgs> eventHandler = (sender, e) =>
             {
                 var account = etAccount.Text.Trim();
-                if (btnGetVerificationCode.IsSelected)
+                if ((sender as Button).IsSelected)
                 {
-                    //鐭俊鍙戦�侀棿闅�60s
-                    btnGetVerificationCode.IsSelected = false;
-                    etVerificationCode.Foucs = true;
-                    //鑾峰彇楠岃瘉鐮�
-                        int time = 60;
-                    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();
+                    int time = 60;
                     new Thread(() =>
                     {
-                        var result = pm.SendSms(account);
-                        if (result.StateCode.ToUpper() == "SUCCESS")
+                        //1.鍏堟鏌ヨ处鍙锋槸鍚︽敞鍐岃繃
+                        var result = pm.GetRegionByAccount(account);
+                        if (result.Code != StateCode.SUCCESS)
                         {
+                            IMessageCommon.Current.ShowErrorInfoAlter(result.Code);
+                            return;
                         }
                         else
                         {
-                            string tipString = "Server error";
-                            switch (result.StateCode)
-                            {
-                                case "Exist":
-                                    tipString = Language.StringByID(StringId.AccountAlreadyExists);
-                                    break;
-                                case "SendFail":
-                                    tipString = Language.StringByID(StringId.FailedToSendVerificationCode);
-                                    break;
-                                case "AccountNoExists":
-                                    tipString = Language.StringByID(StringId.AccountNotExist);
-                                    break;
-                                case "Self:Net_Error":
-                                    tipString = Language.StringByID(StringId.NetworkAnomaly);
-                                    break;
-                            }
+                            //2.1妫�娴嬪綋鍓嶉厤缃煙鍚嶆槸鍚︿竴鑷达紝涓嶄竴鑷村垯鏇挎崲
+                            CheckAndSetUserRequestHost(result);
 
+                            //2.2宸茬粡娉ㄥ唽杩囷紝鍙戦�侀獙璇佺爜鎵惧洖瀵嗙爜
                             Application.RunOnMainThread(() =>
                             {
-                                new Tip()
-                                {
-                                    CloseTime = 3,
-                                    Direction = AMPopTipDirection.None,
-                                    Text = tipString
-                                }.Show(bodyView);
+                                //鐭俊鍙戦�侀棿闅�60s
+                                (sender as Button).IsSelected = false;
+                                etVerificationCode.Foucs = true;
                             });
+                            //2.1鑾峰彇楠岃瘉鐮佸�掕鏃�
+                            new Thread(() =>
+                            {
+                                while (time > 0)
+                                {
+                                    time--;
+                                    Application.RunOnMainThread(() =>
+                                    {
+                                        (sender as Button).Text = time.ToString() + "s";
+                                    });
+                                    Thread.Sleep(1000);
+                                }
+                                Application.RunOnMainThread(() =>
+                                {
+                                    //鍥炲鑾峰彇鐭俊鎸夐挳浜嬩欢
+                                    (sender as Button).IsSelected = true;
+                                    (sender as Button).TextID = StringId.GetVerificationCode;
+                                });
+                            })
+                            { IsBackground = true }.Start();
+
+                            ResponsePackNew resultObj;
+                            //2.1璇锋眰鑾峰彇楠岃瘉鐮�
+                            if (registerType == 1)//閭
+                            {
+                                resultObj = pm.VerificationCodeSend(VerifyType.FIND_PASSWORD, account);
+                            }
+                            else
+                            {
+                                resultObj = pm.VerificationCodeSend(VerifyType.FIND_PASSWORD, account, true, phoneZoneCode);
+                            }
+
+                            if (resultObj.Code != StateCode.SUCCESS)
+                            {
+                                // 鎻愮ず閿欒
+                                IMessageCommon.Current.ShowErrorInfoAlter(resultObj.Code);
+                            }
                         }
                     })
                     { IsBackground = true }.Start();
                 }
             };
+
+            btnGetVerificationCode_Mail.MouseUpEventHandler = eventHandler;
+            btnGetVerificationCode_Phone.MouseUpEventHandler = eventHandler;
         }
 
         /// <summary>
@@ -370,81 +421,29 @@
 
             return new Thread(() =>
             {
-                var verResult = pm.ValidatorCode(account, verCode, countryIndex);
-                if (verResult.StateCode.ToUpper() == "SUCCESS")
+                // 蹇樿瀵嗙爜
+                var isPhone = registerType == 0;
+                var resultObj = pm.ForgetPassword(account, password, verCode, isPhone);
+                if (resultObj.Code == StateCode.SUCCESS)
                 {
-                    var resetResult = pm.ResetPassword(account, password, repeatPassword, countryIndex);
-                    if (resetResult.StateCode.ToUpper() == "SUCCESS")
+                    Application.RunOnMainThread(() =>
                     {
-                        Application.RunOnMainThread(() =>
-                        {
-                            LoadEvent_AutoLogin();
+                        LoadEvent_AutoLogin();
+                        callbackAction?.Invoke(account);
+                    });
 
-                            callbackAction?.Invoke(account);
-                        });
-                    }
-                    else
-                    {
-                        string erorrInfo = "";
-                        switch (resetResult.StateCode)
-                        {
-                            case "PwdNoConfirm"://涓ゆ杈撳叆鐨勫瘑鐮佷笉涓�鑷�
-                                erorrInfo = Language.StringByID(StringId.IncorrectRepeatPassword);
-                                break;
-                            case "AccountNoExists"://涓ゆ杈撳叆鐨勫瘑鐮佷笉涓�鑷�
-                                erorrInfo = Language.StringByID(StringId.AccountNotExist);
-                                break;
-                            default:
-                                erorrInfo = "Server error";
-                                break;
-                        }
-                        Application.RunOnMainThread(() =>
-                        {
-                            waitPage.Hide();
-                            new Tip()
-                            {
-                                CloseTime = 3,
-                                Direction = AMPopTipDirection.None,
-                                Text = erorrInfo,
-                            }.Show(bodyView);
-                        });
-                    }
                 }
                 else
                 {
-                    string erorrInfo = "";
-                    switch (verResult.StateCode)
-                    {
-                        case "ValidCodeAndPhoneNoEqual"://楠岃瘉鐮侀敊璇�
-                            erorrInfo = Language.StringByID(StringId.VerificationCodeWrong);
-                            Application.RunOnMainThread(() =>
-                            {
-                                btnVerificationCodeViewBottomLine.BackgroundColor = CSS_Color.AuxiliaryColor2;
-                                btnVerificationCodeViewBottomLine.Height = Application.GetRealHeight(2);
-                            });
-                            break;
-                        case "NoRecord":
-                            erorrInfo = Language.StringByID(StringId.PlsGetTheVerificationCode);
-                            Application.RunOnMainThread(() =>
-                            {
-                                btnVerificationCodeViewBottomLine.BackgroundColor = CSS_Color.AuxiliaryColor2;
-                                btnVerificationCodeViewBottomLine.Height = Application.GetRealHeight(2);
-                            });
-                            break;
-                        default:
-                            erorrInfo = "Server error";
-                            break;
-                    }
+                    // 2020-11-13 寰呬慨鏀� 楠岃瘉鐮侀敊璇� 璀﹀憡鎻愮ず
+                    //btnVerificationCodeViewBottomLine.BackgroundColor = CSS_Color.AuxiliaryColor2;
+                    //btnVerificationCodeViewBottomLine.Height = Application.GetRealHeight(2);
                     Application.RunOnMainThread(() =>
                     {
                         waitPage.Hide();
-                        new Tip()
-                        {
-                            CloseTime = 3,
-                            Direction = AMPopTipDirection.None,
-                            Text = erorrInfo,
-                        }.Show(bodyView);
                     });
+                    // 鎻愮ず閿欒
+                    IMessageCommon.Current.ShowErrorInfoAlter(resultObj.Code);
                 }
             });
         }
@@ -478,7 +477,7 @@
                 Width = Application.GetRealWidth(288),
                 Height = Application.GetRealHeight(206),
                 BackgroundColor = CSS_Color.MainBackgroundColor,
-                Radius = (uint)Application.GetRealWidth(12),
+                Radius = (uint)Application.GetRealHeight(12),
                 BorderWidth = 0,
                 BorderColor = 0x00000000,
             };
@@ -527,7 +526,7 @@
                 Y = Application.GetRealHeight(150),
                 Width = Application.GetRealWidth(84),
                 Height = Application.GetRealWidth(84),
-                Radius = (uint)Application.GetRealWidth(42),
+                Radius = (uint)Application.GetRealHeight(42),
                 BorderColor = 0x00000000,
                 BorderWidth = 0,
                 UnSelectedImagePath = "LoginIcon/2.png",

--
Gitblit v1.8.0