From 9aa32bd5ed75d54b2141b6c91f163d43216a3643 Mon Sep 17 00:00:00 2001
From: wxr <464027401@qq.com>
Date: 星期五, 06 十二月 2019 13:14:02 +0800
Subject: [PATCH] 20191206

---
 HDL_ON/UI/UI1-Login/BLL/LoginPageBLL.cs |  344 ++++++++++++++++++++++++++++++++++++++------------------
 1 files changed, 232 insertions(+), 112 deletions(-)

diff --git a/HDL_ON/UI/UI1-Login/BLL/LoginPageBLL.cs b/HDL_ON/UI/UI1-Login/BLL/LoginPageBLL.cs
index a221911..285d2d9 100644
--- a/HDL_ON/UI/UI1-Login/BLL/LoginPageBLL.cs
+++ b/HDL_ON/UI/UI1-Login/BLL/LoginPageBLL.cs
@@ -1,6 +1,7 @@
 锘縰sing System;
+using System.Text.RegularExpressions;
 using System.Threading;
-using HDL_ON.DAL.Server;
+using System.Collections.Generic;
 using HDL_ON.UI.CSS;
 using Shared;
 
@@ -17,11 +18,11 @@
             LoadPage_SwitchLoginType();
             LoadMethod_VisiblePassword();
             LoadPage_SwitchLoginMode();
-            LoadMethod_LoginMethod();
+            LoadEvent_Login();
             LoadPage_SelectionEditText();
             LoadPage_RegisterPage();
             GetVerificationCode();
-
+            LoadMethod_ForgetPassword();
         }
 
         /// <summary>
@@ -31,33 +32,32 @@
         {
             btnGetVerificationCode.MouseUpEventHandler += (sender, e) =>
             {
-#if DEBUG
-                etAccount.Text = "17576024298";
-#endif
-                string phoneNumber = etAccount.Text.Trim();
-                btnGetVerificationCode.Enable = false;
-                btnGetVerificationCode.TextColor = CSS_Color.PromptingColor1;
-                int time = 60;
-                new Thread(() =>
+                if (btnGetVerificationCode.IsSelected)
                 {
-                    while (time != 0)
+                    string phoneNumber = etAccount.Text.Trim();
+                    btnGetVerificationCode.IsSelected = false;
+                    btnGetVerificationCode.TextColor = CSS_Color.PromptingColor1;
+                    int time = 60;
+                    new Thread(() =>
                     {
-                        time--;
+                        while (time < 0)
+                        {
+                            time--;
+                            Application.RunOnMainThread(() =>
+                            {
+                                btnGetVerificationCode.Text = time.ToString() + "s";
+                            });
+                            Thread.Sleep(1000);
+                        }
                         Application.RunOnMainThread(() =>
                         {
-                            btnGetVerificationCode.Text = time.ToString() + "s";
+                            btnGetVerificationCode.IsSelected = true;
+                            btnGetVerificationCode.TextID = InternationalizationString.GetVerificationCode;
                         });
-                        Thread.Sleep(1000);
-                    }
-                })
-                { IsBackground = true }.Start();
-                //妫�鏌ユ墜鏈烘槸鍚﹀凡缁忚娉ㄥ唽
-                var checkPhoneResult = pm.IsExistingAccount(etAccount.Text.Trim());
-                //鎵嬫満宸茬粡琚敞鍐�
-                if (checkPhoneResult.StateCode == HttpRequesResult.SUCCESS.ToString())
-                {
+                    })
+                    { IsBackground = true }.Start();
                     //鑾峰彇楠岃瘉鐮�
-                    pm.GetPhoneVerificationCode(phoneNumber,MainPage.Company);
+                    pm.GetPhoneLoginVerCode(phoneNumber);
                 }
             };
         }
@@ -248,7 +248,7 @@
         /// <summary>
         /// 鐧诲綍鎸夐挳鐐瑰嚮浜嬩欢
         /// </summary>
-        void LoadMethod_LoginMethod()
+        void LoadEvent_Login()
         {
             btnLogin.MouseUpEventHandler += (sender, e) =>
             {
@@ -256,9 +256,40 @@
                 {
                     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(InternationalizationString.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(InternationalizationString.PlsEntryCorrectEmailAddress),
+                                CloseTime = 3,
+                                Direction = AMPopTipDirection.None
+                            };
+                            tip.Show(bodyView);
+                            return;
+                        }
+                    }
+
                     //鍒涘缓鐧诲綍绾跨▼
-                    var loginThread = LoadMethod_LoginThread();
-                    LoadPage_WaitPage(loginThread);
+                    var loginThread = LoadThread_Login();
+                    waitPage = new Loading();
+                    new WaitPageMothed().LoadPage_WaitPage(loginThread, bodyView, waitPage);
 
                 }
             };
@@ -289,96 +320,37 @@
         }
 
         /// <summary>
-        /// 鍔犺浇绛夊緟鐣岄潰
-        /// </summary>
-        void LoadPage_WaitPage(Thread thread)
-        {
-            waitPage = new Loading();
-            bodyView.AddChidren(waitPage);
-            waitPage.Start(Language.StringByID(InternationalizationString.PleaseWait));
-            var showedTime = DateTime.Now;
-            //濡傛灉绛夊緟浜嬩欢杩囬暱锛屽彲浠ュ厑璁哥敤鎴峰彇娑堝綋鍓嶆搷浣�
-            waitPage.MouseUpEventHandler += (sender, e) =>
-            {
-                if (showedTime.AddSeconds(30) > DateTime.Now)
-                {
-                    waitPage.RemoveFromParent();
-                    waitPage = null;
-                    thread.Abort();
-                }
-            };
-            thread.Start();
-        }
-
-        /// <summary>
         /// 鍔犺浇鐧诲綍绾跨▼
         /// </summary>
