From 8cf6ab121d1cca81973de1a4cbe387c1a4a8308a Mon Sep 17 00:00:00 2001
From: wxr <464027401@qq.com>
Date: 星期三, 15 三月 2023 11:04:48 +0800
Subject: [PATCH] 人脸管理完成,缺个更新人脸返回

---
 HDL_ON/Entity/ResponseEntity/ResidenceMemberInfo.cs                         |   14 
 HDL_ON/UI/UI2/4-PersonalCenter/MemberManagement/MemberManagementPage.cs     |  448 -----------------
 HDL_ON/UI/UI2/4-PersonalCenter/MemberManagement/MemberPermissionPage.cs     |   29 
 HDL-ON_Android/Assets/Language.ini                                          |   10 
 HDL_ON/Common/ImageUtlis.cs                                                 |    1 
 HDL_ON/HDL_ON.projitems                                                     |    1 
 HDL_ON/UI/UI2/4-PersonalCenter/MemberManagement/AddMemberScanPageBLL.cs     |   12 
 HDL_ON/UI/UI2/4-PersonalCenter/MemberManagement/MemberManagementPageBLL.cs  |    8 
 HDL_ON/DAL/Server/NewAPI.cs                                                 |    8 
 HDL_ON/DAL/Server/NewApiRes.cs                                              |    4 
 HDL_ON/DAL/Server/HttpUtil.cs                                               |   19 
 HDL_ON/Common/R.cs                                                          |    9 
 HDL_ON/DAL/Server/HttpServerRequest.cs                                      |   67 ++
 HDL_ON/UI/UI2/4-PersonalCenter/MemberManagement/MemberFaceManagementPage.cs |  610 +++++++++++++++++++++++++
 HDL_ON/UI/UI2/4-PersonalCenter/MemberManagement/AddMemberScanPage.cs        |  150 +----
 SiriIntents/Server/HttpUtil.cs                                              |   17 
 16 files changed, 813 insertions(+), 594 deletions(-)

diff --git a/HDL-ON_Android/Assets/Language.ini b/HDL-ON_Android/Assets/Language.ini
index 7973230..4e47611 100644
--- a/HDL-ON_Android/Assets/Language.ini
+++ b/HDL-ON_Android/Assets/Language.ini
@@ -578,6 +578,8 @@
 591=*Member name
 592=Member account
 593=Face photo
+594=Please enter member name
+595=Delete
 
 
 2532=Visitor Invitation Record
@@ -1826,6 +1828,8 @@
 591=*鎴愬憳鍚嶇О
 592=鎴愬憳璐﹀彿
 593=浜鸿劯鐓х墖
+594=璇疯緭鍏ユ垚鍛樺悕绉�
+595=鍒犻櫎浜鸿劯鏁版嵁
 
 
 
@@ -3051,6 +3055,8 @@
 591=*Member name
 592=Member account
 593=Face photo
+594=Please enter member name
+595=Delete
 
 
 
@@ -4279,6 +4285,8 @@
 591=*Member name
 592=Member account
 593=Face photo
+594=Please enter member name
+595=Delete
 
 
 
@@ -5492,6 +5500,8 @@
 591=*Member name
 592=Member account
 593=Face photo
+594=Please enter member name
+595=Delete
 
 
 1000=袙谢邪卸薪芯褋褌 胁 褋褌邪褟褌邪
diff --git a/HDL_ON/Common/ImageUtlis.cs b/HDL_ON/Common/ImageUtlis.cs
index 34c5bf5..87c0daf 100644
--- a/HDL_ON/Common/ImageUtlis.cs
+++ b/HDL_ON/Common/ImageUtlis.cs
@@ -281,7 +281,6 @@
                                     if (imageView != null)
                                     {
                                         imageView.ImageBytes = imageBytes;
-                                        //Utlis.WriteLine("imageKey 鍔犺浇浜戠涓嬭浇鍥剧墖鎴愬姛");
                                     }
                                 });
                             }
