From 9c16d3614d9b88c637f967518a329f239fcd3aaf Mon Sep 17 00:00:00 2001
From: lss <316519258@qq.com>
Date: 星期五, 12 六月 2020 09:22:04 +0800
Subject: [PATCH] 2020.06.12

---
 ZigbeeApp/Shared/Phone/UserCenter/Device/DoorLock/DoorLockHistoryLogForm.cs |  641 ++++++++++++++++++++++++++++++++++++---------------------
 1 files changed, 404 insertions(+), 237 deletions(-)

diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Device/DoorLock/DoorLockHistoryLogForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Device/DoorLock/DoorLockHistoryLogForm.cs
index aeb1f8a..dc06e7d 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/Device/DoorLock/DoorLockHistoryLogForm.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Device/DoorLock/DoorLockHistoryLogForm.cs
@@ -49,10 +49,6 @@
         /// 鍏朵粬娑堟伅鐨勪富閿�,瀹冨瓨鍦ㄥ彟澶栫殑涓�寮犳暟鎹簱琛ㄤ腑
         /// </summary>
         private List<string> listOtherMsgId = new List<string>();
-        /// <summary>
-        /// 鏃犳硶璇嗗埆鐨勫紑閿佽褰曠殑鐢ㄦ埛ID(鍥犱负閭d釜瀵嗙爜鏈夊彲鑳芥病鏈夊垎閰嶇粰鎴愬憳)
-        /// </summary>
-        private List<string> listOtherUserId = new List<string>();
 
         #endregion
 
@@ -69,33 +65,37 @@
             //璁剧疆澶撮儴淇℃伅
             base.SetTitleText(Language.StringByID(R.MyInternationalizationString.uHistoryLog));
 
-            //鍒犻櫎
-            var btnDelete = new MostRightIconControl(69, 69);
-            btnDelete.UnSelectedImagePath = "Item/DeleteIcon2Selected.png";
-            topFrameLayout.AddChidren(btnDelete);
-            btnDelete.InitControl();
-            btnDelete.ButtonClickEvent += (sender, e) =>
+            //鎴愬憳涓嶅厑璁告竻绌鸿褰�
+            if (UserCenterResourse.UserInfo.AuthorityNo == 1 || UserCenterResourse.UserInfo.AuthorityNo == 2)
             {
-                var form = new TopRightMenuControl(1, 2);
-                //娓呯┖璁板綍
-                form.AddRowMenu(Language.StringByID(R.MyInternationalizationString.uClearLog), "Item/DeleteIcon2.png", "Item/DeleteIcon2Selected.png", () =>
+                //鍒犻櫎
+                var btnDelete = new MostRightIconControl(69, 69);
+                btnDelete.UnSelectedImagePath = "Item/DeleteIcon2Selected.png";
+                topFrameLayout.AddChidren(btnDelete);
+                btnDelete.InitControl();
+                btnDelete.ButtonClickEvent += (sender, e) =>
                 {
-                    if (this.listView.frameTable.ChildrenCount == 0)
+                    var form = new TopRightMenuControl(1, 2);
+                    //娓呯┖璁板綍
+                    form.AddRowMenu(Language.StringByID(R.MyInternationalizationString.uClearLog), "Item/DeleteIcon2.png", "Item/DeleteIcon2Selected.png", () =>
                     {
-                        //鏃犳暟鎹彲鍒�
-                        return;
-                    }
-                    //纭娓呯┖褰撳墠璁板綍锛�
-                    this.ShowMassage(ShowMsgType.Confirm, Language.StringByID(R.MyInternationalizationString.uConfirmClearNowLog), () =>
-                    {
-                        HdlThreadLogic.Current.RunThread(() =>
+                        if (this.listView.frameTable.ChildrenCount == 0)
                         {
-                            //娓呯┖鎵�鏈夎褰�
-                            this.ClearAllHistoryLog();
+                            //鏃犳暟鎹彲鍒�
+                            return;
+                        }
+                        //纭娓呯┖褰撳墠璁板綍锛�
+                        this.ShowMassage(ShowMsgType.Confirm, Language.StringByID(R.MyInternationalizationString.uConfirmClearNowLog), () =>
+                        {
+                            HdlThreadLogic.Current.RunThread(() =>
+                            {
+                                //娓呯┖鎵�鏈夎褰�
+                                this.ClearAllHistoryLog();
+                            });
                         });
                     });
-                });
-            };
+                };
+            }
 
             //鍒濆鍖栦腑閮ㄤ俊鎭�
             this.InitMiddleFrame();
