From e87985ec1dcb69beedaf9f95e8e7aba14b7c08d6 Mon Sep 17 00:00:00 2001
From: JLChen <551775569@qq.com>
Date: 星期三, 09 十二月 2020 18:50:14 +0800
Subject: [PATCH] 2020-12-09 1.信息中心,增加下划线和点击Alter提醒详情。

---
 HDL_ON/UI/UI2/4-PersonalCenter/PersonalDataPageBLL.cs |  401 ++++++++++++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 323 insertions(+), 78 deletions(-)

diff --git a/HDL_ON/UI/UI2/4-PersonalCenter/PersonalDataPageBLL.cs b/HDL_ON/UI/UI2/4-PersonalCenter/PersonalDataPageBLL.cs
index 90f7720..ffbbe89 100644
--- a/HDL_ON/UI/UI2/4-PersonalCenter/PersonalDataPageBLL.cs
+++ b/HDL_ON/UI/UI2/4-PersonalCenter/PersonalDataPageBLL.cs
@@ -1,4 +1,6 @@
 锘縰sing System;
+using System.Threading;
+using HDL_ON.DAL.Server;
 using HDL_ON.Entity;
 using Shared;
 
@@ -18,6 +20,8 @@
             LoadEvent_ChangeBindEmail();
             LoadEvent_ChangeBindPhone();
             LoadEvent_SkipModifyPassword();
+            LoadEvent_MyQRcode();
+            GetUserInfo();
         }
 
         /// <summary>
@@ -31,6 +35,111 @@
             };
         }
 
+        ///// <summary>
+        ///// 閫�鍑虹櫥褰曟搷浣�
+        ///// </summary>
+        //void Logout()
+        //{
+        //    #region 淇濆瓨鏈湴鏁版嵁鑷虫枃浠跺す
+        //    string oldRegionRootPath = FileUtils.CreateRegionBackup(DB_ResidenceData.residenceData.CurReginID.ToString());
+        //    new System.Threading.Thread(() =>
+        //    {
+        //        try
+        //        {
+        //            var backuplist = FileUtils.ReadFiles();
+        //            //绉诲姩鏂囦欢
+        //            foreach (var fileName in backuplist)
+        //            {
+        //                System.IO.FileInfo fileInfo = new System.IO.FileInfo(FileUtils.RootPath + fileName);
+        //                if (fileInfo.Exists)
+        //                {
+        //                    fileInfo.MoveTo(oldRegionRootPath + fileName);
+        //                    MainPage.Log("move file : " + fileName);
+        //                }
+        //            }
+        //            FileUtils.DeleteRegionFiles(oldRegionRootPath);
+        //        }
+        //        catch (Exception ex)
+        //        {
+        //            MainPage.Log($"xxx:{ex.Message}");
+        //        }
+        //        finally
+        //        {
+        //            FileUtils.DeleteAllFile();
+        //        }
+        //    }).Start();
+        //    #endregion
+
+        //    //2.娉ㄩ攢鎺ㄩ��
+        //    new HttpServerRequest().SignOutPush();
+        //    //3.璺宠浆鐧诲綍椤甸潰
+        //    UserInfo.Current.LastTime = DateTime.MinValue;
+        //    UserInfo.Current.headImagePagePath = "LoginIcon/2.png";//閲嶇疆鐢ㄦ埛澶村儚
+        //    UserInfo.Current.SaveUserInfo();
+        //    MainPage.GoLoginPage(UserInfo.Current);
+        //    DB_ResidenceData.residenceData.EixtAccount();
+        //}
+
+        /// <summary>
+        /// 閫�鍑虹櫥褰曟搷浣�
+        /// </summary>
+        public void LogoutNew()
+        {
+            //鍔犺浇Loading鏁堟灉
+            var waitPage = new Loading();
+            bodyView.AddChidren(waitPage);
+            waitPage.Start(Language.StringByID(StringId.PleaseWait));
+
+            new Thread(() =>
+            {
+                try
+                {
+                    #region 淇濆瓨鏈湴鏁版嵁鑷虫枃浠跺す
+                    string oldRegionRootPath = FileUtils.CreateRegionBackup(DB_ResidenceData.residenceData.CurReginID.ToString());
+                    //娓呯┖涔嬪墠鐨勪綇瀹呮枃浠�
+                    FileUtils.DeleteRegionFiles(oldRegionRootPath);
+                    var backuplist = FileUtils.ReadFiles();
+                    //绉诲姩鏂囦欢
+                    foreach (var fileName in backuplist)
+                    {
+                        System.IO.FileInfo fileInfo = new System.IO.FileInfo(FileUtils.RootPath + fileName);
+                        if (fileInfo.Exists)
+                        {
+                            fileInfo.MoveTo(oldRegionRootPath + fileName);
+                            MainPage.Log("move file : " + fileName);
+                        }
+                    }
+                    #endregion
+                }
+                catch (Exception ex)
+                {
+                    MainPage.Log($"xxx:{ex.Message}");
+                }
+                finally
+                {
+                    FileUtils.DeleteAllFile();
+                    //2.娉ㄩ攢鎺ㄩ��
+                    new HttpServerRequest().SignOutPush();
+                    //3.璺宠浆鐧诲綍椤甸潰
+                    UserInfo.Current.LastTime = DateTime.MinValue;
+                    UserInfo.Current.headImagePagePath = "LoginIcon/2.png";//閲嶇疆鐢ㄦ埛澶村儚
+                    UserInfo.Current.SaveUserInfo();
+                    Shared.Application.RunOnMainThread(() =>
+                    {
+                        if (waitPage != null)
+                        {
+                            waitPage.RemoveFromParent();
+                            waitPage = null;
+                        }
+
+                        MainPage.GoLoginPage(UserInfo.Current);
+                        DB_ResidenceData.residenceData.EixtAccount();
+
+                    });
+                }
+            }).Start();
+        }
+
         /// <summary>
         /// 閫�鍑鸿处鍙风櫥褰曚簨浠�
         /// </summary>
