From 30b5770f56f99c1f92e933ad31cf7d2af58b033c Mon Sep 17 00:00:00 2001
From: wei <kaede@kaededeMacBook-Air.local>
Date: 星期三, 02 十二月 2020 16:31:48 +0800
Subject: [PATCH] 20201202
---
HDL_ON/UI/UI1-Login/ForgetPasswordPageBLL.cs | 552 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 552 insertions(+), 0 deletions(-)
diff --git a/HDL_ON/UI/UI1-Login/ForgetPasswordPageBLL.cs b/HDL_ON/UI/UI1-Login/ForgetPasswordPageBLL.cs
new file mode 100644
index 0000000..25b6fc5
--- /dev/null
+++ b/HDL_ON/UI/UI1-Login/ForgetPasswordPageBLL.cs
@@ -0,0 +1,552 @@
+锘縰sing System;
+using System.Text.RegularExpressions;
+using System.Threading;
+using HDL_ON.DAL.Server;
+using HDL_ON.UI.CSS;
+using Shared;
+
+namespace HDL_ON.UI.UI1Login
+{
+ public partial class ForgetPasswordPage
+ {
+ /// <summary>
+ /// 鍔犺浇浜嬩欢鍒楄〃
+ /// </summary>
+ void LoadEventList()
+ {
+ LoadPage_SwitchResetMode();
+ LoadEvent_EditTextFcousChange();
+ LoadEvent_ChangeTextVisble();
+ LoadEvent_GetVerificationCode();
+ LoadEvent_Reset();
+ LoadEvent_TextChange();
+ }
+
+ /// <summary>
+ /// 鍒囨崲淇敼鏂瑰紡
+ /// </summary>
+ void LoadPage_SwitchResetMode()
+ {
+ //閫夋嫨鎵嬫満鏂瑰紡
+ 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.PlsEntryPhoneNumber);
+ #endregion
+
+ #region 鍒囨崲鏂瑰紡鏂瑰紡鍙婂浘鏍�
+ registerType = 0;
+ if (btnAccountIcon.Parent != null)
+ {
+ btnAccountIcon.RemoveFromParent();
+ }
+ accountView.AddChidren(btnGlobalRoaming);
+ #endregion
+ };
+
+ //閫夋嫨閭鏂瑰紡
+ 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;
+ btnEmailLogin.TextSize = CSS_FontSize.EmphasisFontSize_Secondary;
+ etAccount.PlaceholderText = Language.StringByID(StringId.PlsEntryEmailAddress);
+ #endregion
+
+ #region 鍒囨崲淇敼鏂瑰紡鍙婂浘鏍�
+ registerType = 1;
+ if (btnGlobalRoaming.Parent != null)
+ {
+ btnGlobalRoaming.RemoveFromParent();
+ }
+ accountView.AddChidren(btnAccountIcon);
+ #endregion
+
+ };
+ }
+
+ /// <summary>
+ /// 鍔犺浇鏂囨湰鍙樺寲浜嬩欢
+ /// </summary>
+ void LoadEvent_TextChange()
+ {
+ etAccount.TextChangeEventHandler += (sender, e) =>
+ {
+ //Regex reg = new Regex(@"^[1]+\d{10}");
+ //var mFalg = reg.Match(etAccount.Text.Trim());
+ if (registerType == 0)//鎵嬫満鑾峰彇楠岃瘉鐮佹寜閽敓鏁堟潯浠�
+ {
+ if (!Utlis.CheckPhoneNumber(etAccount.Text.Trim(), phoneZoneCode))
+ {
+ 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;
+ }
+ }
+ };
+ }
+
+ /// <summary>
+ /// 鍔犺浇鏂囨湰妗嗙劍鐐瑰彉鍖栦簨浠�
+ /// </summary>
+ void LoadEvent_EditTextFcousChange()
+ {
+ //璐﹀彿鏂囨湰妗嗙劍鐐瑰彉鍖栦簨浠�
+ etAccount.FoucsChanged += (sender, e) =>
+ {
+ if (etAccount.Foucs)
+ {
+ btnAccountViewBottomLine.BackgroundColor = CSS_Color.MainColor;
+ btnAccountViewBottomLine.Height = Application.GetRealHeight(2);
+ }
+ else
+ {
+ //鏍囪鎵嬫満鍙风爜鏃犳晥
+ btnAccountViewBottomLine.BackgroundColor = CSS_Color.DividingLineColor;
+ btnAccountViewBottomLine.Height = Application.GetRealHeight(1);
+ //鎵嬫満鏂瑰紡-楠岃瘉鎵嬫満鍙风爜鏄惁姝g‘
+ if (registerType == 0)
+ {
+ btnGetVerificationCode_Phone.IsSelected = false;
+ if (!Utlis.CheckPhoneNumber(etAccount.Text.Trim(), phoneZoneCode))
+ {
+ btnAccountViewBottomLine.BackgroundColor = CSS_Color.AuxiliaryColor2;
+ btnAccountViewBottomLine.Height = Application.GetRealHeight(2);
+ new Tip()
+ {
+ CloseTime = 1,
+ Text = Language.StringByID(StringId.PlsEntryCorrectMobilNeumber),
+ Direction = AMPopTipDirection.None,
+ }.Show(bodyView);
+ }
+ else
+ {
+ if (btnGetVerificationCode_Phone.Text == Language.StringByID( StringId.GetVerificationCode))
+ {
+ btnGetVerificationCode_Phone.IsSelected = true;
+ }
+ LoadMothed_EnableResetButton();
+ }
+ }
+ else if (registerType == 1)
+ {
+ btnGetVerificationCode_Mail.IsSelected = false;
+ //閭鏂瑰紡-楠岃瘉閭鏄惁姝g‘
+ if (!Utlis.CheckEmail(etAccount.Text.Trim()))
+ {
+ btnAccountViewBottomLine.BackgroundColor = CSS_Color.AuxiliaryColor2;
+ btnAccountViewBottomLine.Height = Application.GetRealHeight(2);
+ new Tip()
+ {
+ CloseTime = 1,
+ Text = Language.StringByID(StringId.PlsEntryCorrectEmailAddress),
+ Direction = AMPopTipDirection.None,
+ }.Show(bodyView);
+ }
+ else
+ {
+ if (btnGetVerificationCode_Mail.Text == Language.StringByID(StringId.GetVerificationCode))
+ {
+ btnGetVerificationCode_Mail.IsSelected = true;
+ }
+ LoadMothed_EnableResetButton();
+ }
+ }
+ }
+ };
+
+ //瀵嗙爜鏂囨湰妗嗙劍鐐瑰彉鍖栦簨浠�
+ etPassword.FoucsChanged += (sender, e) =>
+ {
+ if (etPassword.Foucs)
+ {
+ btnPasswordViewBottomLine.BackgroundColor = CSS_Color.MainColor;
+ btnPasswordViewBottomLine.Height = Application.GetRealHeight(2);
+ }
+ else
+ {
+ btnPasswordViewBottomLine.BackgroundColor = CSS_Color.DividingLineColor;
+ btnPasswordViewBottomLine.Height = Application.GetRealHeight(1);
+ //鏍¢獙瀵嗙爜鏄惁绗﹀悎瑕佹眰
+ if (etPassword.Text.Trim().Length < 6 || etPassword.Text.Trim().Length > 13)
+ {
+ new Tip()
+ {
+ CloseTime = 1,
+ Direction = AMPopTipDirection.None,
+ Text = Language.StringByID(StringId.PasswordIsUnqualified)
+ }.Show(bodyView);
+ }
+ }
+ };
+
+ //纭瀵嗙爜鏂囨湰妗嗙劍鐐瑰彉鍖栦簨浠�
+ etRepeatPassword.FoucsChanged += (sender, e) =>
+ {
+ if (etRepeatPassword.Foucs)
+ {
+ btnRepeatPasswordViewBottomLine.BackgroundColor = CSS_Color.MainColor;
+ btnRepeatPasswordViewBottomLine.Height = Application.GetRealHeight(2);
+ }
+ else
+ {
+ btnRepeatPasswordViewBottomLine.BackgroundColor = CSS_Color.DividingLineColor;
+ btnRepeatPasswordViewBottomLine.Height = Application.GetRealHeight(1);
+ //鏍¢獙涓ゆ杈撳叆鐨勫瘑鐮佹槸鍚︿竴鑷�
+ if (etPassword.Text.Trim() != etRepeatPassword.Text.Trim())
+ {
+ btnRepeatPasswordViewBottomLine.BackgroundColor = CSS_Color.AuxiliaryColor2;
+ btnRepeatPasswordViewBottomLine.Height = Application.GetRealHeight(2);
+ new Tip()
+ {
+ CloseTime = 1,
+ Direction = AMPopTipDirection.None,
+ Text = Language.StringByID(StringId.IncorrectRepeatPassword)
+ }.Show(bodyView);
+ }
+ else
+ {
+ LoadMothed_EnableResetButton();
+ }
+ }
+ };
+
+ //楠岃瘉鐮佹枃鏈鐒︾偣鍙樺寲浜嬩欢
+ etVerificationCode.FoucsChanged += (sender, e) =>
+ {
+ if (etVerificationCode.Foucs)
+ {
+ btnVerificationCodeViewBottomLine.BackgroundColor = CSS_Color.MainColor;
+ btnVerificationCodeViewBottomLine.Height = Application.GetRealHeight(2);
+ }
+ else
+ {
+ btnVerificationCodeViewBottomLine.BackgroundColor = CSS_Color.DividingLineColor;
+ btnVerificationCodeViewBottomLine.Height = Application.GetRealHeight(1);
+ if (etVerificationCode.Text.Length > 4)
+ {
+ LoadMothed_EnableResetButton();
+ }
+ }
+ };
+ }
+
+
+ /// <summary>
+ /// 鏇存敼瀵嗙爜鍙鎬�
+ /// </summary>
+ void LoadEvent_ChangeTextVisble()
+ {
+ //瀵嗙爜鏂囨湰鍙鎬у彉鍖�
+ btnVisiblePassword.MouseUpEventHandler += (sender, e) =>
+ {
+ btnVisiblePassword.IsSelected = !btnVisiblePassword.IsSelected;
+ etPassword.SecureTextEntry = !btnVisiblePassword.IsSelected;
+ };
+ //閲嶅瀵嗙爜鏂囨湰鍙鎬у彉鍖�
+ btnRepeatVisiblePassword.MouseUpEventHandler += (sender, e) =>
+ {
+ btnRepeatVisiblePassword.IsSelected = !btnRepeatVisiblePassword.IsSelected;
+ etRepeatPassword.SecureTextEntry = !btnRepeatVisiblePassword.IsSelected;
+ };
+ }
+
+ /// <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()
+ {
+ EventHandler<MouseEventArgs> eventHandler = (sender, e) =>
+ {
+ var account = etAccount.Text.Trim();
+ if ((sender as Button).IsSelected)
+ {
+ int time = 60;
+ new Thread(() =>
+ {
+ //1.鍏堟鏌ヨ处鍙锋槸鍚︽敞鍐岃繃
+ var result = pm.GetRegionByAccount(account);
+ if (result.Code != StateCode.SUCCESS)
+ {
+ IMessageCommon.Current.ShowErrorInfoAlter(result.Code);
+ return;
+ }
+ else
+ {
+ //2.1妫�娴嬪綋鍓嶉厤缃煙鍚嶆槸鍚︿竴鑷达紝涓嶄竴鑷村垯鏇挎崲
+ CheckAndSetUserRequestHost(result);
+
+ //2.2宸茬粡娉ㄥ唽杩囷紝鍙戦�侀獙璇佺爜鎵惧洖瀵嗙爜
+ Application.RunOnMainThread(() =>
+ {
+ //鐭俊鍙戦�侀棿闅�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>
+ /// 鍔犺浇鏂瑰紡鎸夐挳浜嬩欢
+ /// </summary>
+ void LoadEvent_Reset()
+ {
+ btnReset.MouseUpEventHandler += (sender, e) =>
+ {
+ if (btnReset.IsSelected)
+ {
+ //鍒涘缓淇敼瀵嗙爜绾跨▼
+ var loginThread = LoadMothed_ResetThread();
+ waitPage = new Loading();
+ new PublicAssmebly().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 isPhone = registerType == 0;
+ var resultObj = pm.ForgetPassword(account, password, verCode, isPhone);
+ if (resultObj.Code == StateCode.SUCCESS)
+ {
+ Application.RunOnMainThread(() =>
+ {
+ LoadEvent_AutoLogin();
+ callbackAction?.Invoke(account);
+ });
+
+ }
+ else
+ {
+ // 2020-11-13 寰呬慨鏀� 楠岃瘉鐮侀敊璇� 璀﹀憡鎻愮ず
+ //btnVerificationCodeViewBottomLine.BackgroundColor = CSS_Color.AuxiliaryColor2;
+ //btnVerificationCodeViewBottomLine.Height = Application.GetRealHeight(2);
+ Application.RunOnMainThread(() =>
+ {
+ waitPage.Hide();
+ });
+ // 鎻愮ず閿欒
+ IMessageCommon.Current.ShowErrorInfoAlter(resultObj.Code);
+ }
+ });
+ }
+
+ /// <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;
+ }
+ }
+
+ /// <summary>
+ /// 浣忓畢鎴愬姛涔嬪悗鑷姩鐧诲綍
+ /// </summary>
+ void LoadEvent_AutoLogin()
+ {
+ Dialog dialog = new Dialog();
+
+ FrameLayout frame = new FrameLayout()
+ {
+ Gravity = Gravity.CenterHorizontal,
+ Y = Application.GetRealHeight(198),
+ Width = Application.GetRealWidth(288),
+ Height = Application.GetRealHeight(206),
+ BackgroundColor = CSS_Color.MainBackgroundColor,
+ Radius = (uint)Application.GetRealHeight(12),
+ BorderWidth = 0,
+ BorderColor = 0x00000000,
+ };
+ dialog.AddChidren(frame);
+
+ Button btnAccountText = new Button()
+ {
+ Gravity = Gravity.CenterHorizontal,
+ Y = Application.GetRealHeight(40),
+ Height = Application.GetRealHeight(17 + 14 + 14),
+ IsMoreLines = true,
+ TextAlignment = TextAlignment.Center,
+ TextColor = CSS_Color.FirstLevelTitleColor,
+ TextSize = CSS_FontSize.TextFontSize,
+ //Text = "s鏄敓鐢熶笘涓�",
+ };
+ frame.AddChidren(btnAccountText);
+
+ Button btnTipRegisterSuccess = new Button()
+ {
+ Gravity = Gravity.CenterHorizontal,
+ Y = Application.GetRealHeight(123),
+ Height = Application.GetRealHeight(30),
+ TextAlignment = TextAlignment.Center,
+ TextColor = CSS_Color.MainColor,
+ TextSize = CSS_FontSize.SubheadingFontSize,
+ TextID = StringId.PasswordChangeSuccessfully,
+ };
+ frame.AddChidren(btnTipRegisterSuccess);
+
+ Button btnAutoLoginTip = new Button()
+ {
+ Gravity = Gravity.CenterHorizontal,
+ Y = btnTipRegisterSuccess.Bottom,
+ Height = Application.GetRealHeight(17 + 8),
+ TextAlignment = TextAlignment.Center,
+ TextColor = CSS_Color.PromptingColor1,
+ TextSize = CSS_FontSize.PromptFontSize_FirstLevel,
+ TextID = StringId.AutomaticallyLogin,
+ };
+ //frame.AddChidren(btnAutoLoginTip);
+
+ Button btnHeadImage = new Button()
+ {
+ Gravity = Gravity.CenterHorizontal,
+ Y = Application.GetRealHeight(150),
+ Width = Application.GetRealWidth(84),
+ Height = Application.GetRealWidth(84),
+ Radius = (uint)Application.GetRealHeight(42),
+ BorderColor = 0x00000000,
+ BorderWidth = 0,
+ UnSelectedImagePath = "LoginIcon/2.png",
+ };
+ dialog.AddChidren(btnHeadImage);
+
+ dialog.Show();
+
+ new Thread(() =>
+ {
+ Thread.Sleep(1500);
+ Application.RunOnMainThread(() =>
+ {
+ dialog.Close();
+ this.Close();
+ });
+ })
+ { IsBackground = true }.Start();
+ }
+
+
+ }
+}
--
Gitblit v1.8.0