黄学彪
2020-12-16 0d9f64668fd7350d6a21fd157e32009a96d98134
ZigbeeApp/Shared/Phone/UserCenter/DoorLock/MemberFrozenPage.cs
@@ -11,7 +11,7 @@
        /// 构造函数
        /// </summary>
        /// <param name="doorLock"></param>
        public MemberFrozenPage(ZigBee.Device.DoorLock doorLock, Shared.Phone.UserCenter.MemberInfoRes accountObj)
        public MemberFrozenPage(ZigBee.Device.DoorLock doorLock, MemberInfoRes accountObj)
        {
            this.doorLock = doorLock;
            this.curAccountObj = accountObj;
@@ -26,7 +26,7 @@
        /// <summary>
        /// 当前成员对象v
        /// </summary>
        Shared.Phone.UserCenter.MemberInfoRes curAccountObj;
        MemberInfoRes curAccountObj;
        /// <summary>
        /// 刷新View
        /// </summary>
@@ -42,27 +42,28 @@
            {
                try
                {
                    var list = await Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.GetDoorLockAllAcountUserlist(doorLock);
                    var result = await Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.GetDoorLockOperateAccess(doorLock, curAccountObj.SubAccountDistributedMark);
                    var result1 = await Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.GetDoorLockUnlockAccess(doorLock, curAccountObj.SubAccountDistributedMark);
                    var result2 = await Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.GetDoorLockOperateAccess(doorLock, curAccountObj?.SubAccountDistributedMark);
                    if (result2 == true)
                    {
                        doorLock.IsFreezeAccount[curAccountObj.SubAccountDistributedMark] = true;
                    }
                    else
                    {
                        doorLock.IsFreezeAccount[curAccountObj.SubAccountDistributedMark] = false;
                    }
                    var result3 = await Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.GetDoorLockUnlockAccess(doorLock, curAccountObj.SubAccountDistributedMark);
                    if (result3 == true)
                    {
                        doorLock.HasRemoteUnlockAccess[curAccountObj.SubAccountDistributedMark] = true;
                    }
                    else
                    {
                        doorLock.HasRemoteUnlockAccess[curAccountObj.SubAccountDistributedMark] = false;
                    }
                    //☆マーク☆
                    //var list = await Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.GetDoorLockAllAcountUserlist(doorLock);
                    //var result = await Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.GetDoorLockOperateAccess(doorLock, curAccountObj.SubAccountDistributedMark);
                    //var result1 = await Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.GetDoorLockUnlockAccess(doorLock, curAccountObj.SubAccountDistributedMark);
                    //var result2 = await Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.GetDoorLockOperateAccess(doorLock, curAccountObj?.SubAccountDistributedMark);
                    //if (result2 == true)
                    //{
                    //    doorLock.IsFreezeAccount[curAccountObj.SubAccountDistributedMark] = true;
                    //}
                    //else
                    //{
                    //    doorLock.IsFreezeAccount[curAccountObj.SubAccountDistributedMark] = false;
                    //}
                    //var result3 = await Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.GetDoorLockUnlockAccess(doorLock, curAccountObj.SubAccountDistributedMark);
                    //if (result3 == true)
                    //{
                    //    doorLock.HasRemoteUnlockAccess[curAccountObj.SubAccountDistributedMark] = true;
                    //}
                    //else
                    //{
                    //    doorLock.HasRemoteUnlockAccess[curAccountObj.SubAccountDistributedMark] = false;
                    //}
                }
                catch { }
                finally
@@ -81,15 +82,7 @@
        /// </summary>
        public void Show()
        {
            string accountTitle = "";
            if (curAccountObj.UserName != null)
            {
                accountTitle = curAccountObj.UserName;
            }
            else
            {
                accountTitle = curAccountObj.Account;
            }
            string accountTitle = curAccountObj.ShowName;
            this.TopFrameLayout(this, accountTitle);
            EventHandler<MouseEventArgs> eHandlerBack = (sender, e) =>
@@ -180,46 +173,48 @@
                    btnRight.Width = Application.GetRealWidth(104);
                    btnRight.UnSelectedImagePath = "DoorLock/Switch.png";
                    btnRight.SelectedImagePath = "DoorLock/SwitchOn.png";
                    var result = doorLock.IsFreezeAccount[curAccountObj.SubAccountDistributedMark];
                    if (result == true)
                    {
                        btnRight.IsSelected = true;
                    }
                    else
                    {
                        btnRight.IsSelected = false;
                    }
                    //☆マーク☆
                    //var result = doorLock.IsFreezeAccount[curAccountObj.SubAccountDistributedMark];
                    //if (result == true)
                    //{
                    //    btnRight.IsSelected = true;
                    //}
                    //else
                    //{
                    //    btnRight.IsSelected = false;
                    //}
                }
                else if (i == 2)
                {
                    if (doorLock.IsFreezeAccount[curAccountObj.SubAccountDistributedMark] == false)
                    {
                        btnText.Text = Language.StringByID(R.MyInternationalizationString.TempUnlockPermission);
                        btnRight.X = Application.GetRealWidth(50);
                        btnRight.Y = Application.GetRealHeight(32);
                        btnRight.Height = Application.GetRealHeight(63);
                        btnRight.Width = Application.GetRealWidth(104);
                        btnRight.UnSelectedImagePath = "DoorLock/Switch.png";
                        btnRight.SelectedImagePath = "DoorLock/SwitchOn.png";
                        line2.Visible = false;
                    //☆マーク☆
                    //if (doorLock.IsFreezeAccount[curAccountObj.SubAccountDistributedMark] == false)
                    //{
                    //    btnText.Text = Language.StringByID(R.MyInternationalizationString.TempUnlockPermission);
                    //    btnRight.X = Application.GetRealWidth(50);
                    //    btnRight.Y = Application.GetRealHeight(32);
                    //    btnRight.Height = Application.GetRealHeight(63);
                    //    btnRight.Width = Application.GetRealWidth(104);
                    //    btnRight.UnSelectedImagePath = "DoorLock/Switch.png";
                    //    btnRight.SelectedImagePath = "DoorLock/SwitchOn.png";
                    //    line2.Visible = false;
                        var result1 = doorLock.HasRemoteUnlockAccess[curAccountObj.SubAccountDistributedMark];
                        if (result1 == true)
                        {
                            btnRight.IsSelected = true;
                        }
                        else
                        {
                            btnRight.IsSelected = false;
                        }
                    }
                    else
                    {
                        btnText.Width = 0;
                        btnRight.Width = 0;
                        line2.Width = 0;
                        RowView.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMMidFrameLayout;
                    }
                    //    var result1 = doorLock.HasRemoteUnlockAccess[curAccountObj.SubAccountDistributedMark];
                    //    if (result1 == true)
                    //    {
                    //        btnRight.IsSelected = true;
                    //    }
                    //    else
                    //    {
                    //        btnRight.IsSelected = false;
                    //    }
                    //}
                    //else
                    //{
                    //    btnText.Width = 0;
                    //    btnRight.Width = 0;
                    //    line2.Width = 0;
                    //    RowView.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMMidFrameLayout;
                    //}
                }
                int currentIndex = i;
@@ -293,7 +288,7 @@
            }
            string msg = Language.StringByID(R.MyInternationalizationString.GoPersonalCenter);
            var alert = new Shared.Phone.UserCenter.ShowMsgControl(ShowMsgType.Confirm, textFreeze, Language.StringByID(R.MyInternationalizationString.DoorlockConfirm));
            var alert = new ShowMsgControl(ShowMsgType.Confirm, textFreeze, Language.StringByID(R.MyInternationalizationString.DoorlockConfirm));
            alert.Show();
            //使用确认型弹框时,的回调函数
            alert.ConfirmClickEvent += () =>
@@ -305,275 +300,280 @@
                    Application.RunOnMainThread(() => { CommonPage.Loading.Start(""); });
                    try
                    {
                        var doorLockId = doorLock.DeviceAddr + "_" + doorLock.DeviceEpoint;
                        var curAccountDoorLockUserList = await Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.GetAccountDoorLockUserList(doorLock, curAccountObj.SubAccountDistributedMark);
                        if (curAccountDoorLockUserList.Count != 0)
                        {
                            //修改云端存储信息
                            operateConunt = curAccountDoorLockUserList.Count;
                            var tempGroupId = new List<List<int>>();
                            var tempUserIdList = new List<int> { };
                            foreach (var curDoorLockUser in curAccountDoorLockUserList)
                            {
                                // 账户中没有门锁用户
                                if (string.IsNullOrEmpty(curDoorLockUser.DoorLockLocalUserId))
                                {
                                }
                                else
                                {
                                    if (tempUserIdList.Count == 9)
                                    {
                                        tempGroupId.Add(tempUserIdList);
                                        tempUserIdList = new List<int>();
                                    }
                                    tempUserIdList.Add(int.Parse(curDoorLockUser.DoorLockLocalUserId));
                                }
                            }
                            tempGroupId.Add(tempUserIdList);
                            //批量冻结门锁中的账户
                            ZigBee.Device.DoorLock.AccessType accessType;
                            if (isFreeze)
                            {
                                accessType = ZigBee.Device.DoorLock.AccessType.DisEnableMoreUsers;
                            }
                            else
                            {
                                accessType = ZigBee.Device.DoorLock.AccessType.EnableMoreUsers;
                            }
                            //冻结/解冻用户
                            int count1 = tempGroupId.Count;
                            if (tempGroupId.Count == 1)
                            {
                                foreach (var a in tempGroupId)
                                {
                                    if (a.Count == 0)
                                    {
                                        count1 = 0;
                                        break;
                                    }
                                }
                            }
                            int count2 = 0;
                        //☆マーク☆
                        //var doorLockId = doorLock.DeviceAddr + "_" + doorLock.DeviceEpoint;
                        //var curAccountDoorLockUserList = await Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.GetAccountDoorLockUserList(doorLock, curAccountObj.SubAccountDistributedMark);
                        //if (curAccountDoorLockUserList.Count != 0)
                        //{
                        //    //修改云端存储信息
                        //    operateConunt = curAccountDoorLockUserList.Count;
                        //    var tempGroupId = new List<List<int>>();
                        //    var tempUserIdList = new List<int> { };
                        //    foreach (var curDoorLockUser in curAccountDoorLockUserList)
                        //    {
                        //        // 账户中没有门锁用户
                        //        if (string.IsNullOrEmpty(curDoorLockUser.DoorLockLocalUserId))
                        //        {
                        //        }
                        //        else
                        //        {
                        //            if (tempUserIdList.Count == 9)
                        //            {
                        //                tempGroupId.Add(tempUserIdList);
                        //                tempUserIdList = new List<int>();
                        //            }
                        //            tempUserIdList.Add(int.Parse(curDoorLockUser.DoorLockLocalUserId));
                        //        }
                        //    }
                        //    tempGroupId.Add(tempUserIdList);
                        //    //批量冻结门锁中的账户
                        //    ZigBee.Device.DoorLock.AccessType accessType;
                        //    if (isFreeze)
                        //    {
                        //        accessType = ZigBee.Device.DoorLock.AccessType.DisEnableMoreUsers;
                        //    }
                        //    else
                        //    {
                        //        accessType = ZigBee.Device.DoorLock.AccessType.EnableMoreUsers;
                        //    }
                        //    //冻结/解冻用户
                        //    int count1 = tempGroupId.Count;
                        //    if (tempGroupId.Count == 1)
                        //    {
                        //        foreach (var a in tempGroupId)
                        //        {
                        //            if (a.Count == 0)
                        //            {
                        //                count1 = 0;
                        //                break;
                        //            }
                        //        }
                        //    }
                        //    int count2 = 0;
                            int tempCount = 0;
                            for (int i = 0; i < tempGroupId.Count; i++)
                            {
                                var tempUserIdList1 = tempGroupId[i];
                                if (tempUserIdList1.Count == 0)
                                {
                                    break;
                                }
                                var passData = doorLock.FreezeAccountData(tempUserIdList1, accessType);
                                var resultData = await doorLock.DefaultControlAsync(passData);
                                if (resultData != null && resultData.defaultControlResponseData != null)
                                {
                                    if (resultData.defaultControlResponseData.status == 32)
                                    {
                                        count2++;
                                    }
                                    else if (resultData.defaultControlResponseData.status == 33)
                                    {
                                        count2++;
                                    }
                                    System.Threading.Thread.Sleep(1000);
                                }
                                else
                                {
                                    Application.RunOnMainThread(() =>
                                    {
                                        new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime), Direction = AMPopTipDirection.None, CloseTime = 2 }.Show(Common.CommonPage.Instance);
                                    });
                                    return;
                                }
                                tempCount++;
                            }
                        //    int tempCount = 0;
                        //    for (int i = 0; i < tempGroupId.Count; i++)
                        //    {
                        //        var tempUserIdList1 = tempGroupId[i];
                        //        if (tempUserIdList1.Count == 0)
                        //        {
                        //            break;
                        //        }
                        //        var passData = doorLock.FreezeAccountData(tempUserIdList1, accessType);
                        //        var resultData = await doorLock.DefaultControlAsync(passData);
                        //        if (resultData != null && resultData.defaultControlResponseData != null)
                        //        {
                        //            if (resultData.defaultControlResponseData.status == 32)
                        //            {
                        //                count2++;
                        //            }
                        //            else if (resultData.defaultControlResponseData.status == 33)
                        //            {
                        //                count2++;
                        //            }
                        //            System.Threading.Thread.Sleep(1000);
                        //        }
                        //        else
                        //        {
                        //            Application.RunOnMainThread(() =>
                        //            {
                        //                new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime), Direction = AMPopTipDirection.None, CloseTime = 2 }.Show(Common.CommonPage.Instance);
                        //            });
                        //            return;
                        //        }
                        //        tempCount++;
                        //    }
                            // 批量冻结门锁中的账户后,准备冻结云端账户
                            if (count2 == count1)
                            {
                                foreach (var curDoorLockUser in curAccountDoorLockUserList)
                                {
                                    if (isFreeze)
                                    {
                                        var refreshDoorLockData = new ZigBee.Device.DoorLock.RefreshDoorLockData();
                                        if (UserCenterResourse.UserInfo.AuthorityNo != 1)
                                        {
                                            refreshDoorLockData.LoginAccessToken = UserCenterLogic.GetConnectMainToken();
                                            refreshDoorLockData.IsOtherAccountCtrl = true;
                                        }
                                        if (doorLock.DeviceAddr != null)
                                        {
                                            refreshDoorLockData.DoorLockId = doorLock.DeviceAddr + "_" + doorLock.DeviceEpoint;
                                        }
                        //    // 批量冻结门锁中的账户后,准备冻结云端账户
                        //    if (count2 == count1)
                        //    {
                        //        foreach (var curDoorLockUser in curAccountDoorLockUserList)
                        //        {
                        //            if (isFreeze)
                        //            {
                        //                var refreshDoorLockData = new ZigBee.Device.DoorLock.RefreshDoorLockData();
                        //                if (UserCenterResourse.ResidenceOption.AuthorityNo != 1)
                        //                {
                        //                    //☆マーク☆
                        //                    //refreshDoorLockData.LoginAccessToken = UserCenterLogic.GetConnectMainToken();
                        //                    refreshDoorLockData.IsOtherAccountCtrl = true;
                        //                }
                        //                if (doorLock.DeviceAddr != null)
                        //                {
                        //                    refreshDoorLockData.DoorLockId = doorLock.DeviceAddr + "_" + doorLock.DeviceEpoint;
                        //                }
                                        refreshDoorLockData.OpenLockMode = curDoorLockUser.OpenLockMode;
                                        refreshDoorLockData.DoorLockLocalUserId = curDoorLockUser.DoorLockLocalUserId;
                                        refreshDoorLockData.PrimaryId = curDoorLockUser.Id;
                                        refreshDoorLockData.IsFreezeUser = true;
                                        refreshDoorLockData.IsTempUnlockAuthority = doorLock.HasRemoteUnlockAccess[curAccountObj.SubAccountDistributedMark];
                                        //冻结云端
                                        var result = await ZigBee.Device.DoorLock.SendDoorLockToServer("DoorLock/UpdateDoorLock", refreshDoorLockData);
                                        if (result != null)
                                        {
                                            if (result.StateCode == "Success")
                                            {
                                                successConunt++;
                                            }
                                            else
                                            {
                                                Application.RunOnMainThread(() =>
                                                {
                                                    if (isFreeze)
                                                    {
                                                        new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.FreezeFailed), Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(Common.CommonPage.Instance);
                                                    }
                                                    else
                                                    {
                                                        new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.UnFreezeFailed), Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(Common.CommonPage.Instance);
                                                    }
                                                    return;
                                                });
                                            }
                                        }
                                        else
                                        {
                                            Application.RunOnMainThread(() =>
                                            {
                                                new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.CloudServerResponseOvertime), Direction = AMPopTipDirection.None, CloseTime = 2 }.Show(Common.CommonPage.Instance);
                                            });
                                        }
                                    }
                                    else
                                    {
                                        var refreshDoorLockData = new ZigBee.Device.DoorLock.RefreshDoorLockData();
                                        if (UserCenterResourse.UserInfo.AuthorityNo != 1)
                                        {
                                            refreshDoorLockData.LoginAccessToken = UserCenterLogic.GetConnectMainToken();
                                            refreshDoorLockData.IsOtherAccountCtrl = true;
                                        }
                                        if (doorLock.DeviceAddr != null)
                                        {
                                            refreshDoorLockData.DoorLockId = doorLock.DeviceAddr + "_" + doorLock.DeviceEpoint;
                                        }
                        //                refreshDoorLockData.OpenLockMode = curDoorLockUser.OpenLockMode;
                        //                refreshDoorLockData.DoorLockLocalUserId = curDoorLockUser.DoorLockLocalUserId;
                        //                refreshDoorLockData.PrimaryId = curDoorLockUser.Id;
                        //                refreshDoorLockData.IsFreezeUser = true;
                        //                refreshDoorLockData.IsTempUnlockAuthority = doorLock.HasRemoteUnlockAccess[curAccountObj.SubAccountDistributedMark];
                        //                //冻结云端
                        //                var result = await ZigBee.Device.DoorLock.SendDoorLockToServer("DoorLock/UpdateDoorLock", refreshDoorLockData);
                        //                if (result != null)
                        //                {
                        //                    if (result.Code == HttpMessageEnum.A正常)
                        //                    {
                        //                        successConunt++;
                        //                    }
                        //                    else
                        //                    {
                        //                        Application.RunOnMainThread(() =>
                        //                        {
                        //                            if (isFreeze)
                        //                            {
                        //                                new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.FreezeFailed), Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(Common.CommonPage.Instance);
                        //                            }
                        //                            else
                        //                            {
                        //                                new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.UnFreezeFailed), Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(Common.CommonPage.Instance);
                        //                            }
                        //                            return;
                        //                        });
                        //                    }
                        //                }
                        //                else
                        //                {
                        //                    Application.RunOnMainThread(() =>
                        //                    {
                        //                        new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.CloudServerResponseOvertime), Direction = AMPopTipDirection.None, CloseTime = 2 }.Show(Common.CommonPage.Instance);
                        //                    });
                        //                }
                        //            }
                        //            else
                        //            {
                        //                var refreshDoorLockData = new ZigBee.Device.DoorLock.RefreshDoorLockData();
                        //                if (UserCenterResourse.ResidenceOption.AuthorityNo != 1)
                        //                {
                        //                    //☆マーク☆
                        //                    //refreshDoorLockData.LoginAccessToken = UserCenterLogic.GetConnectMainToken();
                        //                    refreshDoorLockData.IsOtherAccountCtrl = true;
                        //                }
                        //                if (doorLock.DeviceAddr != null)
                        //                {
                        //                    refreshDoorLockData.DoorLockId = doorLock.DeviceAddr + "_" + doorLock.DeviceEpoint;
                        //                }
                                        refreshDoorLockData.OpenLockMode = curDoorLockUser.OpenLockMode;
                                        refreshDoorLockData.DoorLockLocalUserId = curDoorLockUser.DoorLockLocalUserId;
                                        refreshDoorLockData.PrimaryId = curDoorLockUser.Id;
                                        refreshDoorLockData.IsFreezeUser = false;
                                        refreshDoorLockData.IsTempUnlockAuthority = doorLock.HasRemoteUnlockAccess[curAccountObj.SubAccountDistributedMark];
                                        //解冻云端
                                        var result = await ZigBee.Device.DoorLock.SendDoorLockToServer("DoorLock/UpdateDoorLock", refreshDoorLockData);
                                        if (result != null)
                                        {
                                            if (result.StateCode == "Success")
                                            {
                                                successConunt++;
                                            }
                                            else
                                            {
                                                Application.RunOnMainThread(() =>
                                                {
                                                    new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.FreezeFailed), Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(Common.CommonPage.Instance);
                                                });
                                            }
                                        }
                                        else
                                        {
                                            Application.RunOnMainThread(() =>
                                            {
                                                new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.CloudServerResponseOvertime), Direction = AMPopTipDirection.None, CloseTime = 2 }.Show(Common.CommonPage.Instance);
                                            });
                                        }
                                    }
                                }
                            }
                            else
                            {
                                Application.RunOnMainThread(() =>
                                {
                                    if (isFreeze)
                                    {
                                        new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.FreezeFailed) + ".", Direction = AMPopTipDirection.None, CloseTime = 2 }.Show(Common.CommonPage.Instance);
                                    }
                                    else
                                    {
                                        new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.UnFreezeFailed) + ".", Direction = AMPopTipDirection.None, CloseTime = 2 }.Show(Common.CommonPage.Instance);
                                    }
                                });
                            }
                        }
                        else
                        {
                            //添加云端存储信息
                            //冻结/解冻云端
                            var addLockInfo = new ZigBee.Device.DoorLock.AddDoorLockData();
                            if (UserCenterResourse.UserInfo.AuthorityNo != 1)
                            {
                                addLockInfo.LoginAccessToken = UserCenterLogic.GetConnectMainToken();
                                addLockInfo.IsOtherAccountCtrl = true;
                            }
                            addLockInfo.CloudAccountId = curAccountObj.SubAccountDistributedMark;
                            if (doorLock.DeviceAddr != null)
                            {
                                addLockInfo.DoorLockId = doorLock.DeviceAddr + "_" + doorLock.DeviceEpoint;
                            }
                            addLockInfo.EntryTime = System.DateTime.Now;
                            if (isFreeze)
                            {
                                addLockInfo.IsFreezeUser = true;
                            }
                            else
                            {
                                addLockInfo.IsFreezeUser = false;
                            }
                            addLockInfo.IsTempUnlockAuthority = doorLock.HasRemoteUnlockAccess[curAccountObj.SubAccountDistributedMark];
                            var result = await ZigBee.Device.DoorLock.SendDoorLockToServer("DoorLock/AddDoorLock", addLockInfo);
                            if (result != null)
                            {
                                if (result.StateCode == "Success")
                                {
                                    operateConunt = 0;
                                }
                                else
                                {
                                    Application.RunOnMainThread(() =>
                                    {
                                        if (isFreeze)
                                        {
                                            new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.FreezeFailed), Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(Common.CommonPage.Instance);
                                        }
                                        else
                                        {
                                            new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.UnFreezeFailed), Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(Common.CommonPage.Instance);
                                        }
                                        return;
                                    });
                                }
                            }
                            else
                            {
                                Application.RunOnMainThread(() =>
                                {
                                    new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.CloudServerResponseOvertime), Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(Common.CommonPage.Instance);
                        //                refreshDoorLockData.OpenLockMode = curDoorLockUser.OpenLockMode;
                        //                refreshDoorLockData.DoorLockLocalUserId = curDoorLockUser.DoorLockLocalUserId;
                        //                refreshDoorLockData.PrimaryId = curDoorLockUser.Id;
                        //                refreshDoorLockData.IsFreezeUser = false;
                        //                refreshDoorLockData.IsTempUnlockAuthority = doorLock.HasRemoteUnlockAccess[curAccountObj.SubAccountDistributedMark];
                        //                //解冻云端
                        //                var result = await ZigBee.Device.DoorLock.SendDoorLockToServer("DoorLock/UpdateDoorLock", refreshDoorLockData);
                        //                if (result != null)
                        //                {
                        //                    if (result.Code == HttpMessageEnum.A正常)
                        //                    {
                        //                        successConunt++;
                        //                    }
                        //                    else
                        //                    {
                        //                        Application.RunOnMainThread(() =>
                        //                        {
                        //                            new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.FreezeFailed), Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(Common.CommonPage.Instance);
                        //                        });
                        //                    }
                        //                }
                        //                else
                        //                {
                        //                    Application.RunOnMainThread(() =>
                        //                    {
                        //                        new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.CloudServerResponseOvertime), Direction = AMPopTipDirection.None, CloseTime = 2 }.Show(Common.CommonPage.Instance);
                        //                    });
                        //                }
                        //            }
                        //        }
                        //    }
                        //    else
                        //    {
                        //        Application.RunOnMainThread(() =>
                        //        {
                        //            if (isFreeze)
                        //            {
                        //                new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.FreezeFailed) + ".", Direction = AMPopTipDirection.None, CloseTime = 2 }.Show(Common.CommonPage.Instance);
                        //            }
                        //            else
                        //            {
                        //                new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.UnFreezeFailed) + ".", Direction = AMPopTipDirection.None, CloseTime = 2 }.Show(Common.CommonPage.Instance);
                        //            }
                        //        });
                        //    }
                        //}
                        //else
                        //{
                        //    //添加云端存储信息
                        //    //冻结/解冻云端
                        //    var addLockInfo = new ZigBee.Device.DoorLock.AddDoorLockData();
                        //    if (UserCenterResourse.ResidenceOption.AuthorityNo != 1)
                        //    {
                        //        //☆マーク☆
                        //        //addLockInfo.LoginAccessToken = UserCenterLogic.GetConnectMainToken();
                        //        addLockInfo.IsOtherAccountCtrl = true;
                        //    }
                        //    addLockInfo.CloudAccountId = curAccountObj.SubAccountDistributedMark;
                        //    if (doorLock.DeviceAddr != null)
                        //    {
                        //        addLockInfo.DoorLockId = doorLock.DeviceAddr + "_" + doorLock.DeviceEpoint;
                        //    }
                        //    addLockInfo.EntryTime = System.DateTime.Now;
                        //    if (isFreeze)
                        //    {
                        //        addLockInfo.IsFreezeUser = true;
                        //    }
                        //    else
                        //    {
                        //        addLockInfo.IsFreezeUser = false;
                        //    }
                        //    addLockInfo.IsTempUnlockAuthority = doorLock.HasRemoteUnlockAccess[curAccountObj.SubAccountDistributedMark];
                        //    var result = await ZigBee.Device.DoorLock.SendDoorLockToServer("DoorLock/AddDoorLock", addLockInfo);
                        //    if (result != null)
                        //    {
                        //        if (result.Code == HttpMessageEnum.A正常)
                        //        {
                        //            operateConunt = 0;
                        //        }
                        //        else
                        //        {
                        //            Application.RunOnMainThread(() =>
                        //            {
                        //                if (isFreeze)
                        //                {
                        //                    new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.FreezeFailed), Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(Common.CommonPage.Instance);
                        //                }
                        //                else
                        //                {
                        //                    new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.UnFreezeFailed), Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(Common.CommonPage.Instance);
                        //                }
                        //                return;
                        //            });
                        //        }
                        //    }
                        //    else
                        //    {
                        //        Application.RunOnMainThread(() =>
                        //        {
                        //            new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.CloudServerResponseOvertime), Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(Common.CommonPage.Instance);
                                });
                            }
                        }
                        //        });
                        //    }
                        //}
                    }
                    catch { }
                    finally
                    {
                        if (operateConunt == successConunt)
                        {
                            if (isFreeze)
                            {
                                doorLock.IsFreezeAccount[curAccountObj.SubAccountDistributedMark] = true;
                            }
                            else
                            {
                                doorLock.IsFreezeAccount[curAccountObj.SubAccountDistributedMark] = false;
                            }
                            doorLock.ReSave();
                            //☆マーク☆
                            //if (isFreeze)
                            //{
                            //    doorLock.IsFreezeAccount[curAccountObj.SubAccountDistributedMark] = true;
                            //}
                            //else
                            //{
                            //    doorLock.IsFreezeAccount[curAccountObj.SubAccountDistributedMark] = false;
                            //}
                            //doorLock.ReSave();
                        }
                        Application.RunOnMainThread(() =>
                        {
@@ -596,7 +596,7 @@
            {
                msg = Language.StringByID(R.MyInternationalizationString.SureCancelAccessToSubaccount);
            }
            var alert = new Shared.Phone.UserCenter.ShowMsgControl(ShowMsgType.Confirm, msg, Language.StringByID(R.MyInternationalizationString.DoorlockConfirm));
            var alert = new ShowMsgControl(ShowMsgType.Confirm, msg, Language.StringByID(R.MyInternationalizationString.DoorlockConfirm));
            alert.Show();
            //使用确认型弹框时,的回调函数
            alert.ConfirmClickEvent += () =>
@@ -608,159 +608,163 @@
                    Application.RunOnMainThread(() => { CommonPage.Loading.Start("Loading..."); });
                    try
                    {
                        var resultList = await Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.GetAccountDoorLockUserList(doorLock, curAccountObj.SubAccountDistributedMark);
                        var uList = new List<string> { };
                        if (resultList != null)
                        {
                            foreach (var a in resultList)
                            {
                                uList.Add(a.CloudAccountId);
                            }
                        }
                        var d = uList.Find((value) => { return value == curAccountObj.SubAccountDistributedMark; });
                        if (d != null)
                        {
                            //修改云端存储信息
                            var curAccountDoorLockUserList = await Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.GetAccountDoorLockUserList(doorLock, curAccountObj.SubAccountDistributedMark);
                        //☆マーク☆
                        //var resultList = await Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.GetAccountDoorLockUserList(doorLock, curAccountObj.SubAccountDistributedMark);
                        //var uList = new List<string> { };
                        //if (resultList != null)
                        //{
                        //    foreach (var a in resultList)
                        //    {
                        //        uList.Add(a.CloudAccountId);
                        //    }
                        //}
                            foreach (var curDoorLockUser in curAccountDoorLockUserList)
                            {
                                operateConunt = curAccountDoorLockUserList.Count;
                                if (hasAccess)
                                {
                                    var refreshDoorLockData = new ZigBee.Device.DoorLock.RefreshDoorLockData();
                                    if (UserCenterResourse.UserInfo.AuthorityNo != 1)
                                    {
                                        refreshDoorLockData.LoginAccessToken = UserCenterLogic.GetConnectMainToken();
                                        refreshDoorLockData.IsOtherAccountCtrl = true;
                                    }
                                    if (doorLock.DeviceAddr != null)
                                    {
                                        refreshDoorLockData.DoorLockId = doorLock.DeviceAddr + "_" + doorLock.DeviceEpoint;
                                    }
                                    refreshDoorLockData.PrimaryId = curDoorLockUser.Id;
                                    refreshDoorLockData.IsFreezeUser = false;
                                    refreshDoorLockData.IsTempUnlockAuthority = true;
                                    // 授权
                                    var result = await ZigBee.Device.DoorLock.SendDoorLockToServer("DoorLock/UpdateDoorLock", refreshDoorLockData);
                                    if (result != null)
                                    {
                                        if (result.StateCode == "Success")
                                        {
                                            successConunt++;
                                        }
                                        else
                                        {
                                            Application.RunOnMainThread(() =>
                                            {
                                                new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GiveAccessToSubaccountFailed), Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(Common.CommonPage.Instance);
                                            });
                                        }
                                    }
                                    else
                                    {
                                        Application.RunOnMainThread(() =>
                                        {
                                            new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.CloudServerResponseOvertime), Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(Common.CommonPage.Instance);
                                        });
                                    }
                                }
                                else
                                {
                                    var refreshDoorLockData = new ZigBee.Device.DoorLock.RefreshDoorLockData();
                                    if (UserCenterResourse.UserInfo.AuthorityNo != 1)
                                    {
                                        refreshDoorLockData.LoginAccessToken = UserCenterLogic.GetConnectMainToken();
                                        refreshDoorLockData.IsOtherAccountCtrl = true;
                                    }
                                    if (doorLock.DeviceAddr != null)
                                    {
                                        refreshDoorLockData.DoorLockId = doorLock.DeviceAddr + "_" + doorLock.DeviceEpoint;
                                    }
                                    refreshDoorLockData.PrimaryId = curDoorLockUser.Id;
                                    refreshDoorLockData.IsFreezeUser = false;
                                    refreshDoorLockData.IsTempUnlockAuthority = false;
                                    //取消权限
                                    var result = await ZigBee.Device.DoorLock.SendDoorLockToServer("DoorLock/UpdateDoorLock", refreshDoorLockData);
                                    if (result != null)
                                    {
                                        if (result.StateCode == "Success")
                                        {
                                            successConunt++;
                                        }
                                        else
                                        {
                                            Application.RunOnMainThread(() =>
                                            {
                                                new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.CancelAccessToSubaccountFailed), Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(Common.CommonPage.Instance);
                                            });
                                        }
                                    }
                                    else
                                    {
                                        Application.RunOnMainThread(() =>
                                        {
                                            new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.CloudServerResponseOvertime), Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(Common.CommonPage.Instance);
                                        });
                                    }
                                }
                            }
                        }
                        else
                        {
                            //新增,且不冻结
                            var addLockInfo = new ZigBee.Device.DoorLock.AddDoorLockData();
                            if (UserCenterResourse.UserInfo.AuthorityNo != 1)
                            {
                                addLockInfo.LoginAccessToken = UserCenterLogic.GetConnectMainToken();
                                addLockInfo.IsOtherAccountCtrl = true;
                            }
                            addLockInfo.CloudAccountId = curAccountObj.SubAccountDistributedMark;
                            if (doorLock.DeviceAddr != null)
                            {
                                addLockInfo.DoorLockId = doorLock.DeviceAddr + "_" + doorLock.DeviceEpoint;
                            }
                            addLockInfo.EntryTime = System.DateTime.Now;
                            addLockInfo.IsFreezeUser = false;
                            if (hasAccess)
                            {
                                addLockInfo.IsTempUnlockAuthority = true;
                            }
                            else
                            {
                                addLockInfo.IsTempUnlockAuthority = false;
                            }
                            var result = await ZigBee.Device.DoorLock.SendDoorLockToServer("DoorLock/AddDoorLock", addLockInfo);
                            if (result != null)
                            {
                                if (result.StateCode == "Success")
                                {
                                    operateConunt = 0;
                                }
                                else
                                {
                                    Application.RunOnMainThread(() =>
                                    {
                                        if (hasAccess)
                                        {
                                            new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GiveAccessToSubaccountFailed), Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(Common.CommonPage.Instance);
                                        }
                                        else
                                        {
                                            new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.CancelAccessToSubaccountFailed), Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(Common.CommonPage.Instance);
                                        }
                                        return;
                                    });
                                }
                            }
                            else
                            {
                                Application.RunOnMainThread(() =>
                                {
                                    new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.CloudServerResponseOvertime), Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(Common.CommonPage.Instance);
                                });
                            }
                        }
                        //var d = uList.Find((value) => { return value == curAccountObj.SubAccountDistributedMark; });
                        //if (d != null)
                        //{
                        //    //修改云端存储信息
                        //    var curAccountDoorLockUserList = await Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.GetAccountDoorLockUserList(doorLock, curAccountObj.SubAccountDistributedMark);
                        //    foreach (var curDoorLockUser in curAccountDoorLockUserList)
                        //    {
                        //        operateConunt = curAccountDoorLockUserList.Count;
                        //        if (hasAccess)
                        //        {
                        //            var refreshDoorLockData = new ZigBee.Device.DoorLock.RefreshDoorLockData();
                        //            if (UserCenterResourse.ResidenceOption.AuthorityNo != 1)
                        //            {
                        //                //☆マーク☆
                        //                //refreshDoorLockData.LoginAccessToken = UserCenterLogic.GetConnectMainToken();
                        //                refreshDoorLockData.IsOtherAccountCtrl = true;
                        //            }
                        //            if (doorLock.DeviceAddr != null)
                        //            {
                        //                refreshDoorLockData.DoorLockId = doorLock.DeviceAddr + "_" + doorLock.DeviceEpoint;
                        //            }
                        //            refreshDoorLockData.PrimaryId = curDoorLockUser.Id;
                        //            refreshDoorLockData.IsFreezeUser = false;
                        //            refreshDoorLockData.IsTempUnlockAuthority = true;
                        //            // 授权
                        //            var result = await ZigBee.Device.DoorLock.SendDoorLockToServer("DoorLock/UpdateDoorLock", refreshDoorLockData);
                        //            if (result != null)
                        //            {
                        //                if (result.Code == HttpMessageEnum.A正常)
                        //                {
                        //                    successConunt++;
                        //                }
                        //                else
                        //                {
                        //                    Application.RunOnMainThread(() =>
                        //                    {
                        //                        new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GiveAccessToSubaccountFailed), Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(Common.CommonPage.Instance);
                        //                    });
                        //                }
                        //            }
                        //            else
                        //            {
                        //                Application.RunOnMainThread(() =>
                        //                {
                        //                    new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.CloudServerResponseOvertime), Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(Common.CommonPage.Instance);
                        //                });
                        //            }
                        //        }
                        //        else
                        //        {
                        //            var refreshDoorLockData = new ZigBee.Device.DoorLock.RefreshDoorLockData();
                        //            if (UserCenterResourse.ResidenceOption.AuthorityNo != 1)
                        //            {
                        //                //refreshDoorLockData.LoginAccessToken = UserCenterLogic.GetConnectMainToken();
                        //                refreshDoorLockData.IsOtherAccountCtrl = true;
                        //            }
                        //            if (doorLock.DeviceAddr != null)
                        //            {
                        //                refreshDoorLockData.DoorLockId = doorLock.DeviceAddr + "_" + doorLock.DeviceEpoint;
                        //            }
                        //            refreshDoorLockData.PrimaryId = curDoorLockUser.Id;
                        //            refreshDoorLockData.IsFreezeUser = false;
                        //            refreshDoorLockData.IsTempUnlockAuthority = false;
                        //            //取消权限
                        //            var result = await ZigBee.Device.DoorLock.SendDoorLockToServer("DoorLock/UpdateDoorLock", refreshDoorLockData);
                        //            if (result != null)
                        //            {
                        //                if (result.Code == HttpMessageEnum.A正常)
                        //                {
                        //                    successConunt++;
                        //                }
                        //                else
                        //                {
                        //                    Application.RunOnMainThread(() =>
                        //                    {
                        //                        new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.CancelAccessToSubaccountFailed), Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(Common.CommonPage.Instance);
                        //                    });
                        //                }
                        //            }
                        //            else
                        //            {
                        //                Application.RunOnMainThread(() =>
                        //                {
                        //                    new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.CloudServerResponseOvertime), Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(Common.CommonPage.Instance);
                        //                });
                        //            }
                        //        }
                        //    }
                        //}
                        //else
                        //{
                        //    //新增,且不冻结
                        //    var addLockInfo = new ZigBee.Device.DoorLock.AddDoorLockData();
                        //    if (UserCenterResourse.ResidenceOption.AuthorityNo != 1)
                        //    {
                        //        //☆マーク☆
                        //        //addLockInfo.LoginAccessToken = UserCenterLogic.GetConnectMainToken();
                        //        addLockInfo.IsOtherAccountCtrl = true;
                        //    }
                        //    addLockInfo.CloudAccountId = curAccountObj.SubAccountDistributedMark;
                        //    if (doorLock.DeviceAddr != null)
                        //    {
                        //        addLockInfo.DoorLockId = doorLock.DeviceAddr + "_" + doorLock.DeviceEpoint;
                        //    }
                        //    addLockInfo.EntryTime = System.DateTime.Now;
                        //    addLockInfo.IsFreezeUser = false;
                        //    if (hasAccess)
                        //    {
                        //        addLockInfo.IsTempUnlockAuthority = true;
                        //    }
                        //    else
                        //    {
                        //        addLockInfo.IsTempUnlockAuthority = false;
                        //    }
                        //    var result = await ZigBee.Device.DoorLock.SendDoorLockToServer("DoorLock/AddDoorLock", addLockInfo);
                        //    if (result != null)
                        //    {
                        //        if (result.Code == HttpMessageEnum.A正常)
                        //        {
                        //            operateConunt = 0;
                        //        }
                        //        else
                        //        {
                        //            Application.RunOnMainThread(() =>
                        //            {
                        //                if (hasAccess)
                        //                {
                        //                    new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GiveAccessToSubaccountFailed), Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(Common.CommonPage.Instance);
                        //                }
                        //                else
                        //                {
                        //                    new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.CancelAccessToSubaccountFailed), Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(Common.CommonPage.Instance);
                        //                }
                        //                return;
                        //            });
                        //        }
                        //    }
                        //    else
                        //    {
                        //        Application.RunOnMainThread(() =>
                        //        {
                        //            new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.CloudServerResponseOvertime), Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(Common.CommonPage.Instance);
                        //        });
                        //    }
                        //}
                    }
                    catch { }
@@ -768,14 +772,15 @@
                    {
                        if (operateConunt == successConunt)
                        {
                            if (hasAccess)
                            {
                                doorLock.HasRemoteUnlockAccess[curAccountObj.SubAccountDistributedMark] = true;
                            }
                            else
                            {
                                doorLock.HasRemoteUnlockAccess[curAccountObj.SubAccountDistributedMark] = false;
                            }
                            //☆マーク☆
                            //if (hasAccess)
                            //{
                            //    doorLock.HasRemoteUnlockAccess[curAccountObj.SubAccountDistributedMark] = true;
                            //}
                            //else
                            //{
                            //    doorLock.HasRemoteUnlockAccess[curAccountObj.SubAccountDistributedMark] = false;
                            //}
                            doorLock.ReSave();
                        }
                        Application.RunOnMainThread(() =>