| | |
| | | this.listView.AddChidrenFrame2(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)
|
| | | {
|
| | |
| | | {
|
| | | 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
|
| | | {
|
| | | //上面是App手动推送,这里是网关或者门锁自己推送
|
| | | btnMsg.Text = historyInfo.AlarmMsg;
|
| | | }
|
| | | }
|
| | | //开锁成功
|
| | | else if (historyInfo.UnlockIsSuccess == true)
|
| | | {
|
| | | //图片
|
| | | btnIcon.UnSelectedImagePath = "Item/UnLockSuccess.png";
|
| | | //消息
|
| | | if (historyInfo.OpenLockMode == 0)
|
| | | {
|
| | | //密码开锁成功
|
| | |
| | | btnMsg.TextID = R.MyInternationalizationString.uUnlockByFingerPrintSuccess;
|
| | | }
|
| | | }
|
| | | //开锁失败
|
| | | else
|
| | | {
|
| | | //图片
|
| | | btnIcon.UnSelectedImagePath = "Item/UnLockFail.png";
|
| | | //消息
|
| | | if (historyInfo.OpenLockMode == 0)
|
| | | {
|
| | | //密码开锁失败
|
| | |
| | | //指纹开锁失败
|
| | | 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();
|
| | | }
|
| | | }
|
| | |
|
| | |
| | | //初始化记录列表
|
| | | this.InitLogListInfo(false);
|
| | | };
|
| | | }
|
| | |
|
| | | #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
|
| | |
| | | }
|
| | |
|
| | | 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
|
| | |
| | | /// </summary>
|
| | | public string CloudAccountId = string.Empty;
|
| | | /// <summary>
|
| | | /// 其他开锁方式(OpenLockMode=9000时有效) 9001:常开打开 9002:常开取消 9003:常开持续 |
| | | /// </summary>
|
| | | public int OtherOpenLockMode = -1;
|
| | | /// <summary>
|
| | | /// 常开持续时间(1~72小时 OtherOpenLockMode=9003的时候有效)
|
| | | /// </summary>
|
| | | public string NormallyOpenContinuedTime = string.Empty;
|
| | | /// <summary>
|
| | | /// 当开锁方式为-1时使用,它属于其他类
|
| | | /// </summary>
|
| | | public string AlarmMsg = string.Empty;
|