@@ -38,11 +147,11 @@
         {
             btnLogout.MouseUpEventHandler += (sender, e) =>
             {
-                MainPage.LoginUser.lastTime = DateTime.MinValue;
-                MainPage.LoginUser.SaveUserInfo();
-                MainPage.GoLoginPage(MainPage.LoginUser);
-                FileUtils.DeleteAllFile();
-                DB_ResidenceData.residenceData.EixtAccount();
+                Action okAction = () =>
+                {
+                    LogoutNew();
+                };
+                new ConfirmDialog().ShowDialog(StringId.Tip, StringId.IfConfirmLogout, okAction);
             };
         }
 
@@ -55,7 +164,8 @@
             {
                 baseView.RemoveFromParent();
             };
-            baseView.MouseUpEventHandler = (sender, e) => {
+            baseView.MouseUpEventHandler = (sender, e) =>
+            {
                 baseView.RemoveFromParent();
             };
             btnCancel.MouseUpEventHandler = (sender, e) =>
@@ -70,24 +180,18 @@
             btnTakePicture.MouseUpEventHandler = (sender, e) =>
             {
                 btnTakePicture.IsSelected = false;
-                var pid = Guid.NewGuid();
-                CropImage.TakePicture((Action<string>)((imagePath) =>
+                
+                //鎷嶇収瑁佸壀
+                //var imageName = "headImage";
+                var imageName = Guid.NewGuid().ToString();
+                CropImage.TakePicture((imagePath) =>
                 {
-                    if (imagePath != null)
-                    {
-                        MainPage.LoginUser.headImagePagePath = imagePath.ToString();
-                        userHeadImageView.ImagePath = imagePath.ToString();
-                        updataHeadImage();
-                        new System.Threading.Thread(() =>
-                        {
-                            new DAL.Server.HttpServerRequest().UpdataUserHeadImage(imagePath);
-                        })
-                        { IsBackground = true }.Start();
-                        MainPage.LoginUser.SaveUserInfo();
-                        MainPage.Log("SelectPicture 瑁佸壀鍥剧墖杩斿洖璺緞: " + imagePath);
-                    }
-                }), pid.ToString(), 1, 1);
+                    CropImageCallBack(imagePath);
+
+                }, imageName, 1, 1);
+
                 pictureOptionView.RemoveFromParent();
+                baseView.RemoveFromParent();
             };
 
             btnAlbum.MouseUpEventHandler = (sender, e) =>
