diff --git a/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/sys/api/SysUserServiceApi.java b/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/sys/api/SysUserServiceApi.java index 1eba73dee..58a7626f9 100644 --- a/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/sys/api/SysUserServiceApi.java +++ b/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/sys/api/SysUserServiceApi.java @@ -159,4 +159,16 @@ public interface SysUserServiceApi { */ List batchGetNameByUserIdList(Set userIdList); + /** + * 获取当前用户综合性的身份列表 + *

+ * 1. 获取当前用户id,加入到结果 + * 2. 获取用户当前登录的机构id,加入到结果 + * 3. 获取用户拥有的角色id,加入到结果 + * + * @author fengshuonan + * @since 2024-01-09 18:54 + */ + Set getUserComprehensiveIdentitySummary(); + } diff --git a/kernel-s-system/system-business-hr/src/main/java/cn/stylefeng/roses/kernel/sys/modular/user/service/impl/SysUserServiceImpl.java b/kernel-s-system/system-business-hr/src/main/java/cn/stylefeng/roses/kernel/sys/modular/user/service/impl/SysUserServiceImpl.java index 922575b34..14f6ff8a5 100644 --- a/kernel-s-system/system-business-hr/src/main/java/cn/stylefeng/roses/kernel/sys/modular/user/service/impl/SysUserServiceImpl.java +++ b/kernel-s-system/system-business-hr/src/main/java/cn/stylefeng/roses/kernel/sys/modular/user/service/impl/SysUserServiceImpl.java @@ -715,6 +715,37 @@ public class SysUserServiceImpl extends ServiceImpl impl return this.batchGetName(sysUserRequest); } + @Override + public Set getUserComprehensiveIdentitySummary() { + + LoginUser loginUser = LoginContext.me().getLoginUserNullable(); + if (loginUser == null) { + return new HashSet<>(); + } + + // 获取当前登录用户id + Long userId = loginUser.getUserId(); + + // 获取当前用户登录的机构id + Long currentOrgId = loginUser.getCurrentOrgId(); + + // 获取当前用户的角色信息列表 + List userRoleIdList = sysUserRoleService.getUserRoleIdList(userId); + + HashSet comprehensiveIdentity = new HashSet<>(); + if (ObjectUtil.isNotEmpty(userId)) { + comprehensiveIdentity.add(userId); + } + if (ObjectUtil.isNotEmpty(currentOrgId)) { + comprehensiveIdentity.add(currentOrgId); + } + if (ObjectUtil.isNotEmpty(userRoleIdList)) { + comprehensiveIdentity.addAll(userRoleIdList); + } + + return comprehensiveIdentity; + } + /** * 获取信息 *