/// <summary> /// 根据条件获取所有数据 /// </summary> /// <param name="input">查询条件的类</param> private async Task <List <OperateLogEntity> > GetAllListByCondition(QueryOperateLogInputDto input) { try { // 打开Translate.xml文件获取翻译结果 XElement xElement = XElement.Load(ConfigHelper.TranslateFilePath); XElement OperateLog = xElement.Descendants("Class").FirstOrDefault(s => s.Attribute("name").Value.Equals("OperateLog")); List <TranslateOutput> listTranslate = new List <TranslateOutput>(); OperateLog.Descendants("word").ToList().ForEach(s => { listTranslate.Add(GetTranslateOutput(s)); }); bool bIsEnglish = ConfigHelper.IsEnglish == "1" ? true : false; // 系统功能 string SystemFunc = null; switch (input.SystemFunc) { case "1": SystemFunc = GetTranslate(1001, bIsEnglish, listTranslate); break; case "2": SystemFunc = GetTranslate(1002, bIsEnglish, listTranslate); break; case "3": SystemFunc = GetTranslate(1003, bIsEnglish, listTranslate); break; default: break; } // 操作类型 string OperateType = null; switch (input.OperateType) { case "1": OperateType = GetTranslate(1101, bIsEnglish, listTranslate); break; case "2": OperateType = GetTranslate(1102, bIsEnglish, listTranslate); break; case "3": OperateType = GetTranslate(1103, bIsEnglish, listTranslate); break; case "4": OperateType = GetTranslate(1104, bIsEnglish, listTranslate); break; case "5": OperateType = GetTranslate(1105, bIsEnglish, listTranslate); break; case "6": OperateType = GetTranslate(1106, bIsEnglish, listTranslate); break; default: break; } // 操作时间 DateTime?StartTime = string.IsNullOrEmpty(input.StartTime) ? null : (DateTime?)Convert.ToDateTime(input.StartTime + " 00:00:00"); DateTime?EndTime = string.IsNullOrEmpty(input.EndTime) ? null : (DateTime?)Convert.ToDateTime(input.EndTime + " 23:59:59"); // 查询用户 List <string> UserCode = new List <string>(); if (string.IsNullOrEmpty(input.QueryId)) { List <SystemUserEntity> queryUser = GetAllUserByUserAreaCode(input.OperateId, null).Result; if (queryUser == null) { return(null); } if (queryUser.Count() == 0) { return(null); } foreach (SystemUserEntity element in queryUser) { UserCode.Add(element.UserCode); } } else { JavaScriptSerializer json = new JavaScriptSerializer(); UserCode = json.Deserialize <List <string> >(input.QueryId); } //List<OperateLogEntity> query = await _IOperateLogRepository.GetAllListAsync(s => (UserCode.Contains(s.UserCode) // && (string.IsNullOrEmpty(SystemFunc) ? true : s.SystemFunc.Equals(SystemFunc)) // && (string.IsNullOrEmpty(OperateType) ? true : s.OperateType.Equals(OperateType)) // && (string.IsNullOrEmpty(input.StartTime) ? true : s.OperateTime > StartTime) // && (string.IsNullOrEmpty(input.EndTime) ? true : s.OperateTime < EndTime))); var expression = LinqExtensions.True <OperateLogEntity>(); expression = expression.And(s => UserCode.Contains(s.UserCode)); if (!string.IsNullOrEmpty(SystemFunc)) { expression = expression.And(s => s.SystemFunc.Equals(SystemFunc)); } if (!string.IsNullOrEmpty(OperateType)) { expression = expression.And(s => s.OperateType.Equals(OperateType)); } if (!string.IsNullOrEmpty(input.StartTime)) { expression = expression.And(s => s.OperateTime > StartTime); } if (!string.IsNullOrEmpty(input.EndTime)) { expression = expression.And(s => s.OperateTime < EndTime); } List <OperateLogEntity> query = _IOperateLogRepository.GetAllList(expression); return(query.OrderByDescending(s => s.OperateTime).ToList()); } catch (Exception ex) { throw new Exception(ex.Message); } }
/// <summary> /// 根据条件获取分页数据 /// </summary> /// <param name="input">查询条件的类</param> public async Task <PagedResultOutput <OperateLogOutputDto> > GetPageListByCondition(QueryOperateLogInputDto input, int pageSize, int pageIndex) { try { List <OperateLogEntity> query = GetAllListByCondition(input).Result; int count = 0; List <OperateLogEntity> result = null; if (query != null) { count = query.Count(); result = query.Skip((pageIndex - 1) * pageSize).Take(pageSize).ToList(); } IReadOnlyList <OperateLogOutputDto> ir; if (result != null) { ir = result.MapTo <List <OperateLogOutputDto> >(); } else { ir = new List <OperateLogOutputDto>(); } PagedResultOutput <OperateLogOutputDto> outputList = new PagedResultOutput <OperateLogOutputDto>(count, ir); return(outputList); } catch (Exception ex) { throw new Exception(ex.Message); } }