public async Task <PageViewModel <AdminLogViewModel> > QueryAdminLogListAsync(QueryAdminLogList query) { var sugarQueryable = _adminLogRepository.QueryAsQueryable(a => true); sugarQueryable.WhereIF(query.LinkId > 0, a => a.LinkId == query.LinkId); sugarQueryable.WhereIF(query.AppId > 0, a => a.AppId == query.AppId); sugarQueryable.WhereIF(query.OperationId > 0, a => a.OperationId == query.OperationId); //如果不使用时间范围,默认为前三个月 if (query.BeginUnixTime == 0 && query.EndUnixTime == 0) { var dateTime = DateTime.Now; var nowUnixTime = dateTime.ToUnixTime(true); var beginUnixTime = dateTime.AddMonths(-3).ToUnixTime(true); sugarQueryable.WhereIF(true, a => beginUnixTime <= a.CreateUnixTime && a.CreateUnixTime <= nowUnixTime); } else { sugarQueryable.WhereIF(query.BeginUnixTime > 0, a => query.BeginUnixTime <= a.CreateUnixTime); sugarQueryable.WhereIF(query.EndUnixTime > 0, a => a.CreateUnixTime <= query.EndUnixTime); } var pageModel = await _adminLogRepository.QueryPageModel(sugarQueryable); var adminLogViewModels = pageModel.Data.MapTo <List <AdminLogViewModel> >(); return(new PageViewModel <AdminLogViewModel>() { Data = adminLogViewModels, DataCount = pageModel.DataCount, Page = pageModel.Page, PageCount = pageModel.PageCount, PageSize = pageModel.PageSize }); }