HDL Home App 第二版本 旧平台金堂用 正在使用
hxb
2022-08-30 25429f085093d89d543a0b90e30d0d62d1b7dac9
ZigbeeApp/Shared/Phone/UserCenter/DoorLock/MemberFrozenPage.cs
@@ -76,8 +76,8 @@
            });
        }
        /// <summary>
        /// UI显示
        /// <summary>
        /// UI显示
        /// </summary>
        public void Show()
        {
@@ -149,8 +149,8 @@
                var btnRight = new Button()
                {
                    Height = Application.GetRealHeight(60),
                    Width = Application.GetRealWidth(60),
                    Height = Application.GetMinRealAverage(60),
                    Width = Application.GetMinRealAverage(60),
                    X = Application.GetRealWidth(72),
                    Y = Application.GetRealHeight(32),
                    UnSelectedImagePath = "DoorLock/RightIcon.png",
@@ -176,8 +176,8 @@
                    btnText.Text = Language.StringByID(R.MyInternationalizationString.FrozenUser);
                    btnRight.X = Application.GetRealWidth(50);
                    btnRight.Y = Application.GetRealHeight(32);
                    btnRight.Height = Application.GetRealHeight(63);
                    btnRight.Width = Application.GetRealWidth(104);
                    btnRight.Height = Application.GetMinRealAverage(63);
                    btnRight.Width = Application.GetMinRealAverage(104);
                    btnRight.UnSelectedImagePath = "DoorLock/Switch.png";
                    btnRight.SelectedImagePath = "DoorLock/SwitchOn.png";
                    var result = doorLock.IsFreezeAccount[curAccountObj.SubAccountDistributedMark];
@@ -197,8 +197,8 @@
                        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.Height = Application.GetMinRealAverage(63);
                        btnRight.Width = Application.GetMinRealAverage(104);
                        btnRight.UnSelectedImagePath = "DoorLock/Switch.png";
                        btnRight.SelectedImagePath = "DoorLock/SwitchOn.png";
                        line2.Visible = false;
@@ -297,30 +297,30 @@
            alert.Show();
            //使用确认型弹框时,的回调函数
            alert.ConfirmClickEvent += () =>
            {
                System.Threading.Tasks.Task.Run(async () =>
                {
                    int successConunt = 0;
                    int operateConunt = -1;
                    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;
            {
                System.Threading.Tasks.Task.Run(async () =>
                {
                    int successConunt = 0;
                    int operateConunt = -1;
                    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
                                {
                            foreach (var curDoorLockUser in curAccountDoorLockUserList)
                            {
                                // 账户中没有门锁用户
                                if (string.IsNullOrEmpty(curDoorLockUser.DoorLockLocalUserId))
                                {
                                }
                                else
                                {
                                    if (tempUserIdList.Count == 9)
                                    {
                                        tempGroupId.Add(tempUserIdList);
@@ -331,16 +331,16 @@
                            }
                            tempGroupId.Add(tempUserIdList);
                            //批量冻结门锁中的账户
                            ZigBee.Device.DoorLock.AccessType accessType;
                            if (isFreeze)
                            {
                                accessType = ZigBee.Device.DoorLock.AccessType.DisEnableMoreUsers;
                            }
                            else
                            {
                                accessType = ZigBee.Device.DoorLock.AccessType.EnableMoreUsers;
                            }
                            //冻结/解冻用户
                            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)
                            {
@@ -363,11 +363,11 @@
                                {
                                    break;
                                }
                                var passData = doorLock.FreezeAccountData(tempUserIdList1, accessType);
                                var resultData = await doorLock.DefaultControlAsync(passData);
                                if (resultData != null && resultData.defaultControlResponseData != null)
                                {
                                    if (resultData.defaultControlResponseData.status == 32)
                                var passData = doorLock.FreezeAccountData(tempUserIdList1, accessType);
                                var resultData = await doorLock.DefaultControlAsync(passData);
                                if (resultData != null && resultData.defaultControlResponseData != null)
                                {
                                    if (resultData.defaultControlResponseData.status == 32)
                                    {
                                        count2++;
                                    }
@@ -394,88 +394,46 @@
                                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;
                                        }
                                        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
                                    {
                                        var refreshDoorLockData = new ZigBee.Device.DoorLock.RefreshDoorLockData();
                                        if (UserCenterResourse.UserInfo.AuthorityNo != 1)
                                        {
                                            Application.RunOnMainThread(() =>
                                            {
                                                new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.CloudServerResponseOvertime), Direction = AMPopTipDirection.None, CloseTime = 2 }.Show(Common.CommonPage.Instance);
                                            });
                                            refreshDoorLockData.LoginAccessToken = UserCenterLogic.GetConnectMainToken();
                                            refreshDoorLockData.IsOtherAccountCtrl = true;
                                        }
                                    }
                                    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 = false;
                                        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(() =>
                                                {
                                                    new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.FreezeFailed), Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(Common.CommonPage.Instance);
                                                });
                                            }
                                        //冻结云端
                                        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
                                        {
@@ -483,70 +441,112 @@
                                            {
                                                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 = 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;
                            }
                            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);
                            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;
                                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;
                                    });
                                }
                            }
@@ -556,32 +556,32 @@
                                {
                                    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();
                        }
                        Application.RunOnMainThread(() =>
                        {
                            MidRefresh();
                            CommonPage.Loading.Hide();
                        });
                    }
                });
                                });
                            }
                        }
                    }
                    catch { }
                    finally
                    {
                        if (operateConunt == successConunt)
                        {
                            if (isFreeze)
                            {
                                doorLock.IsFreezeAccount[curAccountObj.SubAccountDistributedMark] = true;
                            }
                            else
                            {
                                doorLock.IsFreezeAccount[curAccountObj.SubAccountDistributedMark] = false;
                            }
                            doorLock.ReSave();
                        }
                        Application.RunOnMainThread(() =>
                        {
                            MidRefresh();
                            CommonPage.Loading.Hide();
                        });
                    }
                });
            };
        }