/// <summary> /// 获取设备分页操作日志 /// </summary> /// <param name="DeviceSn">设备序列号</param> /// <param name="req">请求参数</param> /// <returns>返回分页数据</returns> public async Task <BaseResponse> GetDeviceLogsAsync(string DeviceSn, DeviceLogPageRequest req) { var data = _dlr.Find(a => a.DeviceSn == DeviceSn); if (req.BeginTime == null) { req.BeginTime = DateTime.Now.AddMonths(-1); } if (req.EndTime == null) { req.EndTime = DateTime.Now; } if (req.BeginTime >= req.EndTime) { return(new BaseResponse { Success = false, Message = "开始时间不能大于或者等于结束时间" }); } data = data.Where(a => a.CreateTime > req.BeginTime && a.CreateTime < req.EndTime); int count = data.Count(); if (!string.IsNullOrWhiteSpace(req.Search)) { data = data.Where(a => a.KeyName == req.Search || a.Key == req.Search); } string OrderExpression = ""; if (string.IsNullOrEmpty(req.OrderBy)) { OrderExpression = "Id Asc"; } else { OrderExpression = string.Format("{0} {1}", req.OrderBy, req.OrderType); } var ret = await data.OrderBy(OrderExpression).Skip((req.PageNo - 1) * req.PageSize).Take(req.PageSize).ToListAsync(); var dtos = _mapper.Map <List <DeviceLogDto> >(ret); var br = new BasePageResponse <List <DeviceLogDto> >(); br.Success = true; br.Message = "获取数据成功"; br.PageSize = req.PageSize; br.CurrentPage = req.PageNo; br.Count = count; br.TotalPage = (int)Math.Ceiling((decimal)count / req.PageSize); br.Data = dtos; return(br); }
public async Task <ActionResult <BaseResponse> > GetDeviceLogAsync(string GroupId, string DeviceSn, [FromQuery] DeviceLogPageRequest req) { var rm = await _dls.GetDeviceLogsAsync(DeviceSn, req); return(rm); }