Example #1
0
        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));
        }
Example #2
0
 public async Task <ServiceResult <PagedDto <UserDto> > > GetPagesAsync([FromQuery] UserPagingDto pagingDto)
 {
     return(ServiceResult <PagedDto <UserDto> > .Successed(await _userService.GetPagesAsync(pagingDto)));
 }