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/ForgetPasswordPageBLL.cs | 707 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 707 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..79dced0 --- /dev/null +++ b/HDL_ON/UI/UI1-Login/ForgetPasswordPageBLL.cs @@ -0,0 +1,707 @@ +锘縰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; + + if (!string.IsNullOrEmpty(etAccount.Text.Trim())) + { + //璁板綍涔嬪墠鐨勯偖绠� + registerEmail = etAccount.Text.Trim(); + } + 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; + + if (!string.IsNullOrEmpty(etAccount.Text.Trim())) + { + //璁板綍涔嬪墠鐨勬墜鏈哄彿 + registerPhone = etAccount.Text.Trim(); + } + etAccount.IsNumberKeyboardType = false; + etAccount.SecureTextEntry = false;//2020-12-10 瑙e喅Android鏁板瓧鍒囨崲鍥炶矾鏅�氶敭鐩樺彉鍔犲瘑闂 + 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; + } + } + + LoadMothed_EnableResetButton(); + }; + + //etVerificationCode.TextChangeEventHandler = (sender, e) => { + + // if (etVerificationCode.Text.Length > 1) + // { + // LoadMothed_EnableResetButton(); + // } + //}; + + Action<View, string> textChangeEventHandler = (view, textStr) => + { + LoadMothed_EnableResetButton(); + }; + //etAccount.TextChangeEventHandler += textChangeEventHandler; + etPassword.TextChangeEventHandler += textChangeEventHandler; + etRepeatPassword.TextChangeEventHandler += textChangeEventHandler; + etVerificationCode.TextChangeEventHandler += textChangeEventHandler; + } + + /// <summary> + /// 鍔犺浇鏂囨湰妗嗙劍鐐瑰彉鍖栦簨浠� + /// </summary> + void LoadEvent_EditTextFcousChange() + { + //璐﹀彿鏂囨湰妗嗙劍鐐瑰彉鍖栦簨浠� + etAccount.FoucsChanged += (sender, e) => + { + if (etAccount.Foucs) + { + HDLCommon.Current.BottomLineShowType(btnAccountViewBottomLine, BottomLineType.GotFocus); + } + else + { + if (isHitBack) return;//鐐瑰嚮杩斿洖鍏抽棴椤甸潰涓嶆娴嬫彁绀� + + HDLCommon.Current.BottomLineShowType(btnAccountViewBottomLine, BottomLineType.Normal); + if (etAccount.Text.Length == 0) return;//娌¤緭鍏ヤ笉妫�娴嬫彁绀� + + //鎵嬫満鏂瑰紡-楠岃瘉鎵嬫満鍙风爜鏄惁姝g‘ + if (registerType == 0) + { + btnGetVerificationCode_Phone.IsSelected = false; + if (!Utlis.CheckPhoneNumber(etAccount.Text.Trim(), phoneZoneCode)) + { + HDLCommon.Current.BottomLineShowType(btnAccountViewBottomLine, BottomLineType.Error); + 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())) + { + HDLCommon.Current.BottomLineShowType(btnAccountViewBottomLine, BottomLineType.Error); + 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) + { + HDLCommon.Current.BottomLineShowType(btnPasswordViewBottomLine, BottomLineType.GotFocus); + } + else + { + if (isHitBack) return;//鐐瑰嚮杩斿洖鍏抽棴椤甸潰涓嶆娴嬫彁绀� + + HDLCommon.Current.BottomLineShowType(btnPasswordViewBottomLine, BottomLineType.Normal); + if (etPassword.Text.Length == 0) return;//娌¤緭鍏ヤ笉妫�娴嬫彁绀� + + //鏍¢獙瀵嗙爜鏄惁绗﹀悎瑕佹眰 + if (etPassword.Text.Trim().Length < 6 || etPassword.Text.Trim().Length > 13) + { + HDLCommon.Current.BottomLineShowType(btnPasswordViewBottomLine, BottomLineType.Error); + new Tip() + { + CloseTime = 1, + Direction = AMPopTipDirection.None, + Text = Language.StringByID(StringId.PasswordIsUnqualified) + }.Show(bodyView); + } + } + }; + + //纭瀵嗙爜鏂囨湰妗嗙劍鐐瑰彉鍖栦簨浠� + etRepeatPassword.FoucsChanged += (sender, e) => + { + if (etRepeatPassword.Foucs) + { + HDLCommon.Current.BottomLineShowType(btnRepeatPasswordViewBottomLine, BottomLineType.GotFocus); + } + else + { + if (isHitBack) return;//鐐瑰嚮杩斿洖鍏抽棴椤甸潰涓嶆娴嬫彁绀� + + HDLCommon.Current.BottomLineShowType(btnRepeatPasswordViewBottomLine, BottomLineType.Normal); + //鏍¢獙涓ゆ杈撳叆鐨勫瘑鐮佹槸鍚︿竴鑷� + if (etPassword.Text.Trim() != etRepeatPassword.Text.Trim()) + { + HDLCommon.Current.BottomLineShowType(btnRepeatPasswordViewBottomLine, BottomLineType.Error); + new Tip() + { + CloseTime = 1, + Direction = AMPopTipDirection.None, + MaxWidth = Application.GetRealWidth(300), + Text = Language.StringByID(StringId.IncorrectRepeatPassword) + }.Show(bodyView); + } + else + { + LoadMothed_EnableResetButton(); + } + } + }; + + //楠岃瘉鐮佹枃鏈鐒︾偣鍙樺寲浜嬩欢 + etVerificationCode.FoucsChanged += (sender, e) => + { + if (etVerificationCode.Foucs) + { + HDLCommon.Current.BottomLineShowType(btnVerificationCodeViewBottomLine, BottomLineType.GotFocus); + } + else + { + if (isHitBack) return;//鐐瑰嚮杩斿洖鍏抽棴椤甸潰涓嶆娴嬫彁绀� + + HDLCommon.Current.BottomLineShowType(btnVerificationCodeViewBottomLine, BottomLineType.Normal); + 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 (OnAppConfig.Instance.RequestHttpsHost != mGlobalRegionListObj.regionUrl) + { + OnAppConfig.Instance.RequestHttpsHost = mGlobalRegionListObj.regionUrl; + OnAppConfig.Instance.GlobalRegion = mGlobalRegionListObj; + OnAppConfig.Instance.SaveConfig(); + } + } + catch { } + } + + + /// <summary> + /// 鑾峰彇楠岃瘉鐮� + /// </summary> + void LoadEvent_GetVerificationCode() + { + EventHandler<MouseEventArgs> eventHandler = (sender, e) => + { + var account = etAccount.Text.Trim(); + if ((sender as Button).IsSelected) + { + //鍔犺浇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); + return; + } + else + { + + //2.1妫�娴嬪綋鍓嶉厤缃煙鍚嶆槸鍚︿竴鑷达紝涓嶄竴鑷村垯鏇挎崲 + CheckAndSetUserRequestHost(result); + //2.2宸茬粡娉ㄥ唽杩囷紝鍙戦�侀獙璇佺爜鎵惧洖瀵嗙爜 + ResponsePackNew resultObj; + //2.3璇锋眰鑾峰彇楠岃瘉鐮� + 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); + } + else + { + //3.鍙戦�侀獙璇佺爜鎴愬姛锛屽紑濮嬭鏃� + 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(); + + } + } + } + catch { } + finally + { + Application.RunOnMainThread(() => + { + if (waitPage != null) + { + waitPage.RemoveFromParent(); + waitPage = null; + } + }); + } + }) + { IsBackground = true }.Start(); + } + }; + + btnGetVerificationCode_Mail.MouseUpEventHandler = eventHandler; + btnGetVerificationCode_Phone.MouseUpEventHandler = eventHandler; + } + + /// <summary> + /// 鍔犺浇鏂瑰紡鎸夐挳浜嬩欢 + /// </summary> + void LoadEvent_Reset() + { + btnReset.MouseUpEventHandler += (sender, e) => + { + if (btnReset.IsSelected) + { + //妫�娴嬭处鍙� + if (!CheckAccount()) return; + //妫�娴嬪瘑鐮� + if (!CheckPassword()) return; + //妫�娴嬮獙璇佺爜 + if (!CheckVerificationCode()) return; + + //鍒涘缓淇敼瀵嗙爜绾跨▼ + 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(() => + { + if (waitPage != null) + { + waitPage.Hide(); + } + ShowAutoLoginDialog(account, password, isPhone); + }); + + } + else + { + Application.RunOnMainThread(() => + { + if (waitPage != null) + { + waitPage.Hide(); + } + + // 楠岃瘉鐮侀敊璇� 璀﹀憡鎻愮ず + if (resultObj.Code == StateCode.VERIFICATION_CODE_WRONG) + { + HDLCommon.Current.BottomLineShowType(btnVerificationCodeViewBottomLine, BottomLineType.Error); + } + }); + // 鎻愮ず閿欒 + 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> + /// <returns></returns> + bool CheckAccount() + { + //鎵嬫満鏂瑰紡-楠岃瘉鎵嬫満鍙风爜鏄惁姝g‘ + if (registerType == 0) + { + if (!Utlis.CheckPhoneNumber(etAccount.Text.Trim(), phoneZoneCode)) + { + Utlis.ShowTip(Language.StringByID(StringId.PlsEntryCorrectMobilNeumber)); + } + else + { + return true; + } + + } + else if (registerType == 1) + { + //閭鏂瑰紡-楠岃瘉閭鏄惁姝g‘ + if (!Utlis.CheckEmail(etAccount.Text.Trim())) + { + Utlis.ShowTip(Language.StringByID(StringId.PlsEntryCorrectEmailAddress)); + } + else + { + return true; + } + } + + return false; + } + + /// <summary> + /// 妫�娴嬪瘑鐮佹槸鍚︽纭� + /// </summary> + /// <returns></returns> + bool CheckPassword() + { + //鏍¢獙瀵嗙爜鏄惁绗﹀悎瑕佹眰 + if (etPassword.Text.Trim().Length < 6 || etPassword.Text.Trim().Length > 13) + { + Utlis.ShowTip(Language.StringByID(StringId.PasswordIsUnqualified)); + return false; + } + + if (etPassword.Text.Trim() != etRepeatPassword.Text.Trim()) + { + Utlis.ShowTip(Language.StringByID(StringId.IncorrectRepeatPassword)); + return false; + } + return true; + } + + /// <summary> + /// 妫�娴嬮獙璇佺爜鏄惁杈撳叆 + /// </summary> + /// <returns></returns> + bool CheckVerificationCode() + { + if (string.IsNullOrEmpty(etVerificationCode.Text)) + { + Utlis.ShowTip(Language.StringByID(StringId.PlsEntryVerificationCode)); + return false; + } + return true; + } + + /// <summary> + /// 鏄剧ず鑷姩鑷姩鐧诲綍浜嬩欢 + /// </summary> + void ShowAutoLoginDialog(string account, string password, bool isPhone) + { + Dialog dialog = new Dialog(); + + FrameLayout dialogView = new FrameLayout(); + dialogView.MouseUpEventHandler = (sender, e) => + { + dialog.Close(); + }; + dialog.AddChidren(dialogView); + + FrameLayout contentView = new FrameLayout() + { + Gravity = Gravity.CenterHorizontal, + Y = Application.GetRealWidth(200), + Width = Application.GetRealWidth(288), + Height = Application.GetRealWidth(270), + Radius = (uint)Application.GetRealWidth(6), + BackgroundColor = CSS_Color.MainBackgroundColor, + }; + dialogView.AddChidren(contentView); + + contentView.Y = (dialogView.Height - contentView.Height) / 2; + + Button btnTitleIcon = new Button() + { + X = Application.GetRealWidth(108), + Y = contentView.Y - Application.GetRealWidth(71), + Width = Application.GetRealWidth(160), + Height = Application.GetRealWidth(160), + UnSelectedImagePath = "Public/Dialog/DialogTipTitleIcon_1.png" + }; + dialogView.AddChidren(btnTitleIcon); + btnTitleIcon.MouseUpEventHandler = (sender, e) => + { + dialog.Close(); + }; + + Button btnMsg = new Button() + { + Gravity = Gravity.CenterHorizontal, + Y = Application.GetRealWidth(88), + Width = Application.GetRealWidth(220), + Height = Application.GetRealWidth(44), + TextColor = CSS_Color.MainColor, + TextSize = CSS_FontSize.SubheadingFontSize, + TextID = StringId.ModifySuccess + }; + contentView.AddChidren(btnMsg); + + Button btnMsg2 = new Button() + { + Gravity = Gravity.CenterHorizontal, + Y = btnMsg.Bottom + Application.GetRealWidth(8), + Width = Application.GetRealWidth(220), + Height = Application.GetRealWidth(60), + TextColor = CSS_Color.PromptingColor1, + TextSize = CSS_FontSize.PromptFontSize_FirstLevel, + TextID = StringId.YourPasswordHasBeenChanged, + TextAlignment = TextAlignment.TopCenter, + IsMoreLines = true + }; + contentView.AddChidren(btnMsg2); + + + Button btnSkipBindPage = new Button() + { + Gravity = Gravity.CenterHorizontal, + Y = Application.GetRealWidth(194), + Width = Application.GetRealWidth(220), + Height = Application.GetRealWidth(44), + TextAlignment = TextAlignment.Center, + Radius = (uint)Application.GetRealWidth(22), + BackgroundColor = CSS_Color.MainColor, + TextID = StringId.Login, + TextSize = CSS_FontSize.SubheadingFontSize, + TextColor = CSS_Color.MainBackgroundColor, + }; + contentView.AddChidren(btnSkipBindPage); + + btnSkipBindPage.MouseUpEventHandler = (sender, e) => + { + dialog.Close(); + this.Close(); + + AutoLoginAction?.Invoke(account, password, isPhone); + + }; + + dialog.Show(); + } + + } +} -- Gitblit v1.8.0