| | |
| | | /// </summary>
|
| | | private CommonDevice DeviceDoor = null;
|
| | | /// <summary>
|
| | | /// 检索对象的ID(-1:所有 空字符串:其他)
|
| | | /// 检索对象的ID(-1:所有 -9999:其他)
|
| | | /// </summary>
|
| | | private List<string> listSearchUserId = new List<string>() { "-1" };
|
| | | /// <summary>
|
| | | /// 检索开锁方式的ID(-1:所有 0:密码 15:指纹 3:IC卡)
|
| | | /// 检索开锁方式的ID(-1:所有 0:密码 15:指纹 3:IC卡 9000:常开模式(自定义的))
|
| | | /// </summary>
|
| | | private List<int> listSearchLockId = new List<int>() { -1 };
|
| | | /// <summary>
|
| | | /// 获取到的历史记录
|
| | | /// </summary>
|
| | | private List<HistoryInfo> listHistoryInfo = null;
|
| | | /// <summary>
|
| | | /// 其他消息的主键,它存在另外的一张数据库表中
|
| | | /// </summary>
|
| | |
| | | this.InitTitleSearchControl();
|
| | |
|
| | | //初始化记录列表
|
| | | this.InitLogListInfo();
|
| | | this.InitLogListInfo(true);
|
| | | }
|
| | |
|
| | | /// <summary>
|
| | |
| | | dateFromControl.DateSelectEvent += (dateValue) =>
|
| | | {
|
| | | //初始化记录列表
|
| | | this.InitLogListInfo();
|
| | | this.InitLogListInfo(true);
|
| | | };
|
| | |
|
| | | var btnTemp = new NormalViewControl(26, 58, true);
|
| | | btnTemp.Y = Application.GetRealHeight(29);
|
| | | btnTemp.X = Application.GetRealWidth(357);
|
| | | btnTemp.X = dateFromControl.Right + Application.GetRealWidth(12);
|
| | | btnTemp.TextColor = UserCenterColor.Current.TextGrayColor1;
|
| | | btnTemp.Text = "-";
|
| | | frameTitle.AddChidren(btnTemp, ChidrenBindMode.NotBind);
|
| | |
|
| | | dateToControl = new DateSelectControl(Language.StringByID(R.MyInternationalizationString.uEndDate));
|
| | | dateToControl.Y = Application.GetRealHeight(35);
|
| | | dateToControl.X = Application.GetRealWidth(395);
|
| | | dateToControl.X = btnTemp.Right + Application.GetRealWidth(12);
|
| | | dateToControl.dateValue = DateTime.Now.ToString("yyyyMMdd");
|
| | | frameTitle.AddChidren(dateToControl, ChidrenBindMode.NotBind);
|
| | | dateToControl.DateSelectEvent += (dateValue) =>
|
| | | {
|
| | | //初始化记录列表
|
| | | this.InitLogListInfo();
|
| | | this.InitLogListInfo(true);
|
| | | };
|
| | |
|
| | | //类型筛选
|
| | | var btnScreening = frameTitle.AddMostRightView(Language.StringByID(R.MyInternationalizationString.uScreeningType), 145);
|
| | | frameTitle.ChangedChidrenBindMode(btnScreening, ChidrenBindMode.NotBind);
|
| | | btnScreening.TextSize = 12;
|
| | |
|
| | | btnScreening.Width = btnScreening.GetRealWidthByText();
|
| | | btnScreening.X = frameTitle.Width - Application.GetRealWidth(58) - btnScreening.Width;
|
| | | btnScreening.ButtonClickEvent += (sender, e) =>
|
| | | {
|
| | | //显示类型筛选界面
|
| | | this.ShowDoorLockScreeningTypeForm();
|
| | | };
|
| | | frameTitle.ChangedChidrenBindMode(btnScreening, ChidrenBindMode.NotBind);
|
| | | //类型筛选的图标
|
| | | var btnScreeningIcon = new IconViewControl(69);
|
| | | btnScreeningIcon.X = btnScreening.X - Application.GetRealWidth(12) - btnScreeningIcon.IconSize;
|
| | |
| | | listView.BeginHeaderRefreshingAction += () =>
|
| | | {
|
| | | //下拉刷新
|
| | | this.InitLogListInfo();
|
| | | this.InitLogListInfo(true);
|
| | | };
|
| | | }
|
| | |
|
| | |
| | | /// <summary>
|
| | | /// 初始化记录列表
|
| | | /// </summary>
|
| | | private void InitLogListInfo()
|
| | | /// <param name="reReadData">是否从新从云端读取数据</param>
|
| | | private void InitLogListInfo(bool reReadData)
|
| | | {
|
| | | this.listView.frameTable.RemoveAll();
|
| | | listView.frameTable.Height = bodyFrameLayout.Height - Application.GetRealHeight(115 - 3);
|
| | |
| | | this.ShowMassage(ShowMsgType.Tip, Language.StringByID(R.MyInternationalizationString.uFromTimeIsOverToTime));
|
| | | return;
|
| | | }
|
| | | if (reReadData == true)
|
| | | {
|
| | | //置空后,重新获取
|
| | | this.listHistoryInfo = null;
|
| | | }
|
| | |
|
| | | HdlThreadLogic.Current.RunThread(async () =>
|
| | | {
|
| | | //打开进度条
|
| | |
| | | this.CloseProgressBar(ShowReLoadMode.YES);
|
| | | return;
|
| | | }
|
| | | //成员信息
|
| | | var dicMemberName = new Dictionary<string, string>();
|
| | | for (int i = 0; i < listMenberInfo.Count; i++)
|
| | | {
|
| | | dicMemberName.Add(listMenberInfo[i].SubAccountDistributedMark, string.IsNullOrEmpty(listMenberInfo[i].UserName) == false ? listMenberInfo[i].UserName : listMenberInfo[i].Account);
|
| | | }
|
| | | //历史记录
|
| | | var historyLog = await this.GetHistoryLogInfo();
|
| | | var historyLog = await this.GetHistoryLogInfo(dicMemberName);
|
| | | if (historyLog == null)
|
| | | {
|
| | | //关闭进度条
|
| | |
| | | //关闭进度条
|
| | | this.CloseProgressBar();
|
| | |
|
| | | var dic = new Dictionary<string, string>();
|
| | | for (int i = 0; i < listMenberInfo.Count; i++)
|
| | | {
|
| | | dic.Add(listMenberInfo[i].SubAccountDistributedMark, string.IsNullOrEmpty(listMenberInfo[i].UserName) == false ? listMenberInfo[i].UserName : listMenberInfo[i].Account);
|
| | | }
|
| | | HdlThreadLogic.Current.RunMain(() =>
|
| | | {
|
| | | for (int i = 0; i < historyLog.Count; i++)
|
| | | {
|
| | | //添加记录行
|
| | | this.AddLogInfoRow(historyLog[i], dic, i != historyLog.Count - 1);
|
| | | this.AddLogInfoRow(historyLog[i], dicMemberName, i != historyLog.Count - 1);
|
| | | }
|
| | | //隐藏下拉刷新特效
|
| | | listView.EndHeaderRefreshing();
|
| | |
| | | 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";
|
| | |
| | |
|
| | | //信息
|
| | | var btnMsg = frameTable.AddTopView("", 600);
|
| | | if (historyInfo.OpenLockMode == -1)
|
| | | if (historyInfo.OpenLockMode == -1 || historyInfo.OpenLockMode == 9000)
|
| | | {
|
| | | //其他消息
|
| | | btnMsg.Text = historyInfo.AlarmMsg;
|
| | |
| | | listSearchLockId.Clear();
|
| | | listSearchLockId.AddRange(selectLock);
|
| | | //初始化记录列表
|
| | | this.InitLogListInfo();
|
| | | this.InitLogListInfo(false);
|
| | | };
|
| | | }
|
| | |
|
| | |
| | | /// 获取历史记录
|
| | | /// </summary>
|
| | | /// <returns></returns>
|
| | | private async Task<List<HistoryInfo>> GetHistoryLogInfo()
|
| | | private async Task<List<HistoryInfo>> GetHistoryLogInfo(Dictionary<string, string> dicMemberName)
|
| | | {
|
| | | //获取访问云端接口的启动参数
|
| | | var pra = this.GetDbInterfacePra();
|
| | |
|
| | | //清空上一次的其他ID
|
| | | this.listOtherMsgId = new List<string>();
|
| | | this.listOtherUserId = new List<string>();
|
| | |
|
| | | //全部成员信息
|
| | | var dicMemberName = new Dictionary<string, string>();
|
| | | for (int i = 0; i < listMenberInfo.Count; i++)
|
| | | if (this.listHistoryInfo != null)
|
| | | {
|
| | | dicMemberName.Add(listMenberInfo[i].SubAccountDistributedMark, string.IsNullOrEmpty(listMenberInfo[i].UserName) == false ? listMenberInfo[i].UserName : listMenberInfo[i].Account);
|
| | | //不二次获取,主要针对的是筛选功能
|
| | | return this.ScreeningHistoryData(dicMemberName);
|
| | | }
|
| | | //获取访问云端接口的启动参数
|
| | | var pra = this.GetReadHistoryPra();
|
| | |
|
| | | //获取门锁的打开和关闭记录
|
| | | var listAllLog = await this.GetDoorOpenHistoryLog(pra, dicMemberName);
|
| | | 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>();
|
| | | //是否包含其他
|
| | | bool getOtherFlage = this.listSearchUserId.Contains("");
|
| | |
|
| | | foreach (var data in listAllLog)
|
| | | {
|
| | | //如果单独指定有该账号,可以显示
|
| | | if (this.listSearchUserId.Contains(data.CloudAccountId) == false)
|
| | | {
|
| | | //如果这个账号没有指定,并且指定显示其他的话,并且无法识别这个用户ID才显示
|
| | | if (getOtherFlage == true && dicMemberName.ContainsKey(data.CloudAccountId) == true)
|
| | | {
|
| | | continue;
|
| | | }
|
| | | }
|
| | | //按时间分组
|
| | | if (dicAllData.ContainsKey(data.UnlockTime) == false)
|
| | | {
|
| | |
| | |
|
| | | //执行排序,时间大的在前面
|
| | | listSortTime.Sort();
|
| | | var listSortLog = new List<HistoryInfo>();
|
| | | this.listHistoryInfo = new List<HistoryInfo>();
|
| | | for (int i = listSortTime.Count - 1; i >= 0; i--)
|
| | | {
|
| | | listSortLog.AddRange(dicAllData[listSortTime[i]]);
|
| | | this.listHistoryInfo.AddRange(dicAllData[listSortTime[i]]);
|
| | | }
|
| | |
|
| | | return listSortLog;
|
| | | //筛选历史记录
|
| | | return this.ScreeningHistoryData(dicMemberName);
|
| | | }
|
| | |
|
| | | /// <summary>
|
| | |
| | | /// </summary>
|
| | | /// <param name="i_pra"></param>
|
| | | /// <returns></returns>
|
| | | private async Task<List<HistoryInfo>> GetDoorOpenHistoryLog(GetHistoryDataPra i_pra, Dictionary<string, string> dicMemberName)
|
| | | private async Task<List<HistoryInfo>> GetDoorOpenHistoryLog(GetHistoryDataPra i_pra)
|
| | | {
|
| | | var listLog = new List<HistoryInfo>();
|
| | |
|
| | |
| | | return null;
|
| | | }
|
| | | var dataInfo = Newtonsoft.Json.JsonConvert.DeserializeObject<GetHistoryDataResult>(result);
|
| | | foreach (var data in dataInfo.PageData)
|
| | | {
|
| | | if (dicMemberName.ContainsKey(data.CloudAccountId) == false
|
| | | && this.listOtherUserId.Contains(data.CloudAccountId) == false)
|
| | | {
|
| | | //收集无法识别的用户ID
|
| | | this.listOtherUserId.Add(data.CloudAccountId);
|
| | | }
|
| | | listLog.Add(data);
|
| | | }
|
| | | listLog.AddRange(dataInfo.PageData);
|
| | |
|
| | | if (dataInfo.HasNextPage == false)
|
| | | {
|
| | |
| | | {
|
| | | var listLog = new List<HistoryInfo>();
|
| | |
|
| | | //是否包含其他
|
| | | bool getOtherFlage = this.listSearchUserId.Contains("") || this.listSearchUserId.Contains("-1");
|
| | | if (getOtherFlage == true)
|
| | | //去获取其他信息
|
| | | 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 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)
|
| | | {
|
| | | return null;
|
| | | //不是同一个门锁的记录
|
| | | continue;
|
| | | }
|
| | | var dataInfo2 = Newtonsoft.Json.JsonConvert.DeserializeObject<MessageCentetInfo>(result);
|
| | | string doorKey = this.DeviceDoor.DeviceAddr + "_" + this.DeviceDoor.DeviceEpoint;
|
| | | foreach (var myInfo in dataInfo2.PageData)
|
| | |
|
| | | 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)
|
| | | {
|
| | | //设备对象
|
| | | 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;
|
| | |
|
| | | listLog.Add(data);
|
| | | this.listOtherMsgId.Add(myInfo.Id);
|
| | | data.OpenLockMode = 9000;
|
| | | }
|
| | | listLog.Add(data);
|
| | | }
|
| | |
|
| | | return listLog;
|
| | | }
|
| | |
|
| | | #endregion
|
| | |
|
| | | #region ■ 筛选记录___________________________
|
| | |
|
| | | /// <summary>
|
| | | /// 筛选历史记录
|
| | | /// </summary>
|
| | | /// <returns></returns>
|
| | | private List<HistoryInfo> ScreeningHistoryData(Dictionary<string, string> dicMemberName)
|
| | | {
|
| | | //历史记录太麻烦了,存在不同的数据库表里,并且数据还不一样,只能这样一个个判断了
|
| | | var listScreeningData = new List<HistoryInfo>();
|
| | | //清除掉之前的记录
|
| | | this.listOtherUserId = new List<string>();
|
| | | this.listOtherMsgId = new List<string>();
|
| | |
|
| | | //是否选择全选用户
|
| | | bool selectAllUser = this.listSearchUserId.Contains("-1");
|
| | | //是否单选了其他
|
| | | bool selectOtherUser = this.listSearchUserId.Contains("-9999");
|
| | | //是否选择全选开锁方式
|
| | | bool selectAllLockMode = this.listSearchLockId.Contains(-1);
|
| | |
|
| | | //一个个去遍历
|
| | | foreach (var data in this.listHistoryInfo)
|
| | | {
|
| | | //检测该历史记录能否显示
|
| | | bool result = this.CheckHistoryDataCanShow(data, dicMemberName, selectAllUser, selectOtherUser, selectAllLockMode);
|
| | | if (result == true)
|
| | | {
|
| | | listScreeningData.Add(data);
|
| | | }
|
| | | }
|
| | |
|
| | | return listScreeningData;
|
| | | }
|
| | |
|
| | | /// <summary>
|
| | | /// 检测该历史记录能否显示
|
| | | /// </summary>
|
| | | /// <param name="info">检测对象</param>
|
| | | /// <param name="dicMemberName">成员信息</param>
|
| | | /// <param name="selectAllUser">是否选择全选用户</param>
|
| | | /// <param name="selectOtherUser">是否单选了其他</param>
|
| | | /// <param name="slectAllLockMode">是否选择全选开锁方式</param>
|
| | | private bool CheckHistoryDataCanShow(HistoryInfo info, Dictionary<string, string> dicMemberName,
|
| | | bool selectAllUser, bool selectOtherUser, bool slectAllLockMode)
|
| | | {
|
| | | //如果没有选择 全选用户
|
| | | if (selectAllUser == false)
|
| | | {
|
| | | //如果这个用户ID不包含在指定选择的成员列表里面
|
| | | if (this.listSearchUserId.Contains(info.CloudAccountId) == false)
|
| | | {
|
| | | if (dicMemberName.ContainsKey(info.CloudAccountId) == true)
|
| | | {
|
| | | //如果能够识别这个id的话,则表示它不属于其他类,并且也不再选择目标内
|
| | | return false;
|
| | | }
|
| | | //如果没有选择 其他的话,不显示
|
| | | if (selectOtherUser == false)
|
| | | {
|
| | | return false;
|
| | | }
|
| | | }
|
| | | }
|
| | | //如果是成员身份,并且用户ID不为空
|
| | | if (UserCenterResourse.UserInfo.AuthorityNo == 3 && info.CloudAccountId != string.Empty)
|
| | | {
|
| | | //成员不能看到 其他人的记录(成员的时候,这个变量里面只有他自己一个)
|
| | | if (dicMemberName.ContainsKey(info.CloudAccountId) == false)
|
| | | {
|
| | | return false;
|
| | | }
|
| | | }
|
| | | //如果没有选择 全选开锁方式
|
| | | if (slectAllLockMode == false)
|
| | | {
|
| | | //如果这个开锁方式不在选择的列表里面的话
|
| | | if (this.listSearchLockId.Contains(info.OpenLockMode) == false)
|
| | | {
|
| | | return false;
|
| | | }
|
| | | }
|
| | |
|
| | | //另一张表的数据主键
|
| | | if (info.OpenLockMode == -1 || info.OpenLockMode == 9000)
|
| | | {
|
| | | if (info.MsgKeyId != string.Empty)
|
| | | {
|
| | | //其他消息的主键,它存在另外的一张数据库表中
|
| | | this.listOtherMsgId.Add(info.MsgKeyId);
|
| | | }
|
| | | }
|
| | | if (info.CloudAccountId != string.Empty && dicMemberName.ContainsKey(info.CloudAccountId) == false
|
| | | && this.listOtherUserId.Contains(info.CloudAccountId) == false)
|
| | | {
|
| | | //无法识别的开锁记录的用户ID(因为那个密码有可能没有分配给成员)
|
| | | this.listOtherUserId.Add(info.CloudAccountId);
|
| | | }
|
| | |
|
| | | return true;
|
| | | }
|
| | |
|
| | | #endregion
|
| | |
| | | private async void ClearAllHistoryLog()
|
| | | {
|
| | | //获取访问云端接口的启动参数
|
| | | var pra = this.GetDbInterfacePra();
|
| | | if (listSearchUserId.Contains("") == true)
|
| | | {
|
| | | //如果指定有其他,则用户ID重新设置
|
| | | pra.CloudAccountIdArr = new List<string>();
|
| | | pra.CloudAccountIdArr.AddRange(listSearchUserId);
|
| | | pra.CloudAccountIdArr.Remove("");
|
| | | if (this.listOtherUserId.Count > 0)
|
| | | {
|
| | | pra.CloudAccountIdArr.AddRange(listOtherUserId);
|
| | | }
|
| | | else
|
| | | {
|
| | | //这一步很重要,不然有可能单独选择其他的时候
|
| | | //在没有数据的情况下,会清空掉全部的数据
|
| | | pra.CloudAccountIdArr.Add("other");
|
| | | }
|
| | | }
|
| | | var pra = this.GetDeleteDataPra();
|
| | |
|
| | | //打开进度条
|
| | | this.ShowProgressBar();
|
| | |
|
| | | var result = await UserCenterLogic.GetResultStatuByRequestHttps("DoorLock/ClearDoorLockHistory", true, pra);
|
| | | if (result == false)
|
| | | {
|
| | |
| | |
|
| | | //清空
|
| | | this.listOtherMsgId = new List<string>();
|
| | | this.listOtherUserId = new List<string>();
|
| | | this.listHistoryInfo = null;
|
| | |
|
| | | HdlThreadLogic.Current.RunMain(() =>
|
| | | {
|
| | | this.listView.frameTable.RemoveAll();
|
| | |
| | | /// 获取访问云端接口的启动参数
|
| | | /// </summary>
|
| | | /// <returns></returns>
|
| | | private GetHistoryDataPra GetDbInterfacePra()
|
| | | private GetHistoryDataPra GetReadHistoryPra()
|
| | | {
|
| | | 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);
|
| | |
|
| | | //全部读取
|
| | | var pra = new GetHistoryDataPra();
|
| | | pra.UnlockTimeBegin = dateFrom.ToUniversalTime().ToString();
|
| | | pra.UnlockTimeEnd = dateTo.ToUniversalTime().ToString();
|
| | | pra.LoginAccessToken = UserCenterLogic.GetConnectMainToken();
|
| | | pra.DoorLockId = this.DeviceDoor.DeviceAddr + "_" + this.DeviceDoor.DeviceEpoint;
|
| | |
|
| | | return pra;
|
| | | }
|
| | |
|
| | | /// <summary>
|
| | | /// 获取删除数据的云端接口的启动参数
|
| | | /// </summary>
|
| | | /// <returns></returns>
|
| | | private DeleteHistoryDataPra GetDeleteDataPra()
|
| | | {
|
| | | 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") == true || listSearchUserId.Contains("") == true)
|
| | | //指定用户
|
| | | if (listSearchUserId.Contains("-1") == false)
|
| | | {
|
| | | //全选即为Null
|
| | | }
|
| | | else
|
| | | {
|
| | | //指定用户
|
| | | listUser = new List<string>();
|
| | | listUser.AddRange(listSearchUserId);
|
| | | //移除其他,因为云端固定会给
|
| | | listUser.Remove("");
|
| | | //如果指定有其他
|
| | | if (listSearchUserId.Contains("-9999") == true)
|
| | | {
|
| | | listUser.AddRange(this.listOtherUserId);
|
| | | }
|
| | | }
|
| | |
|
| | | //全选则为null
|
| | |
| | | listLock.AddRange(listSearchLockId);
|
| | | }
|
| | |
|
| | | var pra = new GetHistoryDataPra();
|
| | | 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.CloudAccountIdArr = listUser;
|
| | | pra.OpenLockModeArr = listLock;
|
| | | pra.CloudAccountIds = listUser;
|
| | | pra.OpenLockModes = listLock;
|
| | |
|
| | | return pra;
|
| | | }
|
| | |
| | | }
|
| | |
|
| | | /// <summary>
|
| | | /// 删除历史记录数据
|
| | | /// </summary>
|
| | | private class DeleteHistoryDataPra : IfacePraCommon
|
| | | {
|
| | | /// <summary>
|
| | | /// RequestVersion
|
| | | /// </summary>
|
| | | public string RequestVersion = Common.CommonPage.RequestVersion;
|
| | | /// <summary>
|
| | | /// Token
|
| | | /// </summary>
|
| | | public string LoginAccessToken = string.Empty;
|
| | | /// <summary>
|
| | | /// 住宅ID
|
| | | /// </summary>
|
| | | public string HomeId = Common.Config.Instance.Home.Id;
|
| | | /// <summary>
|
| | | /// 门锁的Mac地址
|
| | | /// </summary>
|
| | | public string DoorLockId = string.Empty;
|
| | | /// <summary>
|
| | | /// Config.Instance.Guid 或者 MemberInfoRes.SubAccountDistributedMark
|
| | | /// </summary>
|
| | | public List<string> CloudAccountIds = null;
|
| | | /// <summary>
|
| | | /// 开锁方式(0:密码、15:指纹、3:IC卡)
|
| | | /// </summary>
|
| | | public List<int> OpenLockModes = null;
|
| | | /// <summary>
|
| | | /// 搜索开锁开始时间
|
| | | /// </summary>
|
| | | public string UnlockTimeBegin;
|
| | | /// <summary>
|
| | | /// 搜索开锁结束时间
|
| | | /// </summary>
|
| | | public string UnlockTimeEnd;
|
| | | }
|
| | |
|
| | | /// <summary>
|
| | | /// 历史记录的结果
|
| | | /// </summary>
|
| | | private class HistoryInfo
|
| | | {
|
| | | /// <summary>
|
| | | /// 开锁方式 0:密码 15:指纹 3:IC卡
|
| | | /// 开锁方式 0:密码 15:指纹 3:IC卡 9000:常开模式(自定义的)
|
| | | /// </summary>
|
| | | public int OpenLockMode = -1;
|
| | | /// <summary>
|
| | |
| | | /// 当开锁方式为-1时使用,设备端点
|
| | | /// </summary>
|
| | | public int DeviceEpoint = 0;
|
| | | /// <summary>
|
| | | /// 当开锁方式为-1时使用,消息的数据库主键 |
| | | /// </summary>
|
| | | public string MsgKeyId = string.Empty;
|
| | | }
|
| | |
|
| | | #endregion
|