| | |
| | | /// </summary>
|
| | | private async void InitLogListInfo()
|
| | | {
|
| | | this.listView.RemoveAll();
|
| | | listView.Height = bodyFrameLayout.Height - Application.GetRealHeight(115 - 3);
|
| | |
|
| | | //如果From>To的时候,不鸟它
|
| | | if (Convert.ToInt32(dateFromControl.dateValue) > Convert.ToInt32(dateToControl.dateValue))
|
| | | {
|
| | | //开始时间大于结束时间
|
| | | this.ShowMassage(ShowMsgType.Tip, Language.StringByID(R.MyInternationalizationString.uFromTimeIsOverToTime));
|
| | | return;
|
| | | }
|
| | | //打开进度条
|
| | |
| | | //关闭进度条
|
| | | this.CloseProgressBar();
|
| | |
|
| | | this.listView.RemoveAll();
|
| | | listView.Height = bodyFrameLayout.Height - Application.GetRealHeight(115 - 3);
|
| | |
|
| | | 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);
|
| | | }
|
| | | for (int i = 0; i < historyLog.Count; i++)
|
| | | {
|
| | | //添加记录行
|
| | | this.AddLogInfoRow(historyLog[i], i != historyLog.Count - 1);
|
| | | this.AddLogInfoRow(historyLog[i], dic, i != historyLog.Count - 1);
|
| | | }
|
| | |
|
| | | if (listView.ChildrenCount == 0)
|
| | |
| | | //只初始化一次
|
| | | return true;
|
| | | }
|
| | | var pra = new MemberListInfoPra();
|
| | | string result = await UserCenterLogic.GetResponseDataByRequestHttps("ZigbeeUsers/GetSubAccountByDistributedMark", false, pra);
|
| | | if (result == null)
|
| | | {
|
| | | return false;
|
| | | }
|
| | | listMenberInfo = new List<MemberInfoRes>();
|
| | | //把自己也加进去
|
| | | var myInfo = new MemberInfoRes()
|
| | |
| | | SubAccountDistributedMark = Common.Config.Instance.Guid
|
| | | };
|
| | | listMenberInfo.Add(myInfo);
|
| | | if (UserCenterResourse.UserInfo.AuthorityNo == 3)
|
| | | {
|
| | | //成员只能看自己的
|
| | | return true;
|
| | | }
|
| | |
|
| | | var pra = new MemberListInfoPra();
|
| | | string result = await UserCenterLogic.GetResponseDataByRequestHttps("ZigbeeUsers/GetSubAccountByDistributedMark", false, pra);
|
| | | if (result == null)
|
| | | {
|
| | | return false;
|
| | | }
|
| | | List<MemberInfoRes> listInfo = Newtonsoft.Json.JsonConvert.DeserializeObject<List<MemberInfoRes>>(result);
|
| | | var checkList = new List<string>();
|
| | | foreach (MemberInfoRes infoRes in listInfo)
|
| | |
| | | return true;
|
| | | }
|
| | |
|
| | | /// <summary>
|
| | | /// 获取历史记录
|
| | | /// </summary>
|
| | | /// <returns></returns>
|
| | | private async Task<List<HistoryInfo>> GetHistoryLogInf()
|
| | | {
|
| | | //获取访问云端接口的启动参数
|
| | | var pra = this.GetDbInterfacePra();
|
| | |
|
| | | int nowPage = 0;
|
| | | var listLog = new List<HistoryInfo>();
|
| | | while (true)
|
| | | {
|
| | | //访问云端
|
| | | var result = await UserCenterLogic.GetResponseDataByRequestHttps("App/GetDoorLockHistoryPager", false, pra);
|
| | | if (result == null)
|
| | | {
|
| | | return null;
|
| | | }
|
| | | var dataInfo = Newtonsoft.Json.JsonConvert.DeserializeObject<GetHistoryDataResult>(result);
|
| | | if (dataInfo.HasNextPage == false)
|
| | | {
|
| | | break;
|
| | | }
|
| | | //获取下一页
|
| | | nowPage++;
|
| | | pra.PageSetting.Page = nowPage;
|
| | | }
|
| | | return listLog;
|
| | | }
|
| | |
|
| | | #endregion
|
| | |
|
| | | #region ■ 添加记录行_________________________
|
| | |
| | | /// 添加记录行
|
| | | /// </summary>
|
| | | /// <param name="historyInfo">历史记录</param>
|
| | | /// <param name="dicName">名字</param>
|
| | | /// <param name="addLine">添加底线</param>
|
| | | private void AddLogInfoRow(HistoryInfo historyInfo, bool addLine = true)
|
| | | private void AddLogInfoRow(HistoryInfo historyInfo, Dictionary<string, string> dicName, bool addLine = true)
|
| | | {
|
| | | var frameTable = new FrameRowControl(listView.rowSpace / 2);
|
| | | frameTable.UseClickStatu = false;
|
| | | this.listView.AddChidren(frameTable);
|
| | | //图标
|
| | | var btnIcon = frameTable.AddLeftIcon();
|
| | | btnIcon.UnSelectedImagePath = "Item/PswSettionSelected.png";
|
| | | if (historyInfo.UnlockIsSuccess == true)
|
| | | {
|
| | | btnIcon.UnSelectedImagePath = "Item/UnLockSuccess.png";
|
| | | }
|
| | | else
|
| | | {
|
| | | btnIcon.UnSelectedImagePath = "Item/UnLockSuccess.png";
|
| | | }
|
| | |
|
| | | //信息
|
| | | var btnMsg = frameTable.AddLeftCaption("信息测试", 600, 60);
|
| | | var btnMsg = frameTable.AddLeftCaption("", 600, 60);
|
| | | btnMsg.TextSize = 15;
|
| | | //这个坐标有点特殊
|
| | | btnMsg.Y = Application.GetRealHeight(12) + frameTable.chidrenYaxis;
|
| | | frameTable.AddChidren(btnMsg, ChidrenBindMode.NotBind);
|
| | | if (historyInfo.UnlockIsSuccess == true)
|
| | | {
|
| | | if (historyInfo.OpenLockMode == 0)
|
| | | {
|
| | | //密码开锁成功
|
| | | btnMsg.TextID = R.MyInternationalizationString.uUnlockByPasswordSuccess;
|
| | | }
|
| | | else if (historyInfo.OpenLockMode == 3)
|
| | | {
|
| | | //IC卡开锁成功
|
| | | btnMsg.TextID = R.MyInternationalizationString.uUnlockByICcardSuccess;
|
| | | }
|
| | | else if (historyInfo.OpenLockMode == 15)
|
| | | {
|
| | | //指纹开锁成功
|
| | | btnMsg.TextID = R.MyInternationalizationString.uUnlockByFingerPrintSuccess;
|
| | | }
|
| | | }
|
| | | else
|
| | | {
|
| | | if (historyInfo.OpenLockMode == 0)
|
| | | {
|
| | | //密码开锁失败
|
| | | btnMsg.TextID = R.MyInternationalizationString.uUnlockByPasswordFail;
|
| | | }
|
| | | else if (historyInfo.OpenLockMode == 3)
|
| | | {
|
| | | //IC卡开锁失败
|
| | | btnMsg.TextID = R.MyInternationalizationString.uUnlockByICcardFail;
|
| | | }
|
| | | else if (historyInfo.OpenLockMode == 15)
|
| | | {
|
| | | //指纹开锁失败
|
| | | btnMsg.TextID = R.MyInternationalizationString.uUnlockByFingerPrintFail;
|
| | | }
|
| | | }
|
| | |
|
| | | //人物
|
| | | var btnpersion = frameTable.AddLeftCaption("人物测试", 600, 50, true);
|
| | | string perName = dicName.ContainsKey(historyInfo.CloudAccountId) == true ? dicName[historyInfo.CloudAccountId] : Language.StringByID(R.MyInternationalizationString.uOther);
|
| | | var btnpersion = frameTable.AddLeftCaption(perName, 600, 50, true);
|
| | | //这个坐标有点特殊
|
| | | btnpersion.Y = Application.GetRealHeight(72) + frameTable.chidrenYaxis;
|
| | | btnpersion.TextSize = 12;
|
| | |
| | | frameTable.AddChidren(btnpersion, ChidrenBindMode.NotBind);
|
| | |
|
| | | //时间
|
| | | frameTable.AddMostRightView("13:00:00", 200);
|
| | | frameTable.AddMostRightView(historyInfo.UnlockTime, 400);
|
| | | if (addLine == true)
|
| | | {
|
| | | //底线
|
| | |
| | |
|
| | | #endregion
|
| | |
|
| | | #region ■ 获取记录___________________________
|
| | |
|
| | | /// <summary>
|
| | | /// 获取历史记录
|
| | | /// </summary>
|
| | | /// <returns></returns>
|
| | | private async Task<List<HistoryInfo>> GetHistoryLogInf()
|
| | | {
|
| | | //获取访问云端接口的启动参数
|
| | | var pra = this.GetDbInterfacePra();
|
| | |
|
| | | int nowPage = 0;
|
| | | var listLog = new List<HistoryInfo>();
|
| | | while (true)
|
| | | {
|
| | | //访问云端
|
| | | var result = await UserCenterLogic.GetResponseDataByRequestHttps("DoorLock/GetDoorLockHistoryPager", true, pra);
|
| | | if (result == null)
|
| | | {
|
| | | return null;
|
| | | }
|
| | | var dataInfo = Newtonsoft.Json.JsonConvert.DeserializeObject<GetHistoryDataResult>(result);
|
| | | if (dataInfo.HasNextPage == false)
|
| | | {
|
| | | break;
|
| | | }
|
| | | //获取下一页
|
| | | nowPage++;
|
| | | pra.PageSetting.Page = nowPage;
|
| | | }
|
| | |
|
| | | //排序一下
|
| | | var dic = new Dictionary<string, List<HistoryInfo>>();
|
| | | var listSort = new List<string>();
|
| | | //是否包含其他
|
| | | bool flage = this.listSearchUserId.Contains("") || this.listSearchUserId.Contains("-1");
|
| | | foreach (var data in listLog)
|
| | | {
|
| | | if (flage == false && string.IsNullOrEmpty(data.CloudAccountId) == true)
|
| | | {
|
| | | //没有指定显示其他
|
| | | continue;
|
| | | }
|
| | | if (dic.ContainsKey(data.UnlockTime) == false)
|
| | | {
|
| | | dic[data.UnlockTime] = new List<HistoryInfo>();
|
| | | listSort.Add(data.UnlockTime);
|
| | | }
|
| | | dic[data.UnlockTime].Add(data);
|
| | | }
|
| | |
|
| | | //执行排序,时间大的在前面
|
| | | listSort.Sort();
|
| | | var listSortLog = new List<HistoryInfo>();
|
| | | for (int i = listSort.Count - 1; i >= 0; i--)
|
| | | {
|
| | | listSortLog.AddRange(dic[listSort[i]]);
|
| | | }
|
| | |
|
| | | return listSortLog;
|
| | | }
|
| | |
|
| | | #endregion
|
| | |
|
| | | #region ■ 清空记录___________________________
|
| | |
|
| | | /// <summary>
|
| | |
| | | var pra = this.GetDbInterfacePra();
|
| | | //打开进度条
|
| | | this.ShowProgressBar();
|
| | | var result = await UserCenterLogic.GetResultStatuByRequestHttps("App/ClearDoorLockHistory", false, pra);
|
| | | var result = await UserCenterLogic.GetResultStatuByRequestHttps("DoorLock/ClearDoorLockHistory", true, pra);
|
| | | //关闭进度条
|
| | | this.CloseProgressBar();
|
| | | if (result == false)
|
| | |
| | | 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 listUser = new List<string>();
|
| | | if (listSearchUserId.Contains("-1") == true)
|
| | | {
|
| | | //所有用户
|
| | | foreach (MemberInfoRes infoRes in listMenberInfo)
|
| | | {
|
| | | listUser.Add(infoRes.DistributedMark);
|
| | | }
|
| | | }
|
| | | else
|
| | | //全选则为null
|
| | | List<string> listUser = null;
|
| | | if (listSearchUserId.Contains("-1") == false)
|
| | | {
|
| | | listUser.AddRange(listSearchUserId);
|
| | | //移除其他,因为云端固定会给
|
| | | listUser.Remove("");
|
| | | }
|
| | |
|
| | | var listLock = new List<int>();
|
| | | if (listSearchLockId.Contains(-1) == true)
|
| | | {
|
| | | //所有开锁方式
|
| | | listLock = new List<int>() { 0, 15, 3 };
|
| | | }
|
| | | else
|
| | | //全选则为null
|
| | | List<int> listLock = null;
|
| | | if (listSearchLockId.Contains(-1) == false)
|
| | | {
|
| | | listLock.AddRange(listSearchLockId);
|
| | | }
|
| | |
|
| | | var pra = new GetHistoryDataPra();
|
| | | pra.LoginAccessToken = UserCenterLogic.GetConnectMainToken();
|
| | | pra.DoorLockId = this.DeviceMac;
|
| | | pra.CloudAccountId = listUser[0];
|
| | | pra.OpenLockMode = listLock[0];
|
| | | pra.CloudAccountIdArr = listUser;
|
| | | pra.OpenLockModeArr = listLock;
|
| | | pra.UnlockTimeBegin = dateFrom;
|
| | | pra.UnlockTimeEnd = dateTo;
|
| | | return pra;
|
| | |
| | | /// <summary> |
| | | /// 获取历史记录数据 |
| | | /// </summary> |
| | | private class GetHistoryDataPra
|
| | | private class GetHistoryDataPra : IfacePraCommon
|
| | | {
|
| | | /// <summary> |
| | | /// RequestVersion |
| | |
| | | /// <summary> |
| | | /// Token |
| | | /// </summary> |
| | | public string LoginAccessToken = Shared.Common.Config.Instance.Token;
|
| | | public string LoginAccessToken = string.Empty;
|
| | | /// <summary> |
| | | /// 住宅ID |
| | | /// </summary> |
| | |
| | | /// <summary>
|
| | | /// Config.Instance.Guid 或者 MemberInfoRes.SubAccountDistributedMark
|
| | | /// </summary>
|
| | | public string CloudAccountId = string.Empty;
|
| | | public List<string> CloudAccountIdArr = new List<string>();
|
| | | /// <summary>
|
| | | /// 开锁方式(0:密码、15:指纹、3:IC卡)
|
| | | /// </summary>
|
| | | public int OpenLockMode = -1;
|
| | | public List<int> OpenLockModeArr = null;
|
| | | /// <summary>
|
| | | /// 开锁是否成功
|
| | | /// </summary>
|
| | |
| | | private class HistoryInfo
|
| | | {
|
| | | /// <summary>
|
| | | /// 开锁方式
|
| | | /// 开锁方式 0:密码 15:指纹 3:IC卡
|
| | | /// </summary>
|
| | | public int OpenLockMode = -1;
|
| | | /// <summary>
|
| | |
| | | /// 开锁是否成功
|
| | | /// </summary>
|
| | | public bool UnlockIsSuccess = false;
|
| | | /// <summary>
|
| | | /// 账号的ID
|
| | | /// </summary>
|
| | | public string CloudAccountId = string.Empty;
|
| | | }
|
| | |
|
| | | #endregion
|