@@ -98,25 +202,119 @@
             btnAlbum.MouseUpEventHandler = (sender, e) =>
             {
                 btnAlbum.IsSelected = false;
-                var pid = Guid.NewGuid();
+                //浠庣浉鍐岄�夋嫨鍥剧墖瑁佸壀
+                var imageName = Guid.NewGuid().ToString();
+                //var imageName = "headImage";
                 CropImage.SelectPicture((imagePath) =>
                 {
-                    if (imagePath != null)
-                    {
-                        MainPage.LoginUser.headImagePagePath = imagePath.ToString();
-                        userHeadImageView.ImagePath = imagePath.ToString();
-                        updataHeadImage();
+                    CropImageCallBack(imagePath);
+                }, imageName, 1, 1);
 
-                        new System.Threading.Thread(() =>
-                        {
-                            new DAL.Server.HttpServerRequest().UpdataUserHeadImage(imagePath);
-                        })
-                        { IsBackground = true }.Start(); MainPage.LoginUser.SaveUserInfo();
-                        MainPage.Log("SelectPicture 瑁佸壀鍥剧墖杩斿洖璺緞: " + imagePath);
-                    }
-                }, pid.ToString(), 1, 1);
                 pictureOptionView.RemoveFromParent();
+                baseView.RemoveFromParent();
             };
+        }
+
+        /// <summary>
+        /// 瑁佸壀瀹岀収鐗囧洖璋冿紝缁熶竴澶勭悊
+        /// </summary>
+        /// <param name="selectImagePath">瑁佸壀鍚庣殑鐪熷疄璺緞</param>
+        void CropImageCallBack(string selectImagePath)
+        {
+            if (string.IsNullOrEmpty(selectImagePath) == true)
+            {
+                return;
+            }
+
+            //涓婁紶鎴愬姛鍒板洖璋�
+            Action<string> uploadSuccessAction = (imageUrl) =>
+            {
+                //鐢熸垚鍥剧墖
+                UserInfo.Current.headImagePagePath = imageUrl;
+                updataHeadImage();
+                UserInfo.Current.SaveUserInfo();
+            };
+
+            //涓婁紶鍥剧墖鍒颁簯绔�
+            UploadImage(selectImagePath, userHeadImageView, UserInfo.Current.ID, uploadSuccessAction);
+        }
+
+        /// <summary>
+        /// 涓婁紶鍥剧墖鏂规硶
+        /// </summary>
+        /// <param name="selectImagePath">瑁佸壀鍚庣殑鍥剧墖璺緞</param>
+        /// <param name="imageView"></param>
+        /// <param name="uploadSuccessAction"></param>
+        void UploadImage(string selectImagePath, ImageView imageView, string userId, Action<string> uploadSuccessAction)
+        {
+            try
+            {
+                MainPage.Log("SelectPicture 瑁佸壀鍥剧墖杩斿洖璺緞: " + selectImagePath);
+                //1.璇诲彇瑁佸壀鍚庣殑鍥剧墖锛岀劧鍚庡垹闄�
+                var imageBytes = Shared.IO.FileUtils.ReadFile(selectImagePath);
+                System.IO.File.Delete(selectImagePath);
+
+                var waitPage = new Loading();
+                bodyView.AddChidren(waitPage);
+                waitPage.Start(Language.StringByID(StringId.PleaseWait));
+                //寮�濮嬩笂浼�
+                new Thread(() =>
+                {
+                    try
+                    {
+                        var uploadImageObj = ImageUtlis.Current.GetHeadImageUploadKeyObj(userId);
+                        uploadImageObj.content = imageBytes;
+                        var imageUrl = ImageUtlis.Current.UploadImage(uploadImageObj);
+                        if (!string.IsNullOrEmpty(imageUrl) && imageUrl.Contains(userId))
+                        {
+                            //涓婁紶鎴愬姛
+                            Application.RunOnMainThread(() =>
+                            {
+                                Utlis.WriteLine("涓婁紶鎴愬姛锛�" + imageUrl);
+                                //1.2濡傛灉鏄嚜瀹氫箟鍥剧墖鍒犻櫎涔嬪墠鐨�
+                                if (!imageView.ImagePath.Contains("LoginIcon/2.png"))
+                                {
+                                    Utlis.WriteLine("鍒犻櫎: " + imageView.ImagePath);
+                                    System.IO.File.Delete(imageView.ImagePath);
+                                }
+                                //閲嶅懡鍚嶄繚瀛�
+                                FileUtils.WriteFileByBytes(imageUrl, imageBytes);
+                                imageView.ImagePath = null;
+                                imageView.ImageBytes = imageBytes;
+                                //涓婁紶鎴愬姛
+                                Utlis.ShowTip(Language.StringByID(StringId.UploadSuccessfully));
+                                uploadSuccessAction?.Invoke(imageUrl);
+                            });
+                        }
+                        else
+                        {
+                            //涓婁紶澶辫触
+                            Application.RunOnMainThread(() =>
+                            {
+                                //涓婁紶澶辫触
+                                Utlis.ShowTip(Language.StringByID(StringId.UploadFailed));
+                            });
+                        }
+
+                    }
+                    catch (Exception ex)
+                    {
+                    }
+                    finally
+                    {
+                        Application.RunOnMainThread(() =>
+                        {
+                            if (waitPage != null)
+                            {
+                                waitPage.RemoveFromParent();
+                                waitPage = null;
+                            }
+                        });
+                    }
+                })
+                { IsBackground = true }.Start();
+            }
+            catch { }
         }
 
         /// <summary>