@@ -332,12 +332,36 @@
         {
             var frameTable = new FrameRowControl(listView.rowSpace / 2);
             frameTable.UseClickStatu = false;
-            this.listView.AddChidrenFrame2(frameTable);
+            this.listView.AddChidren2(frameTable);
             //鍥炬爣
             var btnIcon = frameTable.AddLeftIcon();
+            //淇℃伅
+            var btnMsg = frameTable.AddTopView("", 600);
+            //浜虹墿
+            string perName = dicName.ContainsKey(historyInfo.CloudAccountId) == true ? dicName[historyInfo.CloudAccountId] : Language.StringByID(R.MyInternationalizationString.uOther);
+            frameTable.AddBottomView(perName, 600);
+            //鏃堕棿
+            if (this.dateFromControl.dateValue == this.dateToControl.dateValue)
+            {
+                //濡傛灉鏃ユ湡鑼冨洿涓�鏍�,鍒欎笉鏄剧ず骞存湀鏃�
+                frameTable.AddMostRightView(UserCenterLogic.ConvertUtcTimeToLocalTime(historyInfo.UnlockTime).ToString("HH:mm:ss"), 400);
+            }
+            else
+            {
+                //濡傛灉鏃ユ湡鑼冨洿涓嶄竴鏍�,鍒欐樉绀哄勾鏈堟棩
+                frameTable.AddMostRightView(UserCenterLogic.ConvertUtcTimeToLocalTime(historyInfo.UnlockTime).ToString("yyyy/MM/dd HH:mm:ss"), 700);
+            }
+            //搴曠嚎
+            if (addLine == true)
+            {
+                
+                frameTable.AddBottomLine();
+            }
+
+            //鍏朵粬娑堟伅
             if (historyInfo.OpenLockMode == -1)
             {
-                //鍏朵粬娑堟伅
+                //鍥剧墖
                 var device = Common.LocalDevice.Current.GetDevice(historyInfo.DeviceMac, historyInfo.DeviceEpoint);
                 if (device == null)
                 {
@@ -347,29 +371,47 @@
                 {
                     Common.LocalDevice.Current.SetDeviceIconToControl(btnIcon, device);
                 }
-            }
-            else if (historyInfo.OpenLockMode == 9000)
-            {
-                btnIcon.UnSelectedImagePath = "Item/NormallyOpen.png";
-            }
-            else if (historyInfo.UnlockIsSuccess == true)
-            {
-                btnIcon.UnSelectedImagePath = "Item/UnLockSuccess.png";
-            }
-            else
-            {
-                btnIcon.UnSelectedImagePath = "Item/UnLockFail.png";
-            }
-
-            //淇℃伅
-            var btnMsg = frameTable.AddTopView("", 600);
-            if (historyInfo.OpenLockMode == -1 || historyInfo.OpenLockMode == 9000)
-            {
-                //鍏朵粬娑堟伅
+                //娑堟伅
                 btnMsg.Text = historyInfo.AlarmMsg;
             }
+            //闂ㄩ攣甯稿紑妯″紡
+            else if (historyInfo.OpenLockMode == 9000)
+            {
+                //鍥剧墖
+                btnIcon.UnSelectedImagePath = "Item/NormallyOpen.png";
+                //娑堟伅
+                if (historyInfo.OtherOpenLockMode == 9001)
+                {
+                    //甯稿紑妯″紡鎵嬪姩寮�鍚�
+                    btnMsg.TextID = R.MyInternationalizationString.uNormallyOpenModeManualOpen;
+                }
+                else if (historyInfo.OtherOpenLockMode == 9002)
+                {
+                    //甯稿紑妯″紡鎵嬪姩鍙栨秷
+                    btnMsg.TextID = R.MyInternationalizationString.uNormallyOpenModeManualClose;
+                }
+                else if (historyInfo.OtherOpenLockMode == 9003)
+                {
+                    //甯稿紑妯″紡鍚敤{0}灏忔椂
+                    btnMsg.Text = Language.StringByID(R.MyInternationalizationString.uNormallyOpenModeOpenSomeTime).Replace("{0}", historyInfo.NormallyOpenContinuedTime);
+                }
+                else if (historyInfo.OtherOpenLockMode == 9004)
+                {
+                    //甯稿紑鑷姩鍖栨墜鍔ㄥ彇娑�
+                    btnMsg.Text = Language.StringByID(R.MyInternationalizationString.uNormallyOpenLogicManualClose);
+                }
+                else
+                {
+                    //涓婇潰鏄疉pp鎵嬪姩鎺ㄩ��,杩欓噷鏄綉鍏虫垨鑰呴棬閿佽嚜宸辨帹閫�
+                    btnMsg.Text = historyInfo.AlarmMsg;
+                }
+            }
+            //寮�閿佹垚鍔�
             else if (historyInfo.UnlockIsSuccess == true)
             {
+                //鍥剧墖
+                btnIcon.UnSelectedImagePath = "Item/UnLockSuccess.png";
+                //娑堟伅
                 if (historyInfo.OpenLockMode == 0)
                 {
                     //瀵嗙爜寮�閿佹垚鍔�
@@ -386,8 +428,12 @@
                     btnMsg.TextID = R.MyInternationalizationString.uUnlockByFingerPrintSuccess;
                 }
             }
+            //寮�閿佸け璐�
             else
             {
+                //鍥剧墖
+                btnIcon.UnSelectedImagePath = "Item/UnLockFail.png";
+                //娑堟伅
                 if (historyInfo.OpenLockMode == 0)
                 {
                     //瀵嗙爜寮�閿佸け璐�
@@ -403,28 +449,6 @@
                     //鎸囩汗寮�閿佸け璐�
                     btnMsg.TextID = R.MyInternationalizationString.uUnlockByFingerPrintFail;
                 }
-            }
-
-            //浜虹墿
-            string perName = dicName.ContainsKey(historyInfo.CloudAccountId) == true ? dicName[historyInfo.CloudAccountId] : Language.StringByID(R.MyInternationalizationString.uOther);
-            frameTable.AddBottomView(perName, 600);
-
-            //鏃堕棿
-            if (this.dateFromControl.dateValue == this.dateToControl.dateValue)
-            {
-                //濡傛灉鏃ユ湡鑼冨洿涓�鏍�,鍒欎笉鏄剧ず骞存湀鏃�
-                frameTable.AddMostRightView(UserCenterLogic.ConvertUtcTimeToLocalTime(historyInfo.UnlockTime).ToString("HH:mm:ss"), 400);
-            }
-            else
-            {
-                //濡傛灉鏃ユ湡鑼冨洿涓嶄竴鏍�,鍒欐樉绀哄勾鏈堟棩
-                frameTable.AddMostRightView(UserCenterLogic.ConvertUtcTimeToLocalTime(historyInfo.UnlockTime).ToString("yyyy/MM/dd HH:mm:ss"), 700);
-            }
-
-            if (addLine == true)
-            {
-                //搴曠嚎
-                frameTable.AddBottomLine();
             }
         }
 
@@ -458,143 +482,6 @@
 
         #endregion
 
-        #region 鈻� 鑾峰彇璁板綍___________________________
-
-        /// <summary>
-        /// 鑾峰彇鍘嗗彶璁板綍
-        /// </summary>
-        /// <returns></returns>
-        private async Task<List<HistoryInfo>> GetHistoryLogInfo(Dictionary<string, string> dicMemberName)
-        {
-            if (this.listHistoryInfo != null)
-            {
-                //涓嶄簩娆¤幏鍙�,涓昏閽堝鐨勬槸绛涢�夊姛鑳�
-                return this.ScreeningHistoryData(dicMemberName);
-            }
-            //鑾峰彇璁块棶浜戠鎺ュ彛鐨勫惎鍔ㄥ弬鏁�
-            var pra = this.GetReadHistoryPra();
-
-            //鑾峰彇闂ㄩ攣鐨勬墦寮�鍜屽叧闂褰�
-            var listAllLog = await this.GetDoorOpenHistoryLog(pra);
-            //鑾峰彇闂ㄩ攣鐨勫叾浠栬褰�
-            var listOtherLog = await this.GetDoorOtherHistoryLog(pra.UnlockTimeBegin, pra.UnlockTimeEnd);
-            listAllLog.AddRange(listOtherLog);
-
-            //鎺掑簭涓�涓�
-            var dicAllData = new Dictionary<string, List<HistoryInfo>>();
-            var listSortTime = new List<string>();
-
-            foreach (var data in listAllLog)
-            {
-                //鎸夋椂闂村垎缁�
-                if (dicAllData.ContainsKey(data.UnlockTime) == false)
-                {
-                    dicAllData[data.UnlockTime] = new List<HistoryInfo>();
-                    listSortTime.Add(data.UnlockTime);
-                }
-                dicAllData[data.UnlockTime].Add(data);
-            }
-
-            //鎵ц鎺掑簭,鏃堕棿澶х殑鍦ㄥ墠闈�
-            listSortTime.Sort();
-            this.listHistoryInfo = new List<HistoryInfo>();
-            for (int i = listSortTime.Count - 1; i >= 0; i--)
-            {
-                this.listHistoryInfo.AddRange(dicAllData[listSortTime[i]]);
-            }
-            //绛涢�夊巻鍙茶褰�
-            return this.ScreeningHistoryData(dicMemberName);
-        }
-
-        /// <summary>
-        /// 鑾峰彇闂ㄩ攣鐨勬墦寮�鍜屽叧闂褰�
-        /// </summary>
-        /// <param name="i_pra"></param>
-        /// <returns></returns>
-        private async Task<List<HistoryInfo>> GetDoorOpenHistoryLog(GetHistoryDataPra i_pra)
-        {
-            var listLog = new List<HistoryInfo>();
-
-            int nowPage = 0;
-            while (true)
-            {
-                //璁块棶浜戠
-                var result = await UserCenterLogic.GetResponseDataByRequestHttps("DoorLock/GetDoorLockHistoryPager", true, i_pra);
-                if (result == null)
-                {
-                    return null;
-                }
-                var dataInfo = Newtonsoft.Json.JsonConvert.DeserializeObject<GetHistoryDataResult>(result);
-                listLog.AddRange(dataInfo.PageData);
-
-                if (dataInfo.HasNextPage == false)
-                {
-                    break;
-                }
-                //鑾峰彇涓嬩竴椤�
-                nowPage++;
-                i_pra.PageSetting.Page = nowPage;
-            }
-
-            return listLog;
-        }
-
-        /// <summary>
-        /// 鑾峰彇闂ㄩ攣鐨勫叾浠栬褰�
-        /// </summary>
-        /// <returns></returns>
-        private async Task<List<HistoryInfo>> GetDoorOtherHistoryLog(string beginTime, string endTime)
-        {
-            var listLog = new List<HistoryInfo>();
-
-            //鍘昏幏鍙栧叾浠栦俊鎭�
-            var pra2 = new MessageInfoPra();
-            pra2.BeginTime = beginTime;
-            pra2.EndTime = endTime;
-            pra2.Topic = "/Alarms/SendAlarmInform";
-            pra2.LoginAccessToken = UserCenterLogic.GetConnectMainToken();
-            var result = await UserCenterLogic.GetResponseDataByRequestHttps("MessageCenter/GetMessageCenterPagger", true, pra2);
-            if (result == null)
-            {
-                return null;
-            }
-            var dataInfo2 = Newtonsoft.Json.JsonConvert.DeserializeObject<MessageCentetInfo>(result);
-            string doorKey = this.DeviceDoor.DeviceAddr + "_" + this.DeviceDoor.DeviceEpoint;
-            foreach (var myInfo in dataInfo2.PageData)
-            {
-                //璁惧瀵硅薄
-                var jobject = Newtonsoft.Json.Linq.JObject.Parse(myInfo.PayloadJson);
-                string deviceAddr = jobject.Value<string>("DeviceAddr");
-                int deviceEpoint = jobject.Value<int>("Epoint");
-                if (doorKey != deviceAddr + "_" + deviceEpoint)
-                {
-                    //涓嶆槸鍚屼竴涓棬閿佺殑璁板綍
-                    continue;
-                }
-
-                var data = new HistoryInfo();
-                data.DeviceMac = deviceAddr;
-                data.DeviceEpoint = deviceEpoint;
-                //娑堟伅
-                var msgInfo = HdlAlarmsLogic.Current.GetDoorLockAlarmInfo(jobject);
-                data.AlarmMsg = msgInfo != null ? msgInfo.AlarmMsg : Language.StringByID(R.MyInternationalizationString.uDoorLocksAlarmHadTriggered);
-                //鏃堕棿
-                data.UnlockTime = myInfo.CreatedOnUtc;
-                //涓婚敭
-                data.MsgKeyId = myInfo.Id;
-                //娑堟伅鍖哄垎
-                if (msgInfo.MsgDiv == 9000)
-                {
-                    data.OpenLockMode = 9000;
-                }
-                listLog.Add(data);
-            }
-
-            return listLog;
-        }
-
-        #endregion
-
         #region 鈻� 绛涢�夎褰昣__________________________
 
         /// <summary>
@@ -606,7 +493,6 @@
             //鍘嗗彶璁板綍澶夯鐑︿簡,瀛樺湪涓嶅悓鐨勬暟鎹簱琛ㄩ噷,骞朵笖鏁版嵁杩樹笉涓�鏍�,鍙兘杩欐牱涓�涓釜鍒ゆ柇浜�
             var listScreeningData = new List<HistoryInfo>();
             //娓呴櫎鎺変箣鍓嶇殑璁板綍
-            this.listOtherUserId = new List<string>();
             this.listOtherMsgId = new List<string>();
 
             //鏄惁閫夋嫨鍏ㄩ�夌敤鎴�
@@ -687,14 +573,292 @@
                     this.listOtherMsgId.Add(info.MsgKeyId);
                 }
             }
