From 25429f085093d89d543a0b90e30d0d62d1b7dac9 Mon Sep 17 00:00:00 2001 From: hxb <hxb@hdlchina.com.cn> Date: 星期二, 30 八月 2022 09:37:38 +0800 Subject: [PATCH] 合并了IOS的代码 --- ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlDeviceDoorLockLogic.cs | 226 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 226 insertions(+), 0 deletions(-) diff --git a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlDeviceDoorLockLogic.cs b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlDeviceDoorLockLogic.cs new file mode 100644 index 0000000..e4c0d1f --- /dev/null +++ b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlDeviceDoorLockLogic.cs @@ -0,0 +1,226 @@ +锘縰sing System; +using System.Collections.Generic; +using System.Text; + +namespace Shared.Phone.UserCenter +{ + /// <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(() => + { + //鑾峰彇闂ㄩ攣鐨勪富閿甀D + var DoorLockId = this.GetDoorHistoryDoorLockId(i_doorLock); + if (string.IsNullOrEmpty(DoorLockId) == true) + { + //缃戠粶涓嶉�� + return; + } + + var pra = new AddDoorHistoryLogPra(); + pra.LoginAccessToken = UserCenterLogic.GetConnectMainToken(); + pra.DoorLockId = DoorLockId; + pra.OtherOpenLockMode = OtherOpenLockMode; + pra.NormallyOpenContinuedTime = NormallyOpenContinuedTime; + + //涓嶆娴嬮敊璇爜 + var listCheck = new List<string>() { "NotCheck" }; + var result = UserCenterLogic.GetResultStatuByRequestHttps("DoorLock/AddDoorLockHistory", true, pra, listCheck); + if (result == false) + { + } + }); + } + + /// <summary> + /// 鑾峰彇娣诲姞闂ㄩ攣鍘嗗彶璁板綍鐨凞oorLockId + /// </summary> + /// <param name="i_doorLock">闂ㄩ攣瀵硅薄</param> + /// <returns></returns> + private string GetDoorHistoryDoorLockId(ZigBee.Device.DoorLock i_doorLock) + { + var pra = new GetDoorIdPra(); + pra.LoginAccessToken = UserCenterLogic.GetConnectMainToken(); + pra.DoorLockId = i_doorLock.DeviceAddr + "_" + i_doorLock.DeviceEpoint; + //涓嶆娴嬮敊璇爜 + var listCheck = new List<string>() { "NotCheck" }; + var result = UserCenterLogic.GetResponseDataByRequestHttps("DoorLock/GetDoorLockPager", true, pra, listCheck); + if (string.IsNullOrEmpty(result) == true) { return null; } + + //濡傛灉宸茬粡鍒涘缓浜�,鍒欎笉鍐嶅垱寤� + var myData = Newtonsoft.Json.JsonConvert.DeserializeObject<GetListIdResult>(result); + if (myData.PageData.Count > 0) + { + return myData.PageData[0].Id; + } + + //濡傛灉杩樻病鏈夊垱寤�,鍒欒櫄鎷熶竴涓壒娈婄殑涓滆タ鍑烘潵 + var pra2 = new AddDoorPra(); + pra2.LoginAccessToken = UserCenterLogic.GetConnectMainToken(); + pra2.DoorLockId = i_doorLock.DeviceAddr + "_" + i_doorLock.DeviceEpoint; + var result2 = UserCenterLogic.GetResponseDataByRequestHttps("DoorLock/AddDoorLock", true, pra2, listCheck); + //浜戠鏄洿鎺ヨ繑鍥炲垱寤虹殑涓婚敭瀛楃涓� + return result2; + } + + /// <summary> + /// 娣诲姞鍘嗗彶璁板綍鐨勫弬鏁� + /// </summary> + private class AddDoorHistoryLogPra : IfacePraCommon + { + /// <summary> + /// RequestVersion + /// </summary> + public string RequestVersion = Common.CommonPage.RequestVersion; + /// <summary> + /// LoginAccessToken + /// </summary> + public string LoginAccessToken = string.Empty; + /// <summary> + /// ZigbeeHomeId + /// </summary> + public string HomeId = Common.Config.Instance.Home.Id; + /// <summary> + /// 闂ㄩ攣浜戠涓婚敭(鍦�(鑾峰彇鏌愪釜浣忓畢闂ㄩ攣鍒嗛〉)鎺ュ彛鍝嶅簲涓殑Id鍊�) + /// </summary> + public string DoorLockId = string.Empty; + /// <summary> + /// 鍏朵粬寮�閿佹柟寮� 9001:甯稿紑鎵撳紑 9002:甯稿紑鍙栨秷 9003:甯稿紑鎸佺画 + /// </summary> + public int OtherOpenLockMode = -1; + /// <summary> + /// 甯稿紑鎸佺画鏃堕棿(1~72灏忔椂 OtherOpenLockMode=9003鐨勬椂鍊欐湁鏁�) + /// </summary> + public string NormallyOpenContinuedTime = string.Empty; + /// <summary> + /// 寮�閿佹椂闂�(鍘嗗彶璁板綍鐨勬椂闂碏rom-To妫�绱㈢殑瀵硅薄) + /// </summary> + public string UnlockTime = DateTime.UtcNow.ToString(); + } + + /// <summary> + /// 鑾峰彇娣诲姞闂ㄩ攣鍘嗗彶璁板綍鐨凞oorLockId鐨勫弬鏁� + /// </summary> + private class GetDoorIdPra : IfacePraCommon + { + /// <summary> + /// RequestVersion + /// </summary> + public string RequestVersion = Common.CommonPage.RequestVersion; + /// <summary> + /// LoginAccessToken + /// </summary> + public string LoginAccessToken = string.Empty; + /// <summary> + /// ZigbeeHomeId + /// </summary> + public string HomeId = Common.Config.Instance.Home.Id; + /// <summary> + /// 濉獹UID + /// </summary> + public string CloudAccountId = Common.Config.Instance.Guid; + /// <summary> + /// 杩欎釜鏄棬閿佺殑 Mac_绔偣 + /// </summary> + public string DoorLockId = string.Empty; + /// <summary> + /// 寮�閿佹柟寮�:鍥哄畾9000 + /// </summary> + public int OpenLockMode = 9000; + } + + /// <summary> + /// 娣诲姞闂ㄩ攣鐨勫弬鏁� + /// </summary> + private class AddDoorPra : IfacePraCommon + { + /// <summary> + /// RequestVersion + /// </summary> + public string RequestVersion = Common.CommonPage.RequestVersion; + /// <summary> + /// LoginAccessToken + /// </summary> + public string LoginAccessToken = string.Empty; + /// <summary> + /// ZigbeeHomeId + /// </summary> + public string HomeId = Common.Config.Instance.Home.Id; + /// <summary> + /// 濉獹UID + /// </summary> + public string CloudAccountId = Common.Config.Instance.Guid; + /// <summary> + /// 杩欎釜鏄棬閿佺殑 Mac_绔偣 + /// </summary> + public string DoorLockId = string.Empty; + /// <summary> + /// 鍏朵粬寮�閿佹柟寮� 鍥哄畾9000 + /// </summary> + public int OpenLockMode = 9000; + /// <summary> + /// 褰曞叆鏃堕棿 + /// </summary> + public string EntryTime = DateTime.Now.ToString(); + } + + /// <summary> + /// 鎺ユ敹浜戠ID鐨勭粨鏋� + /// </summary> + private class GetListIdResult + { + /// <summary> + /// 浜戠杩斿洖鐨勪富閿甀D + /// </summary> + public List<GetIdResult> PageData = new List<GetIdResult>(); + } + + /// <summary> + /// 鎺ユ敹浜戠ID鐨勭粨鏋� + /// </summary> + private class GetIdResult + { + /// <summary> + /// 浜戠杩斿洖鐨勪富閿甀D + /// </summary> + public string Id = string.Empty; + } + + #endregion + } +} -- Gitblit v1.8.0