From 7167334c0e89dd84827d59e726123d14776e3a09 Mon Sep 17 00:00:00 2001
From: 陈嘉乐 <cjl@hdlchina.com.cn>
Date: 星期二, 16 六月 2020 11:14:13 +0800
Subject: [PATCH] 2020-06-16-1

---
 HDL_ON/UI/UI1-Login/LoginPageBLL.cs |  289 ++++++++++++++++++++++++++++++++++++++++++++-------------
 1 files changed, 221 insertions(+), 68 deletions(-)

diff --git a/HDL_ON/UI/UI1-Login/LoginPageBLL.cs b/HDL_ON/UI/UI1-Login/LoginPageBLL.cs
index 9653896..b3399d7 100644
--- a/HDL_ON/UI/UI1-Login/LoginPageBLL.cs
+++ b/HDL_ON/UI/UI1-Login/LoginPageBLL.cs
@@ -4,6 +4,7 @@
 using System.Collections.Generic;
 using HDL_ON.UI.CSS;
 using Shared;
+using HDL_ON.Entity;
 
 namespace HDL_ON.UI.UI1Login
 {
@@ -35,12 +36,40 @@
                 if (btnGetVerificationCode.IsSelected)
                 {
                     string phoneNumber = etAccount.Text.Trim();
-                    btnGetVerificationCode.IsSelected = false;
+                    if (string.IsNullOrEmpty(phoneNumber))
+                    {
+                        var tip = new Tip()
+                        {
+                            Text = Language.StringByID(StringId.PlsEntryPhoneNumber),
+                            CloseTime = 3,
+                            Direction = AMPopTipDirection.None
+                        };
+                        tip.Show(bodyView);
+
+                        btnAccountViewBottomLine.BackgroundColor = CSS_Color.AuxiliaryColor2;
+                        btnAccountViewBottomLine.Height = Application.GetRealHeight(2);
+                        return;
+                    }
+                    if (!Regex.IsMatch(account, @"^[1]+\d{10}") || (account.Length != 11))
+                    {
+                        var tip = new Tip()
+                        {
+                            Text = Language.StringByID(StringId.PlsEntryCorrectMobilNeumber),
+                            CloseTime = 3,
+                            Direction = AMPopTipDirection.None
+                        };
+                        tip.Show(bodyView);
+
+                        btnAccountViewBottomLine.BackgroundColor = CSS_Color.AuxiliaryColor2;
+                        btnAccountViewBottomLine.Height = Application.GetRealHeight(2);
+                        return;
+                    }
+                    btnGetVerificationCode.IsSelected = false ;
                     btnGetVerificationCode.TextColor = CSS_Color.PromptingColor1;
                     int time = 60;
                     new Thread(() =>
                     {
-                        while (time < 0)
+                        while (time > 0)
                         {
                             time--;
                             Application.RunOnMainThread(() =>
@@ -56,8 +85,61 @@
                         });
                     })
                     { IsBackground = true }.Start();
-                    //鑾峰彇楠岃瘉鐮�
-                    pm.GetPhoneLoginVerCode(phoneNumber);
+                    new Thread(() =>
+                    {
+                        //鑾峰彇楠岃瘉鐮�
+                        var result = pm.GetPhoneLoginVerCode(phoneNumber);
+                        if (result.StateCode.ToUpper() == "SUCCESS")
+                        {
+                        }
+                        //鐧诲綍澶辫触
+                        else
+                        {
+                            string tipStr = "Sever erorr";
+                            switch (result.StateCode.ToUpper())
+                            {
+                                case "USERNAMEORPWDERROR":
+                                    tipStr = Language.StringByID(StringId.LoginFailed_AccountOrPasswordError);
+                                    Application.RunOnMainThread(() =>
+                                    {
+                                        btnPasswordViewBottomLine.BackgroundColor = CSS_Color.AuxiliaryColor2;
+                                        btnPasswordViewBottomLine.Height = Application.GetRealHeight(2);
+                                    });
+                                    break;
+                                case "ACCOUNTNOEXISTS":
+                                    tipStr = Language.StringByID(StringId.ACCOUNTNOEXISTS);
+                                    Application.RunOnMainThread(() =>
+                                    {
+                                        btnAccountViewBottomLine.BackgroundColor = CSS_Color.AuxiliaryColor2;
+                                        btnAccountViewBottomLine.Height = Application.GetRealHeight(2);
+                                    });
+                                    break;
+                                case "SENDFAIL":
+                                    tipStr = Language.StringByID(StringId.FailedToSendVerificationCode);
+                                    Application.RunOnMainThread(() =>
+                                    {
+                                        btnAccountViewBottomLine.BackgroundColor = CSS_Color.AuxiliaryColor2;
+                                        btnAccountViewBottomLine.Height = Application.GetRealHeight(2);
+                                    });
+                                    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);
+                            });
+                        }
+                    })
+                    { IsBackground = true }.Start();
                 }
             };
         }
