Esempio n. 1
0
        /// <summary>
        /// 获取数据
        /// </summary>
        /// <param name="dto"></param>
        /// <returns></returns>
        public async Task <PageOutputDto <UserListOutputDto> > PageAsync(SearchUserInputDto dto)
        {
            var data = await _userRepository
                       .WhereIf(dto.Status.HasValue, a => a.Status == dto.Status)
                       .WhereIf(dto.Search.NotNull(), a => a.UserName.Contains(dto.Search) || a.NickName.Contains(dto.Search))
                       .ToPageResultAsync <UserEntity, UserListOutputDto>(dto);

            if (data.Data.Count > 0)
            {
                var ids      = data.Data.Select(o => o.Id);
                var roleData = await _userRoleRepository.Select
                               .From <RoleEntity>((s, b) => s.InnerJoin(a => a.RoleId == b.Id))
                               .Where((a, b) => ids.Contains(a.UserId))
                               .ToListAsync((a, b) => new RoleOutputDto()
                {
                    RoleId = a.RoleId,
                    Name   = b.Name,
                    UserId = a.UserId
                });

                foreach (var item in data.Data)
                {
                    var roles = roleData.Where(o => o.UserId == item.Id).ToList();
                    item.RoleIds = roles.Select(o => new RoleRequestDto()
                    {
                        key   = o.RoleId,
                        label = o.Name,
                        value = o.RoleId
                    }).ToArray();
                    item.RoleNames = roles.Select(o => o.Name).ToStringJoin(",");
                }
            }

            return(data);
        }
Esempio n. 2
0
 public async Task <PageOutputDto <UserListOutputDto> > GetUserPage([FromQuery] SearchUserInputDto dto)
 {
     return(await _userService.PageAsync(dto));
 }