-            if (info.CloudAccountId != string.Empty && dicMemberName.ContainsKey(info.CloudAccountId) == false
-                && this.listOtherUserId.Contains(info.CloudAccountId) == false)
-            {
-                //鏃犳硶璇嗗埆鐨勫紑閿佽褰曠殑鐢ㄦ埛ID(鍥犱负閭d釜瀵嗙爜鏈夊彲鑳芥病鏈夊垎閰嶇粰鎴愬憳)
-                this.listOtherUserId.Add(info.CloudAccountId);
-            }
 
             return true;
+        }
+
+        #endregion
+
+        #region 鈻� 鑾峰彇闂ㄩ攣鎵撳紑璁板綍___________________
+
+        /// <summary>
+        /// 鑾峰彇鍘嗗彶璁板綍
+        /// </summary>
+        /// <returns></returns>
+        private async Task<List<HistoryInfo>> GetHistoryLogInfo(Dictionary<string, string> dicMemberName)
+        {
+            if (this.listHistoryInfo != null)
+            {
+                //涓嶄簩娆¤幏鍙�,涓昏閽堝鐨勬槸绛涢�夊姛鑳�
+                return this.ScreeningHistoryData(dicMemberName);
+            }
+            //鑾峰彇璁块棶浜戠鎺ュ彛鐨勫惎鍔ㄥ弬鏁�
+            var pra = this.GetReadHistoryPra();
+
+            //鑾峰彇闂ㄩ攣鐨勬墦寮�鍜屽叧闂褰�
+            var listAllLog = await this.GetDoorOpenHistoryLog(pra);
+            //鑾峰彇闂ㄩ攣鐨勫叾浠栬褰�
+            var listOtherLog = await this.GetDoorOtherHistoryLog(pra.UnlockTimeBegin, pra.UnlockTimeEnd);
+            listAllLog.AddRange(listOtherLog);
+
+            //鎺掑簭涓�涓�
+            var dicAllData = new Dictionary<string, List<HistoryInfo>>();
+            var listSortTime = new List<string>();
+
+            foreach (var data in listAllLog)
+            {
+                //鎸夋椂闂村垎缁�
+                if (dicAllData.ContainsKey(data.UnlockTime) == false)
+                {
+                    dicAllData[data.UnlockTime] = new List<HistoryInfo>();
+                    listSortTime.Add(data.UnlockTime);
+                }
+                dicAllData[data.UnlockTime].Add(data);
+            }
+
+            //鎵ц鎺掑簭,鏃堕棿澶х殑鍦ㄥ墠闈�
+            listSortTime.Sort();
+            this.listHistoryInfo = new List<HistoryInfo>();
+            for (int i = listSortTime.Count - 1; i >= 0; i--)
+            {
+                this.listHistoryInfo.AddRange(dicAllData[listSortTime[i]]);
+            }
+            //绛涢�夊巻鍙茶褰�
+            return this.ScreeningHistoryData(dicMemberName);
+        }
+
+        /// <summary>
+        /// 鑾峰彇闂ㄩ攣鐨勬墦寮�鍜屽叧闂褰�
+        /// </summary>
+        /// <param name="i_pra"></param>
+        /// <returns></returns>
+        private async Task<List<HistoryInfo>> GetDoorOpenHistoryLog(GetHistoryDataPra i_pra)
+        {
+            var listLog = new List<HistoryInfo>();
+
+            int nowPage = 0;
+            while (true)
+            {
+                //璁块棶浜戠
+                var result = await UserCenterLogic.GetResponseDataByRequestHttps("DoorLock/GetDoorLockHistoryPager", true, i_pra);
+                if (result == null)
+                {
+                    return null;
+                }
+                var dataInfo = Newtonsoft.Json.JsonConvert.DeserializeObject<GetHistoryDataResult>(result);
+                foreach (var data in dataInfo.PageData)
+                {
+                    //涓嶇煡閬撲负浠�涔堜細鏈変笂鎶ヤ簡铏氭嫙9000鐨勯偅涓壒娈婄殑涓滆タ
+                    if (data.OpenLockMode == 9000 && data.OtherOpenLockMode <= 9000)
+                    {
+                        continue;
+                    }
+                    if (data.CloudAccountId == null)
+                    {
+                        data.CloudAccountId = string.Empty;
+                    }
+                    listLog.Add(data);
+                }
+
+                if (dataInfo.HasNextPage == false)
+                {
+                    break;
+                }
+                //鑾峰彇涓嬩竴椤�
+                nowPage++;
+                i_pra.PageSetting.Page = nowPage;
+            }
+
+            return listLog;
+        }
+
+        #endregion
+
+        #region 鈻� 鑾峰彇闂ㄩ攣鍏朵粬璁板綍___________________
+
+        /// <summary>
+        /// 鑾峰彇闂ㄩ攣鐨勫叾浠栬褰�
+        /// </summary>
+        /// <returns></returns>
+        private async Task<List<HistoryInfo>> GetDoorOtherHistoryLog(string beginTime, string endTime)
+        {
+            var listLog = new List<HistoryInfo>();
+
+            //鑾峰彇闂ㄩ攣鍏朵粬绫讳俊鎭笂鎶�
+            var pra2 = new MessageInfoPra();
+            pra2.BeginTime = beginTime;
+            pra2.EndTime = endTime;
+            pra2.Topic = "/Alarms/SendAlarmInform";
+            pra2.LoginAccessToken = UserCenterLogic.GetConnectMainToken();
+            var result = await UserCenterLogic.GetResponseDataByRequestHttps("MessageCenter/GetMessageCenterPagger", true, pra2);
+            if (result == null)
+            {
+                return null;
+            }
+            this.AdjustDoorOtherAlarmData(ref listLog, result);
+
+            //浠庤嚜鍔ㄥ寲涓�,鑾峰彇甯稿紑妯″紡璁板綍
+            pra2.Topic = "/Logic/Execute_Respon";
+            result = await UserCenterLogic.GetResponseDataByRequestHttps("MessageCenter/GetMessageCenterPagger", true, pra2);
+            if (result == null)
+            {
+                return null;
+            }
+            this.AdjustDoorNormallyOpenData(ref listLog, result);
+
+            //鑾峰彇闂ㄩ攣涓存椂瀵嗙爜寮�閿佽褰�
+            pra2.Topic = "/DoorLock/DoorLockOperatingEventNotificationCommand";
+            result = await UserCenterLogic.GetResponseDataByRequestHttps("MessageCenter/GetMessageCenterPagger", true, pra2);
+            if (result == null)
+            {
+                return null;
+            }
+            this.AdjustDoorTemporaryPasswordData(ref listLog, result);
+
+            return listLog;
+        }
+
+        /// <summary>
+        /// 澶勭悊闂ㄩ攣甯稿紑妯″紡璁板綍淇℃伅
+        /// </summary>
+        /// <param name="listLog"></param>
+        /// <param name="result"></param>
+        private void AdjustDoorOtherAlarmData(ref List<HistoryInfo> listLog, string result)
+        {
+            var dataInfo2 = Newtonsoft.Json.JsonConvert.DeserializeObject<MessageCentetInfo>(result);
+            string doorKey = this.DeviceDoor.DeviceAddr + "_" + this.DeviceDoor.DeviceEpoint;
+            foreach (var myInfo in dataInfo2.PageData)
+            {
+                //璁惧瀵硅薄
+                var jobject = Newtonsoft.Json.Linq.JObject.Parse(myInfo.PayloadJson);
+                string deviceAddr = jobject.Value<string>("DeviceAddr");
+                int deviceEpoint = jobject.Value<int>("Epoint");
+                if (doorKey != deviceAddr + "_" + deviceEpoint)
+                {
+                    //涓嶆槸鍚屼竴涓棬閿佺殑璁板綍
+                    continue;
+                }
+
+                var data = new HistoryInfo();
+                data.DeviceMac = deviceAddr;
+                data.DeviceEpoint = deviceEpoint;
+                //娑堟伅
+                var msgInfo = HdlAlarmsLogic.Current.GetDoorLockAlarmInfo(jobject);
+                data.AlarmMsg = msgInfo != null ? msgInfo.AlarmMsg : Language.StringByID(R.MyInternationalizationString.uDoorLocksAlarmHadTriggered);
+                //鏃堕棿
+                data.UnlockTime = myInfo.CreatedOnUtc;
+                //涓婚敭
+                data.MsgKeyId = myInfo.Id;
+                //娑堟伅鍖哄垎
+                if (msgInfo.MsgDiv == 9000)
+                {
+                    data.OpenLockMode = 9000;
+                }
+                listLog.Add(data);
+            }
+        }
+
+        /// <summary>
+        /// 澶勭悊闂ㄩ攣甯稿紑妯″紡淇℃伅涓婃姤
+        /// </summary>
+        /// <param name="listLog"></param>
+        /// <param name="result"></param>
+        private void AdjustDoorNormallyOpenData(ref List<HistoryInfo> listLog, string result)
+        {
+            var dataInfo2 = Newtonsoft.Json.JsonConvert.DeserializeObject<MessageCentetInfo>(result);
+            string doorKey = this.DeviceDoor.DeviceAddr + "_" + this.DeviceDoor.DeviceEpoint;
+            foreach (var myInfo in dataInfo2.PageData)
+            {
+                var jobject = Newtonsoft.Json.Linq.JObject.Parse(myInfo.PayloadJson);
+                var myActionData = Newtonsoft.Json.JsonConvert.DeserializeObject<LogicPushResult>(jobject["Data"].ToString());
+                if (myActionData.ActionData == null || myActionData.ActionData.Actiontype != 8)
+                {
+                    //涓嶆槸甯稿紑妯″紡鐨勮嚜鍔ㄥ寲
+                    continue;
+                }
+                string deviceAddr = myActionData.ActionData.MacStr;
+                int deviceEpoint = myActionData.ActionData.Epoint;
+                if (doorKey != deviceAddr + "_" + deviceEpoint)
+                {
+                    //涓嶆槸鍚屼竴涓棬閿佺殑璁板綍
+                    continue;
+                }
+
+                var data = new HistoryInfo();
+                data.DeviceMac = deviceAddr;
+                data.DeviceEpoint = deviceEpoint;
+                //娑堟伅
+                if (myActionData.ActionData.PassDataString == "055704010112")
+                {
+                    //甯稿紑妯″紡寮�鍚�(鑷姩鍖栬Е鍙�)
+                    data.AlarmMsg = Language.StringByID(R.MyInternationalizationString.uDoorLockAlarmMsg11);
+                }
+                else if (myActionData.ActionData.PassDataString == "055704010113")
+                {
+                    //甯稿紑妯″紡缁撴潫(鑷姩鍖栬Е鍙�)
+                    data.AlarmMsg = Language.StringByID(R.MyInternationalizationString.uDoorLockAlarmMsg12);
+                }
+                else
+                {
+                    continue;
+                }
+                //鏃堕棿
+                data.UnlockTime = myInfo.CreatedOnUtc;
+                //涓婚敭
+                data.MsgKeyId = myInfo.Id;
+                //娑堟伅鍖哄垎
+                data.OpenLockMode = 9000;
+
+                listLog.Add(data);
+            }
+        }
+
+        /// <summary>
+        /// 澶勭悊闂ㄩ攣涓存椂瀵嗙爜涓婃姤
+        /// </summary>
+        /// <param name="listLog"></param>
+        /// <param name="result"></param>
+        private void AdjustDoorTemporaryPasswordData(ref List<HistoryInfo> listLog, string result)
+        {
+            var dataInfo2 = Newtonsoft.Json.JsonConvert.DeserializeObject<MessageCentetInfo>(result);
+            string doorKey = this.DeviceDoor.DeviceAddr + "_" + this.DeviceDoor.DeviceEpoint;
+            foreach (var myInfo in dataInfo2.PageData)
+            {
+                var jobject = Newtonsoft.Json.Linq.JObject.Parse(myInfo.PayloadJson);
+                string deviceAddr = jobject.Value<string>("DeviceAddr");
+                int deviceEpoint = jobject.Value<int>("Epoint");
+                if (doorKey != deviceAddr + "_" + deviceEpoint)
+                {
+                    //涓嶆槸鍚屼竴涓棬閿佺殑璁板綍
+                    continue;
+                }
+                var myActionData = Newtonsoft.Json.JsonConvert.DeserializeObject<PasswordOperationData>(jobject["Data"].ToString());
+                if (myActionData.UserID != 246)
+                {
+                    //涓嶆槸涓存椂瀵嗙爜
+                    continue;
+                }
+                var data = new HistoryInfo();
+                data.DeviceMac = deviceAddr;
+                data.DeviceEpoint = deviceEpoint;
+                //娑堟伅
+                if (myActionData.OperationEventCode == 2)
+                {
+                    //涓存椂瀵嗙爜寮�閿佹垚鍔�
+                    data.AlarmMsg = Language.StringByID(R.MyInternationalizationString.uDoorLockAlarmMsg13);
+                }
+                else
+                {
+                    //涓存椂瀵嗙爜寮�閿佸け璐�
+                    data.AlarmMsg = Language.StringByID(R.MyInternationalizationString.uDoorLockAlarmMsg14);
+                }
+                //鏃堕棿
+                data.UnlockTime = myInfo.CreatedOnUtc;
+                //涓婚敭
+                data.MsgKeyId = myInfo.Id;
+
+                listLog.Add(data);
+            }
         }
 
         #endregion