diff --git a/HDL_ON/Common/R.cs b/HDL_ON/Common/R.cs
index e8cedee..73dc6b3 100644
--- a/HDL_ON/Common/R.cs
+++ b/HDL_ON/Common/R.cs
@@ -4,7 +4,14 @@
 {
     public static class StringId
     {
-
+        /// <summary>
+        /// 鍒犻櫎浜鸿劯鏁版嵁
+        /// </summary>
+        public const int DeleteMemberFace = 595;
+        /// <summary>
+        /// 璇疯緭鍏ユ垚鍛樺娉�
+        /// </summary>
+        public const int PlsEntrySubAccountRemark = 594;
         /// <summary>
         /// 浜鸿劯鐓х墖
         /// </summary>
diff --git a/HDL_ON/DAL/Server/HttpServerRequest.cs b/HDL_ON/DAL/Server/HttpServerRequest.cs
index ac5de30..7d4034e 100644
--- a/HDL_ON/DAL/Server/HttpServerRequest.cs
+++ b/HDL_ON/DAL/Server/HttpServerRequest.cs
@@ -726,7 +726,7 @@
         {
             var requestObj = new ChildDeleteObj()
             {
-                childAccountId = subaccount.childAccountId,
+                childId = subaccount.id,
                 homeId = subaccount.homeId
             };
             var requestJson = HttpUtil.GetSignRequestJson(requestObj);
@@ -741,12 +741,11 @@
         /// <returns></returns>
         public ResponsePackNew EditSubAccountNickName(string nickName, string childAccountId)
         {
-            var requestJson = HttpUtil.GetSignRequestJson(new UpdateChildNickNameObj()
-            {
-                homeId = DB_ResidenceData.Instance.CurrentRegion.id,
-                childAccountId = childAccountId,
-                nickName = nickName,
-            });
+            var d = new Dictionary<string, string>();
+            d.Add("homeId", DB_ResidenceData.Instance.CurrentRegion.id);
+            d.Add("childId", childAccountId);
+            d.Add("nickName", nickName);
+            var requestJson = HttpUtil.GetSignRequestJson(d);
             return HttpUtil.RequestHttpsPostFroHome(NewAPI.API_POST_Child_Update, requestJson);
 
         }
@@ -761,7 +760,7 @@
             var requestJson = HttpUtil.GetSignRequestJson(new UpdateChildAllowCreateSceneObj()
             {
                 homeId = DB_ResidenceData.Instance.CurrentRegion.id,
-                childAccountId = childAccountId,
+                childId = childAccountId,
                 isAllowCreateScene = isAllow,
             });
             return HttpUtil.RequestHttpsPostFroHome(NewAPI.API_POST_Child_Update, requestJson);
@@ -977,10 +976,60 @@
         public ResponsePackNew BindResidenceMemberAccount(string subAccount, string nickName)
         {
             //娣诲姞瀛愯处鍙�
-            var requestObj = new ChildAddObj() { homeId = DB_ResidenceData.Instance.CurrentRegion.id, account = subAccount, nickName = nickName };
+            var requestObj = new ChildAddObj()
+            {
+                homeId = DB_ResidenceData.Instance.CurrentRegion.id,
+                account = subAccount,
+                nickName = nickName
+            };
             var requestJson = HttpUtil.GetSignRequestJson(requestObj);
             return HttpUtil.RequestHttpsPostFroHome(NewAPI.API_POST_Child_Add, requestJson);
+        }
+        //v1.7鏇存柊鎺ュ彛
+        public ResponsePackNew BindResidenceMemberAccount(string subAccount, string nickName,string faceUrl)
+        {
+            //娣诲姞瀛愯处鍙�
 
+            Dictionary<string, object> d = new Dictionary<string, object>();
+            d.Add("homeId", DB_ResidenceData.Instance.CurrentRegion.id);
+            d.Add("nickName", nickName);
+            if (!string.IsNullOrEmpty(subAccount))
+            {
+                d.Add("account", subAccount);
+            }
+            if (!string.IsNullOrEmpty(faceUrl))
+            {
+                d.Add("faceUrl", @"data:image/jpg;base64," + faceUrl);
+            }
+            var requestJson = HttpUtil.GetSignRequestJson(d);
+            return HttpUtil.RequestHttpsPostFroHome(NewAPI.API_POST_Child_Add, requestJson);
+        }
+        /// <summary>
+        /// 鍒犻櫎鎴愬憳璐﹀彿浜鸿劯鏁版嵁
+        /// </summary>
+        /// <param name="subAccount"></param>
+        /// <param name="nickName"></param>
+        /// <param name="faceUrl"></param>
+        /// <returns></returns>
+        public ResponsePackNew DeleteMemberFace( string childId)
+        {
+            Dictionary<string, object> d = new Dictionary<string, object>();
+            d.Add("homeId", DB_ResidenceData.Instance.CurrentRegion.id);
+            d.Add("childId", childId);
+            var requestJson = HttpUtil.GetSignRequestJson(d);
+            return HttpUtil.RequestHttpsPostFroHome(NewAPI.API_POST_Child_RemoveFace, requestJson);
+        }
+        /// <summary>
+        /// 鏇存柊鎴愬憳璐﹀彿浜鸿劯鏁版嵁
+        /// </summary>
+        public ResponsePackNew UpdataMemberFace(string childId, string faceUrl)
+        {
+            Dictionary<string, object> d = new Dictionary<string, object>();
+            d.Add("homeId", DB_ResidenceData.Instance.CurrentRegion.id);
+            d.Add("childId", childId);
+            d.Add("userFace", @"data:image/jpg;base64," + faceUrl);
+            var requestJson = HttpUtil.GetSignRequestJson(d);
+            return HttpUtil.RequestHttpsPostFroHome(NewAPI.API_POST_Child_UpdateFace, requestJson);
         }
 
         /// <summary>
diff --git a/HDL_ON/DAL/Server/HttpUtil.cs b/HDL_ON/DAL/Server/HttpUtil.cs
index 511a91e..64fc404 100644
--- a/HDL_ON/DAL/Server/HttpUtil.cs
+++ b/HDL_ON/DAL/Server/HttpUtil.cs
@@ -17,8 +17,13 @@
         /// 鍥哄畾鍩熷悕,姝e紡鐜
         /// 鍏叡鍩熷悕灏辫繎瑙f瀽
         /// </summary>
-        public const string GlobalRequestHttpsHost = "https://nearest.hdlcontrol.com";
-        //public const string GlobalRequestHttpsHost = "https://test-gz.hdlcontrol.com";//mmmm
+        //public const string GlobalRequestHttpsHost = "https://nearest.hdlcontrol.com";
+        //public const string GlobalRequestHttpsHost = "https://test-gz.hdlcontrol.com";
+        //const string APP_KEY = "HDL-HOME-APP-TEST";
+        //const string SECRET_KEY = "WeJ8TY88vbakCcnvH8G1tDUqzLWY8yss";
+        public const string GlobalRequestHttpsHost = "http://59.41.255.150:7777";//mmmm
+        const string APP_KEY = "CPEVRLRT";
+        const string SECRET_KEY = "CPEVRLSJCPEVRLSZ";
         /// <summary>
         /// RegionMark
         /// </summary>
@@ -230,7 +235,7 @@
                 }
                 else
                 {
-                    HDL_ON.Utlis.WriteLine(response.Content);
+                    HDL_ON.Utlis.WriteLine($"鎺ュ彛寮傚父:{requestFullUrl} \r\n"+response.ErrorMessage);
                     return new ResponsePackNew() { Code = StateCode.NETWORK_ERROR };
                 }
 
@@ -521,14 +526,6 @@
         #endregion
 
         #region **********绛惧悕鏍¢獙**********
-        /// <summary>
-        /// 
-        /// </summary>
-        const string APP_KEY = "HDL-HOME-APP-TEST";
-        /// <summary>
-        /// 
-        /// </summary>
-        const string SECRET_KEY = "WeJ8TY88vbakCcnvH8G1tDUqzLWY8yss";
 
         /// <summary>
         /// 鑾峰彇褰撳墠鏃堕棿鎴冲��
diff --git a/HDL_ON/DAL/Server/NewAPI.cs b/HDL_ON/DAL/Server/NewAPI.cs
index e7e96bd..57dac3a 100644
--- a/HDL_ON/DAL/Server/NewAPI.cs
+++ b/HDL_ON/DAL/Server/NewAPI.cs
@@ -155,6 +155,14 @@
         /// </summary>
         public const string API_POST_Child_Update = "/home-wisdom/app/child/account/update";
         /// <summary>
+        /// 鏇存柊鎴愬憳璐﹀彿浜鸿劯淇℃伅
+        /// </summary>
+        public const string API_POST_Child_UpdateFace = "/home-wisdom/app/child/account/updateFace";
+        /// <summary>
+        /// 鍒犻櫎鎴愬憳璐﹀彿浜鸿劯淇℃伅
+        /// </summary>
+        public const string API_POST_Child_RemoveFace = "/home-wisdom/app/child/account/removeFace";
+        /// <summary>
         /// 瀛愯处鍙风鐞嗗憳鑾峰彇涓昏处鍙锋巿鏉僒oken
         /// </summary>
         public const string API_POST_Child_GetMasterToken = "/home-wisdom/app/child/account/masterToken/get";
diff --git a/HDL_ON/DAL/Server/NewApiRes.cs b/HDL_ON/DAL/Server/NewApiRes.cs
index 6bb1700..955e396 100644
--- a/HDL_ON/DAL/Server/NewApiRes.cs
+++ b/HDL_ON/DAL/Server/NewApiRes.cs
@@ -885,7 +885,7 @@
         /// <summary>
         /// 瀛愯处鍙稩D childAccountId
         /// </summary>
-        public string childAccountId;
+        public string childId;
         /// <summary>
         /// 浣忓畢
         /// </summary>
@@ -908,7 +908,7 @@
         /// <summary>
         /// 瀛愯处鎴风被鍨� ORDINARY銆丏EBUG銆丄DMIN
         /// </summary>
-        public string childAccountType;
+        //public string childAccountType;
         ///// <summary>
         ///// 鏄惁鍏佽杩滅▼鎺у埗 0:鍏佽 1:涓嶅厑璁�
         ///// </summary>
diff --git a/HDL_ON/Entity/ResponseEntity/ResidenceMemberInfo.cs b/HDL_ON/Entity/ResponseEntity/ResidenceMemberInfo.cs
index 2c1680d..465a0cc 100644
--- a/HDL_ON/Entity/ResponseEntity/ResidenceMemberInfo.cs
+++ b/HDL_ON/Entity/ResponseEntity/ResidenceMemberInfo.cs
@@ -13,6 +13,16 @@
         public ResidenceMemberInfo()
         {
         }
+        /// <summary>
+        /// 鏄惁铏氭嫙璐﹀彿
+        /// </summary>
+        public bool isVirtualAccount
+        {
+            get
+            {
+                return string.IsNullOrEmpty(childAccountId);
+            }
+        }
         //public string Account = "";
 
         //public string UserName = "";
@@ -101,6 +111,10 @@
         /// </summary>
         public string memberHeadIcon;
         /// <summary>
+        /// 浜鸿劯鐓х墖
+        /// </summary>
+        public string userFaceUrl;
+        /// <summary>
         /// 鐢ㄦ埛璐﹀彿
         /// 浼樺厛鏄剧ず鎵嬫満鍙凤紝濡傛灉鎵嬫満鍙蜂负绌哄垯鏄剧ず閭鍦板潃
         /// </summary>
diff --git a/HDL_ON/HDL_ON.projitems b/HDL_ON/HDL_ON.projitems
index 3b6e83f..dbf7c92 100644
--- a/HDL_ON/HDL_ON.projitems
+++ b/HDL_ON/HDL_ON.projitems
@@ -531,6 +531,7 @@
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\OrderFunctionPage.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\Face\FaceManagementPage.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\RoomListManage\DeliveryQrCodePage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\MemberManagement\MemberFaceManagementPage.cs" />
   </ItemGroup>
   <ItemGroup>
     <Folder Include="$(MSBuildThisFileDirectory)Entity\Device\" />
diff --git a/HDL_ON/UI/UI2/4-PersonalCenter/MemberManagement/AddMemberScanPage.cs b/HDL_ON/UI/UI2/4-PersonalCenter/MemberManagement/AddMemberScanPage.cs
index 31e0814..e35b1c0 100644
--- a/HDL_ON/UI/UI2/4-PersonalCenter/MemberManagement/AddMemberScanPage.cs
+++ b/HDL_ON/UI/UI2/4-PersonalCenter/MemberManagement/AddMemberScanPage.cs
@@ -16,6 +16,11 @@
         Button btnAddMember;
         Button btnScan;
         EditText etMemberAccount;
+        EditText etMemberName;
+        /// <summary>
+        /// 浜鸿劯鐓х墖鏁版嵁
+        /// </summary>
+        string base64string;
 
         Action backAction;
 
@@ -31,7 +36,6 @@
             bodyView.BackgroundColor = CSS_Color.MainBackgroundColor;
             new TopViewDiv(bodyView, Language.StringByID(StringId.AddMember)).LoadTopView();
 
-
             if (Entity.DB_ResidenceData.Instance.SupportFacePass)
             {
                 var btnMemberName = new Button()
@@ -46,7 +50,7 @@
                 };
                 bodyView.AddChidren(btnMemberName);
 
-                var etMemberName = new EditText()
+                etMemberName = new EditText()
                 {
                     Y = btnMemberName.Bottom,
                     X = Application.GetRealWidth(16),
@@ -120,8 +124,6 @@
                 };
                 bodyView.AddChidren(btnMemberFaceTitle);
 
-
-
                 var btnAddFace = new Button()
                 {
                     Gravity = Gravity.CenterHorizontal,
@@ -141,11 +143,12 @@
 
                 EventHandler<MouseEventArgs> eFaceHandler = (sender, e) =>
                 {
+                    Application.HideSoftInput();
                     if (OnAppConfig.Instance.FaceManagementTip)
                     {
                         OnAppConfig.Instance.FaceManagementTip = true;
                         OnAppConfig.Instance.SaveConfig();
-                        LoadPictureOptionView();
+                        LoadPictureOptionView(btnAddFace);
                         return;
                     }
 
@@ -281,7 +284,7 @@
                         dialog.Close();
                         OnAppConfig.Instance.FaceManagementTip = true;
                         OnAppConfig.Instance.SaveConfig();
-                        LoadPictureOptionView();
+                        LoadPictureOptionView(btnAddFace);
                     };
 
                 };
@@ -303,7 +306,7 @@
                     TextSize = CSS_FontSize.SubheadingFontSize,
                     IsBold = true,
                     TextAlignment = TextAlignment.Center,
-                    TextID = StringId.ConfirmInvitation,
+                    TextID = StringId.Confirm,
                 };
                 bodyView.AddChidren(btnAddMember);
 
@@ -371,7 +374,7 @@
                     TextSize = CSS_FontSize.SubheadingFontSize,
                     IsBold = true,
                     TextAlignment = TextAlignment.Center,
-                    TextID = StringId.ConfirmInvitation,
+                    TextID = StringId.Confirm,
                 };
                 bodyView.AddChidren(btnAddMember);
 
