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/RegisterPageBLL.cs | 393 +++++++++++++++++++++++++++++++------------------------ 1 files changed, 222 insertions(+), 171 deletions(-) diff --git a/HDL_ON/UI/UI1-Login/BLL/RegisterPageBLL.cs b/HDL_ON/UI/UI1-Login/BLL/RegisterPageBLL.cs index 69578ca..2eefeb0 100644 --- a/HDL_ON/UI/UI1-Login/BLL/RegisterPageBLL.cs +++ b/HDL_ON/UI/UI1-Login/BLL/RegisterPageBLL.cs @@ -19,6 +19,28 @@ LoadEvent_ChangeTextVisble(); LoadEvent_GetVerificationCode(); LoadEvent_Register(); + + LoadEvent_TextChange(); + //var areaCodeList = pm.GetAreaCode(); + } + /// <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; + } + }; } /// <summary> @@ -29,6 +51,10 @@ //閫夋嫨鎵嬫満娉ㄥ唽 btnPhoneLogin.MouseUpEventHandler += (sender, e) => { +#if DEBUG + etAccount.Text = "17576024298"; +#endif + #region 鍒囨崲閫変腑鎸夐挳 btnEmailLogin.TextColor = CSS_Color.PromptingColor1; btnEmailLogin.TextSize = CSS_FontSize.TextFontSize; @@ -70,7 +96,6 @@ }; } - /// <summary> /// 鍔犺浇鏂囨湰妗嗙劍鐐瑰彉鍖栦簨浠� /// </summary> @@ -91,56 +116,61 @@ btnAccountViewBottomLine.BackgroundColor = CSS_Color.DividingLineColor; btnAccountViewBottomLine.Height = Application.GetRealHeight(1); //鎵嬫満娉ㄥ唽-楠岃瘉鎵嬫満鍙风爜鏄惁姝g‘ - if (registerType == 0) + if (etAccount.Text.Trim().Length > 0) { - Regex reg = new Regex("^\\d+$"); - var mFalg = reg.Match(etAccount.Text.Trim()); - if (!mFalg.Success || (btnGlobalRoaming.Text == "+86" && etAccount.Text.Trim().Length != 11)) + if (registerType == 0) { - btnAccountViewBottomLine.BackgroundColor = CSS_Color.AuxiliaryColor2; - btnAccountViewBottomLine.Height = Application.GetRealHeight(2); - new Tip() + + 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)) { - CloseTime = 3, - Text = Language.StringByID(InternationalizationString.PlsEntryCorrectMobilNeumber), - Direction = AMPopTipDirection.None, - }.Show(bodyView); - } - else - { - //鏍囪鎵嬫満鍙风爜鏈夋晥 - btnGetVerificationCode.IsSelected = true; - //璐﹀彿鏈夋晥銆佸瘑鐮佹湁鏁堛�侀獙璇佺爜杈撳叆浜嗭紝鎵嶈兘鐐瑰嚮娉ㄥ唽 - if (btnGetVerificationCode.IsSelected && ValidPassword && string.IsNullOrEmpty(etVerificationCode.Text.Trim())) + btnAccountViewBottomLine.BackgroundColor = CSS_Color.AuxiliaryColor2; + btnAccountViewBottomLine.Height = Application.GetRealHeight(2); + new Tip() + { + CloseTime = 3, + Text = Language.StringByID(InternationalizationString.PlsEntryCorrectMobilNeumber), + Direction = AMPopTipDirection.None, + }.Show(bodyView); + } + else { - btnRegister.IsSelected = true; + //鏍囪鎵嬫満鍙风爜鏈夋晥 + btnGetVerificationCode.IsSelected = true; + //璐﹀彿鏈夋晥銆佸瘑鐮佹湁鏁堛�侀獙璇佺爜杈撳叆浜嗭紝鎵嶈兘鐐瑰嚮娉ㄥ唽 + if (btnGetVerificationCode.IsSelected && ValidPassword && !string.IsNullOrEmpty(etVerificationCode.Text.Trim())) + { + btnRegister.IsSelected = true; + } } } - } - else if (registerType == 1) - { - //閭娉ㄥ唽-楠岃瘉閭鏄惁姝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 || (btnGlobalRoaming.Text == "+86" && etAccount.Text.Trim().Length != 11)) + else if (registerType == 1) { - btnAccountViewBottomLine.BackgroundColor = CSS_Color.AuxiliaryColor2; - btnAccountViewBottomLine.Height = Application.GetRealHeight(2); - new Tip() + //閭娉ㄥ唽-楠岃瘉閭鏄惁姝g‘ + var reg = new Regex("^\\s*([A-Za-z0-9_-]+(\\.\\w+)*@(\\w+\\.)+\\w{2,5})\\s*$"); + Regex.IsMatch(etAccount.Text.Trim(), "^[\\w-]+@[\\w-]+\\.(com|net|org|edu|mil|tv|biz|info)$"); + var mFalg = reg.Match(etAccount.Text.Trim()); + if (!mFalg.Success) { - CloseTime = 3, - Text = Language.StringByID(InternationalizationString.PlsEntryCorrectEmailAddress), - Direction = AMPopTipDirection.None, - }.Show(bodyView); - } - else - { - //鏍囪鎵嬫満鍙风爜鏈夋晥 - btnGetVerificationCode.IsSelected = true; - //璐﹀彿鏈夋晥銆佸瘑鐮佹湁鏁堛�侀獙璇佺爜杈撳叆浜嗭紝鎵嶈兘鐐瑰嚮娉ㄥ唽 - if (btnGetVerificationCode.IsSelected && ValidPassword && string.IsNullOrEmpty(etVerificationCode.Text.Trim())) + btnAccountViewBottomLine.BackgroundColor = CSS_Color.AuxiliaryColor2; + btnAccountViewBottomLine.Height = Application.GetRealHeight(2); + new Tip() + { + CloseTime = 3, + Text = Language.StringByID(InternationalizationString.PlsEntryCorrectEmailAddress), + Direction = AMPopTipDirection.None, + }.Show(bodyView); + } + else { - btnRegister.IsSelected = true; + //鏍囪鎵嬫満鍙风爜鏈夋晥 + btnGetVerificationCode.IsSelected = true; + //璐﹀彿鏈夋晥銆佸瘑鐮佹湁鏁堛�侀獙璇佺爜杈撳叆浜嗭紝鎵嶈兘鐐瑰嚮娉ㄥ唽 + if (btnGetVerificationCode.IsSelected && ValidPassword && string.IsNullOrEmpty(etVerificationCode.Text.Trim())) + { + btnRegister.IsSelected = true; + } } } } @@ -148,7 +178,8 @@ }; //瀵嗙爜鏂囨湰妗嗙劍鐐瑰彉鍖栦簨浠� - etPassword.FoucsChanged += (sender, e) => { + etPassword.FoucsChanged += (sender, e) => + { if (etPassword.Foucs) { btnPasswordViewBottomLine.BackgroundColor = CSS_Color.MainColor; @@ -156,23 +187,30 @@ } else { - btnPasswordViewBottomLine.BackgroundColor = CSS_Color.DividingLineColor; - btnPasswordViewBottomLine.Height = Application.GetRealHeight(1); - //鏍¢獙瀵嗙爜鏄惁绗﹀悎瑕佹眰 - if (etPassword.Text.Trim().Length < 6) + //闇�瑕佽緭鍏�6浣嶄互涓婄殑瀵嗙爜 + if (etPassword.Text.Length < 6) { + btnRepeatPasswordViewBottomLine.BackgroundColor = CSS_Color.DividingLineColor; + btnRepeatPasswordViewBottomLine.Height = Application.GetRealHeight(1); + new Tip() { CloseTime = 3, Direction = AMPopTipDirection.None, - Text = Language.StringByID(InternationalizationString.IncorrectRepeatPassword) + Text = Language.StringByID(InternationalizationString.PlsRegisterPassword) }.Show(bodyView); + } + else + { + btnPasswordViewBottomLine.BackgroundColor = CSS_Color.DividingLineColor; + btnPasswordViewBottomLine.Height = Application.GetRealHeight(1); } } }; //纭瀵嗙爜鏂囨湰妗嗙劍鐐瑰彉鍖栦簨浠� - etRepeatPassword.FoucsChanged += (sender, e) => { + etRepeatPassword.FoucsChanged += (sender, e) => + { if (etRepeatPassword.Foucs) { btnRepeatPasswordViewBottomLine.BackgroundColor = CSS_Color.MainColor; @@ -183,31 +221,35 @@ btnRepeatPasswordViewBottomLine.BackgroundColor = CSS_Color.DividingLineColor; btnRepeatPasswordViewBottomLine.Height = Application.GetRealHeight(1); //鏍¢獙涓ゆ杈撳叆鐨勫瘑鐮佹槸鍚︿竴鑷� - if (etPassword.Text.Trim() != etRepeatPassword.Text.Trim()) + if (etPassword.Text.Trim().Length > 5) { - btnRepeatPasswordViewBottomLine.BackgroundColor = CSS_Color.AuxiliaryColor2; - btnRepeatPasswordViewBottomLine.Height = Application.GetRealHeight(2); - new Tip() + if (etPassword.Text.Trim() != etRepeatPassword.Text.Trim()) { - CloseTime = 3, - Direction = AMPopTipDirection.None, - Text = Language.StringByID(InternationalizationString.IncorrectRepeatPassword) - }.Show(bodyView); - } - else - { - ValidPassword = true; - //璐﹀彿鏈夋晥銆佸瘑鐮佹湁鏁堛�侀獙璇佺爜杈撳叆浜嗭紝鎵嶈兘鐐瑰嚮娉ㄥ唽 - if (btnGetVerificationCode.IsSelected && ValidPassword && string.IsNullOrEmpty(etVerificationCode.Text.Trim())) + btnRepeatPasswordViewBottomLine.BackgroundColor = CSS_Color.AuxiliaryColor2; + btnRepeatPasswordViewBottomLine.Height = Application.GetRealHeight(2); + new Tip() + { + CloseTime = 3, + Direction = AMPopTipDirection.None, + Text = Language.StringByID(InternationalizationString.IncorrectRepeatPassword) + }.Show(bodyView); + } + else { - btnRegister.IsSelected = true; + ValidPassword = true; + //璐﹀彿鏈夋晥銆佸瘑鐮佹湁鏁堛�侀獙璇佺爜杈撳叆浜嗭紝鎵嶈兘鐐瑰嚮娉ㄥ唽 + if (btnGetVerificationCode.IsSelected && ValidPassword && !string.IsNullOrEmpty(etVerificationCode.Text.Trim())) + { + btnRegister.IsSelected = true; + } } } } }; //楠岃瘉鐮佹枃鏈鐒︾偣鍙樺寲浜嬩欢 - etVerificationCode.FoucsChanged += (sender, e) => { + etVerificationCode.FoucsChanged += (sender, e) => + { if (etVerificationCode.Foucs) { btnVerificationCodeViewBottomLine.BackgroundColor = CSS_Color.MainColor; @@ -217,10 +259,10 @@ { btnVerificationCodeViewBottomLine.BackgroundColor = CSS_Color.DividingLineColor; btnVerificationCodeViewBottomLine.Height = Application.GetRealHeight(1); - if (etVerificationCode.Text.Length > 4) + if (etVerificationCode.Text.Length > 1) { //璐﹀彿鏈夋晥銆佸瘑鐮佹湁鏁堛�侀獙璇佺爜杈撳叆浜嗭紝鎵嶈兘鐐瑰嚮娉ㄥ唽 - if (btnGetVerificationCode.IsSelected && ValidPassword && string.IsNullOrEmpty(etVerificationCode.Text.Trim())) + if (btnGetVerificationCode.IsSelected && ValidPassword) { btnRegister.IsSelected = true; } @@ -235,12 +277,14 @@ void LoadEvent_ChangeTextVisble() { //瀵嗙爜鏂囨湰鍙鎬у彉鍖� - btnVisiblePassword.MouseUpEventHandler += (sender, e) => { + btnVisiblePassword.MouseUpEventHandler += (sender, e) => + { btnVisiblePassword.IsSelected = !btnVisiblePassword.IsSelected; etPassword.SecureTextEntry = !btnVisiblePassword.IsSelected; }; //閲嶅瀵嗙爜鏂囨湰鍙鎬у彉鍖� - btnRepeatVisiblePassword.MouseUpEventHandler += (sender, e) => { + btnRepeatVisiblePassword.MouseUpEventHandler += (sender, e) => + { btnRepeatVisiblePassword.IsSelected = !btnRepeatVisiblePassword.IsSelected; etRepeatPassword.SecureTextEntry = !btnRepeatVisiblePassword.IsSelected; }; @@ -251,46 +295,58 @@ /// </summary> void LoadEvent_GetVerificationCode() { - btnGetVerificationCode.MouseUpEventHandler += (sender, e) => { + btnGetVerificationCode.MouseUpEventHandler += (sender, e) => + { if (btnGetVerificationCode.IsSelected) { - //鐭俊鍙戦�侀棿闅�60s - btnGetVerificationCode.IsSelected = false; - int time = 60; - new Thread(() => + //鑾峰彇楠岃瘉鐮� + var result = pm.GetPhoneRegisterVerCode(etAccount.Text.Trim()); + if (result.StateCode == "Success") { - while (time == 0) + //鐭俊鍙戦�侀棿闅�60s + btnGetVerificationCode.IsSelected = false; + 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 + 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); } } @@ -304,84 +360,79 @@ { btnRegister.MouseUpEventHandler += (sender, e) => { - //鎵嬫満娉ㄥ唽 - if (registerType == 0) + if (btnRegister.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); - } + waitPage = new Loading(); + new WaitPageMothed().LoadPage_WaitPage(LoadMethod_RegisterThread(), bodyView, waitPage); } }; } + /// <summary> + /// 鍔犺浇娉ㄥ唽鏂规硶 + /// </summary> + Thread LoadMethod_RegisterThread() + { + string account = etAccount.Text.Trim(); + string password = etPassword.Text.Trim(); + string entryPassword = etRepeatPassword.Text.Trim(); + string verCode = etVerificationCode.Text.Trim(); + return new Thread(() => + { + try + { + //鏍¢獙楠岃瘉鐮�/娉ㄥ唽璐﹀彿 + var validateSmsResult = pm.ValidataCodeAndRegister(account, password, entryPassword, verCode, 86); + //楠岃瘉鐮佹牎楠屾垚鍔� + if (validateSmsResult.StateCode == "Success") + { + //娉ㄥ唽鎴愬姛 + //鎵ц鍥炶皟浜嬩欢 + this.Close(); + callbackAction?.Invoke(account); + } + else//娉ㄥ唽澶辫触 + { + string erorrInfo = ""; + switch (validateSmsResult.StateCode) + { + case "Exist": + erorrInfo = Language.StringByID(InternationalizationString.AccountAlreadyExists); + break; + case "PwdNoConfirm": + erorrInfo = Language.StringByID(InternationalizationString.IncorrectRepeatPassword); + break; + case "ValidCodeAndPhoneNoEqual": + erorrInfo = Language.StringByID(InternationalizationString.VerificationCodeWrong); + break; + default: + erorrInfo = Language.StringByID(InternationalizationString.RegistrationFailedPleaseTryAgain); + break; + } + Application.RunOnMainThread(() => + { + new Tip() + { + CloseTime = 3, + Direction = AMPopTipDirection.None, + Text = erorrInfo, + }.Show(bodyView); + }); + } + } + catch (Exception ex) + { + MainPage.Log("Exception 1 : " + ex.Message); + } + finally + { + Application.RunOnMainThread(() => + { + waitPage.Hide(); + }); + } + }); + } + } -} +} \ No newline at end of file -- Gitblit v1.8.0