public async Task <PagedDto <UserDto> > GetPagesAsync(UserPagingDto pagingDto) { if (pagingDto.CreateStartTime != null && pagingDto.CreateEndTime == null) { throw new KnownException("创建时间参数有误", ServiceResultCode.ParameterError); } pagingDto.Sort = pagingDto.Sort.IsNullOrEmpty() ? "id ASC" : pagingDto.Sort.Replace("-", " "); bool?isEnable = pagingDto.IsEnable switch { 1 => true, 0 => false, _ => null }; var users = await _userRepo .Select .IncludeMany(u => u.Roles) .WhereIf(!string.IsNullOrWhiteSpace(pagingDto.Username), u => u.Username.Contains(pagingDto.Username)) .WhereIf(!string.IsNullOrWhiteSpace(pagingDto.Nickname), u => u.Nickname.Contains(pagingDto.Nickname)) .WhereIf(isEnable != null, u => u.IsEnable == isEnable) .WhereIf(pagingDto.CreateStartTime != null, a => a.CreateTime >= pagingDto.CreateStartTime && a.CreateTime <= pagingDto.CreateEndTime) .WhereIf(pagingDto.RoleId > 0, u => u.Roles.AsSelect().Any(r => r.Id == pagingDto.RoleId)) .OrderBy(pagingDto.Sort) .ToPageListAsync(pagingDto, out long totalCount); var userDtos = users.Select(u => { var dto = Mapper.Map <UserDto>(u); dto.AvatarUrl = _fileRepo.GetFileUrl(dto.AvatarUrl); return(dto); }).ToList(); return(new PagedDto <UserDto>(userDtos, totalCount)); }
public async Task <ServiceResult <PagedDto <UserDto> > > GetPagesAsync([FromQuery] UserPagingDto pagingDto) { return(ServiceResult <PagedDto <UserDto> > .Successed(await _userService.GetPagesAsync(pagingDto))); }