@@ -435,7 +438,7 @@
         /// <summary>
         /// 鍔犺浇鍥炬爣閫夋嫨閫夐」
         /// </summary>
-        void LoadPictureOptionView()
+        void LoadPictureOptionView(Button btnAddFace)
         {
             var pView = new FrameLayout()
             {
@@ -527,8 +530,14 @@
                 var imageName = Guid.NewGuid().ToString();
                 CropImage.TakePicture((imagePath) =>
                 {
-                    CropImageCallBack(imagePath, 1, imageName);
-                }, imageName, 4, 6, imageHeight);
+                    if (imagePath != null)
+                    {
+                        var imageBytes = getFaceImageBytes(imagePath);
+                        btnAddFace.ImageBytes = imageBytes;
+                        base64string = Convert.ToBase64String(imageBytes);
+                    }
+
+                }, imageName, 6, 6, imageHeight);
 
                 pictureOptionView.Parent.RemoveFromParent();
             };
@@ -545,120 +554,29 @@
                 //var imageName = scene.sid;
                 CropImage.SelectPicture((imagePath) =>
                 {
-                    CropImageCallBack(imagePath, 2, imageName);
-                }, imageName, 4, 6, imageHeight);
+                    if (imagePath != null)
+                    {
+                        var imageBytes = getFaceImageBytes(imagePath);
+                        btnAddFace.ImageBytes = imageBytes;
+                        base64string = Convert.ToBase64String(imageBytes);
+                    }
+                }, imageName, 6, 6, imageHeight);
 
                 pictureOptionView.Parent.RemoveFromParent();
             };
 
         }
 
-
         /// <summary>
-        /// 瑁佸壀瀹岀収鐗囧洖璋冿紝缁熶竴澶勭悊
+        /// 鑾峰彇鏈湴閫夊彇鐨勪汉鑴告暟鎹�
         /// </summary>
-        /// <param name="imagePath">瑁佸壀鍚庣殑鐪熷疄璺緞</param>
-        /// <param name="imageSource">鐓х墖鏉ユ簮锛�1锛氭媿鐓э紱2锛氬浘搴�</param>
-        void CropImageCallBack(string selectImagePath, int imageSource, string imageName)
+        /// <param name="selectImagePath"></param>
+        /// <returns></returns>
+        byte[] getFaceImageBytes(string selectImagePath)
         {
-            if (string.IsNullOrEmpty(selectImagePath) == true)
-            {
-                return;
-            }
-            //涓婁紶鎴愬姛鍒板洖璋�
-            Action<bool> uploadSuccessAction = (isSuccess) =>
-            {
-                //鐐瑰嚮閲嶆柊褰曞叆浜嬩欢
-                Action action = () =>
-                {
-                    if (!isSuccess)
-                    {
-                        if (imageSource == 1)
-                        {
-                            CropImage.TakePicture((imagePath) =>
-                            {
-                                CropImageCallBack(imagePath, 2, imageName);
-                            }, imageName, 4, 6, imageHeight);
-                        }
-                        else
-                        {
-                            CropImage.SelectPicture((imagePath) =>
-                            {
-                                CropImageCallBack(imagePath, 1, imageName);
-                            }, imageName, 4, 6, imageHeight);
-                        }
-                    }
-                };
-
-                if (isSuccess)
-                {
-                    //ReadFaceInfo(false);
-                }
-
-                Application.RunOnMainThread(() =>
-                {
-                    var page = new FaceSettingResultPage(action);
-                    MainPage.BasePageView.AddChidren(page);
-                    page.LoadPage(isSuccess);
-                    MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
-                });
-            };
-            //涓婁紶鍥剧墖鍒颁簯绔�
-            UploadImage(selectImagePath, uploadSuccessAction);
-        }
-
-        /// <summary>
-        /// 涓婁紶鍥剧墖鏂规硶
-        /// </summary>
-        /// <param name="selectImagePath">瑁佸壀鍚庣殑鍥剧墖璺緞</param>
-        /// <param name="imageView"></param>
-        /// <param name="uploadResultAction"></param>
-        void UploadImage(string selectImagePath, Action<bool> uploadResultAction)
-        {
-            try
-            {
-                //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
-                    {
-                        string base64string = Convert.ToBase64String(imageBytes);
-                        //Utlis.WriteLine("涓婁紶鍥剧墖Length:" + imageBytes.Length + " base64锛�" + base64string);
-                        var pack = new HttpServerRequest().FaceSetting(base64string);
-                        if (pack != null)
-                        {
-                            Utlis.WriteLine("涓婁紶缁撴灉锛�" + pack.message);
-                            uploadResultAction?.Invoke(pack.Code == StateCode.SUCCESS);
-                        }
-                    }
-                    catch (Exception ex)
-                    {
-                    }
-                    finally
-                    {
-                        Application.RunOnMainThread(() =>
-                        {
-                            if (waitPage != null)
-                            {
-                                waitPage.RemoveFromParent();
-                                waitPage = null;
-                            }
-                        });
-                    }
-                })
-                { IsBackground = true }.Start();
-            }
-            catch (Exception ex)
-            {
-                MainPage.Log(ex.Message);
-            }
+            var imageBytes = Shared.IO.FileUtils.ReadFile(selectImagePath);
+            System.IO.File.Delete(selectImagePath);
+            return imageBytes;
         }
 
     }
diff --git a/HDL_ON/UI/UI2/4-PersonalCenter/MemberManagement/AddMemberScanPageBLL.cs b/HDL_ON/UI/UI2/4-PersonalCenter/MemberManagement/AddMemberScanPageBLL.cs
index 3ed1e67..066bd64 100644
--- a/HDL_ON/UI/UI2/4-PersonalCenter/MemberManagement/AddMemberScanPageBLL.cs
+++ b/HDL_ON/UI/UI2/4-PersonalCenter/MemberManagement/AddMemberScanPageBLL.cs
@@ -22,12 +22,14 @@
         {
             btnAddMember.MouseUpEventHandler = (sender, e) => {
                 var memberAccount = etMemberAccount.Text.Trim();
-                if(string.IsNullOrEmpty(memberAccount))
+                var name = etMemberName.Text.Trim();
+                if(string.IsNullOrEmpty(name))
                 {
-                    TipDivMsg(Language.StringByID(StringId.PlsEntryAccount));
+                    TipDivMsg(Language.StringByID(StringId.PlsEntrySubAccountRemark));
                     return;
                 }
-                BindMember(memberAccount);
+
+                BindMember(memberAccount, name, base64string);
             };
         }
 
@@ -35,7 +37,7 @@
         /// 缁戝畾璐﹀彿
         /// </summary>
         /// <param name="memberAccount"></param>
