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