From 37c33341f75841dc39c535eb62a3603f596516a1 Mon Sep 17 00:00:00 2001 From: wxr <464027401@qq.com> Date: 星期四, 27 二月 2020 17:11:53 +0800 Subject: [PATCH] 20200227 --- HDL_ON/UI/UI1-Login/LoginPageBLL.cs | 537 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 537 insertions(+), 0 deletions(-) diff --git a/HDL_ON/UI/UI1-Login/LoginPageBLL.cs b/HDL_ON/UI/UI1-Login/LoginPageBLL.cs new file mode 100644 index 0000000..9653896 --- /dev/null +++ b/HDL_ON/UI/UI1-Login/LoginPageBLL.cs @@ -0,0 +1,537 @@ +锘縰sing System; +using System.Text.RegularExpressions; +using System.Threading; +using System.Collections.Generic; +using HDL_ON.UI.CSS; +using Shared; + +namespace HDL_ON.UI.UI1Login +{ + public partial class LoginPage + { + + /// <summary> + /// 鍔犺浇浜嬩欢 + /// </summary> + void LoadEventList() + { + LoadPage_SwitchLoginType(); + LoadMethod_VisiblePassword(); + LoadPage_SwitchLoginMode(); + LoadEvent_Login(); + LoadPage_SelectionEditText(); + LoadPage_RegisterPage(); + GetVerificationCode(); + LoadMethod_ForgetPassword(); + } + + /// <summary> + /// 鐐瑰嚮鎸夐挳鑾峰彇楠岃瘉鐮� + /// </summary> + void GetVerificationCode() + { + btnGetVerificationCode.MouseUpEventHandler += (sender, e) => + { + if (btnGetVerificationCode.IsSelected) + { + string phoneNumber = etAccount.Text.Trim(); + btnGetVerificationCode.IsSelected = false; + btnGetVerificationCode.TextColor = CSS_Color.PromptingColor1; + 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(); + //鑾峰彇楠岃瘉鐮� + pm.GetPhoneLoginVerCode(phoneNumber); + } + }; + } + + /// <summary> + /// 鍒囨崲鐧诲綍绫诲瀷 + /// </summary> + void LoadPage_SwitchLoginType() + { + //閫夋嫨鎵嬫満鐧诲綍 + btnPhoneLogin.MouseUpEventHandler += (sender, e) => + { + #region 鍒囨崲閫変腑鎸夐挳 + 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); + #endregion + + #region 鍒囨崲鐧诲綍鏂瑰紡鍙婂浘鏍� + logintType = 0; + if (btnAccountIcon.Parent != null) + { + btnAccountIcon.RemoveFromParent(); + } + accountView.AddChidren(btnGlobalRoaming); + //鏄剧ず楠岃瘉鐮佺櫥褰曟柟寮忥紝鎵嬫満鐧诲綍鏈夐獙璇佺爜鐧诲綍 + btnSwitchLoginMode.Visible = true; + #endregion + }; + + //閫夋嫨閭鐧诲綍 + btnEmailLogin.MouseUpEventHandler += (sender, e) => + { + #region 鍒囨崲閫変腑鎸夐挳 + 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 鍒囨崲鐧诲綍绫诲瀷鍙婂浘鏍� + logintType = 1; + if (btnGlobalRoaming.Parent != null) + { + btnGlobalRoaming.RemoveFromParent(); + } + accountView.AddChidren(btnAccountIcon); + #endregion + + //閭鍙湁瀵嗙爜鐧诲綍妯″紡 + logintMode = 0; + //瀵嗙爜鐧诲綍 + btnSwitchLoginMode.TextID = StringId.VerificationCodeLogin; + passwordView.AddChidren(btnVisiblePassword); + passwordView.AddChidren(btnDividingLineVertical_PasswordView2); + passwordView.AddChidren(btnForgetPassword); + btnPasswordIcon.IsSelected = false; + + if (btnGetVerificationCode.Parent != null) + { + btnGetVerificationCode.RemoveFromParent(); + } + //闅愯棌瀵嗙爜 + etPassword.SecureTextEntry = true; + //闅愯棌楠岃瘉鐮佺櫥褰曟柟寮忥紝閭鐧诲綍娌℃湁楠岃瘉鐮佺櫥褰� + btnSwitchLoginMode.Visible = false; + }; + } + + /// <summary> + /// 鍒囨崲鐧诲綍鏂瑰紡 + /// 楠岃瘉鐮�/瀵嗙爜 + /// </summary> + void LoadPage_SwitchLoginMode() + { + btnSwitchLoginMode.MouseUpEventHandler += (sender, e) => + { + logintMode = logintMode == 0 ? 1 : 0; + //娓呴櫎瀵嗙爜妗嗘枃鏈暟鎹� + etPassword.Text = ""; + //瀵嗙爜鐧诲綍 + if (logintMode == 0) + { + btnSwitchLoginMode.TextID = StringId.VerificationCodeLogin; + passwordView.AddChidren(btnVisiblePassword); + passwordView.AddChidren(btnDividingLineVertical_PasswordView2); + passwordView.AddChidren(btnForgetPassword); + btnPasswordIcon.IsSelected = false; + if (btnGetVerificationCode.Parent != null) + { + btnGetVerificationCode.RemoveFromParent(); + } + //闅愯棌瀵嗙爜 + etPassword.SecureTextEntry = true; + } + //楠岃瘉鐮佺櫥褰� + else if (logintMode == 1) + { + btnSwitchLoginMode.TextID = StringId.PasswordLogin; + passwordView.AddChidren(btnGetVerificationCode); + btnPasswordIcon.IsSelected = true; + if (btnVisiblePassword.Parent != null) + { + btnVisiblePassword.RemoveFromParent(); + } + if (btnDividingLineVertical_PasswordView2.Parent != null) + { + btnDividingLineVertical_PasswordView2.RemoveFromParent(); + } + if (btnForgetPassword.Parent != null) + { + btnForgetPassword.RemoveFromParent(); + } + //楠岃瘉鐮佷笉闇�瑕侀殣钘� + etPassword.SecureTextEntry = false; + } + }; + } + + /// <summary> + /// 鏂囨湰妗嗛�変腑浜嬩欢 + /// </summary> + void LoadPage_SelectionEditText() + { + //褰撶劍鐐瑰湪璐﹀彿鏂囨湰妗嗘椂锛屾枃鏈搴曠嚎鐐逛寒 + 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); + } + }; + //褰撶劍鐐瑰湪瀵嗙爜鏂囨湰妗嗘椂锛屾枃鏈搴曠嚎鐐逛寒 + 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); + } + }; + + //褰撶劍鐐瑰湪璐﹀彿鏂囨湰妗嗘椂锛岀偣鍑婚敭鐩樺洖鎾ゆ寜閿紝瑙﹀彂鐨勪簨浠� + etAccount.EditorEnterAction += (obj) => + { + etPassword.Foucs = true; + }; + //褰撶劍鐐瑰湪瀵嗙爜鏂囨湰妗嗘椂锛岀偣鍑婚敭鐩樺洖鎾ゆ寜閿紝瑙﹀彂鐨勪簨浠� + etPassword.EditorEnterAction += (obj) => + { + etPassword.Foucs = false; + }; + } + + /// <summary> + /// 闅愯棌/鏄剧ず瀵嗙爜 + /// </summary> + void LoadMethod_VisiblePassword() + { + btnVisiblePassword.MouseUpEventHandler += (sender, e) => + { + btnVisiblePassword.IsSelected = !btnVisiblePassword.IsSelected; + if (btnVisiblePassword.IsSelected) + { + etPassword.SecureTextEntry = false; + } + else + { + etPassword.SecureTextEntry = true; + } + }; + } + + /// <summary> + /// 鐧诲綍鎸夐挳鐐瑰嚮浜嬩欢 + /// </summary> + void LoadEvent_Login() + { + btnLogin.MouseUpEventHandler += (sender, e) => + { + if (btnLogin.IsSelected) + { + account = etAccount.Text.Trim(); + password = etPassword.Text.Trim(); + + if (logintType == 0) + { + if (!Regex.IsMatch(account, @"^[1]+\d{9}")) + { + var tip = new Tip() + { + Text = Language.StringByID(StringId.PlsEntryCorrectMobilNeumber), + CloseTime = 3, + Direction = AMPopTipDirection.None + }; + tip.Show(bodyView); + return; + } + } + else + { + if (!Regex.IsMatch(account, "^[\\w-]+@[\\w-]+\\.(com|net|org|edu|mil|tv|biz|info)$")) + { + var tip = new Tip() + { + Text = Language.StringByID(StringId.PlsEntryCorrectEmailAddress), + CloseTime = 3, + Direction = AMPopTipDirection.None + }; + tip.Show(bodyView); + return; + } + } + + //鍒涘缓鐧诲綍绾跨▼ + var loginThread = LoadThread_Login(); + waitPage = new Loading(); + new WaitPageMothed().LoadPage_WaitPage(loginThread, bodyView, waitPage); + + } + }; + #region 褰撹处鍙峰瘑鐮侀兘杈撳叆鏃讹紝鎵嶈兘鐐瑰嚮鐧诲綍鎸夐挳 + etAccount.TextChangeEventHandler += (sender, e) => + { + if (etAccount.Text.Trim().Length > 0 && etPassword.Text.Trim().Length > 0) + { + btnLogin.IsSelected = true; + } + else + { + btnLogin.IsSelected = false; + } + }; + etPassword.TextChangeEventHandler += (sender, e) => + { + if (etAccount.Text.Trim().Length > 0 && etPassword.Text.Trim().Length > 0) + { + btnLogin.IsSelected = true; + } + else + { + btnLogin.IsSelected = false; + } + }; + #endregion + } + + /// <summary> + /// 鍔犺浇鐧诲綍绾跨▼ + /// </summary> + Thread LoadThread_Login() + { + var loginThread = new Thread(() => + { + try + { + //鐧诲綍 + var loginResult = LoadMethod_Login(); + if (loginResult) + { + //鑾峰彇浣忓畢淇℃伅 + var getResidencesResult = LoadMethod_GetResidences(); + if (getResidencesResult) + { + /* + * Wait : 鎺ㄩ�佹敞鍐� + */ + + Application.RunOnMainThread(() => + { + waitPage.RemoveFromParent(); + waitPage = null; + + //璺宠浆椤甸潰---- + MainPage.GoUserPage(); + }); + } + } + } + catch (Exception ex) + { + MainPage.Log($"LoginPage : {ex.Message}"); + } + }) + { IsBackground = true }; + return loginThread; + } + /// <summary> + /// 璋冪敤鐧诲綍鎺ュ彛鐧诲綍 + /// </summary> + bool LoadMethod_Login() + { + var result = false; + //璋冪敤鐧诲綍鎺ュ彛 + var loginResult = pm.LoginByPassword(account, password); + if (loginResult.StateCode == "SUCCESS") + { + var loginDataStr = Newtonsoft.Json.Linq.JObject.FromObject(loginResult.ResponseData); + + //璁板綍鐢ㄦ埛鏁版嵁 + MainPage.LoginUser = new UserInfo + { + ID = (int)loginDataStr.GetValue("UserID"), + MasterID = (int)loginDataStr.GetValue("MainUserID"), + AccountType = (int)loginDataStr.GetValue("UserType"), + AccountString = account, + Password = password, + LastTime = DateTime.Now, + SIP_Account = loginDataStr.GetValue("AllVisionRegisterDevUserNameGuid").ToString(), + }; + MainPage.LoginUser.SaveUserInfo(); + MainPage.Log("鐧诲綍鎴愬姛銆�"); + result = true; + } + //鐧诲綍澶辫触 + else + { + string tipStr = "Sever erorr"; + switch (loginResult.StateCode) + { + case "USERNAMEORPWDERROR": + tipStr = Language.StringByID(StringId.LoginFailed_AccountOrPasswordError); + break; + case "Self:Net_Error": + tipStr = Language.StringByID(StringId.NetworkAnomaly); + break; + } + //璐﹀彿鎴栬�呭瘑鐮侀敊璇� + Application.RunOnMainThread(() => + { + //鎻愮ず鍘熷洜 + var tip = new Tip() + { + Text = tipStr, + CloseTime = 3, + Direction = AMPopTipDirection.None + }; + tip.Show(bodyView); + btnPasswordViewBottomLine.BackgroundColor = CSS_Color.AuxiliaryColor2; + btnPasswordViewBottomLine.Height = Application.GetRealHeight(2); + }); + } + return result; + } + + /// <summary> + /// 鑾峰彇浣忓畢鍒楄〃 + /// </summary> + bool LoadMethod_GetResidences() + { + var result = false; + var responsePack = pm.GetHomePager(); + if (responsePack.StateCode == "Success") + { + var dataStr = Newtonsoft.Json.Linq.JObject.FromObject(responsePack.ResponseData); + //娌℃湁浣忓畢 + if (dataStr.GetValue("PageData").ToString() == "[]") + { + + } + else + { + MainPage.LoginUser.HomeLists = new List<RegionInfoRes>(); + foreach (var jsonData in dataStr.GetValue("PageData")) + { + var homeJsonStr = Newtonsoft.Json.Linq.JObject.FromObject(jsonData); + var home = new RegionInfoRes() + { + RegionID = homeJsonStr.GetValue("Id").ToString(), + RegionName = homeJsonStr.GetValue("RegionName").ToString(), + Name = homeJsonStr.GetValue("Name").ToString(), + }; + MainPage.LoginUser.HomeLists.Add(home); + } + UserConfig.Instance.CurrentRegion = MainPage.LoginUser.HomeLists[0]; + UserConfig.Instance.SaveUserConfig(); + MainPage.LoginUser.SaveUserInfo(); + } + result = true; + } + else + { + var tipStr = "Server erorr"; + switch (responsePack.StateCode) + { + case "NoLogin": + tipStr = Language.StringByID(StringId.InvalidLoginCertificate); + break; + } + Application.RunOnMainThread(() => + { + //鎻愮ず鍘熷洜 + var tip = new Tip() + { + Text = tipStr, + CloseTime = 3, + Direction = AMPopTipDirection.None + }; + tip.Show(bodyView); + }); + + } + return result; + } + + /// <summary> + /// 鍔犺浇娉ㄥ唽鐣岄潰 + /// </summary> + void LoadPage_RegisterPage() + { + btnRegister.MouseUpEventHandler += (sender, e) => + { + //鍥炶皟浜嬩欢 + Action<string> callBackAction = (callBackPar_Action) => + { + Application.RunOnMainThread(() => + { + try + { + etAccount.Text = callBackPar_Action; + } + catch (Exception ex) + { + MainPage.Log($"login callBackAction : {ex.Message}"); + } + }); + }; + + var registerPage = new RegisterPage(callBackAction); + registerPage.Show(); + registerPage.ShowDialog(); + }; + } + + /// <summary> + /// 蹇樿瀵嗙爜 + /// </summary> + void LoadMethod_ForgetPassword() + { + btnForgetPassword.MouseUpEventHandler += (sender, e) => + { + Action<string> callBackAction = (callBackPar_Action) => + { + Application.RunOnMainThread(() => + { + try + { + etAccount.Text = callBackPar_Action; + } + catch (Exception ex) + { + MainPage.Log($"login callBackAction : {ex.Message}"); + } + }); + }; + var forgetPasswordDialog = new ForgetPasswordPage(callBackAction); + forgetPasswordDialog.Show(); + forgetPasswordDialog.ShowDialog(); + + }; + } + } +} -- Gitblit v1.8.0