From 8f2013dc8ef41fad78ca6bb5fe478d71cca5dada Mon Sep 17 00:00:00 2001 From: fengshuonan Date: Wed, 17 Jan 2024 17:15:06 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=908.1.0=E3=80=91=E3=80=90role=E3=80=91?= =?UTF-8?q?=E6=9B=B4=E6=96=B0=E7=99=BB=E5=BD=95=E7=94=A8=E6=88=B7=E8=8E=B7?= =?UTF-8?q?=E5=8F=96=E8=A7=92=E8=89=B2=E7=9A=84=E6=96=B9=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../user/service/impl/SysUserRoleServiceImpl.java | 9 +++++---- .../modular/login/service/UserIndexInfoService.java | 11 +++++++++-- 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/kernel-s-system/system-business-hr/src/main/java/cn/stylefeng/roses/kernel/sys/modular/user/service/impl/SysUserRoleServiceImpl.java b/kernel-s-system/system-business-hr/src/main/java/cn/stylefeng/roses/kernel/sys/modular/user/service/impl/SysUserRoleServiceImpl.java index 8c9b40f18..814c101ea 100644 --- a/kernel-s-system/system-business-hr/src/main/java/cn/stylefeng/roses/kernel/sys/modular/user/service/impl/SysUserRoleServiceImpl.java +++ b/kernel-s-system/system-business-hr/src/main/java/cn/stylefeng/roses/kernel/sys/modular/user/service/impl/SysUserRoleServiceImpl.java @@ -153,10 +153,6 @@ public class SysUserRoleServiceImpl extends ServiceImpl getUserRoleIdListCurrentCompany(Long userId, Long companyId) { - if (ObjectUtil.isEmpty(companyId)) { - return this.getUserRoleIdList(userId); - } - // 先从缓存查找用户的角色 List cachedRoleList = userRoleCache.get(userId.toString()); if (ObjectUtil.isNotEmpty(cachedRoleList)) { @@ -274,6 +270,11 @@ public class SysUserRoleServiceImpl extends ServiceImpl baseRoleIdList = paramRoles.stream().filter(i -> RoleTypeEnum.SYSTEM_ROLE.getCode().equals(i.getRoleType()) && i.getRoleCompanyId() == null).map(SysUserRole::getRoleId) .collect(Collectors.toSet()); + // 没传当前公司id,则只返回最基本的角色 + if (ObjectUtil.isEmpty(userCurrentCompanyId)) { + return new ArrayList<>(baseRoleIdList); + } + // 2. 获取用户当前登录公司下的角色id集合 Set currentCompanyRoleIdList = paramRoles.stream() .filter(i -> RoleTypeEnum.COMPANY_ROLE.getCode().equals(i.getRoleType()) diff --git a/kernel-s-system/system-business-permission/src/main/java/cn/stylefeng/roses/kernel/sys/modular/login/service/UserIndexInfoService.java b/kernel-s-system/system-business-permission/src/main/java/cn/stylefeng/roses/kernel/sys/modular/login/service/UserIndexInfoService.java index 285d5ebc5..02ba14004 100644 --- a/kernel-s-system/system-business-permission/src/main/java/cn/stylefeng/roses/kernel/sys/modular/login/service/UserIndexInfoService.java +++ b/kernel-s-system/system-business-permission/src/main/java/cn/stylefeng/roses/kernel/sys/modular/login/service/UserIndexInfoService.java @@ -258,8 +258,15 @@ public class UserIndexInfoService { Long userId = loginUser.getUserId(); - // 获取用户的角色集合 - List roleIdList = sysUserRoleServiceApi.getUserRoleIdList(userId); + List roleIdList = null; + + // 获取用户当前公司下的角色集合 + List userCurrentCompanyList = userIndexInfo.getUserOrgInfoList().stream().filter(IndexUserOrgInfo::getCurrentSelectFlag).map(IndexUserOrgInfo::getCompanyId).collect(Collectors.toList()); + if (ObjectUtil.isEmpty(userCurrentCompanyList)) { + roleIdList = sysUserRoleServiceApi.getUserRoleIdListCurrentCompany(userId, null); + } else { + roleIdList = sysUserRoleServiceApi.getUserRoleIdListCurrentCompany(userId, userCurrentCompanyList.get(0)); + } if (ObjectUtil.isEmpty(roleIdList)) { userIndexInfo.setPermissionCodeList(new HashSet<>());