@@ -706,7 +870,7 @@
         /// </summary>
         private async void ClearAllHistoryLog()
         {
-            //鑾峰彇璁块棶浜戠鎺ュ彛鐨勫惎鍔ㄥ弬鏁�
+            //鑾峰彇璁块棶浜戠鎺ュ彛鐨勫惎鍔ㄥ弬鏁�(2020.05.08:鍏ㄩ儴娓呯┖)
             var pra = this.GetDeleteDataPra();
 
             //鎵撳紑杩涘害鏉�
@@ -741,7 +905,6 @@
 
             //娓呯┖
             this.listOtherMsgId = new List<string>();
-            this.listOtherUserId = new List<string>();
             this.listHistoryInfo = null;
 
             HdlThreadLogic.Current.RunMain(() =>
@@ -783,34 +946,11 @@
             DateTime dateFrom = new DateTime(dateFromControl.Year, dateFromControl.Month, dateFromControl.Day, 0, 0, 0);
             DateTime dateTo = new DateTime(dateToControl.Year, dateToControl.Month, dateToControl.Day, 23, 59, 59);
 
-            List<string> listUser = null;
-            //鎸囧畾鐢ㄦ埛
-            if (listSearchUserId.Contains("-1") == false)
-            {
-                listUser = new List<string>();
-                listUser.AddRange(listSearchUserId);
-                //濡傛灉鎸囧畾鏈夊叾浠�
-                if (listSearchUserId.Contains("-9999") == true)
-                {
-                    listUser.AddRange(this.listOtherUserId);
-                }
-            }
-
-            //鍏ㄩ�夊垯涓簄ull
-            List<int> listLock = null;
-            if (listSearchLockId.Contains(-1) == false)
-            {
-                listLock = new List<int>();
-                listLock.AddRange(listSearchLockId);
-            }
-
             var pra = new DeleteHistoryDataPra();
             pra.UnlockTimeBegin = dateFrom.ToUniversalTime().ToString();
             pra.UnlockTimeEnd = dateTo.ToUniversalTime().ToString();
             pra.LoginAccessToken = UserCenterLogic.GetConnectMainToken();
             pra.DoorLockId = this.DeviceDoor.DeviceAddr + "_" + this.DeviceDoor.DeviceEpoint;
-            pra.CloudAccountIds = listUser;
-            pra.OpenLockModes = listLock;
 
             return pra;
         }
@@ -942,6 +1082,14 @@
             /// </summary>
             public string CloudAccountId = string.Empty;
             /// <summary>
+            /// 鍏朵粬寮�閿佹柟寮�(OpenLockMode=9000鏃舵湁鏁�) 9001:甯稿紑鎵撳紑 9002:甯稿紑鍙栨秷 9003:甯稿紑鎸佺画 9004:甯稿紑鑷姩鍖栨墜鍔ㄥ彇娑�
+            /// </summary>
+            public int? OtherOpenLockMode = -1;
+            /// <summary>
+            /// 甯稿紑鎸佺画鏃堕棿(1~72灏忔椂 OtherOpenLockMode=9003鐨勬椂鍊欐湁鏁�)
+            /// </summary>
+            public string NormallyOpenContinuedTime = string.Empty;
+            /// <summary>
             /// 褰撳紑閿佹柟寮忎负-1鏃朵娇鐢�,瀹冨睘浜庡叾浠栫被
             /// </summary>
             public string AlarmMsg = string.Empty;
@@ -959,6 +1107,25 @@
             public string MsgKeyId = string.Empty;
         }
 
+        /// <summary>
+        /// 涓存椂瀵嗙爜鏁版嵁
+        /// </summary>
+        private class PasswordOperationData
+        {
+            /// <summary>
+            /// 0:瀵嗙爜 15:鎸囩汗 3:IC鍗�
+            /// </summary>
+            public int OperationEventSoure = -1;
+            /// <summary>
+            /// 2:寮�閿佹垚鍔�
+            /// </summary>
+            public int OperationEventCode = -1;
+            /// <summary>
+            /// 246浠h〃涓存椂瀵嗙爜
+            /// </summary>
+            public int UserID = -1;
+        }
+
         #endregion
     }
 }

--
Gitblit v1.8.0