@@ -132,27 +330,28 @@
                     {
                         new Tip()
                         {
-                            CloseTime = 3,
+                            CloseTime = 1,
                             Text = Language.StringByID(StringId.UesrNameCannotBeEmpty),
                             Direction = AMPopTipDirection.None,
                         }.Show(bodyView);
                         return;
                     }
-                    if(str == MainPage.LoginUser.userName)
+                    if (str == UserInfo.Current.userName)
                     {
                         return;
                     }
                     var waitPage = new Loading();
+                    bodyView.AddChidren(waitPage);
                     waitPage.Start(Language.StringByID(StringId.PleaseWait));
                     new System.Threading.Thread(() =>
                     {
                         try
                         {
-                            var responsePack = new DAL.Server.HttpServerRequest().EditUserName(str);
-                            if (responsePack.StateCode.ToUpper() == "SUCCESS")
+                            var resultObj = new HttpServerRequest().EditUserName(str);
+                            if (resultObj.Code == StateCode.SUCCESS)
                             {
-                                MainPage.LoginUser.userName = str;
-                                MainPage.LoginUser.SaveUserInfo();
+                                UserInfo.Current.userName = str;
+                                UserInfo.Current.SaveUserInfo();
                                 Application.RunOnMainThread(() =>
                                 {
                                     btnUserName.Text = str;
@@ -161,27 +360,8 @@
                             }
                             else
                             {
-                                var tipStr = "Server erorr";
-                                switch (responsePack.StateCode)
-                                {
-                                    case "NoLogin":
-                                        tipStr = Language.StringByID(StringId.InvalidLoginCertificate);
-                                        break;
-                                    case "AccountNoExists":
-                                        tipStr = "";
-                                        break;
-                                }
-                                Application.RunOnMainThread(() =>
-                                {
-                                    //鎻愮ず鍘熷洜
-                                    var tip = new Tip()
-                                    {
-                                        Text = tipStr,
-                                        CloseTime = 3,
-                                        Direction = AMPopTipDirection.None
-                                    };
-                                    tip.Show(bodyView);
-                                });
+                                //澶辫触鎻愮ず
+                                IMessageCommon.Current.ShowErrorInfoAlter(resultObj.Code);
                             }
                         }
                         catch (Exception ex)
@@ -192,16 +372,40 @@
                         {
                             Application.RunOnMainThread(() =>
                             {
-                                waitPage.Hide();
+                                if (waitPage != null)
+                                {
+                                    waitPage.RemoveFromParent();
+                                    waitPage = null;
+                                }
                             });
                         }
                     })
                     { IsBackground = true }.Start();
                 };
-                new PublicAssmebly().LoadDialog_EditParater(StringId.UesrName, MainPage.LoginUser.userName, callBack, StringId.UesrNameCannotBeEmpty, 0, new System.Collections.Generic.List<string>());
+                new PublicAssmebly().LoadDialog_EditParater(StringId.ChangeName, UserInfo.Current.userName, callBack, StringId.UesrNameCannotBeEmpty, 0, new System.Collections.Generic.List<string>());
             };
             btnUserName.MouseUpEventHandler = eventHandler;
             btnEditUserNameIcon.MouseUpEventHandler = eventHandler;