-        Thread LoadMethod_LoginThread()
+        Thread LoadThread_Login()
         {
             var loginThread = new Thread(() =>
             {
                 try
                 {
-                    var loginResult = pm.LoginByPassword(account,password,MainPage.Company);
-                    Application.RunOnMainThread(() =>
+                    //鐧诲綍
+                    var loginResult = LoadMethod_Login();
+                    if (loginResult)
                     {
-                        waitPage.RemoveFromParent();
-                        waitPage = null;
-                    });
-                    //鐧诲綍鎴愬姛
-                    if (loginResult.StateCode == HttpRequesResult.SUCCESS.ToString())
-                    {
-                        var loginResponseData = Newtonsoft.Json.JsonConvert.DeserializeObject<UserLoginRes>(loginResult.ResponseData.ToString());
-                        //璁板綍鐢ㄦ埛鏁版嵁
-                        MainPage.LoginUser = new UserInfo
+                        //鑾峰彇浣忓畢淇℃伅
+                        var getResidencesResult = LoadMethod_GetResidences();
+                        if (getResidencesResult)
                         {
-                            ID = loginResponseData.UserId,
-                            MasterID = loginResponseData.MainUserId,
-                            AccountType = loginResponseData.UserType,
-                            AccountString = account,
-                            Password = password,
-                            LastTime = DateTime.Now,
-                            SIP_Account = loginResponseData.AllVisionRegisterDevUserNameGuid,
-                        };
-                        MainPage.LoginUser.SaveUserInfo();
-                        MainPage.Log("鐧诲綍鎴愬姛銆�");
-                        //璺宠浆椤甸潰----
-                        Application.RunOnMainThread(() =>
-                        {
-                            var personalCenterPage = new UI2.PersonalCenterPage();
-                            personalCenterPage.BackgroundColor = CSS_Color.MainBackgroundColor;
-                            MainPage.BaseView.AddChidren(personalCenterPage);
-                            personalCenterPage.LoadView();
-                        });
+                            /*
+                             * Wait : 鎺ㄩ�佹敞鍐�
+                             */
 
-                        /*
-                         * Wait : 鎺ㄩ�佹敞鍐�
-                         */
-                    }
-                    //鐧诲綍澶辫触
-                    else
-                    {
-                        Application.RunOnMainThread(() =>
-                        {
-                            //鎻愮ず鍘熷洜
-                            var tip = new Tip()
+                            Application.RunOnMainThread(() =>
                             {
-                                Text = loginResult.ErrorInfo,
-                                CloseTime = 3,
-                                Direction = AMPopTipDirection.None
-                            };
-                            tip.Show(bodyView);
-                            //if (loginResult.StateCode == HttpRequesResult.LoginFailed_AccountErorr.ToString())
-                            {
-                                btnAccountViewBottomLine.BackgroundColor = CSS_Color.AuxiliaryColor2;
-                                btnAccountViewBottomLine.Height = Application.GetRealHeight(2);
-                                //}
-                                //else if (loginResult.StateCode == HttpRequesResult.LoginFailed_PasswordErorr.ToString())
-                                //{
-                                btnPasswordViewBottomLine.BackgroundColor = CSS_Color.AuxiliaryColor2;
-                                btnPasswordViewBottomLine.Height = Application.GetRealHeight(2);
-                            }
-                        });
+                                waitPage.RemoveFromParent();
+                                waitPage = null;
+
+                                //璺宠浆椤甸潰----
+                                var ss = new UserPage();
+                                MainPage.BaseView.AddChidren(ss);
+                                ss.LoadPage();
+                            });
+                        }
                     }
                 }
                 catch (Exception ex)
@@ -388,6 +360,122 @@
             })
             { 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(InternationalizationString.LoginFailed_AccountOrPasswordError);
+                        break;
+                    case "Self:Net_Error":
+                        tipStr = Language.StringByID(InternationalizationString.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.ChangeResidence(MainPage.LoginUser.HomeLists[0]);
+                    UserConfig.Instance.SaveUserConfig();
+                }
+                result = true;
+            }
+            else
+            {
+                var tipStr = "Server erorr";
+                switch (responsePack.StateCode)
+                {
+                    case "NoLogin":
+                        tipStr = Language.StringByID(InternationalizationString.InvalidLoginCertificate);
+                        break;
+                }
+                Application.RunOnMainThread(() =>
+                {
+                    //鎻愮ず鍘熷洜
+                    var tip = new Tip()
+                    {
+                        Text = tipStr,
+                        CloseTime = 3,
+                        Direction = AMPopTipDirection.None
+                    };
+                    tip.Show(bodyView);
+                });
+
+            }
+            return result;
         }
 
         /// <summary>
@@ -399,13 +487,17 @@
                 //鍥炶皟浜嬩欢
                 Action<string> callBackAction = (callBackPar_Action) =>
                 {
-                    try
+                    Application.RunOnMainThread(() =>
                     {
-                        etAccount.Text = callBackPar_Action;
-                    }
-                    catch (Exception ex) {
-                        MainPage.Log($"login callBackAction : {ex.Message}");
-                    }
+                        try
+                        {
+                            etAccount.Text = callBackPar_Action;
+                        }
+                        catch (Exception ex)
+                        {
+                            MainPage.Log($"login callBackAction : {ex.Message}");
+                        }
+                    });
                 };
 
                 var registerPage = new RegisterPage(callBackAction);
@@ -413,5 +505,33 @@
                 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