黄学彪
2020-09-18 c7df85937f73fb347ee0b19e9c052d2d00a6df6c
ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlDeviceDoorLockLogic.cs
@@ -38,14 +38,19 @@
        /// 添加历史记录
        /// </summary>
        /// <param name="i_doorLock">门锁对象</param>
        /// <param name="OtherOpenLockMode">其他开锁方式 9001:常开打开 9002:常开取消 9003:常开持续</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(async () =>
            HdlThreadLogic.Current.RunThread(() =>
            {
                //获取门锁的主键ID
                var DoorLockId = await this.GetDoorHistoryDoorLockId(i_doorLock);
                var DoorLockId = this.GetDoorHistoryDoorLockId(i_doorLock);
                if (string.IsNullOrEmpty(DoorLockId) == true)
                {
                    //网络不通
                    return;
                }
                var pra = new AddDoorHistoryLogPra();
                pra.LoginAccessToken = UserCenterLogic.GetConnectMainToken();
@@ -53,9 +58,9 @@
                pra.OtherOpenLockMode = OtherOpenLockMode;
                pra.NormallyOpenContinuedTime = NormallyOpenContinuedTime;
                //不二次发送,不检测错误码
                var listCheck = new List<string>() { "NotSetAgain", "NotCheck" };
                var result = await UserCenterLogic.GetResultStatuByRequestHttps("DoorLock/AddDoorLockHistory", true, pra, listCheck);
                //不检测错误码
                var listCheck = new List<string>() { "NotCheck" };
                var result = UserCenterLogic.GetResultStatuByRequestHttps("DoorLock/AddDoorLockHistory", true, pra, listCheck);
                if (result == false)
                {
                }
@@ -67,18 +72,18 @@
        /// </summary>
        /// <param name="i_doorLock">门锁对象</param>
        /// <returns></returns>
        private async System.Threading.Tasks.Task<string> GetDoorHistoryDoorLockId(ZigBee.Device.DoorLock i_doorLock)
        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>() { "NotSetAgain", "NotCheck" };
            var result = await UserCenterLogic.GetResponseDataByRequestHttps("DoorLock/GetDoorLockPager", true, pra, listCheck);
            if (result == null) { return null; }
            //不检测错误码
            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<ZigBee.Device.DoorLock.GetDoorLockDataRes>(result);
            var myData = Newtonsoft.Json.JsonConvert.DeserializeObject<GetListIdResult>(result);
            if (myData.PageData.Count > 0)
            {
                return myData.PageData[0].Id;
@@ -88,7 +93,7 @@
            var pra2 = new AddDoorPra();
            pra2.LoginAccessToken = UserCenterLogic.GetConnectMainToken();
            pra2.DoorLockId = i_doorLock.DeviceAddr + "_" + i_doorLock.DeviceEpoint;
            var result2 = await UserCenterLogic.GetResponseDataByRequestHttps("DoorLock/AddDoorLock", true, pra, listCheck);
            var result2 = UserCenterLogic.GetResponseDataByRequestHttps("DoorLock/AddDoorLock", true, pra2, listCheck);
            //云端是直接返回创建的主键字符串
            return result2;
        }
@@ -122,6 +127,10 @@
            /// 常开持续时间(1~72小时 OtherOpenLockMode=9003的时候有效)
            /// </summary>
            public string NormallyOpenContinuedTime = string.Empty;
            /// <summary>
            /// 开锁时间(历史记录的时间From-To检索的对象)
            /// </summary>
            public string UnlockTime = DateTime.UtcNow.ToString();
        }
        /// <summary>
@@ -184,6 +193,32 @@
            /// 其他开锁方式 固定9000
            /// </summary>
            public int OpenLockMode = 9000;
            /// <summary>
            ///  录入时间
            /// </summary>
            public string EntryTime = DateTime.Now.ToString();
        }
        /// <summary>
        /// 接收云端ID的结果
        /// </summary>
        private class GetListIdResult
        {
            /// <summary>
            /// 云端返回的主键ID
            /// </summary>
            public List<GetIdResult> PageData = new List<GetIdResult>();
        }
        /// <summary>
        /// 接收云端ID的结果
        /// </summary>
        private class GetIdResult
        {
            /// <summary>
            /// 云端返回的主键ID
            /// </summary>
            public string Id = string.Empty;
        }
        #endregion