From 9aa32bd5ed75d54b2141b6c91f163d43216a3643 Mon Sep 17 00:00:00 2001
From: wxr <464027401@qq.com>
Date: 星期五, 06 十二月 2019 13:14:02 +0800
Subject: [PATCH] 20191206

---
 HDL_ON/UI/UI1-Login/BLL/ForgetPasswordPageBLL.cs |  299 ++++++++++++++++++++++++++++++++++-------------------------
 1 files changed, 171 insertions(+), 128 deletions(-)

diff --git a/HDL_ON/UI/UI1-Login/BLL/ForgetPasswordPageBLL.cs b/HDL_ON/UI/UI1-Login/BLL/ForgetPasswordPageBLL.cs
index 50aa29f..4f326f5 100644
--- a/HDL_ON/UI/UI1-Login/BLL/ForgetPasswordPageBLL.cs
+++ b/HDL_ON/UI/UI1-Login/BLL/ForgetPasswordPageBLL.cs
@@ -18,7 +18,8 @@
             LoadEvent_EditTextFcousChange();
             LoadEvent_ChangeTextVisble();
             LoadEvent_GetVerificationCode();
-            LoadEvent_Register();
+            LoadEvent_Reset();
+            LoadEvent_TextChange();
         }
 
         /// <summary>
@@ -34,7 +35,6 @@
                 btnEmailLogin.TextSize = CSS_FontSize.TextFontSize;
                 btnPhoneLogin.TextColor = CSS_Color.MainColor;
                 btnPhoneLogin.TextSize = CSS_FontSize.EmphasisFontSize_Secondary;
-                btnChooseBottomLine.X = btnPhoneLogin.X + Application.GetRealWidth(27);
                 etAccount.PlaceholderText = Language.StringByID(InternationalizationString.PlsEntryCorrectMobilNeumber);
                 #endregion
 
@@ -56,7 +56,6 @@
                 btnPhoneLogin.TextSize = CSS_FontSize.TextFontSize;
                 btnEmailLogin.TextColor = CSS_Color.MainColor;
                 btnEmailLogin.TextSize = CSS_FontSize.EmphasisFontSize_Secondary;
-                btnChooseBottomLine.X = btnEmailLogin.X + Application.GetRealWidth(27);
                 etAccount.PlaceholderText = Language.StringByID(InternationalizationString.PlsEntryEmailAddress);
                 #endregion
 
@@ -69,6 +68,26 @@
                 accountView.AddChidren(btnAccountIcon);
                 #endregion
 
+            };
+        }
+
+        /// <summary>
+        /// 鍔犺浇鏂囨湰鍙樺寲浜嬩欢
+        /// </summary>
+        void LoadEvent_TextChange()
+        {
+            etAccount.TextChangeEventHandler += (sender, e) =>
+            {
+                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.IsSelected = false;
+                }
+                else
+                {
+                    btnGetVerificationCode.IsSelected = true;
+                }
             };
         }
 
@@ -94,7 +113,7 @@
                     //鎵嬫満鏂瑰紡-楠岃瘉鎵嬫満鍙风爜鏄惁姝g‘
                     if (registerType == 0)
                     {
-                        Regex reg = new Regex("^\\d+$");
+                        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))
                         {
@@ -109,13 +128,8 @@
                         }
                         else
                         {
-                            //鏍囪鎵嬫満鍙风爜鏈夋晥
                             btnGetVerificationCode.IsSelected = true;
-                            //璐﹀彿鏈夋晥銆佸瘑鐮佹湁鏁堛�侀獙璇佺爜杈撳叆浜嗭紝鎵嶈兘鐐瑰嚮鏂瑰紡
-                            if (btnGetVerificationCode.IsSelected && ValidPassword && string.IsNullOrEmpty(etVerificationCode.Text.Trim()))
-                            {
-                                btnRegister.IsSelected = true;
-                            }
+                            LoadMothed_EnableResetButton();
                         }
                     }
                     else if (registerType == 1)