-        void BindMember(string memberAccount)
+        void BindMember(string memberAccount,string nickName,string faceUrl)
         {
             var waitPage = new Loading();
             bodyView.AddChidren(waitPage);
@@ -45,7 +47,7 @@
             {
                 try
                 {
-                    var result = new HttpServerRequest().BindResidenceMemberAccount(memberAccount, memberAccount);
+                    var result = new HttpServerRequest().BindResidenceMemberAccount(memberAccount, nickName,faceUrl);
                     if (result.Code == StateCode.SUCCESS)
                     {
                         Application.RunOnMainThread(() =>
diff --git a/HDL_ON/UI/UI2/4-PersonalCenter/MemberManagement/MemberFaceManagementPage.cs b/HDL_ON/UI/UI2/4-PersonalCenter/MemberManagement/MemberFaceManagementPage.cs
new file mode 100644
index 0000000..fc17912
--- /dev/null
+++ b/HDL_ON/UI/UI2/4-PersonalCenter/MemberManagement/MemberFaceManagementPage.cs
@@ -0,0 +1,610 @@
+锘縰sing System;
+using System.Threading;
+using HDL_ON.DAL.Server;
+using HDL_ON.Entity;
+using HDL_ON.UI.CSS;
+using Shared;
+
+namespace HDL_ON.UI
+{
+    /// <summary>
+    /// 澧炲姞瀛愯处鍙风晫闈�
+    /// </summary>
+    public partial class MemberFaceManagementPage : FrameLayout
+    {
+        FrameLayout bodyView;
+
+        /// <summary>
+        /// 浜鸿劯鐓х墖鏁版嵁
+        /// </summary>
+        string base64string;
+        ResidenceMemberInfo memberInfo;
+        public MemberFaceManagementPage(ResidenceMemberInfo memberInfo)
+        {
+            bodyView = this;
+            this.memberInfo = memberInfo;
+        }
+
+
+        public void LoadPage()
+        {
+            bodyView.BackgroundColor = CSS_Color.MainBackgroundColor;
+            new TopViewDiv(bodyView, memberInfo.nickName).LoadTopView();
+
+            #region 浜鸿劯绠$悊
+            var btnMemberFaceTitle = new Button()
+            {
+                Y = Application.GetRealHeight(80),
+                X = Application.GetRealWidth(16),
+                Height = Application.GetRealHeight(32),
+                TextColor = CSS_Color.FirstLevelTitleColor,
+                TextSize = CSS_FontSize.TextFontSize,
+                TextAlignment = TextAlignment.CenterLeft,
+                TextID = StringId.MemberFace,
+            };
+            bodyView.AddChidren(btnMemberFaceTitle);
+
+            var btnAddFace = new Button()
+            {
+                Gravity = Gravity.CenterHorizontal,
+                Y = btnMemberFaceTitle.Bottom,
+                Width = Application.GetRealWidth(230),
+                Height = Application.GetRealWidth(230),
+                Radius = (uint)Application.GetRealWidth(22),
+                BorderWidth = 0,
+                UnSelectedImagePath = "PersonalCenter/FacePassage/FaceIcon.png",
+                TextColor = CSS_Color.MainBackgroundColor,
+                TextSize = CSS_FontSize.SubheadingFontSize,
+                IsBold = true,
+                TextAlignment = TextAlignment.Center,
+            };
+            bodyView.AddChidren(btnAddFace);
+
+
+            EventHandler<MouseEventArgs> eFaceHandler = (sender, e) =>
+            {
+                if (OnAppConfig.Instance.FaceManagementTip)
+                {
+                    OnAppConfig.Instance.FaceManagementTip = true;
+                    OnAppConfig.Instance.SaveConfig();
+                    LoadPictureOptionView(btnAddFace);
+                    return;
+                }
+
+                Dialog dialog = new Dialog()
+                {
+                    BackgroundColor = CSS_Color.DialogTransparentColor1,
+                };
+
+                FrameLayout contentView = new FrameLayout()
+                {
+                    Gravity = Gravity.Center,
+                    Width = Application.GetRealWidth(270),
+                    Height = Application.GetRealHeight(192),
+                    BackgroundColor = CSS.CSS_Color.MainBackgroundColor,
+                    BorderColor = 0x00000000,
+                    BorderWidth = 0,
+                    Radius = (uint)Application.GetMinRealAverage(10),
+                };
+                dialog.AddChidren(contentView);
+
+                Button btnTitle = new Button()
+                {
+                    Y = Application.GetRealHeight(16),
+                    Height = Application.GetRealHeight(30),
+                    TextColor = CSS_Color.MainColor,
+                    TextSize = CSS_FontSize.SubheadingFontSize,
+                    TextAlignment = TextAlignment.Center,
+                    IsBold = true,
+                    TextID = StringId.FaceProtocolPrompt,
+                };
+                contentView.AddChidren(btnTitle);
+
+                Button btnMsg = new Button()
+                {
+                    Gravity = Gravity.CenterHorizontal,
+                    Height = Application.GetRealHeight(35),
+                    Y = btnTitle.Bottom,
+                    Width = Application.GetRealHeight(200),
+                    TextAlignment = TextAlignment.CenterLeft,
+                    TextColor = CSS_Color.TextualColor,
+                    TextSize = CSS_FontSize.PromptFontSize_FirstLevel,
+                    Text = "    涓轰繚鎶ゆ偍鐨勪釜浜洪殣绉佹潈鐩婏紝鐗瑰悜鎮ㄩ�氱煡骞剁敵璇锋槑纭悓鎰忔巿鏉冦�傝浣犱粩缁嗛槄璇�",
+                    IsMoreLines = true,
+                };
+                contentView.AddChidren(btnMsg);
+
+                Button btnMsg1 = new Button()
+                {
+                    Gravity = Gravity.CenterHorizontal,
+                    Height = Application.GetRealHeight(15),
+                    Y = btnMsg.Bottom,
+                    Width = Application.GetRealHeight(200),
+                    TextAlignment = TextAlignment.CenterLeft,
+                    TextColor = CSS_Color.MainColor,
+                    TextSize = CSS_FontSize.PromptFontSize_FirstLevel,
+                    Text = "    銆奜n Pro浜鸿劯淇℃伅閲囬泦鍗忚銆�",
+                    IsMoreLines = true,
+                };
+                contentView.AddChidren(btnMsg1);
+
+                Button btnMsg2 = new Button()
+                {
+                    Gravity = Gravity.CenterHorizontal,
+                    Height = Application.GetRealHeight(35),
+                    Y = btnMsg1.Bottom,
+                    Width = Application.GetRealHeight(200),
+                    TextAlignment = TextAlignment.CenterLeft,
+                    TextColor = CSS_Color.TextualColor,
+                    TextSize = CSS_FontSize.PromptFontSize_FirstLevel,
+                    Text = "    鑻ュ悓鎰忚鍗忚锛岃鐐瑰嚮銆愬悓鎰忋�戞寜閿紝琛ㄧず鎮ㄥ凡缁忕悊瑙e苟鍚屾剰浜鸿劯淇℃伅閲囬泦鍗忚銆�",
+                    IsMoreLines = true,
+                };
+                contentView.AddChidren(btnMsg2);
+
+                Button btnLine = new Button()
+                {
+                    Y = Application.GetRealHeight(149),
+                    Height = Application.GetRealHeight(1),
+                    Width = Application.GetRealWidth(270 / 2),
+                    BackgroundColor = CSS.CSS_Color.DividingLineColor,
+                };
+                contentView.AddChidren(btnLine);
+
+                Button btnCancel = new Button()
+                {
+                    Y = btnLine.Bottom,
+                    Width = Application.GetRealWidth(135),
+                    Height = Application.GetRealHeight(43),
+                    TextAlignment = TextAlignment.Center,
+                    TextColor = CSS_Color.TextualColor,
+                    TextSize = CSS_FontSize.SubheadingFontSize,
+                        //SelectedTextColor = CSS_Color.MainBackgroundColor,
+                        //SelectedBackgroundColor = CSS_Color.MainColor,
+                        TextID = StringId.Disagree,
+                };
+                contentView.AddChidren(btnCancel);
+
+                Button btnConfirm = new Button()
+                {
+                    X = btnCancel.Right,
+                    Y = btnLine.Y,
+                    Width = Application.GetRealWidth(135),
+                    Height = Application.GetRealHeight(45),
+                    TextAlignment = TextAlignment.Center,
+                        //TextColor = CSS_Color.TextualColor,
+                        TextSize = CSS_FontSize.SubheadingFontSize,
+                    TextColor = CSS_Color.MainBackgroundColor,
+                    BackgroundColor = CSS_Color.MainColor,
+                    TextID = StringId.Agree,
+                };
+                contentView.AddChidren(btnConfirm);
+                    //渚嬶細鍙充笅鍦嗚 澶у皬涓�50
+                    int mRectCornerID = HDLUtils.RectCornerBottomRight;
+                btnConfirm.SetCornerWithSameRadius((uint)Application.GetMinRealAverage(10), mRectCornerID);
+                dialog.Show();
+
+                btnCancel.MouseUpEventHandler += (sender, e) =>
+                {
+                    dialog.Close();
+                };
+                btnMsg1.MouseUpEventHandler += (sender, e) =>
+                {
+                    string url = "https://developer.hdlcontrol.com/浜鸿劯淇℃伅閲囬泦鍗忚.html";
+                    if (Language.CurrentLanguage != "Chinese")
+                    {
+                        url = "https://developer.hdlcontrol.com/Face information collection protocol.html";
+                    }
+                    new WebViewDialog().LoadPage("浜鸿劯淇℃伅閲囬泦鍗忚", url);
+
+                    dialog.Close();
+                };
+                btnConfirm.MouseUpEventHandler = (sender, e) =>
+                {
+                    dialog.Close();
+                    OnAppConfig.Instance.FaceManagementTip = true;
+                    OnAppConfig.Instance.SaveConfig();
+                    LoadPictureOptionView(btnAddFace);
+                };
+
+            };
+            btnAddFace.MouseUpEventHandler = eFaceHandler;
+            #endregion
+
+            var btnDeleteFaceDate = new Button()
+            {
+                Gravity = Gravity.CenterHorizontal,
+                Y = btnAddFace.Bottom + Application.GetRealHeight(30),
+                Width = Application.GetRealWidth(220),
+                Height = Application.GetRealWidth(44),
+                Radius = (uint)Application.GetRealWidth(22),
+                BorderWidth = 0,
+                BorderColor = 0x00000000,
+                BackgroundColor = CSS_Color.WarningColor,
+                TextColor = CSS_Color.MainBackgroundColor,
+                TextSize = CSS_FontSize.SubheadingFontSize,
+                IsBold = true,
+                TextAlignment = TextAlignment.Center,
+                TextID = StringId.DeleteMemberFace,
+            };
+            bodyView.AddChidren(btnDeleteFaceDate);
+
+            btnDeleteFaceDate.MouseUpEventHandler = (sender, e) => {
+                var waitPage = new Loading();
+                waitPage.Start("");
+                new Thread(() =>
+                {
+                    try
+                    {
+                        var pack = new HttpServerRequest().DeleteMemberFace(memberInfo.id);
+                        if (pack != null)
+                        {
+                            if(pack.Code == StateCode.SUCCESS)
+                            {
+                                Application.RunOnMainThread(() =>
+                                {
+                                    btnAddFace.ImageBytes = null;
+                                    btnAddFace.UnSelectedImagePath = "PersonalCenter/FacePassage/FaceIcon.png";
+                                    btnDeleteFaceDate.Enable = btnDeleteFaceDate.Visible = false;
+                                });
+                            }
+                        }
+                        else
+                        {
+                            Application.RunOnMainThread(() =>
+                            {
+                                TipDivMsg(Language.StringByID(StringId.delFail));
+                            });
+                        }
+                    }
+                    catch (Exception ex)
+                    {
+                    }
+                    finally
+                    {
+                        Application.RunOnMainThread(() =>
+                        {
+                            if (waitPage != null)
+                            {
+                                waitPage.RemoveFromParent();
+                                waitPage = null;
+                            }
+                        });
+                    }
+                })
+                { IsBackground = true }.Start();
+
+            };
+
+            if (!string.IsNullOrEmpty(memberInfo.userFaceUrl))
+            {
+                var waitPage = new Loading();
+                waitPage.Start("");
+                new Thread(() =>
+                {
+                    try
+                    {
+                        var bytes = downloadImageBytes(memberInfo.userFaceUrl);
+                        if (bytes != null)
+                        {
+                            Application.RunOnMainThread(() =>
+                            {
+                                btnAddFace.ImageBytes = bytes;
+                            });
+                        }
+                    }
+                    catch (Exception ex)
+                    {
+                    }
+                    finally
+                    {
+                        Application.RunOnMainThread(() =>
+                        {
+                            if (waitPage != null)
+                            {
+                                waitPage.RemoveFromParent();
+                                waitPage = null;
+                            }
+                        });
+                    }
+                })
+                { IsBackground = true }.Start();
+            }
+            else
+            {
+                btnDeleteFaceDate.Enable = btnDeleteFaceDate.Visible = false;
+            }
+        }
+
+        void TipDivMsg(string msg)
+        {
+            var tipBodyView = new FrameLayout();
+            bodyView.AddChidren(tipBodyView);
+
+            var msgView = new FrameLayout()
+            {
+                Gravity = Gravity.CenterHorizontal,
+                Y = Application.GetRealHeight(167),
+                Width = Application.GetRealWidth(210),
+                Height = Application.GetRealHeight(62),
+                Radius = (uint)Application.GetRealWidth(8),
+                BorderWidth = 0,
+                BorderColor = 0x00000000,
+                BackgroundColor = 0xFF333333,
+            };
+            tipBodyView.AddChidren(msgView);
+
+            var btnMsg = new Button()
+            {
+                Gravity = Gravity.Center,
+                Width = Application.GetRealWidth(186),
+                Height = Application.GetRealHeight(42),
+                TextColor = CSS_Color.MainBackgroundColor,
+                TextSize = CSS_FontSize.TextFontSize,
+                TextAlignment = TextAlignment.Center,
+                Text = msg,
+                IsMoreLines = true,
+            };
+            msgView.AddChidren(btnMsg);
+
+            new System.Threading.Thread(() => {
+                System.Threading.Thread.Sleep(1200);
+                Application.RunOnMainThread(() => {
+                    tipBodyView.RemoveAll();
+                    tipBodyView.RemoveFromParent();
+                });
+            })
+            { IsBackground = true }.Start();
+
+        }
+
+        const int imageHeight = 400;
+
+        /// <summary>
+        /// 鍔犺浇鍥炬爣閫夋嫨閫夐」
+        /// </summary>
+        void LoadPictureOptionView(Button btnAddFace)
+        {
+            var pView = new FrameLayout()
+            {
+                BackgroundColor = CSS_Color.DialogTransparentColor1,
+            };
+            bodyView.AddChidren(pView);
+
+            var pictureOptionView = new FrameLayout()
+            {
+                Y = Application.GetRealHeight(445 + 50),
+                Height = Application.GetRealHeight(250),
+                AnimateSpeed = 0.3f,
+                Animate = Animate.DownToUp,
+            };
+            pView.AddChidren(pictureOptionView);
+
+            var optionView = new VerticalScrolViewLayout()
+            {
+                Gravity = Gravity.CenterHorizontal,
+                Width = Application.GetRealWidth(343),
+                Height = Application.GetRealHeight(100),
+                BackgroundColor = CSS_Color.MainBackgroundColor,
+                Radius = (uint)Application.GetRealWidth(12),
+            };
+            pictureOptionView.AddChidren(optionView);
+
+            var btnTakePicture = new Button()
+            {
+                Height = Application.GetRealHeight(50),
+                TextAlignment = TextAlignment.Center,
+                TextColor = CSS_Color.TextualColor,
+                SelectedTextColor = CSS_Color.MainColor,
+                TextSize = CSS_FontSize.SubheadingFontSize,
+                TextID = StringId.TakePicture,
+            };
+            optionView.AddChidren(btnTakePicture);
+
+            optionView.AddChidren(new Button() { Height = Application.GetRealHeight(1), Width = Application.GetRealWidth(343), BackgroundColor = CSS_Color.DividingLineColor });
+
+            var btnAlbum = new Button()
+            {
+                Height = Application.GetRealHeight(50),
+                TextAlignment = TextAlignment.Center,
+                TextColor = CSS_Color.TextualColor,
+                SelectedTextColor = CSS_Color.MainColor,
+                TextSize = CSS_FontSize.SubheadingFontSize,
+                TextID = StringId.Album,
+            };
+            optionView.AddChidren(btnAlbum);
+
+            optionView.AddChidren(new Button() { Height = Application.GetRealHeight(1), Width = Application.GetRealWidth(343), BackgroundColor = CSS_Color.DividingLineColor });
+
+            var btnCancel = new Button()
+            {
+                Gravity = Gravity.CenterHorizontal,
+                Y = Application.GetRealHeight(8) + optionView.Bottom,
+                Width = Application.GetRealWidth(343),
+                Height = Application.GetRealHeight(50),
+                BackgroundColor = CSS_Color.MainBackgroundColor,
+                Radius = (uint)Application.GetRealWidth(12),
+                TextID = StringId.Cancel,
+                TextColor = CSS_Color.WarningColor,
+                TextSize = CSS_FontSize.SubheadingFontSize,
+            };
+            pictureOptionView.AddChidren(btnCancel);
+
+
+
+            pictureOptionView.MouseUpEventHandler = (sender, e) =>
+            {
+                pictureOptionView.Parent.RemoveFromParent();
+            };
+            pView.MouseUpEventHandler = (sender, e) =>
+            {
+                pictureOptionView.Parent.RemoveFromParent();
+            };
+
+            btnCancel.MouseUpEventHandler = (sender, e) =>
+            {
+                pictureOptionView.Parent.RemoveFromParent();
+            };
+            btnTakePicture.MouseDownEventHandler = (sender, e) =>
+            {
+                btnTakePicture.IsSelected = true;
+            };
+            btnTakePicture.MouseUpEventHandler = (sender, e) =>
+            {
+                btnTakePicture.IsSelected = false;
+                var imageName = Guid.NewGuid().ToString();
+                CropImage.TakePicture((imagePath) =>
+                {
+                    CropImageCallBack(imagePath, 1, imageName);
+                }, imageName, 6, 6, imageHeight);
+
+                pictureOptionView.Parent.RemoveFromParent();
+            };
+            btnAlbum.MouseDownEventHandler = (sender, e) =>
+            {
+                btnAlbum.IsSelected = true;
+            };
+
+            btnAlbum.MouseUpEventHandler = (sender, e) =>
+            {
+                btnAlbum.IsSelected = false;
+                //浠庣浉鍐岄�夋嫨鍥剧墖瑁佸壀
+                var imageName = Guid.NewGuid().ToString();
+                //var imageName = scene.sid;
+                CropImage.SelectPicture((imagePath) =>
+                {
+                    CropImageCallBack(imagePath, 2, imageName);
+                }, imageName, 6, 6, imageHeight);
+
+                pictureOptionView.Parent.RemoveFromParent();
+            };
+
+        }
+
+        /// <summary>
+        /// 涓嬭浇浜戠浜鸿劯鍥剧墖
+        /// </summary>
+        /// <param name="imageUrl"></param>
+        /// <returns></returns>
+        byte[] downloadImageBytes(string imageUrl)
+        {
+            var imageBytes = ImageUtlis.Current.GetImageDownloadUrl(imageUrl);
+
+            return imageBytes;
+        }
+
+
+        /// <summary>
+        /// 瑁佸壀瀹岀収鐗囧洖璋冿紝缁熶竴澶勭悊
+        /// </summary>
+        /// <param name="imagePath">瑁佸壀鍚庣殑鐪熷疄璺緞</param>
+        /// <param name="imageSource">鐓х墖鏉ユ簮锛�1锛氭媿鐓э紱2锛氬浘搴�</param>
+        void CropImageCallBack(string selectImagePath, int imageSource, string imageName)
+        {
+            if (string.IsNullOrEmpty(selectImagePath) == true)
+            {
+                return;
+            }
+            //涓婁紶鎴愬姛鍒板洖璋�
+            Action<bool> uploadSuccessAction = (isSuccess) =>
+            {
+                //鐐瑰嚮閲嶆柊褰曞叆浜嬩欢
+                Action action = () =>
+                {
+                    if (!isSuccess)
+                    {
+                        if (imageSource == 1)
+                        {
+                            CropImage.TakePicture((imagePath) =>
+                            {
+                                CropImageCallBack(imagePath, 1, imageName);
+                            }, imageName, 6, 6, imageHeight);
+                        }
+                        else
+                        {
+                            CropImage.SelectPicture((imagePath) =>
+                            {
+                                CropImageCallBack(imagePath, 2, imageName);
+                            }, imageName, 6, 6, imageHeight);
+                        }
+                    }
+                };
+
+                //if (isSuccess)
+                //{
+                //}
+
+                Application.RunOnMainThread(() =>
+                {
+                    var page = new FaceSettingResultPage(action);
+                    MainPage.BasePageView.AddChidren(page);
+                    page.LoadPage(isSuccess);
+                    MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
+                });
+            };
+            //涓婁紶鍥剧墖鍒颁簯绔�
+            UploadImage(selectImagePath, uploadSuccessAction);
+        }
+
+        /// <summary>
+        /// 涓婁紶鍥剧墖鏂规硶
+        /// </summary>
+        /// <param name="selectImagePath">瑁佸壀鍚庣殑鍥剧墖璺緞</param>
+        /// <param name="imageView"></param>
+        /// <param name="uploadResultAction"></param>
+        void UploadImage(string selectImagePath, Action<bool> uploadResultAction)
+        {
+            try
+            {
+                //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
+                    {
+                        string base64string = Convert.ToBase64String(imageBytes);
+                        var pack = new HttpServerRequest().UpdataMemberFace(memberInfo.id, base64string);
+                        if (pack != null)
+                        {
+                            Utlis.WriteLine("涓婁紶缁撴灉锛�" + pack.message);
+                            if(pack.Code == StateCode.SUCCESS)
+                            {
+                                Application.RunOnMainThread(() =>
+                                {
+                                    this.RemoveFromParent();
+                                });
+                            }
+                            uploadResultAction?.Invoke(pack.Code == StateCode.SUCCESS);
+                        }
+                    }
+                    catch (Exception ex)
+                    {
+                    }
+                    finally
+                    {
+                        Application.RunOnMainThread(() =>
+                        {
+                            if (waitPage != null)
+                            {
+                                waitPage.RemoveFromParent();
+                                waitPage = null;
+                            }
+                        });
+                    }
+                })
+                { IsBackground = true }.Start();
+            }
+            catch (Exception ex)
+            {
+                MainPage.Log(ex.Message);
+            }
+        }
+
+    }
+}
\ No newline at end of file
diff --git a/HDL_ON/UI/UI2/4-PersonalCenter/MemberManagement/MemberManagementPage.cs b/HDL_ON/UI/UI2/4-PersonalCenter/MemberManagement/MemberManagementPage.cs
index ad4cd51..0186ae1 100644
--- a/HDL_ON/UI/UI2/4-PersonalCenter/MemberManagement/MemberManagementPage.cs
+++ b/HDL_ON/UI/UI2/4-PersonalCenter/MemberManagement/MemberManagementPage.cs
@@ -29,6 +29,9 @@
 
         public void LoadPage()
         {
+#if DEBUG
+            Entity.DB_ResidenceData.Instance.SupportFacePass = true;
+#endif
             bodyView.BackgroundColor = CSS_Color.BackgroundColor;
             //鍒涘缓璇诲彇鎴愬憳璐﹀彿绾跨▼
             var thread = LoadThread_GetResidenceMemberAccount();
@@ -79,7 +82,6 @@
                 {
                     Gravity = Gravity.CenterHorizontal,
                     Width = Application.GetRealWidth(343),
-                    //Height = Application.GetRealWidth(230),
                     Height = Application.GetRealWidth(180),
                     BackgroundColor = CSS_Color.MainBackgroundColor,
                     Radius = (uint)Application.GetRealWidth(12),
@@ -151,7 +153,11 @@
                     Text = HDLCommon.Current.GetUserName(memberInfo.memberName)
                 };
                 view1.AddChidren(btnMemberName);
+                if (memberInfo.isVirtualAccount)
+                {
+                    btnMemberName.Text = memberInfo.nickName;
 
+                }
                 var btnMemberEmail = new Button()
                 {
                     X = Application.GetRealWidth(88),
@@ -219,7 +225,7 @@
                     Width = Application.GetRealWidth(311),
                     BackgroundColor = CSS_Color.DividingLineColor,
                 });
-                LoadView_EidtNickname(btnNickname, btnNicknameRight, memberInfo);
+                LoadView_EidtNickname(btnNickname, btnNicknameRight, memberInfo, memberInfo.isVirtualAccount ? btnMemberName : null);
                 #endregion
 
                 #region 浣跨敤鏉冮檺
@@ -250,13 +256,7 @@
                 };
                 view3.AddChidren(btnPermissionRight);
 
-                sView.AddChidren(new Button()
-                {
-                    Gravity = Gravity.CenterHorizontal,
-                    Height = Application.GetRealWidth(1),
-                    Width = Application.GetRealWidth(311),
-                    BackgroundColor = CSS_Color.DividingLineColor,
-                });
+
 
                 EventHandler<MouseEventArgs> eHandler = (sender, e) =>
                 {
@@ -280,6 +280,14 @@
                 #region 浜鸿劯绠$悊
                 if (Entity.DB_ResidenceData.Instance.SupportFacePass)
                 {
+                    sView.AddChidren(new Button()
+                    {
+                        Gravity = Gravity.CenterHorizontal,
+                        Height = Application.GetRealWidth(1),
+                        Width = Application.GetRealWidth(311),
+                        BackgroundColor = CSS_Color.DividingLineColor,
+                    });
+
                     var view4 = new FrameLayout()
                     {
                         Height = Application.GetRealWidth(49),
@@ -307,431 +315,21 @@
                     };
                     view4.AddChidren(btnFaceManagementRight);
 
-                    //sView.AddChidren(new Button()
-                    //{
-                    //    Gravity = Gravity.CenterHorizontal,
-                    //    Height = Application.GetRealWidth(1),
-                    //    Width = Application.GetRealWidth(311),
-                    //    BackgroundColor = CSS_Color.DividingLineColor,
-                    //});
 
                     EventHandler<MouseEventArgs> eFaceHandler = (sender, e) =>
                     {
-                        if (OnAppConfig.Instance.FaceManagementTip)
-                        {
-                            LoadPictureOptionView();
-                            return;
-                        }
-
-                        Dialog dialog = new Dialog()
-                        {
-                            BackgroundColor = CSS_Color.DialogTransparentColor1,
-                        };
-
-                        FrameLayout contentView = new FrameLayout()
-                        {
-                            Gravity = Gravity.Center,
-                            Width = Application.GetRealWidth(270),
-                            Height = Application.GetRealHeight(192),
-                            BackgroundColor = CSS.CSS_Color.MainBackgroundColor,
-                            BorderColor = 0x00000000,
-                            BorderWidth = 0,
-                            Radius = (uint)Application.GetMinRealAverage(10),
-                        };
-                        dialog.AddChidren(contentView);
-
-                        Button btnTitle = new Button()
-                        {
-                            Y = Application.GetRealHeight(16),
-                            Height = Application.GetRealHeight(30),
-                            TextColor = CSS_Color.MainColor,
-                            TextSize = CSS_FontSize.SubheadingFontSize,
-                            TextAlignment = TextAlignment.Center,
-                            IsBold = true,
-                            TextID = StringId.FaceProtocolPrompt,
-                        };
-                        contentView.AddChidren(btnTitle);
-
-                        Button btnMsg = new Button()
-                        {
-                            Gravity = Gravity.CenterHorizontal,
-                            Height = Application.GetRealHeight(35),
-                            Y = btnTitle.Bottom,
-                            Width = Application.GetRealHeight(200),
-                            TextAlignment = TextAlignment.CenterLeft,
-                            TextColor = CSS_Color.TextualColor,
-                            TextSize = CSS_FontSize.PromptFontSize_FirstLevel,
-                            Text = "    涓轰繚鎶ゆ偍鐨勪釜浜洪殣绉佹潈鐩婏紝鐗瑰悜鎮ㄩ�氱煡骞剁敵璇锋槑纭悓鎰忔巿鏉冦�傝浣犱粩缁嗛槄璇�",
-                            IsMoreLines = true,
-                        };
-                        contentView.AddChidren(btnMsg);
-
-                        Button btnMsg1 = new Button()
-                        {
-                            Gravity = Gravity.CenterHorizontal,
-                            Height = Application.GetRealHeight(15),
-                            Y = btnMsg.Bottom,
-                            Width = Application.GetRealHeight(200),
-                            TextAlignment = TextAlignment.CenterLeft,
-                            TextColor = CSS_Color.MainColor,
-                            TextSize = CSS_FontSize.PromptFontSize_FirstLevel,
-                            Text = "    銆奜n Pro浜鸿劯淇℃伅閲囬泦鍗忚銆�",
-                            IsMoreLines = true,
-                        };
-                        contentView.AddChidren(btnMsg1);
-
-                        Button btnMsg2 = new Button()
-                        {
-                            Gravity = Gravity.CenterHorizontal,
-                            Height = Application.GetRealHeight(35),
-                            Y = btnMsg1.Bottom,
-                            Width = Application.GetRealHeight(200),
-                            TextAlignment = TextAlignment.CenterLeft,
-                            TextColor = CSS_Color.TextualColor,
-                            TextSize = CSS_FontSize.PromptFontSize_FirstLevel,
-                            Text = "    鑻ュ悓鎰忚鍗忚锛岃鐐瑰嚮銆愬悓鎰忋�戞寜閿紝琛ㄧず鎮ㄥ凡缁忕悊瑙e苟鍚屾剰浜鸿劯淇℃伅閲囬泦鍗忚銆�",
-                            IsMoreLines = true,
-                        };
-                        contentView.AddChidren(btnMsg2);
-
-                        Button btnLine = new Button()
-                        {
-                            Y = Application.GetRealHeight(149),
-                            Height = Application.GetRealHeight(1),
-                            Width = Application.GetRealWidth(270 / 2),
-                            BackgroundColor = CSS.CSS_Color.DividingLineColor,
-                        };
-                        contentView.AddChidren(btnLine);
-
-                        Button btnCancel = new Button()
-                        {
-                            Y = btnLine.Bottom,
-                            Width = Application.GetRealWidth(135),
-                            Height = Application.GetRealHeight(43),
-                            TextAlignment = TextAlignment.Center,
-                            TextColor = CSS_Color.TextualColor,
-                            TextSize = CSS_FontSize.SubheadingFontSize,
-                            //SelectedTextColor = CSS_Color.MainBackgroundColor,
-                            //SelectedBackgroundColor = CSS_Color.MainColor,
-                            TextID = StringId.Disagree,
-                        };
-                        contentView.AddChidren(btnCancel);
-
-                        Button btnConfirm = new Button()
-                        {
-                            X = btnCancel.Right,
-                            Y = btnLine.Y,
-                            Width = Application.GetRealWidth(135),
-                            Height = Application.GetRealHeight(45),
-                            TextAlignment = TextAlignment.Center,
-                            //TextColor = CSS_Color.TextualColor,
-                            TextSize = CSS_FontSize.SubheadingFontSize,
-                            TextColor = CSS_Color.MainBackgroundColor,
-                            BackgroundColor = CSS_Color.MainColor,
-                            TextID = StringId.Agree,
-                        };
-                        contentView.AddChidren(btnConfirm);
-                        //渚嬶細鍙充笅鍦嗚 澶у皬涓�50
-                        int mRectCornerID = HDLUtils.RectCornerBottomRight;
-                        btnConfirm.SetCornerWithSameRadius((uint)Application.GetMinRealAverage(10), mRectCornerID);
-                        dialog.Show();
-
-                        btnCancel.MouseUpEventHandler += (sender, e) =>
-                        {
-                            dialog.Close();
-                        };
-                        btnMsg1.MouseUpEventHandler += (sender, e) =>
-                        {
-                            string url = "https://developer.hdlcontrol.com/浜鸿劯淇℃伅閲囬泦鍗忚.html";
-                            if (Language.CurrentLanguage != "Chinese")
-                            {
-                                url = "https://developer.hdlcontrol.com/Face information collection protocol.html";
-                            }
-                            new WebViewDialog().LoadPage("浜鸿劯淇℃伅閲囬泦鍗忚", url);
-
-                            dialog.Close();
-                        };
-                        btnConfirm.MouseUpEventHandler = (sender, e) =>
-                        {
-                            dialog.Close();
-                            OnAppConfig.Instance.FaceManagementTip = true;
-                            OnAppConfig.Instance.SaveConfig();
-                            LoadPictureOptionView();
-                        };
-
+                        var page = new MemberFaceManagementPage(memberInfo);
+                        MainPage.BasePageView.AddChidren(page);
+                        page.LoadPage();
+                        MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
                     };
-                    view4.MouseUpEventHandler = eHandler;
-                    btnFaceManagementTitle.MouseUpEventHandler = eFaceHandler;
+                    view4.MouseUpEventHandler = eFaceHandler;
                     btnFaceManagementRight.MouseUpEventHandler = eFaceHandler;
+                    btnFaceManagementTitle.MouseUpEventHandler = eFaceHandler;
                 }
                 #endregion
 
-                //#region 鍒涘缓鍦烘櫙 2020-12-23 闅愯棌鍒涘缓鍦烘櫙鎸夐挳
-                //var view4 = new FrameLayout()
-                //{
-                //    Height = Application.GetRealWidth(50),
-                //};
-                //sView.AddChidren(view4);
-
-                //var btnCreateSceneTitle = new Button()
-                //{
-                //    X = Application.GetRealWidth(16),
-                //    Width = Application.GetRealWidth(200),
-                //    TextAlignment = TextAlignment.CenterLeft,
-                //    TextColor = CSS_Color.FirstLevelTitleColor,
-                //    TextSize = CSS_FontSize.TextFontSize,
-                //    TextID = StringId.CreateScene,
-                //};
-                //view4.AddChidren(btnCreateSceneTitle);
-
-                //var btnCreateSceneRight = new Button()
-                //{
-                //    X = Application.GetRealWidth(287),
-                //    Y = Application.GetRealHeight(4),
-                //    Width = Application.GetMinRealAverage(38),
-                //    Height = Application.GetMinRealAverage(38),
-                //    UnSelectedImagePath = "Public/Switch_2.png",
-                //    SelectedImagePath = "Public/SwitchOn_2.png",
-                //    IsSelected = memberInfo.isAllowCreateScene
-                //};
-                //view4.AddChidren(btnCreateSceneRight);
-
-                //LoadView_ChangeCreateSceneState(btnCreateSceneRight, btnCreateSceneTitle, memberInfo);
-                //#endregion 
             }
         }
-
-
-        const int imageHeight = 400;
-
-        /// <summary>
-        /// 鍔犺浇鍥炬爣閫夋嫨閫夐」
-        /// </summary>
-        void LoadPictureOptionView()
-        {
-            var pView = new FrameLayout()
-            {
-                BackgroundColor = CSS_Color.DialogTransparentColor1,
-            };
-            bodyView.AddChidren(pView);
-
-            var pictureOptionView = new FrameLayout()
-            {
-                Y = Application.GetRealHeight(445 + 50),
-                Height = Application.GetRealHeight(250),
-                AnimateSpeed = 0.3f,
-                Animate = Animate.DownToUp,
-            };
-            pView.AddChidren(pictureOptionView);
-
-            var optionView = new VerticalScrolViewLayout()
-            {
-                Gravity = Gravity.CenterHorizontal,
-                Width = Application.GetRealWidth(343),
-                Height = Application.GetRealHeight(100),
-                BackgroundColor = CSS_Color.MainBackgroundColor,
-                Radius = (uint)Application.GetRealWidth(12),
-            };
-            pictureOptionView.AddChidren(optionView);
-
-            var btnTakePicture = new Button()
-            {
-                Height = Application.GetRealHeight(50),
-                TextAlignment = TextAlignment.Center,
-                TextColor = CSS_Color.TextualColor,
-                SelectedTextColor = CSS_Color.MainColor,
-                TextSize = CSS_FontSize.SubheadingFontSize,
-                TextID = StringId.TakePicture,
-            };
-            optionView.AddChidren(btnTakePicture);
-
-            optionView.AddChidren(new Button() { Height = Application.GetRealHeight(1), Width = Application.GetRealWidth(343), BackgroundColor = CSS_Color.DividingLineColor });
-
-            var btnAlbum = new Button()
-            {
-                Height = Application.GetRealHeight(50),
-                TextAlignment = TextAlignment.Center,
-                TextColor = CSS_Color.TextualColor,
-                SelectedTextColor = CSS_Color.MainColor,
-                TextSize = CSS_FontSize.SubheadingFontSize,
-                TextID = StringId.Album,
-            };
-            optionView.AddChidren(btnAlbum);
-
-            optionView.AddChidren(new Button() { Height = Application.GetRealHeight(1), Width = Application.GetRealWidth(343), BackgroundColor = CSS_Color.DividingLineColor });
-
-            var btnCancel = new Button()
-            {
-                Gravity = Gravity.CenterHorizontal,
-                Y = Application.GetRealHeight(8) + optionView.Bottom,
-                Width = Application.GetRealWidth(343),
-                Height = Application.GetRealHeight(50),
-                BackgroundColor = CSS_Color.MainBackgroundColor,
-                Radius = (uint)Application.GetRealWidth(12),
-                TextID = StringId.Cancel,
-                TextColor = CSS_Color.WarningColor,
-                TextSize = CSS_FontSize.SubheadingFontSize,
-            };
-            pictureOptionView.AddChidren(btnCancel);
-
-
-      
-            pictureOptionView.MouseUpEventHandler = (sender, e) =>
-            {
-                pictureOptionView.Parent.RemoveFromParent();
-            };
-            pView.MouseUpEventHandler = (sender, e) =>
-            {
-                pictureOptionView.Parent.RemoveFromParent();
-            };
-
-            btnCancel.MouseUpEventHandler = (sender, e) =>
-            {
-                pictureOptionView.Parent.RemoveFromParent();
-            };
-            btnTakePicture.MouseDownEventHandler = (sender, e) =>
-            {
-                btnTakePicture.IsSelected = true;
-            };
-            btnTakePicture.MouseUpEventHandler = (sender, e) =>
-            {
-                btnTakePicture.IsSelected = false;
-                var imageName = Guid.NewGuid().ToString();
-                CropImage.TakePicture((imagePath) =>
-                {
-                    CropImageCallBack(imagePath, 1, imageName);
-                }, imageName, 4, 6, imageHeight);
-
-                pictureOptionView.Parent.RemoveFromParent();
-            };
-            btnAlbum.MouseDownEventHandler = (sender, e) =>
-            {
-                btnAlbum.IsSelected = true;
-            };
-
-            btnAlbum.MouseUpEventHandler = (sender, e) =>
-            {
-                btnAlbum.IsSelected = false;
-            //浠庣浉鍐岄�夋嫨鍥剧墖瑁佸壀
-            var imageName = Guid.NewGuid().ToString();
-            //var imageName = scene.sid;
-            CropImage.SelectPicture((imagePath) =>
-                {
-                    CropImageCallBack(imagePath, 2, imageName);
-                }, imageName, 4, 6, imageHeight);
-
-                pictureOptionView.Parent.RemoveFromParent();
-            };
-
-        }
-
-
-        /// <summary>
-        /// 瑁佸壀瀹岀収鐗囧洖璋冿紝缁熶竴澶勭悊
-        /// </summary>
-        /// <param name="imagePath">瑁佸壀鍚庣殑鐪熷疄璺緞</param>
-        /// <param name="imageSource">鐓х墖鏉ユ簮锛�1锛氭媿鐓э紱2锛氬浘搴�</param>
-        void CropImageCallBack(string selectImagePath, int imageSource, string imageName)
-        {
-            if (string.IsNullOrEmpty(selectImagePath) == true)
-            {
-                return;
-            }
-            //涓婁紶鎴愬姛鍒板洖璋�
-            Action<bool> uploadSuccessAction = (isSuccess) =>
-            {
-            //鐐瑰嚮閲嶆柊褰曞叆浜嬩欢
-            Action action = () =>
-                {
-                    if (!isSuccess)
-                    {
-                        if (imageSource == 1)
-                        {
-                            CropImage.TakePicture((imagePath) =>
-                            {
-                                CropImageCallBack(imagePath, 2, imageName);
-                            }, imageName, 4, 6, imageHeight);
-                        }
-                        else
-                        {
-                            CropImage.SelectPicture((imagePath) =>
-                            {
-                                CropImageCallBack(imagePath, 1, imageName);
-                            }, imageName, 4, 6, imageHeight);
-                        }
-                    }
-                };
-
-                if (isSuccess)
-                {
-                    //ReadFaceInfo(false);
-                }
-
-                Application.RunOnMainThread(() =>
-                {
-                    var page = new FaceSettingResultPage(action);
-                    MainPage.BasePageView.AddChidren(page);
-                    page.LoadPage(isSuccess);
-                    MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
-                });
-            };
-            //涓婁紶鍥剧墖鍒颁簯绔�
-            UploadImage(selectImagePath, uploadSuccessAction);
-        }
-
-        /// <summary>
-        /// 涓婁紶鍥剧墖鏂规硶
-        /// </summary>
-        /// <param name="selectImagePath">瑁佸壀鍚庣殑鍥剧墖璺緞</param>
-        /// <param name="imageView"></param>
-        /// <param name="uploadResultAction"></param>
-        void UploadImage(string selectImagePath, Action<bool> uploadResultAction)
-        {
-            try
-            {
-                //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
-                    {
-                        string base64string = Convert.ToBase64String(imageBytes);
-                    //Utlis.WriteLine("涓婁紶鍥剧墖Length:" + imageBytes.Length + " base64锛�" + base64string);
-                    var pack = new HttpServerRequest().FaceSetting(base64string);
-                        if (pack != null)
-                        {
-                            Utlis.WriteLine("涓婁紶缁撴灉锛�" + pack.message);
-                            uploadResultAction?.Invoke(pack.Code == StateCode.SUCCESS);
-                        }
-                    }
-                    catch (Exception ex)
-                    {
-                    }
-                    finally
-                    {
-                        Application.RunOnMainThread(() =>
-                        {
-                            if (waitPage != null)
-                            {
-                                waitPage.RemoveFromParent();
-                                waitPage = null;
-                            }
-                        });
-                    }
-                })
-                { IsBackground = true }.Start();
-            }
-            catch (Exception ex)
-            {
-                MainPage.Log(ex.Message);
-            }
-        }
-
     }
 }
