From 6fa9d69da922c8049f5acfcbb9ce9fd26811024c Mon Sep 17 00:00:00 2001 From: xm <1271024303@qq.com> Date: 星期四, 16 四月 2020 17:10:57 +0800 Subject: [PATCH] 请合并代码 --- ZigbeeApp/Shared/Phone/UserCenter/Password/CheckNewPhoneForm.cs | 392 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 392 insertions(+), 0 deletions(-) diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Password/CheckNewPhoneForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Password/CheckNewPhoneForm.cs new file mode 100755 index 0000000..c55a48d --- /dev/null +++ b/ZigbeeApp/Shared/Phone/UserCenter/Password/CheckNewPhoneForm.cs @@ -0,0 +1,392 @@ +锘縰sing System; +using System.Collections.Generic; +using System.Text; + +namespace Shared.Phone.UserCenter.Password +{ + /// <summary> + /// 楠岃瘉鏂版墜鏈虹殑鐢婚潰 + /// </summary> + public class CheckNewPhoneForm : EditorCommonForm + { + #region 鈻� 鍙橀噺澹版槑___________________________ + + /// <summary> + /// 閿欒淇℃伅鎺т欢 + /// </summary> + private NormalViewControl btnErrorMsg = null; + /// <summary> + /// 鏍囪鏄惁鑳藉鏍¢獙楠岃瘉鐮佷簡 + /// </summary> + private bool canCheckCode = false; + /// <summary> + /// 鏂版墜鏈�(闃叉鎭舵剰鍙樻洿) + /// </summary> + private string newPhone = string.Empty; + + #endregion + + #region 鈻� 鍒濆鍖朹____________________________ + + /// <summary> + /// 鐢婚潰鏄剧ず(搴曞眰浼氬浐瀹氳皟鐢ㄦ鏂规硶锛屽�熶互瀹屾垚鐢婚潰鍒涘缓) + /// </summary> + public void ShowForm() + { + //璁剧疆澶撮儴淇℃伅 + base.SetTitleText(Language.StringByID(R.MyInternationalizationString.uEditorPhoneNumber)); + + //鍒濆鍖栦腑閮ㄤ俊鎭� + this.InitMiddleFrame(); + } + + /// <summary> + /// 鍒濆鍖栦腑閮ㄤ俊鎭� + /// </summary> + private void InitMiddleFrame() + { + //娓呯┖bodyFrame + this.ClearBodyFrame(); + + var frame = new FrameLayout(); + frame.Y = Application.GetRealHeight(161); + frame.Gravity = Gravity.CenterHorizontal; + frame.Width = Application.GetRealWidth(688); + frame.Height = Application.GetRealHeight(127); + bodyFrameLayout.AddChidren(frame); + + //鍦板尯鐮� + var btnArea = new NormalViewControl(127, 58, true); + btnArea.Text = "+86"; + btnArea.TextAlignment = TextAlignment.Center; + btnArea.TextColor = UserCenterColor.Current.TextGrayColor3; + btnArea.Gravity = Gravity.CenterVertical; + frame.AddChidren(btnArea); + //鐩墠鍙拡瀵�+86 + //btnArea.ButtonClickEvent += (sender, e) => + //{ + // var form = new AreaCodeSelectForm(); + // form.AddForm(); + // form.FinishSelectEvent += (code) => + // { + // btnArea.Text = "+" + code; + // }; + //}; + + //杈撳叆妗� + var txtValue = new TextInputControl(Application.GetRealWidth(510), frame.Height - ControlCommonResourse.BottomLineHeight, false); + txtValue.X = btnArea.Right + Application.GetRealWidth(35); + txtValue.PlaceholderText = Language.StringByID(R.MyInternationalizationString.uPleaseInputNewPhoneNumber); + frame.AddChidren(txtValue); + + //绾� + var btnLine = new NormalViewControl(frame.Width, ControlCommonResourse.BottomLineHeight, false); + btnLine.Y = txtValue.Bottom; + btnLine.BackgroundColor = UserCenterColor.Current.ButtomLine; + frame.AddChidren(btnLine); + //鑱斿姩绾跨殑鐘舵�� + txtValue.btnLine = btnLine; + + if (string.IsNullOrEmpty(UserCenterResourse.UserInfo.Phone) == false) + { + //纭韬唤鎴愬姛锛岃缁戝畾鏂版墜鏈哄彿鐮� + var btnMsg1 = new NormalViewControl(800, 49, false); + btnMsg1.X = Application.GetRealWidth(196); + btnMsg1.Y = frame.Bottom + Application.GetRealHeight(40); + btnMsg1.TextSize = 12; + btnMsg1.TextColor = UserCenterColor.Current.TextGrayColor1; + btnMsg1.TextID = R.MyInternationalizationString.uAuthenticationSuccessAndBindNewPhone; + bodyFrameLayout.AddChidren(btnMsg1); + } + + //鍒濆鍖栭獙璇佺爜鎺т欢 + var btnCodeControl = new VerificationCodeControl(6); + btnCodeControl.Y = Application.GetRealHeight(475); + bodyFrameLayout.AddChidren(btnCodeControl); + btnCodeControl.InitControl(); + btnCodeControl.TxtCodeChangeEvent += (sender, e) => + { + if (btnErrorMsg.Visible == true) + { + btnErrorMsg.Visible = false; + } + }; + btnCodeControl.FinishInputEvent += (value) => + { + //鏍¢獙楠岃瘉鐮� + this.CheckVerificationCode(value); + }; + + //楠岃瘉鐮侀敊璇紝璇烽噸鏂拌緭鍏� + this.btnErrorMsg = new NormalViewControl(bodyFrameLayout.Width, Application.GetRealHeight(58), false); + btnErrorMsg.Y = Application.GetRealHeight(677); + btnErrorMsg.TextAlignment = TextAlignment.Center; + btnErrorMsg.TextColor = 0xfff75858; + btnErrorMsg.IsBold = true; + btnErrorMsg.TextID = R.MyInternationalizationString.uVerificationCodeErrorInputAgain; + bodyFrameLayout.AddChidren(btnErrorMsg); + btnErrorMsg.Visible = false; + + var btnOk = new BottomClickButton(688); + btnOk.Y = Application.GetRealHeight(792); + btnOk.TextID = R.MyInternationalizationString.uGetVerificationCode; + bodyFrameLayout.AddChidren(btnOk); + btnOk.oldBackgroundColor = UserCenterColor.Current.ClickButtonDefultColor; + btnOk.CanClick = false; + btnOk.ButtonClickEvent += (sender, e) => + { + this.btnErrorMsg.Visible = false; + string areaCode = btnArea.Text.Substring(1); + //妫�娴嬫墜鏈哄彿鐮� + if (this.CheckPhoneNumber(areaCode, txtValue.Text.Trim()) == false) + { + return; + } + //鍙戦�侀獙璇佺爜鍒版墜鏈� + this.SendCodeToPhone(btnOk, areaCode, txtValue.Text.Trim()); + }; + + txtValue.TextChangeEventHandler += (sender, value) => + { + if (value == string.Empty) + { + //鎸夐敭涓嶅彲鐢� + btnOk.CanClick = false; + } + else if (btnOk.CanClick == false) + { + //鎸夐敭鍙敤 + btnOk.CanClick = true; + } + }; + } + + #endregion + + #region 鈻� 鍙戦�侀獙璇佺爜鍒版墜鏈篲__________________ + + /// <summary> + /// 鍙戦�侀獙璇佺爜鍒版墜鏈� + /// </summary> + private async void SendCodeToPhone(BottomClickButton btnNext,string areaCode, string phoneNum) + { + var sendCodePra = new SendCodePra(); + sendCodePra.Account = phoneNum; + sendCodePra.AreaCode = Convert.ToInt32(areaCode); + + bool flage = await UserCenterLogic.GetResultStatuByRequestHttps("ZigbeeUsers/RegisterSendVerCode", false, sendCodePra); + if (flage == false) + { + return; + } + + //鍙互寮�濮嬫牎楠岄獙璇佺爜浜� + this.canCheckCode = true; + //璁板綍璧疯繖涓墜鏈�,闃叉鎭舵剰鍙樻洿 + this.newPhone = phoneNum; + //鎺т欢涓嶈兘鍐嶆鎸変笅 + btnNext.CanClick = false; + //?s鍚庨噸鍙� + string repeat = Language.StringByID(R.MyInternationalizationString.RepeatSend1); + //鏈夋晥鏃堕棿60绉� + int waitime = 60; + btnNext.Text = waitime + "s" + repeat; + + HdlThreadLogic.Current.RunThread(() => + { + while (this.Parent != null) + { + waitime--; + System.Threading.Thread.Sleep(1000); + if (waitime == 0) + { + Application.RunOnMainThread(() => + { + if (btnNext != null) + { + //鑾峰彇楠岃瘉鐮� + btnNext.TextID = R.MyInternationalizationString.uGetVerificationCode; + //鎸夐敭鍙互鎸変笅 + btnNext.CanClick = true; + } + }); + break; + } + Application.RunOnMainThread(() => + { + if (btnNext != null) + { + btnNext.Text = waitime + "s" + repeat; + } + }); + } + }); + } + + #endregion + + #region 鈻� 鏍¢獙楠岃瘉鐮乢________________________ + + /// <summary> + /// 楠岃瘉楠岃瘉鐮� + /// </summary> + /// <returns></returns> + private async void CheckVerificationCode(string code) + { + if (this.canCheckCode == false) + { + //楠岃瘉鐮侀敊璇紝璇烽噸鏂拌緭鍏� + this.btnErrorMsg.Visible = true; + this.btnErrorMsg.TextID = R.MyInternationalizationString.uVerificationCodeErrorInputAgain; + return; + } + var checkCodePra = new CheckCodePra(); + checkCodePra.Code = code; + checkCodePra.Account = newPhone; + + bool flage = await UserCenterLogic.GetResultStatuByRequestHttps("ZigbeeUsers/ValidatorCode", false, checkCodePra); + if (flage == false) + { + //楠岃瘉鐮侀敊璇紝璇烽噸鏂拌緭鍏� + this.btnErrorMsg.Visible = true; + this.btnErrorMsg.TextID = R.MyInternationalizationString.uVerificationCodeErrorInputAgain; + return; + } + + //鍙樻洿鎵嬫満鍙� + this.SaveNewPhoneNumber(); + } + + /// <summary> + /// 鍙樻洿鎵嬫満鍙� + /// </summary> + private async void SaveNewPhoneNumber() + { + var pra = new SaveNewPhoneNumPra(); + pra.Account = newPhone; + + bool flage = await UserCenterLogic.GetResultStatuByRequestHttps("ZigbeeUsers/BindAccount", false, pra); + if (flage == false) + { + //缁戝畾鎵嬫満澶辫触 + this.ShowMassage(ShowMsgType.Tip, Language.StringByID(R.MyInternationalizationString.uBindPhoneFail)); + return; + } + + //鎴愬姛缁戝畾鏂版墜鏈哄彿 + string msg = Language.StringByID(R.MyInternationalizationString.uBindPhoneNumberSuccess); + this.ShowMassage(ShowMsgType.Normal, msg, () => + { + //鍒锋柊涓汉淇℃伅鐢婚潰 + this.RefreshUserInfoForm(); + }); + } + + /// <summary> + /// 鍒锋柊涓汉淇℃伅鐢婚潰 + /// </summary> + private void RefreshUserInfoForm() + { + //濡傛灉淇敼鐨勬槸璐﹀彿鐨勮瘽,鍒欓噸鏂扮櫥褰� + if (UserCenterResourse.UserInfo.Phone == Shared.Common.Config.Instance.Account) + { + UserCenterLogic.ReLoginAgain(newPhone); + return; + } + UserCenterResourse.UserInfo.Phone = newPhone; + this.CloseForm(); + } + + #endregion + + #region 鈻� 涓�鑸柟娉昣__________________________ + + /// <summary> + /// 妫�娴嬫墜鏈哄彿 + /// </summary> + private bool CheckPhoneNumber(string areaCode, string phoneNum) + { + //杈撳叆涓虹┖ + if (phoneNum == string.Empty) + { + //璇疯緭鍏ユ柊鎵嬫満鍙风爜 + this.btnErrorMsg.Visible = true; + this.btnErrorMsg.TextID = R.MyInternationalizationString.uPleaseInputNewPhoneNumber; + return false; + } + + //妫�娴嬫墜鏈哄彿鏍煎紡 + if (HdlCheckLogic.Current.CheckPhoneNumber(phoneNum, areaCode) == false) + { + //杩欎笉鏄竴涓湁鏁堢殑鎵嬫満鍙� + this.btnErrorMsg.Visible = true; + this.btnErrorMsg.TextID = R.MyInternationalizationString.uThisIsNotPhoneNumberType; + return false; + } + return true; + } + + #endregion + + #region 鈻� 缁撴瀯浣揰____________________________ + + /// <summary> + /// 鍙戦�侀獙璇佺爜鐨勫惎鍔ㄥ弬鏁� + /// </summary> + private class SendCodePra + { + /// <summary> + /// 鐢ㄦ埛璐﹀彿 + /// </summary> + public string Account = string.Empty; + /// <summary> + /// 鍏徃缂栧彿,鍥藉唴浣跨敤鎵嬫満鐭俊楠岃瘉鐮佹椂锛屾瀛楁濉叆0锛屽浗澶栨墜鏈虹煭淇¢獙璇佺爜锛屾瀛楁濉叆4 + /// </summary> + public int Company = Common.CommonPage.PhoneZoneStr == "86" ? 0 : 4; + /// <summary> + /// 璇█ + /// </summary> + public string Language = Shared.Language.CurrentLanguage; + /// <summary> + /// 鍥藉鍦板尯浠g爜锛屾墜鏈哄彿鍙戦�侀獙璇佺爜鏃朵娇鐢� + /// </summary> + public int AreaCode = 0; + } + + /// <summary> + /// 鍙戦�侀獙璇佺爜鐨勫惎鍔ㄥ弬鏁� + /// </summary> + private class CheckCodePra + { + /// <summary> + /// 鐢ㄦ埛璐﹀彿 + /// </summary> + public string Account = string.Empty; + /// <summary> + /// 楠岃瘉鐮� + /// </summary> + public string Code = "0"; + /// <summary> + /// 璇█ + /// </summary> + public string Language = Shared.Language.CurrentLanguage; + /// <summary> + /// 鍥藉鍦板尯浠g爜锛屾墜鏈哄彿鍙戦�侀獙璇佺爜鏃朵娇鐢� + /// </summary> + public int AreaCode = 0; + } + + /// <summary> + /// 淇濆瓨鏂版墜鏈哄彿鐨勫惎鍔ㄥ弬鏁� + /// </summary> + private class SaveNewPhoneNumPra + { + /// <summary> + /// 鏂扮敤鎴疯处鍙� + /// </summary> + public string Account = string.Empty; + } + + #endregion + } +} -- Gitblit v1.8.0