@@ -136,13 +150,8 @@
                         }
                         else
                         {
-                            //鏍囪鎵嬫満鍙风爜鏈夋晥
                             btnGetVerificationCode.IsSelected = true;
-                            //璐﹀彿鏈夋晥銆佸瘑鐮佹湁鏁堛�侀獙璇佺爜杈撳叆浜嗭紝鎵嶈兘鐐瑰嚮鏂瑰紡
-                            if (btnGetVerificationCode.IsSelected && ValidPassword && string.IsNullOrEmpty(etVerificationCode.Text.Trim()))
-                            {
-                                btnRegister.IsSelected = true;
-                            }
+                            LoadMothed_EnableResetButton();
                         }
                     }
                 }
@@ -197,12 +206,7 @@
                     }
                     else
                     {
-                        ValidPassword = true;
-                        //璐﹀彿鏈夋晥銆佸瘑鐮佹湁鏁堛�侀獙璇佺爜杈撳叆浜嗭紝鎵嶈兘鐐瑰嚮鏂瑰紡
-                        if (btnGetVerificationCode.IsSelected && ValidPassword && string.IsNullOrEmpty(etVerificationCode.Text.Trim()))
-                        {
-                            btnRegister.IsSelected = true;
-                        }
+                        LoadMothed_EnableResetButton();
                     }
                 }
             };
@@ -220,15 +224,12 @@
                     btnVerificationCodeViewBottomLine.Height = Application.GetRealHeight(1);
                     if (etVerificationCode.Text.Length > 4)
                     {
-                        //璐﹀彿鏈夋晥銆佸瘑鐮佹湁鏁堛�侀獙璇佺爜杈撳叆浜嗭紝鎵嶈兘鐐瑰嚮鏂瑰紡
-                        if (btnGetVerificationCode.IsSelected && ValidPassword && string.IsNullOrEmpty(etVerificationCode.Text.Trim()))
-                        {
-                            btnRegister.IsSelected = true;
-                        }
+                        LoadMothed_EnableResetButton();
                     }
                 }
             };
         }
+
 
         /// <summary>
         /// 鏇存敼瀵嗙爜鍙鎬�
@@ -255,43 +256,55 @@
             btnGetVerificationCode.MouseUpEventHandler += (sender, e) => {
                 if (btnGetVerificationCode.IsSelected)
                 {
-                    //鐭俊鍙戦�侀棿闅�60s
-                    btnGetVerificationCode.IsSelected = false;
-                    int time = 60;
-                    new Thread(() =>
+                    //鑾峰彇楠岃瘉鐮�
+                    var result = pm.SendSms(etAccount.Text.Trim());
+                    if (result.StateCode == "Success")
                     {
-                        while (time == 0)
+                        //鐭俊鍙戦�侀棿闅�60s
+                        btnGetVerificationCode.IsSelected = false;
+                        etVerificationCode.Foucs = true;
+                        int time = 60;
+                        new Thread(() =>
                         {
-                            time--;
+                            while (time > 0)
+                            {
+                                time--;
+                                Application.RunOnMainThread(() =>
+                                {
+                                    btnGetVerificationCode.Text = time.ToString() + "s";
+                                });
+                                Thread.Sleep(1000);
+                            }
                             Application.RunOnMainThread(() =>
                             {
-                                btnGetVerificationCode.Text = time.ToString() + "s";
+                                //鍥炲鑾峰彇鐭俊鎸夐挳浜嬩欢
+                                btnGetVerificationCode.IsSelected = true;
+                                btnGetVerificationCode.TextID = InternationalizationString.GetVerificationCode;
                             });
-                            Thread.Sleep(1000);
-                        }
-                        Application.RunOnMainThread(() =>
-                        {
-                            //鍥炲鑾峰彇鐭俊鎸夐挳浜嬩欢
-                            btnGetVerificationCode.IsSelected = true;
-                        });
-                    })
-                    { IsBackground = true }.Start();
-                    //妫�鏌ユ墜鏈烘槸鍚﹀凡缁忚鏂瑰紡
-                    var checkPhoneResult = pm.IsExistingAccount(etAccount.Text.Trim());
-                    //鎵嬫満鏈鏂瑰紡
-                    if (checkPhoneResult.StateCode != HttpRequesResult.SUCCESS.ToString())
-                    {
-                        //鑾峰彇楠岃瘉鐮�
-                        pm.GetPhoneVerificationCode(etAccount.Text.Trim(), MainPage.Company);
+                        })
+                        { IsBackground = true }.Start();
                     }
                     else
                     {
-                        //鎻愮ず鎵嬫満鍙风爜宸茬粡鏂瑰紡
+                        string tipString = "Server error";
+                        switch (result.StateCode)
+                        {
+                            case "Exist":
+                                tipString = Language.StringByID(InternationalizationString.AccountAlreadyExists);
+                                break;
+                            case "SendFail":
+                                tipString = Language.StringByID(InternationalizationString.FailedToSendVerificationCode);
+                                break;
+                            case "Self:Net_Error":
+                                tipString = Language.StringByID(InternationalizationString.NetworkAnomaly);
+                                break;
+                        }
+
                         new Tip()
                         {
                             CloseTime = 3,
                             Direction = AMPopTipDirection.None,
-                            Text = Language.StringByID(InternationalizationString.AccountAlreadyExists)
+                            Text = tipString
                         }.Show(bodyView);
                     }
                 }
