指定机构查询用户时包含拥有扩展机构的用户
This commit is contained in:
parent
4338c38ea6
commit
076985c76f
@ -63,9 +63,12 @@ public class SysUserService : IDynamicApiController, ITransient
|
|||||||
// 获取用户拥有的机构集合
|
// 获取用户拥有的机构集合
|
||||||
var userOrgIdList = await _sysOrgService.GetUserOrgIdList();
|
var userOrgIdList = await _sysOrgService.GetUserOrgIdList();
|
||||||
List<long> orgList = null;
|
List<long> orgList = null;
|
||||||
|
List<long> extOrgUserIdList = null;
|
||||||
if (input.OrgId > 0) // 指定机构查询时
|
if (input.OrgId > 0) // 指定机构查询时
|
||||||
{
|
{
|
||||||
orgList = await _sysOrgService.GetChildIdListWithSelfById(input.OrgId);
|
orgList = await _sysOrgService.GetChildIdListWithSelfById(input.OrgId);
|
||||||
|
var extOrgList = await _sysUserExtOrgService.GetUserExtOrgListForOrg(input.OrgId);
|
||||||
|
extOrgUserIdList = extOrgList.Select(u => u.UserId).ToList();
|
||||||
orgList = _userManager.SuperAdmin ? orgList : orgList.Where(u => userOrgIdList.Contains(u)).ToList();
|
orgList = _userManager.SuperAdmin ? orgList : orgList.Where(u => userOrgIdList.Contains(u)).ToList();
|
||||||
}
|
}
|
||||||
else // 各管理员只能看到自己机构下的用户列表
|
else // 各管理员只能看到自己机构下的用户列表
|
||||||
@ -77,7 +80,7 @@ public class SysUserService : IDynamicApiController, ITransient
|
|||||||
.LeftJoin<SysOrg>((u, a) => u.OrgId == a.Id)
|
.LeftJoin<SysOrg>((u, a) => u.OrgId == a.Id)
|
||||||
.LeftJoin<SysPos>((u, a, b) => u.PosId == b.Id)
|
.LeftJoin<SysPos>((u, a, b) => u.PosId == b.Id)
|
||||||
.Where(u => u.AccountType != AccountTypeEnum.SuperAdmin)
|
.Where(u => u.AccountType != AccountTypeEnum.SuperAdmin)
|
||||||
.WhereIF(orgList != null, u => orgList.Contains(u.OrgId))
|
.WhereIF(orgList != null || extOrgUserList != null, u => orgList.Contains(u.OrgId) || extOrgUserList.Contains(u.Id))
|
||||||
.WhereIF(!string.IsNullOrWhiteSpace(input.Account), u => u.Account.Contains(input.Account))
|
.WhereIF(!string.IsNullOrWhiteSpace(input.Account), u => u.Account.Contains(input.Account))
|
||||||
.WhereIF(!string.IsNullOrWhiteSpace(input.RealName), u => u.RealName.Contains(input.RealName))
|
.WhereIF(!string.IsNullOrWhiteSpace(input.RealName), u => u.RealName.Contains(input.RealName))
|
||||||
.WhereIF(!string.IsNullOrWhiteSpace(input.PosName), (u, a, b) => b.Name.Contains(input.PosName))
|
.WhereIF(!string.IsNullOrWhiteSpace(input.PosName), (u, a, b) => b.Name.Contains(input.PosName))
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user