New file |
| | |
| | | using 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">门锁的Mac + "_" + 端点</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">门锁的Mac + "_" + 端点</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 |
| | | } |
| | | } |