@@ -301,88 +314,118 @@
         /// <summary>
         /// 鍔犺浇鏂瑰紡鎸夐挳浜嬩欢
         /// </summary>
-        void LoadEvent_Register()
+        void LoadEvent_Reset()
         {
-            btnRegister.MouseUpEventHandler += (sender, e) =>
+            btnReset.MouseUpEventHandler += (sender, e) =>
             {
-                //鎵嬫満鏂瑰紡
-                if (registerType == 0)
+                if (btnReset.IsSelected)
                 {
-                    //鏍¢獙楠岃瘉鐮�
-                    var validateSmsResult = pm.ValidateSmsCode(etAccount.Text.Trim(), etVerificationCode.Text.Trim());
-                    //楠岃瘉鐮佹牎楠屾垚鍔�
-                    if (validateSmsResult.StateCode == HttpRequesResult.SUCCESS.ToString())
-                    {
-                        //楠岃瘉璐﹀彿
-                        var registerPhoneResult = pm.RegisterPhone(etAccount.Text.Trim(), etPassword.Text.Trim(), Language.CurrentLanguage);
-                        if (registerPhoneResult.StateCode == HttpRequesResult.SUCCESS.ToString())
-                        {
-                            //楠岃瘉鎴愬姛
-                            //鎵ц鍥炶皟浜嬩欢
-                            callbackAction?.Invoke(etAccount.Text.Trim());
-                        }
-                        else
-                        {
-                            //楠岃瘉澶辫触
-                            new Tip()
-                            {
-                                CloseTime = 3,
-                                Text = registerPhoneResult.ErrorInfo,
-                                Direction = AMPopTipDirection.None,
-                            }.Show(bodyView);
-                        }
-                    }
-                    else
-                    {
-                        //楠岃瘉鐮佹牎楠屽け璐�
-                        new Tip()
-                        {
-                            CloseTime = 3,
-                            Direction = AMPopTipDirection.None,
-                            Text = Language.StringByID(InternationalizationString.VerificationCodeWrong)
-                        }.Show(bodyView);
-                    }
-                }
-                else if (registerType == 1)
-                {
-                    //閭鏂瑰紡
-                    //鏍¢獙楠岃瘉鐮�
-                    var validateSmsResult = pm.ValidateSmsCode(etAccount.Text.Trim(), etVerificationCode.Text.Trim());
-                    //楠岃瘉鐮佹牎楠屾垚鍔�
-                    if (validateSmsResult.StateCode == HttpRequesResult.SUCCESS.ToString())
-                    {
-                        //鏂瑰紡璐﹀彿
-                        var registerPhoneResult = pm.RegisterPhone(etAccount.Text.Trim(), etPassword.Text.Trim(), Language.CurrentLanguage);
-                        if (registerPhoneResult.StateCode == HttpRequesResult.SUCCESS.ToString())
-                        {
-                            //鏂瑰紡鎴愬姛
-                            //鎵ц鍥炶皟浜嬩欢
-                            callbackAction?.Invoke(etAccount.Text.Trim());
-                        }
-                        else
-                        {
-                            //鏂瑰紡澶辫触
-                            new Tip()
-                            {
-                                CloseTime = 3,
-                                Text = registerPhoneResult.ErrorInfo,
-                                Direction = AMPopTipDirection.None,
-                            }.Show(bodyView);
-                        }
-                    }
-                    else
-                    {
-                        //楠岃瘉鐮佹牎楠屽け璐�
-                        new Tip()
-                        {
-                            CloseTime = 3,
-                            Direction = AMPopTipDirection.None,
-                            Text = Language.StringByID(InternationalizationString.VerificationCodeWrong)
-                        }.Show(bodyView);
-                    }
+                    //鍒涘缓淇敼瀵嗙爜绾跨▼
+                    var loginThread = LoadMothed_ResetThread();
+                    waitPage = new Loading();
+                    new WaitPageMothed().LoadPage_WaitPage(loginThread, bodyView, waitPage);
                 }
             };
         }
 
