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