From 48ba446936b51fffafa7c3600c0dadc6ac0e8c20 Mon Sep 17 00:00:00 2001 From: 陈嘉乐 <cjl@hdlchina.com.cn> Date: 星期五, 10 七月 2020 10:52:13 +0800 Subject: [PATCH] 2020-07-10-01 --- ZigbeeApp/Shared/Phone/UserCenter/DoorLock/UserManagement.cs | 262 ++++++++++++++++++++++----------------------------- 1 files changed, 113 insertions(+), 149 deletions(-) diff --git a/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/UserManagement.cs b/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/UserManagement.cs index 0b5d4d8..25bdf6f 100755 --- a/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/UserManagement.cs +++ b/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/UserManagement.cs @@ -9,122 +9,92 @@ /// <summary> /// 闂ㄩ攣绠$悊 /// </summary> - public class UserManagement : DoorLockCommonLayout, ZigBee.Common.IStatus + public class UserManagement : DoorLockCommonLayout { - /// <summary> - /// 鎸夐敭妯″紡鎺ユ敹 - /// </summary> - /// <param name="common">Common.</param> - public void Changed(CommonDevice common) - { - //if (common.Type != ZigBee.Device.DeviceType.OnOffSwitch) - //{ - // return; - //} - - Shared.Application.RunOnMainThread(() => - { - //var dev = common as Panel; - }); - } - //浠庨棬閿佽淇℃伅 - void ReadDoorLockDeviceUserInfo() - { - System.Threading.Tasks.Task.Run(async () => - { - Application.RunOnMainThread(() => { CommonPage.Loading.Start("Loading..."); }); - try - { - var getDoorLockInfo = await doorLock.GetDoorlockUserInfoAsync(); - if (getDoorLockInfo != null && getDoorLockInfo.doorLockUserDetailData != null) - { - var dataList = getDoorLockInfo.doorLockUserDetailData.UserObjList; - foreach (var doorData in dataList) - { - var localDoorLockObj1 = new ZigBee.Device.DoorLock.LocaDoorLockObj() - { - UserID = doorData.UserId, - UnlockType = doorData.UserType - }; - if ((doorLock.localDoorLockUserList.ContainsKey(localDoorLockObj1.UserID)) == false) - { - doorLock.localDoorLockUserList.Add(localDoorLockObj1.UserID, localDoorLockObj1); - } - } - } - } - catch { } - finally - { - Application.RunOnMainThread(() => - { - CommonPage.Loading.Hide(); - }); - } - }); - } - //浠庢湇鍔″櫒璇讳俊鎭� - void ReadDoorLockServerUserInfo(Shared.Phone.UserCenter.MemberInfoRes curAccountObj) - { - System.Threading.Tasks.Task.Run(async () => - { - Application.RunOnMainThread(() => { CommonPage.Loading.Start("Loading..."); }); - try - { - // 璇诲彇浜戠闂ㄩ攣璁惧涓殑淇℃伅 - var localDoorLockObj = new ZigBee.Device.DoorLock.GetDoorLockData() { }; - - localDoorLockObj.CloudAccountId = curAccountObj.SubAccountDistributedMark; - if (doorLock.DeviceAddr != null) - { - localDoorLockObj.DoorLockId = doorLock.DeviceAddr + "_" + doorLock.DeviceEpoint; - } - - var getDoorLockInfoList = await ZigBee.Device.DoorLock.GetDoorLockInfoFromServer("App/GetDoorLockPager", localDoorLockObj); - if (getDoorLockInfoList != null) - { - foreach (var curDoorLockUser in getDoorLockInfoList.PageData) - { - if (doorLock.localDoorLockUserList.ContainsKey(int.Parse(curDoorLockUser.DoorLockLocalUserId))) - { - doorLock.localDoorLockUserList.Remove(int.Parse(curDoorLockUser.DoorLockLocalUserId)); - } - var doorLockObj = new ZigBee.Device.DoorLock.LocaDoorLockObj() { }; - doorLockObj.UserID = int.Parse(curDoorLockUser.DoorLockLocalUserId); - doorLockObj.UnlockType = curDoorLockUser.OpenLockMode; - doorLockObj.PrimaryId = curDoorLockUser.Id; - doorLockObj.EntryTime = curDoorLockUser.EntryTime; - doorLockObj.UserName = curDoorLockUser.UserIdRemarks; - doorLockObj.ConnectedAccount = curDoorLockUser.CloudAccountId; - doorLock.localDoorLockUserList.Add(int.Parse(curDoorLockUser.DoorLockLocalUserId), doorLockObj); - } - } - } - catch { } - finally - { - Application.RunOnMainThread(() => - { - CommonPage.Loading.Hide(); - }); - } - }); - } - - /// 鏋勯�犲嚱鏁� /// </summary> /// <param name="doorLock"></param> public UserManagement(ZigBee.Device.DoorLock doorLock) { this.doorLock = doorLock; + localAllAccountListTemp = doorLock.localAllAccountList; + localDoorLockUserListTemp = doorLock.localDoorLockUserList; } #region 鈼� 鍙橀噺鐢虫槑__________________________ ZigBee.Device.DoorLock doorLock; - List<Shared.Phone.UserCenter.MemberInfoRes> localAccountList = new List<Shared.Phone.UserCenter.MemberInfoRes> { }; + VerticalRefreshLayout midVerticalScrolViewLayout; + public List<Shared.Phone.UserCenter.MemberInfoRes> localAllAccountListTemp = new List<Shared.Phone.UserCenter.MemberInfoRes> { }; + public Dictionary<int, DoorLockCommonInfo.LocaDoorLockObj> localDoorLockUserListTemp = new Dictionary<int, DoorLockCommonInfo.LocaDoorLockObj>(); + + #endregion + /// <summary> + /// 鏁版嵁鍒锋柊 + /// </summary> + void ReadAccountDoorLockInfoList() + { + System.Threading.Tasks.Task.Run(async () => + { + try + { + var localAccountListTemp = await Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.LocalAccountList(); + if (localAccountListTemp != null) + { + doorLock.localAllAccountList.Clear(); + doorLock.localAllAccountList = localAccountListTemp; + localAllAccountListTemp = doorLock.localAllAccountList; + + //鍒濆鍖栨潈闄愪俊鎭� + foreach (var sub in localAccountListTemp) + { + if (doorLock.IsFreezeAccount.ContainsKey(sub.SubAccountDistributedMark) == false) + { + doorLock.IsFreezeAccount.Add(sub.SubAccountDistributedMark, false); + } + if (doorLock.HasRemoteUnlockAccess.ContainsKey(sub.SubAccountDistributedMark) == false) + { + doorLock.HasRemoteUnlockAccess.Add(sub.SubAccountDistributedMark, false); + } + if (doorLock.IsFailedToGetDoorLockInfo.ContainsKey(sub.SubAccountDistributedMark) == false) + { + doorLock.IsFailedToGetDoorLockInfo.Add(sub.SubAccountDistributedMark, false); + } + } + + //鑾峰彇鏈湴闂ㄩ攣鍒楄〃 + if (localDoorLockUserListTemp.Count == 0) + { + var list = await Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.GetDoorLockAllAcountUserlist(doorLock); + localDoorLockUserListTemp = doorLock.localDoorLockUserList; + } + doorLock.ReSave(); + } + else + { + Application.RunOnMainThread(() => + { + new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.CloudServerResponseOvertime), Direction = AMPopTipDirection.Down, CloseTime = 1 }.Show(Common.CommonPage.Instance); + }); + } + } + catch { } + finally + { + Application.RunOnMainThread(() => + { + MidFrameLayoutContent(); + CommonPage.Loading.Hide(); + midVerticalScrolViewLayout.EndHeaderRefreshing(); + }); + } + }); + } + + /// <summary> + /// 鏄剧ず鐣岄潰 + /// </summary> public void Show() { this.TopFrameLayout(this, Language.StringByID(R.MyInternationalizationString.UserManagement)); @@ -139,7 +109,7 @@ var btnAddFrameLayout = new FrameLayout { - X = Application.GetRealWidth(829), + X = Application.GetRealWidth(829 - 116), Height = Application.GetRealHeight(72), Width = Application.GetRealWidth(190), }; @@ -156,17 +126,24 @@ var btnUndistributeText = new Button { Height = Application.GetRealHeight(72), - Width = Application.GetRealWidth(121), + Width = Application.GetRealWidth(150), TextID = R.MyInternationalizationString.Undistributed, TextColor = Shared.Common.ZigbeeColor.Current.XMTopTitleText, X = btnUndistributeIcon.Right, + IsBold = true, + TextSize = 13, TextAlignment = TextAlignment.CenterLeft, }; btnAddFrameLayout.AddChidren(btnUndistributeText); - + if (UserCenterResourse.UserInfo.AuthorityNo != 1) + { + btnAddFrameLayout.Width = 0; + btnUndistributeIcon.Width = 0; + btnUndistributeText.Width = 0; + } EventHandler<MouseEventArgs> eHandler = (sender, e) => { - var undistributeDoorlockUserPage = new Shared.Phone.UserCenter.DoorLock.UndistributeDoorlockUserPage(doorLock, localAccountList); + var undistributeDoorlockUserPage = new Shared.Phone.UserCenter.DoorLock.UndistributeDoorlockUserPage(doorLock, doorLock.localAllAccountList); Shared.Phone.UserView.HomePage.Instance.AddChidren(undistributeDoorlockUserPage); Shared.Phone.UserView.HomePage.Instance.PageIndex += 1; undistributeDoorlockUserPage.Show(); @@ -174,42 +151,48 @@ btnAddFrameLayout.MouseDownEventHandler += eHandler; btnUndistributeText.MouseDownEventHandler += eHandler; btnUndistributeIcon.MouseDownEventHandler += eHandler; + midVerticalScrolViewLayout = new VerticalRefreshLayout() { }; + this.midFrameLayout.AddChidren(midVerticalScrolViewLayout); - MidFrameLayoutContent(); + if (localAllAccountListTemp.Count == 0) + { + CommonPage.Loading.Start("Loading..."); + ReadAccountDoorLockInfoList(); + } + else + { + MidFrameLayoutContent(); + } + + midVerticalScrolViewLayout.BeginHeaderRefreshingAction += () => + { + midVerticalScrolViewLayout.BeginHeaderRefreshing(); + ReadAccountDoorLockInfoList(); + }; } + /// <summary> + /// 涓儴甯冨眬鏄剧ず + /// </summary> async void MidFrameLayoutContent() { - var SubAccounList = await ZigBee.Device.DoorLock.GetSubAccountByDistributedMark(); - var masterAccount = new Shared.Phone.UserCenter.MemberInfoRes(); - masterAccount.Account = Shared.Common.Config.Instance.Account; - masterAccount.AccountType = Shared.Common.Config.Instance.AccountType; - masterAccount.SubAccountDistributedMark = Shared.Common.Config.Instance.Guid; - masterAccount.UserName = UserCenterResourse.UserInfo.UserName; - localAccountList.Add(masterAccount); - localAccountList.AddRange(SubAccounList); - var bodyView = new VerticalScrolViewLayout() + midVerticalScrolViewLayout.RemoveAll(); + for (int i = 0; i < doorLock.localAllAccountList.Count; i++) { - }; - this.midFrameLayout.AddChidren(bodyView); - - doorLock.localAllAccountList = localAccountList; - for (int i = 0; i < localAccountList.Count; i++) - { - var currentAccount = localAccountList[i]; + var currentAccount = doorLock.localAllAccountList[i]; var RowView = new FrameLayout() { - Height = Application.GetRealHeight(161), - BackgroundColor = Shared.Common.ZigbeeColor.Current.XMTopFrameLayout, + Height = Application.GetRealHeight(127 + 23), + BackgroundColor = Shared.Common.ZigbeeColor.Current.XMWhite, }; - bodyView.AddChidren(RowView); + midVerticalScrolViewLayout.AddChidren(RowView); var btnText = new Button() { X = Application.GetRealWidth(58), Width = Application.GetRealWidth(300), TextAlignment = TextAlignment.CenterLeft, - TextColor = Shared.Common.ZigbeeColor.Current.XMTopTitleText, + TextColor = Shared.Common.ZigbeeColor.Current.XMBlack, Gravity = Gravity.CenterVertical, TextSize = 14, }; @@ -243,12 +226,12 @@ }; RowView.AddChidren(line2); int currentIndex = i; - if (currentIndex == localAccountList.Count - 1) + if (currentIndex == doorLock.localAllAccountList.Count - 1) { line2.Visible = false; } - if (currentAccount.UserName != null) + if (!string.IsNullOrEmpty(currentAccount.UserName)) { btnText.Text = currentAccount.UserName; } @@ -266,13 +249,6 @@ Shared.Phone.UserView.HomePage.Instance.PageIndex += 1; masterManagementPage.Show(); } - else if (currentIndex == 1) - { - var userDoorLockPage = new UserDoorLockPage(doorLock, currentAccount); - Shared.Phone.UserView.HomePage.Instance.AddChidren(userDoorLockPage); - Shared.Phone.UserView.HomePage.Instance.PageIndex += 1; - userDoorLockPage.Show(); - } else { var memberFrozenPage = new Shared.Phone.UserCenter.DoorLock.MemberFrozenPage(doorLock, currentAccount); @@ -285,18 +261,6 @@ RowView.MouseUpEventHandler += eHandler; btnText.MouseUpEventHandler += eHandler; } - } - - public void DeviceInfoChange(CommonDevice common, string typeTag) - { - } - - public void ChangedILogicStatus(ZigBee.Device.Logic logic) - { - } - - public void ChangedISceneStatus(Scene scene) - { } } } -- Gitblit v1.8.0