+        /// <summary>
+        /// 鍔犺浇閲嶇疆瀵嗙爜鏂规硶
+        /// </summary>
+        Thread LoadMothed_ResetThread()
+        {
+            string account = etAccount.Text.Trim();
+            string password = etPassword.Text.Trim();
+            string repeatPassword = etRepeatPassword.Text.Trim();
+            string verCode = etVerificationCode.Text.Trim();
+            int countryIndex = 0;
+            try
+            {
+                countryIndex = Convert.ToInt32(btnGlobalRoaming.Text.Trim().Remove('+'));
+            }
+            catch { }
+
+            return new Thread(() =>
+            {
+                var verResult = pm.ValidatorCode(account, verCode, countryIndex);
+                if (verResult.StateCode == "Success")
+                {
+                    var resetResult = pm.ResetPassword(account, password, repeatPassword, countryIndex);
+                    if(resetResult.StateCode == "Success")
+                    {
+                        Application.RunOnMainThread(() =>
+                        {
+                            waitPage.Hide();
+                            this.Close();
+                            callbackAction?.Invoke(account);
+                        });
+                    }
+                    else
+                    {
+                        string erorrInfo = "";
+                        switch (resetResult.StateCode)
+                        {
+                            case "PwdNoConfirm"://涓ゆ杈撳叆鐨勫瘑鐮佷笉涓�鑷�
+                                erorrInfo = Language.StringByID(InternationalizationString.IncorrectRepeatPassword);
+                                break;
+                            case "AccountNoExists"://涓ゆ杈撳叆鐨勫瘑鐮佷笉涓�鑷�
+                                erorrInfo = Language.StringByID(InternationalizationString.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(InternationalizationString.VerificationCodeWrong);
+                            break;
+                        default:
+                            erorrInfo = "Server error";
+                            break;
+                    }
+                    Application.RunOnMainThread(() =>
+                    {
+                        waitPage.Hide();
+                        new Tip()
+                        {
+                            CloseTime = 3,
+                            Direction = AMPopTipDirection.None,
+                            Text = erorrInfo,
+                        }.Show(bodyView);
+                    });
+                }
+            });
+        }
+
+        /// <summary>
+        /// 浣胯兘淇敼纭畾鎸夐挳
+        /// </summary>
+        void LoadMothed_EnableResetButton()
+        {
+            if(!string.IsNullOrEmpty( etAccount.Text)&&!string.IsNullOrEmpty(etPassword.Text)&& !string.IsNullOrEmpty( etVerificationCode.Text) && (etPassword.Text.Trim()== etRepeatPassword.Text.Trim()))
+            {
+                btnReset.IsSelected = true;
+            }
+            else
+            {
+                btnReset.IsSelected = false;
+            }
+        }
+
     }
 }

--
Gitblit v1.8.0