From 4f0ab0ad21ce450b7856d50f98322a7899361386 Mon Sep 17 00:00:00 2001
From: 黄学彪 <hxb@hdlchina.com.cn>
Date: 星期二, 22 九月 2020 10:30:01 +0800
Subject: [PATCH] 不要下载这个备份
---
ZigbeeApp/Shared/Phone/UserCenter/Device/DoorLock/DoorLockHistoryLogForm.cs | 303 ++++++++++++++++++++++++++++++++++++-------------
1 files changed, 221 insertions(+), 82 deletions(-)
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Device/DoorLock/DoorLockHistoryLogForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Device/DoorLock/DoorLockHistoryLogForm.cs
index 620df26..6fff409 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/Device/DoorLock/DoorLockHistoryLogForm.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Device/DoorLock/DoorLockHistoryLogForm.cs
@@ -1,7 +1,6 @@
锘縰sing System;
using System.Collections.Generic;
using System.Text;
-using System.Threading.Tasks;
using ZigBee.Device;
namespace Shared.Phone.UserCenter.DeviceDoorLock
@@ -49,10 +48,6 @@
/// 鍏朵粬娑堟伅鐨勪富閿�,瀹冨瓨鍦ㄥ彟澶栫殑涓�寮犳暟鎹簱琛ㄤ腑
/// </summary>
private List<string> listOtherMsgId = new List<string>();
- /// <summary>
- /// 鏃犳硶璇嗗埆鐨勫紑閿佽褰曠殑鐢ㄦ埛ID(鍥犱负閭d釜瀵嗙爜鏈夊彲鑳芥病鏈夊垎閰嶇粰鎴愬憳)
- /// </summary>
- private List<string> listOtherUserId = new List<string>();
#endregion
@@ -69,33 +64,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();
@@ -223,12 +222,12 @@
this.listHistoryInfo = null;
}
- HdlThreadLogic.Current.RunThread(async () =>
+ HdlThreadLogic.Current.RunThread(() =>
{
//鎵撳紑杩涘害鏉�
this.ShowProgressBar();
//鎴愬憳鍒楄〃
- var result = await this.GetMemberListInfo();
+ var result = this.GetMemberListInfo();
if (result == false)
{
//鍏抽棴杩涘害鏉�
@@ -242,7 +241,7 @@
dicMemberName.Add(listMenberInfo[i].SubAccountDistributedMark, string.IsNullOrEmpty(listMenberInfo[i].UserName) == false ? listMenberInfo[i].UserName : listMenberInfo[i].Account);
}
//鍘嗗彶璁板綍
- var historyLog = await this.GetHistoryLogInfo(dicMemberName);
+ var historyLog = this.GetHistoryLogInfo(dicMemberName);
if (historyLog == null)
{
//鍏抽棴杩涘害鏉�
@@ -276,7 +275,7 @@
/// 鑾峰彇鎴愬憳鍒楄〃淇℃伅
/// </summary>
/// <returns></returns>
- private async Task<bool> GetMemberListInfo()
+ private bool GetMemberListInfo()
{
if (listMenberInfo != null)
{
@@ -299,8 +298,8 @@
}
var pra = new MemberListInfoPra();
- string result = await UserCenterLogic.GetResponseDataByRequestHttps("ZigbeeUsers/GetSubAccountByDistributedMark", false, pra);
- if (result == null)
+ string result = UserCenterLogic.GetResponseDataByRequestHttps("ZigbeeUsers/GetSubAccountByDistributedMark", false, pra);
+ if (string.IsNullOrEmpty(result) == true)
{
return false;
}
@@ -332,7 +331,7 @@
{
var frameTable = new FrameRowControl(listView.rowSpace / 2);
frameTable.UseClickStatu = false;
- this.listView.AddChidrenFrame2(frameTable);
+ this.listView.AddChidren2(frameTable);
//鍥炬爣
var btnIcon = frameTable.AddLeftIcon();
//淇℃伅
@@ -394,6 +393,11 @@
{
//甯稿紑妯″紡鍚敤{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
{
@@ -488,7 +492,6 @@
//鍘嗗彶璁板綍澶夯鐑︿簡,瀛樺湪涓嶅悓鐨勬暟鎹簱琛ㄩ噷,骞朵笖鏁版嵁杩樹笉涓�鏍�,鍙兘杩欐牱涓�涓釜鍒ゆ柇浜�
var listScreeningData = new List<HistoryInfo>();
//娓呴櫎鎺変箣鍓嶇殑璁板綍
- this.listOtherUserId = new List<string>();
this.listOtherMsgId = new List<string>();
//鏄惁閫夋嫨鍏ㄩ�夌敤鎴�
@@ -569,25 +572,19 @@
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 鈻� 鑾峰彇璁板綍___________________________
+ #region 鈻� 鑾峰彇闂ㄩ攣鎵撳紑璁板綍___________________
/// <summary>
/// 鑾峰彇鍘嗗彶璁板綍
/// </summary>
/// <returns></returns>
- private async Task<List<HistoryInfo>> GetHistoryLogInfo(Dictionary<string, string> dicMemberName)
+ private List<HistoryInfo> GetHistoryLogInfo(Dictionary<string, string> dicMemberName)
{
if (this.listHistoryInfo != null)
{
@@ -598,9 +595,9 @@
var pra = this.GetReadHistoryPra();
//鑾峰彇闂ㄩ攣鐨勬墦寮�鍜屽叧闂褰�
- var listAllLog = await this.GetDoorOpenHistoryLog(pra);
+ var listAllLog = this.GetDoorOpenHistoryLog(pra);
//鑾峰彇闂ㄩ攣鐨勫叾浠栬褰�
- var listOtherLog = await this.GetDoorOtherHistoryLog(pra.UnlockTimeBegin, pra.UnlockTimeEnd);
+ var listOtherLog = this.GetDoorOtherHistoryLog(pra.UnlockTimeBegin, pra.UnlockTimeEnd);
listAllLog.AddRange(listOtherLog);
//鎺掑簭涓�涓�
@@ -634,7 +631,7 @@
/// </summary>
/// <param name="i_pra"></param>
/// <returns></returns>
- private async Task<List<HistoryInfo>> GetDoorOpenHistoryLog(GetHistoryDataPra i_pra)
+ private List<HistoryInfo> GetDoorOpenHistoryLog(GetHistoryDataPra i_pra)
{
var listLog = new List<HistoryInfo>();
@@ -642,13 +639,25 @@
while (true)
{
//璁块棶浜戠
- var result = await UserCenterLogic.GetResponseDataByRequestHttps("DoorLock/GetDoorLockHistoryPager", true, i_pra);
- if (result == null)
+ var result = UserCenterLogic.GetResponseDataByRequestHttps("DoorLock/GetDoorLockHistoryPager", true, i_pra);
+ if (string.IsNullOrEmpty(result) == true)
{
return null;
}
var dataInfo = Newtonsoft.Json.JsonConvert.DeserializeObject<GetHistoryDataResult>(result);
- listLog.AddRange(dataInfo.PageData);
+ 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)
{
@@ -662,25 +671,59 @@
return listLog;
}
+ #endregion
+
+ #region 鈻� 鑾峰彇闂ㄩ攣鍏朵粬璁板綍___________________
+
/// <summary>
/// 鑾峰彇闂ㄩ攣鐨勫叾浠栬褰�
/// </summary>
/// <returns></returns>
- private async Task<List<HistoryInfo>> GetDoorOtherHistoryLog(string beginTime, string endTime)
+ private 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)
+ var result = UserCenterLogic.GetResponseDataByRequestHttps("MessageCenter/GetMessageCenterPagger", true, pra2);
+ if (string.IsNullOrEmpty(result) == true)
{
return null;
}
+ this.AdjustDoorOtherAlarmData(ref listLog, result);
+
+ //浠庤嚜鍔ㄥ寲涓�,鑾峰彇甯稿紑妯″紡璁板綍
+ pra2.Topic = "/Logic/Execute_Respon";
+ result = UserCenterLogic.GetResponseDataByRequestHttps("MessageCenter/GetMessageCenterPagger", true, pra2);
+ if (string.IsNullOrEmpty(result) == true)
+ {
+ return null;
+ }
+ this.AdjustDoorNormallyOpenData(ref listLog, result);
+
+ //鑾峰彇闂ㄩ攣涓存椂瀵嗙爜寮�閿佽褰�
+ pra2.Topic = "/DoorLock/DoorLockOperatingEventNotificationCommand";
+ result = UserCenterLogic.GetResponseDataByRequestHttps("MessageCenter/GetMessageCenterPagger", true, pra2);
+ if (string.IsNullOrEmpty(result) == true)
+ {
+ 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)
@@ -712,8 +755,109 @@
}
listLog.Add(data);
}
+ }
- return listLog;
+ /// <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
@@ -723,14 +867,14 @@
/// <summary>
/// 娓呯┖鎵�鏈夎褰�
/// </summary>
- private async void ClearAllHistoryLog()
+ private void ClearAllHistoryLog()
{
- //鑾峰彇璁块棶浜戠鎺ュ彛鐨勫惎鍔ㄥ弬鏁�
+ //鑾峰彇璁块棶浜戠鎺ュ彛鐨勫惎鍔ㄥ弬鏁�(2020.05.08:鍏ㄩ儴娓呯┖)
var pra = this.GetDeleteDataPra();
//鎵撳紑杩涘害鏉�
this.ShowProgressBar();
- var result = await UserCenterLogic.GetResultStatuByRequestHttps("DoorLock/ClearDoorLockHistory", true, pra);
+ var result = UserCenterLogic.GetResultStatuByRequestHttps("DoorLock/ClearDoorLockHistory", true, pra);
if (result == false)
{
return;
@@ -744,7 +888,7 @@
for (int i = 0; i < listOtherMsgId.Count; i++)
{
pra2.Id = listOtherMsgId[i];
- result = await UserCenterLogic.GetResultStatuByRequestHttps("MessageCenter/DelMessageCenterItem", true, pra2);
+ result = UserCenterLogic.GetResultStatuByRequestHttps("MessageCenter/DelMessageCenterItem", true, pra2);
if (result == false)
{
return;
@@ -760,7 +904,6 @@
//娓呯┖
this.listOtherMsgId = new List<string>();
- this.listOtherUserId = new List<string>();
this.listHistoryInfo = null;
HdlThreadLogic.Current.RunMain(() =>
@@ -802,34 +945,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;
}
@@ -961,7 +1081,7 @@
/// </summary>
public string CloudAccountId = string.Empty;
/// <summary>
- /// 鍏朵粬寮�閿佹柟寮�(OpenLockMode=9000鏃舵湁鏁�) 9001:甯稿紑鎵撳紑 9002:甯稿紑鍙栨秷 9003:甯稿紑鎸佺画
+ /// 鍏朵粬寮�閿佹柟寮�(OpenLockMode=9000鏃舵湁鏁�) 9001:甯稿紑鎵撳紑 9002:甯稿紑鍙栨秷 9003:甯稿紑鎸佺画 9004:甯稿紑鑷姩鍖栨墜鍔ㄥ彇娑�
/// </summary>
public int? OtherOpenLockMode = -1;
/// <summary>
@@ -986,6 +1106,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