From 9f326f4000847e6167d8166fa2f6a66f53cb3734 Mon Sep 17 00:00:00 2001 From: 黄学彪 <hxb@hdlchina.com.cn> Date: 星期四, 17 十二月 2020 09:07:13 +0800 Subject: [PATCH] 新云端Ver1.3 --- ZigbeeApp/Shared/Phone/Common/Logic/HdlDeviceDoorLockLogic.cs | 142 +++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 142 insertions(+), 0 deletions(-) diff --git a/ZigbeeApp/Shared/Phone/Common/Logic/HdlDeviceDoorLockLogic.cs b/ZigbeeApp/Shared/Phone/Common/Logic/HdlDeviceDoorLockLogic.cs new file mode 100644 index 0000000..02f19b8 --- /dev/null +++ b/ZigbeeApp/Shared/Phone/Common/Logic/HdlDeviceDoorLockLogic.cs @@ -0,0 +1,142 @@ +锘縰sing System; +using System.Collections.Generic; +using System.Text; + +namespace Shared.Phone +{ + /// <summary> + /// 闂ㄩ攣鍘嗗彶璁板綍鐨勯�昏緫 + /// </summary> + public class HdlDeviceDoorLockLogic + { + #region 鈻� 鍙橀噺澹版槑___________________________ + + /// <summary> + /// 闂ㄩ攣鍘嗗彶璁板綍鐨勯�昏緫 + /// </summary> + private static HdlDeviceDoorLockLogic m_Current = null; + /// <summary> + /// 闂ㄩ攣鍘嗗彶璁板綍鐨勯�昏緫 + /// </summary> + public static HdlDeviceDoorLockLogic Current + { + get + { + if (m_Current == null) + { + m_Current = new HdlDeviceDoorLockLogic(); + } + return m_Current; + } + } + + #endregion + + #region 鈻� 娣诲姞鍘嗗彶璁板綍_______________________ + + /// <summary> + /// 娣诲姞鍘嗗彶璁板綍 + /// </summary> + /// <param name="i_doorLock">闂ㄩ攣瀵硅薄</param> + /// <param name="OtherOpenLockMode">鍏朵粬寮�閿佹柟寮� 9001:甯稿紑鎵撳紑 9002:甯稿紑鍙栨秷 9003:甯稿紑鎸佺画 9004:甯稿紑鑷姩鍖栨墜鍔ㄥ彇娑�</param> + /// <param name="NormallyOpenContinuedTime">甯稿紑鎸佺画鏃堕棿(1~72灏忔椂 OtherOpenLockMode=9003鐨勬椂鍊欐湁鏁�)</param> + public void AddDoorHistoryLog(ZigBee.Device.DoorLock i_doorLock, int OtherOpenLockMode, string NormallyOpenContinuedTime) + { + HdlThreadLogic.Current.RunThread(() => + { + var pra = new + { + doorLockId = i_doorLock.DeviceAddr + "_" + i_doorLock.DeviceEpoint, + unlockMode = OtherOpenLockMode, + homeId = Common.Config.Instance.Home.Id, + isUnlockSuccess = true, + normallyOpenContinuedTime = NormallyOpenContinuedTime, + unlockTime = DateTime.UtcNow.ToString() + }; + //涓嶇杩斿洖鍊� + var result = HdlHttpLogic.Current.RequestResponseFromZigbeeHttps("home-wisdom/app/doorLockUnlockHistory/save", RestSharp.Method.POST, pra, null, null, CheckMode.A璐﹀彿鏉冮檺); + }); + } + + #endregion + + #region 鈻� 鑾峰彇鍘嗗彶璁板綍_______________________ + + /// <summary> + /// 鑾峰彇闂ㄩ攣鐨勫巻鍙茶褰�(涓嶄細杩斿洖null) + /// </summary> + /// <param name="i_doorKey">闂ㄩ攣鐨凪ac + "_" + 绔偣</param> + /// <param name="i_dateTimeFrom">鎼滅储鏃堕棿From(涓嶆槸utc鏃堕棿)</param> + /// <param name="i_dateTimeTo">鎼滅储鏃堕棿To(涓嶆槸utc鏃堕棿)</param> + /// <returns></returns> + public List<DoorHistoryLogInfo> GetDoorHistoryLogInfo(string i_doorKey, DateTime i_dateTimeFrom, DateTime i_dateTimeTo) + { + var pra = new + { + doorLockId = i_doorKey, + homeId = Common.Config.Instance.Home.Id, + unlockBeginTime = i_dateTimeFrom.ToUniversalTime().ToString(), + unlockEndTime = i_dateTimeTo.ToUniversalTime().ToString() + }; + var result = HdlHttpLogic.Current.RequestResponseFromZigbeeHttps("home-wisdom/app/doorLockUnlockHistory/list", RestSharp.Method.POST, pra, null, null, CheckMode.A璐﹀彿鏉冮檺, false, 5); + if (result == null || result.Code != HttpMessageEnum.A鎴愬姛) + { + return new List<DoorHistoryLogInfo>(); + } + var listData = Newtonsoft.Json.JsonConvert.DeserializeObject<List<DoorHistoryLogInfo>>(result.Data.ToString()); + var listLog = new List<DoorHistoryLogInfo>(); + + foreach (var data in listData) + { + //涓嶇煡閬撲负浠�涔堜細鏈変笂鎶ヤ簡铏氭嫙9000鐨勯偅涓壒娈婄殑涓滆タ(杩欐槸浠ュ墠鐨勬敞閲�,鍏堟斁杩欓噷) + if (data.UserId == null) + { + data.UserId = string.Empty; + } + listLog.Add(data); + } + return listLog; + } + + #endregion + + #region 鈻� 娓呯┖鍘嗗彶璁板綍_______________________ + + /// <summary> + /// 娓呯┖鍘嗗彶璁板綍 + /// </summary> + /// <param name="i_doorId">闂ㄩ攣鐨凪ac + "_" + 绔偣</param> + /// <param name="i_dateTimeFrom">鏃堕棿From(涓嶆槸utc鏃堕棿)</param> + /// <param name="i_dateTimeTo">鏃堕棿To(涓嶆槸utc鏃堕棿)</param> + /// <param name="i_listOtherId">瀛樺湪鍙︿竴寮犺〃鐨勬秷鎭褰曠殑涓婚敭</param> + /// <returns></returns> + public bool ClearAllDoorHistoryLog(string i_doorId, DateTime i_dateTimeFrom, DateTime i_dateTimeTo, List<string> i_listOtherId) + { + var pra1 = new + { + doorLockId = i_doorId, + homeId = Common.Config.Instance.Home.Id, + unlockBeginTime = i_dateTimeFrom.ToUniversalTime().ToString(), + unlockEndTime = i_dateTimeTo.ToUniversalTime().ToString() + }; + //娓呯┖璁板綍 + var result1 = HdlHttpLogic.Current.RequestResponseFromZigbeeHttps("home-wisdom/app/doorLockUnlockHistory/clear", RestSharp.Method.POST, pra1, null, null, CheckMode.A璐﹀彿鏉冮檺); + if (result1 == null || result1.Code != HttpMessageEnum.A鎴愬姛) + { + return false; + } + //娓呯┖鍙﹀涓�寮犺〃鐨勮褰� + foreach (var msgId in i_listOtherId) + { + var result2 = HdlMessageLogic.Current.DeleteCloundMessage(msgId); + if (result2 == false) + { + return false; + } + } + return true; + } + + #endregion + } +} -- Gitblit v1.8.0