陈嘉乐
2020-12-01 e08a444a9d7acea0cf39f50d22d29179f6a59292
HDL_ON/UI/UI1-Login/ForgetPasswordPageBLL.cs
@@ -32,6 +32,7 @@
            {
                if (registerType == 0)
                    return;
                etAccount.IsNumberKeyboardType = true;
                etAccount.Text = registerPhone;
                etPassword.Text = "";
                etRepeatPassword.Text = "";
@@ -60,6 +61,7 @@
            {
                if (registerType == 1)
                    return;
                etAccount.IsNumberKeyboardType = false;
                etAccount.Text = registerEmail;
                etPassword.Text = "";
                etRepeatPassword.Text = "";
@@ -92,11 +94,11 @@
        {
            etAccount.TextChangeEventHandler += (sender, e) =>
            {
                Regex reg = new Regex(@"^[1]+\d{10}");
                var mFalg = reg.Match(etAccount.Text.Trim());
                //Regex reg = new Regex(@"^[1]+\d{10}");
                //var mFalg = reg.Match(etAccount.Text.Trim());
                if (registerType == 0)//手机获取验证码按钮生效条件
                {
                    if (btnGlobalRoaming.Text == "+86" && etAccount.Text.Trim().Length != 11)
                    if (!Utlis.CheckPhoneNumber(etAccount.Text.Trim(), phoneZoneCode))
                    {
                        btnGetVerificationCode_Phone.IsSelected = false;
                    }
@@ -108,7 +110,7 @@
                }
                else//邮箱获取验证码按钮生效条件
                {
                    if (!mFalg.Success)
                    if (!Utlis.CheckEmail(etAccount.Text.Trim()))
                    {
                        btnGetVerificationCode_Mail.IsSelected = false;
                    }
@@ -142,10 +144,8 @@
                    //手机方式-验证手机号码是否正确
                    if (registerType == 0)
                    {
                    btnGetVerificationCode_Phone.IsSelected = false;
                        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_Phone.IsSelected = false;
                        if (!Utlis.CheckPhoneNumber(etAccount.Text.Trim(), phoneZoneCode))
                        {
                            btnAccountViewBottomLine.BackgroundColor = CSS_Color.AuxiliaryColor2;
                            btnAccountViewBottomLine.Height = Application.GetRealHeight(2);
@@ -169,9 +169,7 @@
                    {
                        btnGetVerificationCode_Mail.IsSelected = false;
                        //邮箱方式-验证邮箱是否正确
                        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 )
                        if (!Utlis.CheckEmail(etAccount.Text.Trim()))
                        {
                            btnAccountViewBottomLine.BackgroundColor = CSS_Color.AuxiliaryColor2;
                            btnAccountViewBottomLine.Height = Application.GetRealHeight(2);
@@ -291,6 +289,25 @@
        }
        /// <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()
@@ -300,62 +317,65 @@
                var account = etAccount.Text.Trim();
                if ((sender as Button).IsSelected)
                {
                    //短信发送间隔60s
                    (sender as Button).IsSelected = false;
                    etVerificationCode.Foucs = true;
                    //获取验证码
                        int time = 60;
                    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();
                    int time = 60;
                    new Thread(() =>
                    {
                        var result = pm.GetLoginVerCode(account);
                        if (result.StateCode.ToUpper() == "SUCCESS")
                        //1.先检查账号是否注册过
                        var result = pm.GetRegionByAccount(account);
                        if (result.Code != StateCode.SUCCESS)
                        {
                            IMessageCommon.Current.ShowErrorInfoAlter(result.Code);
                            return;
                        }
                        else
                        {
                            string tipString = "Server error";
                            switch (result.StateCode)
                            {
                                case "Exist":
                                    tipString = Language.StringByID(StringId.AccountAlreadyUse);
                                    break;
                                case "SendFail":
                                    tipString = Language.StringByID(StringId.FailedToSendVerificationCode);
                                    break;
                                case "AccountNoExists":
                                    tipString = Language.StringByID(StringId.AccountNotExist);
                                    break;
                                case "Self:Net_Error":
                                    tipString = Language.StringByID(StringId.NetworkAnomaly);
                                    break;
                            }
                            //2.1检测当前配置域名是否一致,不一致则替换
                            CheckAndSetUserRequestHost(result);
                            //2.2已经注册过,发送验证码找回密码
                            Application.RunOnMainThread(() =>
                            {
                                new Tip()
                                {
                                    CloseTime = 1,
                                    Direction = AMPopTipDirection.None,
                                    Text = tipString
                                }.Show(bodyView);
                                //短信发送间隔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();
@@ -401,81 +421,29 @@
            return new Thread(() =>
            {
                var verResult = pm.ValidatorCode(account, verCode, countryIndex);
                if (verResult.StateCode.ToUpper() == "SUCCESS")
                // 忘记密码
                var isPhone = registerType == 0;
                var resultObj = pm.ForgetPassword(account, password, verCode, isPhone);
                if (resultObj.Code == StateCode.SUCCESS)
                {
                    var resetResult = pm.ResetPassword(account, password, repeatPassword, countryIndex);
                    if (resetResult.StateCode.ToUpper() == "SUCCESS")
                    Application.RunOnMainThread(() =>
                    {
                        Application.RunOnMainThread(() =>
                        {
                            LoadEvent_AutoLogin();
                        LoadEvent_AutoLogin();
                        callbackAction?.Invoke(account);
                    });
                            callbackAction?.Invoke(account);
                        });
                    }
                    else
                    {
                        string erorrInfo = "";
                        switch (resetResult.StateCode)
                        {
                            case "PwdNoConfirm"://两次输入的密码不一致
                                erorrInfo = Language.StringByID(StringId.IncorrectRepeatPassword);
                                break;
                            case "AccountNoExists"://两次输入的密码不一致
                                erorrInfo = Language.StringByID(StringId.AccountNotExist);
                                break;
                            default:
                                erorrInfo = "Server error";
                                break;
                        }
                        Application.RunOnMainThread(() =>
                        {
                            waitPage.Hide();
                            new Tip()
                            {
                                CloseTime = 1,
                                Direction = AMPopTipDirection.None,
                                Text = erorrInfo,
                            }.Show(bodyView);
                        });
                    }
                }
                else
                {
                    string erorrInfo = "";
                    switch (verResult.StateCode)
                    {
                        case "ValidCodeAndPhoneNoEqual"://验证码错误
                            erorrInfo = Language.StringByID(StringId.VerificationCodeWrong);
                            Application.RunOnMainThread(() =>
                            {
                                btnVerificationCodeViewBottomLine.BackgroundColor = CSS_Color.AuxiliaryColor2;
                                btnVerificationCodeViewBottomLine.Height = Application.GetRealHeight(2);
                            });
                            break;
                        case "NoRecord":
                            erorrInfo = Language.StringByID(StringId.PlsGetTheVerificationCode);
                            Application.RunOnMainThread(() =>
                            {
                                btnVerificationCodeViewBottomLine.BackgroundColor = CSS_Color.AuxiliaryColor2;
                                btnVerificationCodeViewBottomLine.Height = Application.GetRealHeight(2);
                            });
                            break;
                        default:
                            erorrInfo = "Server error";
                            break;
                    }
                    // 2020-11-13 待修改 验证码错误 警告提示
                    //btnVerificationCodeViewBottomLine.BackgroundColor = CSS_Color.AuxiliaryColor2;
                    //btnVerificationCodeViewBottomLine.Height = Application.GetRealHeight(2);
                    Application.RunOnMainThread(() =>
                    {
                        waitPage.Hide();
                        new Tip()
                        {
                            CloseTime = 1,
                            Direction = AMPopTipDirection.None,
                            Text = erorrInfo,
                        }.Show(bodyView);
                    });
                    // 提示错误
                    IMessageCommon.Current.ShowErrorInfoAlter(resultObj.Code);
                }
            });
        }
@@ -509,7 +477,7 @@
                Width = Application.GetRealWidth(288),
                Height = Application.GetRealHeight(206),
                BackgroundColor = CSS_Color.MainBackgroundColor,
                Radius = (uint)Application.GetRealWidth(12),
                Radius = (uint)Application.GetRealHeight(12),
                BorderWidth = 0,
                BorderColor = 0x00000000,
            };
@@ -558,7 +526,7 @@
                Y = Application.GetRealHeight(150),
                Width = Application.GetRealWidth(84),
                Height = Application.GetRealWidth(84),
                Radius = (uint)Application.GetRealWidth(42),
                Radius = (uint)Application.GetRealHeight(42),
                BorderColor = 0x00000000,
                BorderWidth = 0,
                UnSelectedImagePath = "LoginIcon/2.png",