\ No newline at end of file
diff --git a/HDL_ON/UI/UI2/4-PersonalCenter/MemberManagement/MemberManagementPageBLL.cs b/HDL_ON/UI/UI2/4-PersonalCenter/MemberManagement/MemberManagementPageBLL.cs
index e659d9c..213d8af 100644
--- a/HDL_ON/UI/UI2/4-PersonalCenter/MemberManagement/MemberManagementPageBLL.cs
+++ b/HDL_ON/UI/UI2/4-PersonalCenter/MemberManagement/MemberManagementPageBLL.cs
@@ -161,7 +161,7 @@
         /// <summary>
         /// 淇敼鏄电О绐楀彛
         /// </summary>
-        void LoadView_EidtNickname(Button btn1, Button btn2, ResidenceMemberInfo mInfo)
+        void LoadView_EidtNickname(Button btn1, Button btn2, ResidenceMemberInfo mInfo,Button btnMemberName)
         {
             EventHandler<MouseEventArgs> eventHandler = (sender, e) =>
             {
@@ -185,12 +185,16 @@
                     {
                         try
                         {
-                            var responsePack = new HttpServerRequest().EditSubAccountNickName(str, mInfo.childAccountId);
+                            var responsePack = new HttpServerRequest().EditSubAccountNickName(str, mInfo.id);
                             if (responsePack.Code.ToUpper() == StateCode.SUCCESS)
                             {
                                 Application.RunOnMainThread(() =>
                                 {
                                     btn1.Text = str;
+                                    if (btnMemberName != null)
+                                    {
+                                        btnMemberName.Text = str;
+                                    }
                                 });
                                 mInfo.nickName = str;
                             }
diff --git a/HDL_ON/UI/UI2/4-PersonalCenter/MemberManagement/MemberPermissionPage.cs b/HDL_ON/UI/UI2/4-PersonalCenter/MemberManagement/MemberPermissionPage.cs
index e7454e3..ee381fa 100644
--- a/HDL_ON/UI/UI2/4-PersonalCenter/MemberManagement/MemberPermissionPage.cs
+++ b/HDL_ON/UI/UI2/4-PersonalCenter/MemberManagement/MemberPermissionPage.cs
@@ -63,18 +63,21 @@
             };
             headPortraitView.AddChidren(btnMemberName);
             string username = HDLCommon.Current.GetUserName(memberInfo.memberName);
-            btnMemberName.Text = memberInfo.nickName + "(" + username + ")";
+            btnMemberName.Text = memberInfo.nickName;
 
-            #region RoomList
-            roomListView = new VerticalScrolViewLayout()
+            if (!memberInfo.isVirtualAccount)
             {
-                Y = Application.GetRealHeight(138),
-                Height = Application.GetRealHeight(471),
-                //BackgroundColor = CSS_Color.MainBackgroundColor,
-            };
-            bodyView.AddChidren(roomListView);
-            #endregion
-
+                btnMemberName.Text = memberInfo.nickName + "(" + username + ")";
+                #region RoomList
+                roomListView = new VerticalScrolViewLayout()
+                {
+                    Y = Application.GetRealHeight(138),
+                    Height = Application.GetRealHeight(471),
+                    //BackgroundColor = CSS_Color.MainBackgroundColor,
+                };
+                bodyView.AddChidren(roomListView);
+                #endregion
+            }
             btnDelMember = new Button()
             {
                 Y = Application.GetRealHeight(617),
@@ -89,8 +92,10 @@
             bodyView.AddChidren(btnDelMember);
 
             LoadEventList();
-
-            GetShareDataByAccount();
+            if (!memberInfo.isVirtualAccount)
+            {
+                GetShareDataByAccount();
+            }
         }
 
         /// <summary>
diff --git a/SiriIntents/Server/HttpUtil.cs b/SiriIntents/Server/HttpUtil.cs
index 3843485..51d5267 100644
--- a/SiriIntents/Server/HttpUtil.cs
+++ b/SiriIntents/Server/HttpUtil.cs
@@ -16,8 +16,13 @@
         /// 鍥哄畾鍩熷悕,姝e紡鐜
         /// 鍏叡鍩熷悕灏辫繎瑙f瀽
         /// </summary>
-        public const string GlobalRequestHttpsHost = "https://nearest.hdlcontrol.com";
-        //public const string GlobalRequestHttpsHost = "https://test-gz.hdlcontrol.com";//mmmm
+        //public const string GlobalRequestHttpsHost = "https://nearest.hdlcontrol.com";
+        //public const string GlobalRequestHttpsHost = "https://test-gz.hdlcontrol.com";
+        //const string APP_KEY = "HDL-HOME-APP-TEST";
+        //const string SECRET_KEY = "WeJ8TY88vbakCcnvH8G1tDUqzLWY8yss";
+        public const string GlobalRequestHttpsHost = "http://59.41.255.150:7777";//mmmm
+        const string APP_KEY = "CPEVRLRT";
+        const string SECRET_KEY = "CPEVRLSJCPEVRLSZ";
         /// <summary>
         /// RegionMark
         /// </summary>
@@ -248,14 +253,6 @@
         #endregion
 
         #region **********绛惧悕鏍¢獙**********
-        /// <summary>
-        /// 
-        /// </summary>
-        const string APP_KEY = "HDL-HOME-APP-TEST";
-        /// <summary>
-        /// 
-        /// </summary>
-        const string SECRET_KEY = "WeJ8TY88vbakCcnvH8G1tDUqzLWY8yss";
 
         /// <summary>
         /// 鑾峰彇褰撳墠鏃堕棿鎴冲��

--
Gitblit v1.8.0