+        }
+
+        /// <summary>
+        /// 鍔犺浇鎴戠殑浜岀淮鐮佷簨浠�
+        /// </summary>
+        void LoadEvent_MyQRcode()
+        {
+            EventHandler<MouseEventArgs> eventHandler = (sender, e) =>
+            {
+                //鎴戠殑浜岀淮鐮�
+                var aep = new MyQRCodePage();
+                MainPage.BasePageView.AddChidren(aep);
+                aep.LoadPage();
+                MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
+
+            };
+            _QRcodeView.MouseUpEventHandler = eventHandler;
+            btnQRcode.MouseUpEventHandler = eventHandler;
+            btnQRcodeIcon.MouseUpEventHandler = eventHandler;
+            btnQRcodeRight.MouseUpEventHandler = eventHandler;
         }
 
         #region 淇敼缁戝畾閭
@@ -210,36 +414,65 @@
         /// </summary>
         void LoadEvent_ChangeBindEmail()
         {
-            EventHandler<MouseEventArgs> eventHandler = (sender, e) => {
+            EventHandler<MouseEventArgs> eventHandler = (sender, e) =>
+            {
                 Action<string> action = (email) =>
                 {
-                    btnUserEmailInfo.Text = email;
+
+                    btnUserEmailInfo.Text = GetBindAccountText(email);
                 };
 
-                var aep = new AccountBindInfoPage();
-                MainPage.BasePageView.AddChidren(aep);
-                aep.LoadPage(action,1,StringId.EmailAddress);
-                MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
+                if (CheckIfUnbound(btnUserEmailInfo.Text))
+                {
+                    //鏈粦瀹�,璺宠浆鏂扮粦瀹氶〉闈�
+                    var aep = new NewBindAccountPage();
+                    MainPage.BasePageView.AddChidren(aep);
+                    aep.LoadPage(action);
+                    MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
+                }
+                else
+                {
+                    var aep = new AccountBindInfoPage();
+                    MainPage.BasePageView.AddChidren(aep);
+                    aep.LoadPage(action, 1, StringId.EmailAddress);
+                    MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
+                }
+
             };
             btnUserEmailInfo.MouseUpEventHandler = eventHandler;
             btnUserEmailRight.MouseUpEventHandler = eventHandler;
             userEmailInfoView.MouseUpEventHandler = eventHandler;
         }
+
         /// <summary>
         /// 淇敼缁戝畾鎵嬫満
         /// </summary>
         void LoadEvent_ChangeBindPhone()
         {
-            EventHandler<MouseEventArgs> eventHandler = (sender, e) => {
+            EventHandler<MouseEventArgs> eventHandler = (sender, e) =>
+            {
                 Action<string> action = (phone) =>
                 {
-                    btnUserPhoneInfo.Text = phone;
+                    btnUserPhoneInfo.Text = GetBindAccountText(phone);
                 };
 
-                var aep = new AccountBindInfoPage();
-                MainPage.BasePageView.AddChidren(aep);
-                aep.LoadPage(action, 2, StringId.PhoneInfo);
-                MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
+                if (CheckIfUnbound(btnUserPhoneInfo.Text))
+                {
+                    //鏈粦瀹�,璺宠浆鏂扮粦瀹氶〉闈�
+                    var aep = new NewBindAccountPage();
+                    MainPage.BasePageView.AddChidren(aep);
+                    aep.LoadPage(action, true);
+                    MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
+                }
+                else
+                {
+                    var aep = new AccountBindInfoPage();
+                    MainPage.BasePageView.AddChidren(aep);
+                    aep.LoadPage(action, 2, StringId.PhoneInfo);
+                    MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
+                }
+
+
             };
             btnUserPhoneInfo.MouseUpEventHandler = eventHandler;
             btnUserPhoneRight.MouseUpEventHandler = eventHandler;
@@ -270,7 +503,8 @@
         /// </summary>
         void LoadEvent_SkipModifyPassword()
         {
-            EventHandler<MouseEventArgs> eventHandler = (sender, e) => {
+            EventHandler<MouseEventArgs> eventHandler = (sender, e) =>
+            {
                 var page = new ResetPasswordOptionPage();
                 MainPage.BasePageView.AddChidren(page);
                 page.LoadPage();
@@ -281,5 +515,16 @@
             resetPasswordView.MouseUpEventHandler = eventHandler;
         }
 
+        /// <summary>
+        /// 
+        /// </summary>
+        void GetUserInfo()
+        {
+            new System.Threading.Thread(() =>
+            {
+                new HttpServerRequest().GetUserInfo();
+            })
+            { IsBackground = true }.Start();
+        }
     }
 }
\ No newline at end of file

--
Gitblit v1.8.0