@@ -75,11 +157,11 @@
                 btnEmailLogin.TextSize = CSS_FontSize.TextFontSize;
                 btnPhoneLogin.TextColor = CSS_Color.MainColor;
                 btnPhoneLogin.TextSize = CSS_FontSize.EmphasisFontSize_Secondary;
-                etAccount.PlaceholderText = Language.StringByID(StringId.PlsEntryCorrectMobilNeumber);
+                etAccount.PlaceholderText = Language.StringByID(StringId.PlsEntryPhoneNumber);
                 #endregion
 
                 #region 鍒囨崲鐧诲綍鏂瑰紡鍙婂浘鏍�
-                logintType = 0;
+                loginType = 0;
                 if (btnAccountIcon.Parent != null)
                 {
                     btnAccountIcon.RemoveFromParent();
@@ -102,7 +184,7 @@
                 #endregion
 
                 #region 鍒囨崲鐧诲綍绫诲瀷鍙婂浘鏍�
-                logintType = 1;
+                loginType = 1;
                 if (btnGlobalRoaming.Parent != null)
                 {
                     btnGlobalRoaming.RemoveFromParent();
@@ -147,6 +229,7 @@
                     btnSwitchLoginMode.TextID = StringId.VerificationCodeLogin;
                     passwordView.AddChidren(btnVisiblePassword);
                     passwordView.AddChidren(btnDividingLineVertical_PasswordView2);
+                    etPassword.PlaceholderText = Language.StringByID(StringId.PlsEntryPassword);
                     passwordView.AddChidren(btnForgetPassword);
                     btnPasswordIcon.IsSelected = false;
                     if (btnGetVerificationCode.Parent != null)
@@ -159,8 +242,13 @@
                 //楠岃瘉鐮佺櫥褰�
                 else if (logintMode == 1)
                 {
+                    if (Regex.IsMatch(account, @"^[1]+\d{10}") && (account.Length == 11))
+                    {
+                        btnGetVerificationCode.IsSelected = true;
+                    }
                     btnSwitchLoginMode.TextID = StringId.PasswordLogin;
                     passwordView.AddChidren(btnGetVerificationCode);
+                    etPassword.PlaceholderText = Language.StringByID(StringId.PlsEntryVerificationCode);
                     btnPasswordIcon.IsSelected = true;
                     if (btnVisiblePassword.Parent != null)
                     {
@@ -181,7 +269,7 @@
         }
 
         /// <summary>
-        /// 鏂囨湰妗嗛�変腑浜嬩欢
+        /// 鏂囨湰妗嗙劍鐐瑰彉鍖栦簨浠�
         /// </summary>
         void LoadPage_SelectionEditText()
         {
@@ -197,6 +285,47 @@
                 {
                     btnAccountViewBottomLine.BackgroundColor = CSS_Color.DividingLineColor;
                     btnAccountViewBottomLine.Height = Application.GetRealHeight(1);
+                    account = etAccount.Text.Trim();
+                    if (account.Length == 0)
+                        return;
+                    if (loginType == 0)
+                    {
+                        if (!Regex.IsMatch(account, @"^[1]+\d{10}") || (account.Length != 11))
+                        {
+                            var tip = new Tip()
+                            {
+                                Text = Language.StringByID(StringId.PlsEntryCorrectMobilNeumber),
+                                CloseTime = 3,
+                                Direction = AMPopTipDirection.None
+                            };
+                            tip.Show(bodyView);
+
+                            btnAccountViewBottomLine.BackgroundColor = CSS_Color.AuxiliaryColor2;
+                            btnAccountViewBottomLine.Height = Application.GetRealHeight(2);
+                        }
+                        else
+                        {
+                            if (btnGetVerificationCode.Text == Language.StringByID(StringId.GetVerificationCode))
+                            {
+                                btnGetVerificationCode.IsSelected = true;
+                            }
+                        }
+                    }
+                    else
+                    {
+                        if (!Regex.IsMatch(account, "([a-zA-Z0-9_\\.\\-])+\\@(([a-zA-Z0-9\\-])+\\.)+([a-zA-Z0-9]{2,5})+"))
+                        {
+                            var tip = new Tip()
+                            {
+                                Text = Language.StringByID(StringId.PlsEntryCorrectEmailAddress),
+                                CloseTime = 3,
+                                Direction = AMPopTipDirection.None
+                            };
+                            tip.Show(bodyView);
+                            btnAccountViewBottomLine.BackgroundColor = CSS_Color.AuxiliaryColor2;
+                            btnAccountViewBottomLine.Height = Application.GetRealHeight(2);
+                        }
+                    }
                 }
             };
             //褰撶劍鐐瑰湪瀵嗙爜鏂囨湰妗嗘椂锛屾枃鏈搴曠嚎鐐逛寒
@@ -257,9 +386,9 @@
                     account = etAccount.Text.Trim();
                     password = etPassword.Text.Trim();
 
-                    if (logintType == 0)
+                    if (loginType == 0)
                     {
-                        if (!Regex.IsMatch(account, @"^[1]+\d{9}"))
+                        if (!Regex.IsMatch(account, @"^[1]+\d{10}") && (account.Length == 11))
                         {
                             var tip = new Tip()
                             {
@@ -273,7 +402,7 @@
                     }
                     else
                     {
-                        if (!Regex.IsMatch(account, "^[\\w-]+@[\\w-]+\\.(com|net|org|edu|mil|tv|biz|info)$"))
+                        if (!Regex.IsMatch(account, "([a-zA-Z0-9_\\.\\-])+\\@(([a-zA-Z0-9\\-])+\\.)+([a-zA-Z0-9]{2,5})+"))
                         {
                             var tip = new Tip()
                             {
@@ -289,7 +418,7 @@
                     //鍒涘缓鐧诲綍绾跨▼
                     var loginThread = LoadThread_Login();
                     waitPage = new Loading();
-                    new WaitPageMothed().LoadPage_WaitPage(loginThread, bodyView, waitPage);
+                    new PublicAssmebly().LoadPage_WaitPage(loginThread, bodyView, waitPage);
 
                 }
             };
@@ -342,9 +471,6 @@
 
                             Application.RunOnMainThread(() =>
                             {
-                                waitPage.RemoveFromParent();
-                                waitPage = null;
-
                                 //璺宠浆椤甸潰----
                                 MainPage.GoUserPage();
                             });
@@ -354,6 +480,18 @@
                 catch (Exception ex)
                 {
                     MainPage.Log($"LoginPage : {ex.Message}");
+                }
+                finally
+                {
+                    Application.RunOnMainThread(() =>
+                    {
+                        if (waitPage != null)
+                        {
+                            waitPage.RemoveFromParent();
+                            waitPage = null;
+                        }
+
+                    });
                 }
             })
             { IsBackground = true };
@@ -365,9 +503,18 @@
         bool LoadMethod_Login()
         {
             var result = false;
-            //璋冪敤鐧诲綍鎺ュ彛
-            var loginResult = pm.LoginByPassword(account, password);
-            if (loginResult.StateCode == "SUCCESS")
+            ResponsePack loginResult;
+            if (logintMode == 0)
+            {
+                //璋冪敤鐧诲綍鎺ュ彛
+                loginResult = pm.LoginByPassword(account, password);
+            }
+            else
+            {
+                //璋冪敤鐧诲綍鎺ュ彛
+                loginResult = pm.LoginValidCode(account, password);
+            }
+            if (loginResult.StateCode.ToUpper() == "SUCCESS")
             {
                 var loginDataStr = Newtonsoft.Json.Linq.JObject.FromObject(loginResult.ResponseData);
 
@@ -375,16 +522,23 @@
                 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,
+                    masterID = (int)loginDataStr.GetValue("MainUserID"),
+                    accountType = (int)loginDataStr.GetValue("UserType"),
+                    accountString = account,
+                    password = password,
+                    lastTime = DateTime.Now,
                     SIP_Account = loginDataStr.GetValue("AllVisionRegisterDevUserNameGuid").ToString(),
+                    userName = loginDataStr.GetValue("Remark").ToString(),
                 };
                 MainPage.LoginUser.SaveUserInfo();
                 MainPage.Log("鐧诲綍鎴愬姛銆�");
                 result = true;
+                //鑾峰彇鐢ㄦ埛淇℃伅
+                new Thread(() =>
+                {
+                    pm.GetUserInfo();
+                })
+                { IsBackground = true }.Start();
             }
             //鐧诲綍澶辫触
             else
@@ -392,8 +546,32 @@
                 string tipStr = "Sever erorr";
                 switch (loginResult.StateCode)
                 {
+                    case "ValidCodeAndPhoneNoEqual":
+                        tipStr = Language.StringByID(StringId.VerificationCodeError);
+                        Application.RunOnMainThread(() =>
+                        {
+                            btnPasswordViewBottomLine.BackgroundColor = CSS_Color.AuxiliaryColor2;
+                            btnPasswordViewBottomLine.Height = Application.GetRealHeight(2);
+                        });
+                        break;
                     case "USERNAMEORPWDERROR":
                         tipStr = Language.StringByID(StringId.LoginFailed_AccountOrPasswordError);
+                        Application.RunOnMainThread(() =>
+                        {
+                            btnPasswordViewBottomLine.BackgroundColor = CSS_Color.AuxiliaryColor2;
+                            btnPasswordViewBottomLine.Height = Application.GetRealHeight(2);
+                        });
+                        break;
+                    case "ACCOUNTNOEXISTS":
+                        tipStr = Language.StringByID(StringId.ACCOUNTNOEXISTS);
+                        Application.RunOnMainThread(() =>
+                        {
+                            btnAccountViewBottomLine.BackgroundColor = CSS_Color.AuxiliaryColor2;
+                            btnAccountViewBottomLine.Height = Application.GetRealHeight(2);
+                        });
+                        break;
+                    case "NoRecord":
+                        tipStr = Language.StringByID(StringId.PlsGetTheVerificationCode);
                         break;
                     case "Self:Net_Error":
                         tipStr = Language.StringByID(StringId.NetworkAnomaly);
@@ -402,6 +580,7 @@
                 //璐﹀彿鎴栬�呭瘑鐮侀敊璇�
                 Application.RunOnMainThread(() =>
                 {
+                    waitPage.Hide();
                     //鎻愮ず鍘熷洜
                     var tip = new Tip()
                     {
@@ -410,8 +589,6 @@
                         Direction = AMPopTipDirection.None
                     };
                     tip.Show(bodyView);
-                    btnPasswordViewBottomLine.BackgroundColor = CSS_Color.AuxiliaryColor2;
-                    btnPasswordViewBottomLine.Height = Application.GetRealHeight(2);
                 });
             }
             return result;
@@ -424,38 +601,16 @@
         {
             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();
-                }
+
+            if (responsePack == "Success")
+            {
                 result = true;
             }
             else
             {
                 var tipStr = "Server erorr";
-                switch (responsePack.StateCode)
+                switch (responsePack)
                 {
                     case "NoLogin":
                         tipStr = Language.StringByID(StringId.InvalidLoginCertificate);
@@ -472,7 +627,6 @@
                     };
                     tip.Show(bodyView);
                 });
-
             }
             return result;
         }
@@ -485,22 +639,21 @@
             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}");
-                        }
-                    });
-                };
+                //Action callBackAction = () =>
+                //{
+                //    Application.RunOnMainThread(() =>
+                //    {
+                //        try
+                //        {
+                //        }
+                //        catch (Exception ex)
+                //        {
+                //            MainPage.Log($"login callBackAction : {ex.Message}");
+                //        }
+                //    });
+                //};
 
-                var registerPage = new RegisterPage(callBackAction);
+                var registerPage = new RegisterPage();
                 registerPage.Show();
                 registerPage.ShowDialog();
             };
@@ -534,4 +687,4 @@
             };
         }
     }
-}
+}
\ No newline at end of file

--
Gitblit v1.8.0