feat(user): 添加按部门获取用户列表功能

This commit is contained in:
wcg
2026-01-04 10:31:46 +08:00
parent 225d8d4726
commit fe7e2eb660
2 changed files with 36 additions and 0 deletions

View File

@@ -236,5 +236,35 @@ namespace Yi.Framework.Rbac.Application.Services.System
{
return base.PostImportExcelAsync(input);
}
/// <summary>
/// 获取指定部门及其所有子部门下的用户列表
/// </summary>
/// <param name="deptId">部门ID</param>
/// <returns>用户列表</returns>
[HttpGet]
[Route("user/dept/{deptId}")]
[Permission("system:user:list")]
public async Task<List<UserGetListOutputDto>> GetUsersByDeptAsync(Guid deptId)
{
// 获取当前部门及其所有子部门的ID列表
var deptIds = await _deptService.GetChildListAsync(deptId);
// 将当前部门ID也加入列表
if (!deptIds.Contains(deptId))
{
deptIds.Add(deptId);
}
// 查询所有这些部门下的用户
var users = await _repository._DbQueryable
.Where(u => deptIds.Contains(u.DeptId ?? Guid.Empty))
.LeftJoin<DeptAggregateRoot>((user, dept) => user.DeptId == dept.Id)
.OrderByDescending(user => user.CreationTime)
.Select((user, dept) => new UserGetListOutputDto(), true)
.ToListAsync();
return users;
}
}
}