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/DoorLockCommonInfo.cs | 287 +++++++++++++++++++++++++++++---------------------------- 1 files changed, 145 insertions(+), 142 deletions(-) diff --git a/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/DoorLockCommonInfo.cs b/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/DoorLockCommonInfo.cs old mode 100644 new mode 100755 index 6ac755d..61e1041 --- a/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/DoorLockCommonInfo.cs +++ b/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/DoorLockCommonInfo.cs @@ -15,9 +15,19 @@ /// </summary> public static Action<bool> LogicAction = null; /// <summary> + /// 鏇存柊褰撳墠闂ㄩ攣娑夊強鐨勭姸鎬併�愪富瑕佺敤浜庨棬閿佹搷浣滃父寮�妯″紡鐨勫洖璋冦�� + /// </summary> + public static Action<string, bool> UpdateCurrentDoorlockAction = null; + /// <summary> /// 缃戝叧锛堥棬閿侊級鎵�鍦ㄧ殑鏃堕棿 /// </summary> public static DateTime DoorlockZoneTime = DateTime.Now; + /// <summary> + /// 鎵�鏈夐棬閿佷腑鐨勫父寮�妯″紡鍊糩鐢ㄤ簬鎺ㄩ�佹煡璇紝鎻愮ず闂ㄩ攣澶辨晥锛� + /// keys:闂ㄩ攣mac+epoint value:鏄惁甯稿紑妯″紡 + /// ture:甯稿紑锛� false:鍏抽棴 + /// </summary> + public static Dictionary<string, bool?> DoorLockNormallyMode = new Dictionary<string, bool?> { }; /// <summary> /// 甯稿紑妯″紡鎵ц鏃堕棿 /// </summary> @@ -132,7 +142,7 @@ /// 闂ㄩ攣鏄惁鏀寔甯稿紑[杩欓噷鏆傛椂鍙湁S-One闂ㄩ攣鏀寔锛孒06C涓嶆敮鎸�, 鍚庢湡閫氳繃鑳藉姏鍊兼敮鎸乚 /// </summary> /// <param name="doorLock:褰撳墠闂ㄩ攣"></param> - /// <returns></returns> + /// <returns>true:鏀寔甯稿紑锛沠alse锛� 涓嶆敮鎸佸父寮�</returns> public static bool CanNormallyOpen(ZigBee.Device.DoorLock doorLock) { var listDevice = new List<CommonDevice> { }; @@ -150,19 +160,14 @@ /// </summary> public static void NormallyOpenModeValue(ZigBee.Device.DoorLock doorLock, bool value) { - string key = doorLock.DeviceAddr + "_" + doorLock.DeviceEpoint; - if (doorLock.IsDoorLockNormallyMode.ContainsKey(key)) + doorLock.IsDoorLockNormallyMode = value; + if (DoorLockCommonInfo.DoorLockNormallyMode.ContainsKey(doorLock.DeviceAddr + doorLock.DeviceEpoint)) { - doorLock.IsDoorLockNormallyMode[key] = value; + DoorLockCommonInfo.DoorLockNormallyMode[doorLock.DeviceAddr + doorLock.DeviceEpoint] = value; } else { - doorLock.IsDoorLockNormallyMode.Add(key, value); - } - - if (LogicAction != null) - { - LogicAction(value); + DoorLockCommonInfo.DoorLockNormallyMode.Add(doorLock.DeviceAddr + doorLock.DeviceEpoint, value); } } @@ -171,9 +176,10 @@ /// </summary> /// <param name="doorLock">褰撳墠闂ㄩ攣</param> /// <param name="doorLockMessType">瀵艰嚧闂ㄩ攣澶辨晥鐨勬搷浣滅被鍨�</param> - /// <param name="haveLogic">缃戝叧涓槸鍚﹀瓨鍦ㄩ�昏緫甯稿紑妯″紡</param> + /// <param name="haveLogic">缃戝叧涓槸鍚﹀瓨鍦ㄩ�昏緫甯稿紑妯″紡</param> /// <param name="action">鍥炶皟澶勭悊鏇存柊鍐呭</param> - public static async void NomallyOpenModeInvalidDialog(ZigBee.Device.DoorLock doorLock, DoorLockMessType doorLockMessType, bool haveLogic, Action action = null) + /// <param name="type">1:纭甯稿紑妯″紡宸茬粡寮�鍚紱0:甯稿紑妯″紡澶辨晥鎻愮ず</param> + public static async void NomallyOpenModeInvalidDialog(ZigBee.Device.DoorLock doorLock, DoorLockMessType doorLockMessType, bool haveLogic, Action<bool> action = null, int type = 0) { //甯稿紑妯″紡鍙兘涓讳汉鎿嶄綔 if (UserCenterResourse.UserInfo.AuthorityNo != 1) @@ -204,13 +210,23 @@ { //涓婃姤鈥滃父寮�妯″紡鈥濆凡琚彇娑堬紝app榛樿浜嗏�滃父寮�妯″紡鈥濊鍙栨秷 DoorLockCommonInfo.NormallyOpenModeValue(doorLock, false); + if (LogicAction != null) + { + LogicAction(false); + } + if (haveLogic) + { + //姝ゅ鍒犻櫎娓╁眳鍩庣殑甯稿紑妯″紡鐗规畩閫昏緫 + var resTemp1 = await Shared.Phone.Device.Logic.SkipView.DelAllLogic(doorLock); + } } else { //淇濇寔甯稿紑 NormallyOpenModeValue(doorLock, true); } - action?.Invoke(); + action?.Invoke(doorLock.IsDoorLockNormallyMode); + action = null; }; alert.CancelClickEvent += async () => @@ -219,17 +235,6 @@ { //涓婃姤鈥滃父寮�妯″紡鈥濆凡琚彇娑� Application.RunOnMainThread(() => { CommonPage.Loading.Start(""); }); - //鍏堝垹闄ゅ凡澶辨晥鐨勨�滃父寮�妯″紡鈥濈殑閫昏緫 - //if (resTemp == 1) - //{ - // var restulTemp = await Shared.Phone.Device.Logic.SkipView.Exist(3); - // //if (restulTemp == 3) - // //{ - // // string msg0 = Language.StringByID(R.MyInternationalizationString.CancelLogicNormallyModeFailed2); - // // this.ShowTipMsg(msg0); - // // return; - // //} - //} //app閲嶆柊寮�鍚�滃父寮�妯″紡鈥� var result = await doorLock.SetNormallyOpenModeFuncAsync(true); @@ -241,9 +246,13 @@ ShowTipMsg(msg0); NormallyOpenModeValue(doorLock, false); CommonPage.Loading.Hide(); - //new Tip() { MaxWidth = 150, Text = msg0, Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(CommonPage.Instance); }); - action?.Invoke(); + action?.Invoke(doorLock.IsDoorLockNormallyMode); + action = null; + if (LogicAction != null) + { + LogicAction(false); + } return; } if (result.defaultControlResponseData.status != 0) @@ -254,22 +263,28 @@ ShowTipMsg(msg1); NormallyOpenModeValue(doorLock, false); CommonPage.Loading.Hide(); - //new Tip() { MaxWidth = 150, Text = msg1, Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(CommonPage.Instance); }); - action?.Invoke(); + + action?.Invoke(doorLock.IsDoorLockNormallyMode); + action = null; + if (LogicAction != null) + { + LogicAction(false); + } return; } else { - //鍒涘缓甯稿紑妯″紡鐨勭壒娈婇�昏緫 - var resu = await Shared.Phone.Device.Logic.SkipView.LockAddModifyLogic(DoorLockCommonInfo.NormallyOpenModeInvalidTime, doorLock); Application.RunOnMainThread(() => { string msg0 = Language.StringByID(R.MyInternationalizationString.OpenNormallyOpenModeSuccess); ShowTipMsg(msg0); NormallyOpenModeValue(doorLock, true); CommonPage.Loading.Hide(); - //new Tip() { MaxWidth = 150, Text = msg0, Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(CommonPage.Instance); + if (LogicAction != null) + { + LogicAction(true); + } }); } } @@ -278,7 +293,8 @@ //app鎿嶄綔涓嶅彇娑堚�滃父寮�妯″紡鈥� DoorLockCommonInfo.NormallyOpenModeValue(doorLock, true); } - action?.Invoke(); + action?.Invoke(doorLock.IsDoorLockNormallyMode); + action = null; }; alert.ConfirmClickEvent += async () => @@ -286,14 +302,14 @@ if (doorLockMessType == DoorLockMessType.DeviceReport || doorLockMessType == DoorLockMessType.ServicePush) { NormallyOpenModeValue(doorLock, false); + if (LogicAction != null) + { + LogicAction(false); + } if (haveLogic) { - var resTemp2 = await Shared.Phone.Device.Logic.SkipView.Exist(3); - //if (resTemp2 == 3) - //{ - // string msg0 = Language.StringByID(R.MyInternationalizationString.CancelLogicNormallyModeFailed); - // this.ShowTipMsg(msg0); - //} + //姝ゅ鍒犻櫎娓╁眳鍩庣殑甯稿紑妯″紡鐗规畩閫昏緫 + var resTemp1 = await Shared.Phone.Device.Logic.SkipView.DelAllLogic(doorLock); } } else @@ -307,9 +323,13 @@ { ShowTipMsg(Language.StringByID(R.MyInternationalizationString.GwResponseOvertime)); CommonPage.Loading.Hide(); - //new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime), Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(CommonPage.Instance); }); - action?.Invoke(); + action?.Invoke(doorLock.IsDoorLockNormallyMode); + action = null; + if (LogicAction != null) + { + LogicAction(false); + } return; } if (result.defaultControlResponseData.status != 0) @@ -319,9 +339,13 @@ string msg1 = Language.StringByID(R.MyInternationalizationString.CloseNormallyOpenModeFailed); ShowTipMsg(msg1); CommonPage.Loading.Hide(); - //new Tip() { MaxWidth = 150, Text = msg1, Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(CommonPage.Instance); }); - action?.Invoke(); + action?.Invoke(doorLock.IsDoorLockNormallyMode); + action = null; + if (LogicAction != null) + { + LogicAction(false); + } return; } else @@ -333,23 +357,8 @@ //鍒犻櫎璁剧疆甯稿紑妯″紡鍒涘缓鐨勯�昏緫 if (haveLogic) { - var resTemp1 = await Shared.Phone.Device.Logic.SkipView.Exist(3); - //鍥犱负鐩墠鏈哄埗闂锛岄�昏緫缁忓父澶辫触锛屾墍浠ヤ笉鎻愮ず锛屽悗鏈熸満鍒惰鏀癸紝閲嶆柊鍋氫竴涓繖涓晫闈� - //if (resTemp1 == 3) - //{ - //Application.RunOnMainThread(() => - //{ - // string msg0 = Language.StringByID(R.MyInternationalizationString.CancelLogicNormallyModeFailed); - // ShowTipMsg(msg0); - //}); - //} - //else if (resTemp1 == 2) - //{ - //Application.RunOnMainThread(() => - //{ - // string msg0 = Language.StringByID(R.MyInternationalizationString.CloseNormallyOpenModeSuccess); - // ShowTipMsg(msg0); - //}); + //姝ゅ鍒犻櫎娓╁眳鍩庣殑甯稿紑妯″紡鐗规畩閫昏緫 + var resTemp1 = await Shared.Phone.Device.Logic.SkipView.DelAllLogic(doorLock); } Application.RunOnMainThread(() => { @@ -357,60 +366,65 @@ ShowTipMsg(msg2); CommonPage.Loading.Hide(); }); + if (LogicAction != null) + { + LogicAction(false); + } } } - action?.Invoke(); + action?.Invoke(doorLock.IsDoorLockNormallyMode); + action = null; }; } - /// <summary> - /// 鍒犻櫎甯稿紑妯″紡 - /// </summary> - /// <param name="doorLock">褰撳墠闂ㄩ攣</param> - /// <param name="action">鍥炶皟澶勭悊鏇存柊鍐呭</param> - /// <returns></returns> - public static async System.Threading.Tasks.Task<bool> DelNormallyOpenMode(ZigBee.Device.DoorLock doorLock, Action action = null) - { - //app鎿嶄綔鍙栨秷鈥滃父寮�妯″紡鈥� - var result = await doorLock.SetNormallyOpenModeFuncAsync(false); - if (result == null || result.defaultControlResponseData == null || result.defaultControlResponseData.status != 0) - { - action?.Invoke(); - return false; - } - - if (result.defaultControlResponseData.status == 0) - { - //app纭鍙栨秷鈥滃父寮�妯″紡鈥濇垚鍔� - NormallyOpenModeValue(doorLock, false); - action?.Invoke(); - return true; - } - return false; - } - - /// <summary> - /// 璁剧疆甯稿紑妯″紡 - /// </summary> - /// <param name="doorLock">褰撳墠闂ㄩ攣</param> - /// <param name="action">鍥炶皟澶勭悊鏇存柊鍐呭</param> - /// <returns></returns> - public static async System.Threading.Tasks.Task<bool> SetNormallyOpenModeFuncAsync(ZigBee.Device.DoorLock doorLock) - { - //app璁剧疆鈥滃父寮�妯″紡鈥濆け璐� - var result = await doorLock.SetNormallyOpenModeFuncAsync(false); - if (result == null || result.defaultControlResponseData == null || result.defaultControlResponseData.status != 0) - { - return false; - } - - if (result.defaultControlResponseData.status == 0) - { - //app璁剧疆鈥滃父寮�妯″紡鈥濇垚鍔� - NormallyOpenModeValue(doorLock, false); - return true; - } - return false; + /// <summary> + /// 鍒犻櫎甯稿紑妯″紡 + /// </summary> + /// <param name="doorLock">褰撳墠闂ㄩ攣</param> + /// <param name="action">鍥炶皟澶勭悊鏇存柊鍐呭</param> + /// <returns></returns> + public static async System.Threading.Tasks.Task<bool> DelNormallyOpenMode(ZigBee.Device.DoorLock doorLock, Action action = null) + { + //app鎿嶄綔鍙栨秷鈥滃父寮�妯″紡鈥� + var result = await doorLock.SetNormallyOpenModeFuncAsync(false); + if (result == null || result.defaultControlResponseData == null || result.defaultControlResponseData.status != 0) + { + action?.Invoke(); + return false; + } + + if (result.defaultControlResponseData.status == 0) + { + //app纭鍙栨秷鈥滃父寮�妯″紡鈥濇垚鍔� + NormallyOpenModeValue(doorLock, false); + action?.Invoke(); + return true; + } + return false; + } + + /// <summary> + /// 璁剧疆甯稿紑妯″紡 + /// </summary> + /// <param name="doorLock">褰撳墠闂ㄩ攣</param> + /// <param name="action">鍥炶皟澶勭悊鏇存柊鍐呭</param> + /// <returns></returns> + public static async System.Threading.Tasks.Task<bool> SetNormallyOpenModeFuncAsync(ZigBee.Device.DoorLock doorLock) + { + //app璁剧疆鈥滃父寮�妯″紡鈥濆け璐� + var result = await doorLock.SetNormallyOpenModeFuncAsync(true); + if (result == null || result.defaultControlResponseData == null || result.defaultControlResponseData.status != 0) + { + return false; + } + + if (result.defaultControlResponseData.status == 0) + { + //app璁剧疆鈥滃父寮�妯″紡鈥濇垚鍔� + NormallyOpenModeValue(doorLock, false); + return true; + } + return false; } /// <summary> @@ -494,20 +508,8 @@ }); } - //榛樿鍒涘缓甯稿紑妯″紡鐨勭壒娈婇�昏緫 - var res = await Shared.Phone.Device.Logic.SkipView.LockAddModifyLogic(DoorLockCommonInfo.NormallyOpenModeInvalidTime, doorLock); - //if (!res) - //{ - // Application.RunOnMainThread(() => - // { - // //榛樿鍒涘缓甯稿紑妯″紡澶辫触 - // string msg0 = Language.StringByID(R.MyInternationalizationString.AddLogicNormallyModeFailed); - // var alert = new UserCenter.ShowMsgControl(UserCenter.ShowMsgType.Normal, msg0, Language.StringByID(R.MyInternationalizationString.confrim)); - // alert.Show(); - // //浜屾鍔犺浇寮圭獥 甯稿紑妯″紡寮�鍚彁绀� - // NomallyOpenModeInvalidTimeDialog(doorLock, action); - // }); - //} + //娓╁眳鍩庢柟娉曪紵锛燂紵 + //姝ゅ鏄惁瑕佸垱寤哄父寮�妯″紡鐨勭壒娈婇�昏緫 }; } #endregion @@ -605,26 +607,28 @@ var SubAccounListTemp = await ZigBee.Device.DoorLock.GetSubAccountByDistributedMark(); var SubAccounListDictionary = new Dictionary<string, Shared.Phone.UserCenter.MemberInfoRes> { }; - foreach (var member in SubAccounListTemp) - { - //鍒ゆ柇涓�涓处鎴风粦瀹氫簡閭鐨勬儏鍐� - if (SubAccounListDictionary.ContainsKey(member.DistributedMark) == true - || member.Account == UserCenterResourse.UserInfo.Phone - || member.Account == UserCenterResourse.UserInfo.Email) - { - //濡傛灉鏄畠鑷繁鐨勮瘽锛屼笉鏄剧ず,璐︽埛鍜岀粦瀹氱殑閭鍙樉绀哄叾涓箣涓� - continue; + if (SubAccounListTemp != null) + { + foreach (var member in SubAccounListTemp) + { + //鍒ゆ柇涓�涓处鎴风粦瀹氫簡閭鐨勬儏鍐� + if (SubAccounListDictionary.ContainsKey(member.DistributedMark) == true + || member.Account == UserCenterResourse.UserInfo.Phone + || member.Account == UserCenterResourse.UserInfo.Email) + { + //濡傛灉鏄畠鑷繁鐨勮瘽锛屼笉鏄剧ず,璐︽埛鍜岀粦瀹氱殑閭鍙樉绀哄叾涓箣涓� + continue; + } + //鍘绘帀瀛愯处鎴蜂腑鏅�氭垚鍛橈紝鐣欎笅鎷ユ湁绠$悊鍛樻潈闄愮殑鎴愬憳 + //锛堝洜涓哄垎閰嶈处鎴风粰鏅�氭垚鍛橈紝鏅�氭垚鍛樺湪app涓笉鑳借繘鍏ヨ澶囩鐞嗛偅閲岋紝鎵�浠ユ病鍙戞煡鐪嬩富浜哄垎閰嶅璐︽埛锛� + if (member.AccountType != 1) + { + continue; + } + + SubAccounListDictionary.Add(member.DistributedMark, member); } - //鍘绘帀瀛愯处鎴蜂腑鏅�氭垚鍛橈紝鐣欎笅鎷ユ湁绠$悊鍛樻潈闄愮殑鎴愬憳 - //锛堝洜涓哄垎閰嶈处鎴风粰鏅�氭垚鍛橈紝鏅�氭垚鍛樺湪app涓笉鑳借繘鍏ヨ澶囩鐞嗛偅閲岋紝鎵�浠ユ病鍙戞煡鐪嬩富浜哄垎閰嶅璐︽埛锛� - if (member.AccountType != 1) - { - continue; - } - - SubAccounListDictionary.Add(member.DistributedMark, member); } - foreach (var addMemberID in SubAccounListDictionary.Keys) { SubAccounList.Add(SubAccounListDictionary[addMemberID]); @@ -1272,7 +1276,6 @@ }); } - #endregion - + #endregion } } -- Gitblit v1.8.0