public IActionResult GetDetails([FromQuery] OperateLogDetailQueryModel queryModel) { var result = _operateLogService.GetPagingOperateDetail(queryModel); return(Ok(result)); }
/// <summary> /// 获取操作日志内容 /// </summary> public PagingResultModel <OperateLogDetailResultModel> GetPagingOperateDetail(OperateLogDetailQueryModel queryModel) { // 查询 var query = from detail in _logDetailRepository.Get(false) join setting in _logSettingRepository.Get(false) on detail.SettingId equals setting.Id select new OperateLogDetailResultModel { Id = detail.Id, OperatorAccount = detail.OperatorAccount, OperatorName = detail.OperatorName, OperateAt = detail.OperateAt, ResultCode = detail.ResultCode, Uri = detail.Uri, UpdateField = detail.UpdateField, OldValue = detail.OldValue, NewValue = detail.NewValue, Content = detail.Content, ModuleName = setting.ModuleName, SubModuleName = setting.SubModuleName, Function = setting.Function, Method = setting.Method, SaveTime = setting.SaveTime }; query = query .AndIfHaveValue(queryModel.Module, s => s.ModuleName.Contains(queryModel.Module)) .AndIfHaveValue(queryModel.Submodule, s => s.SubModuleName.Contains(queryModel.Submodule)) .AndIfHaveValue(queryModel.Operator, s => s.OperatorName.Contains(queryModel.Operator)) .AndIfHaveValue(queryModel.StartAt, s => s.OperateAt > queryModel.StartAt) .AndIfHaveValue(queryModel.EndAt, s => s.OperateAt < queryModel.EndAt); // 排序 var sortFieldDic = new Dictionary <string, Expression <Func <OperateLogDetailResultModel, object> > >(); sortFieldDic["module"] = t => t.ModuleName; sortFieldDic["subModule"] = t => t.SubModuleName; sortFieldDic["operatorName"] = t => t.OperatorAccount; sortFieldDic["operateAt"] = t => t.OperateAt; sortFieldDic["id"] = t => t.Id; queryModel.Sort = JoinString(queryModel.Sort, "id"); queryModel.Order = JoinString(queryModel.Order, "ascend"); query = GetOrderQuery(query, queryModel.Sort, queryModel.Order, sortFieldDic); // 分页 var skip = queryModel.Size * (queryModel.Page - 1); var result = query.Skip(skip).Take(queryModel.Size).ToList(); return(new PagingResultModel <OperateLogDetailResultModel> { Count = query.Count(), Data = result }); }