From 600a75b5b6f69776f707a8c7d39bc563f8178193 Mon Sep 17 00:00:00 2001 From: Tankaikai Date: Fri, 11 Apr 2025 15:21:32 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=87=E6=8D=A2=E5=BA=97=E9=93=BA=E7=BB=9F?= =?UTF-8?q?=E8=AE=A1=20=E2=88=9A=20=E4=B8=8B=E5=8D=95=E9=80=89=E6=8B=A9?= =?UTF-8?q?=E4=BC=9A=E5=91=98=20=E2=88=9A=20=E6=B3=A8=E5=86=8C=E4=BC=9A?= =?UTF-8?q?=E5=91=98=20=E2=88=9A=20=E5=AE=8C=E5=96=84=E6=89=8B=E6=9C=BA?= =?UTF-8?q?=E5=8F=B7=20=E2=88=9A=20=E4=BC=9A=E5=91=98=E6=B5=81=E6=B0=B4?= =?UTF-8?q?=E4=BF=A1=E6=81=AF=E5=90=8C=E6=AD=A5=20=E2=88=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/account/mapper/SysMenuMapper.java | 1 + .../impl/AuthorizationServiceImpl.java | 25 ++++++++++++------- .../main/resources/mapper/SysMenuMapper.xml | 3 +++ 3 files changed, 20 insertions(+), 9 deletions(-) diff --git a/cash-service/account-service/src/main/java/com/czg/service/account/mapper/SysMenuMapper.java b/cash-service/account-service/src/main/java/com/czg/service/account/mapper/SysMenuMapper.java index 0660db6b9..937f02423 100644 --- a/cash-service/account-service/src/main/java/com/czg/service/account/mapper/SysMenuMapper.java +++ b/cash-service/account-service/src/main/java/com/czg/service/account/mapper/SysMenuMapper.java @@ -16,4 +16,5 @@ public interface SysMenuMapper extends BaseMapper { List selectByUserId(@Param("userId") Long userId, @Param("type") Integer type); + List selectByRoleId(@Param("roleId") Long roleId); } diff --git a/cash-service/account-service/src/main/java/com/czg/service/account/service/impl/AuthorizationServiceImpl.java b/cash-service/account-service/src/main/java/com/czg/service/account/service/impl/AuthorizationServiceImpl.java index fa309a84d..9e421eaa6 100644 --- a/cash-service/account-service/src/main/java/com/czg/service/account/service/impl/AuthorizationServiceImpl.java +++ b/cash-service/account-service/src/main/java/com/czg/service/account/service/impl/AuthorizationServiceImpl.java @@ -155,19 +155,22 @@ public class AuthorizationServiceImpl implements AuthorizationService { if (user.getIsAdmin()) { roleNames.add("admin"); } - boolean isEnableSync = StpKit.USER.isEnableSync(shopInfo.getId()); - if (isEnableSync && CollUtil.contains(roleNames, "商户")) { - roleNames.remove("商户"); - roleNames.add("分店商户"); - } - StpKit.USER.addRoleList(roleNames); // 权限赋予 List promissionList = sysMenuMapper.selectByUserId(user.getId(), null).stream().map(SysMenu::getPermission).filter(StrUtil::isNotBlank).collect(Collectors.toList()); // 加入员工权限 if (shopStaffPromissionList != null && !shopStaffPromissionList.isEmpty()) { promissionList.addAll(shopStaffPromissionList); } - + boolean isEnableSync = StpKit.USER.isEnableSync(shopInfo.getId()); + if (isEnableSync && CollUtil.contains(roleNames, "商户")) { + roleNames.remove("商户"); + roleNames.add("分店商户"); + List headShopPromissionList = sysMenuMapper.selectByRoleId(2L).stream().map(SysMenu::getPermission).filter(StrUtil::isNotBlank).toList(); + List branchShopPromissionList = sysMenuMapper.selectByRoleId(3L).stream().map(SysMenu::getPermission).filter(StrUtil::isNotBlank).toList(); + promissionList.removeAll(headShopPromissionList); + promissionList.addAll(branchShopPromissionList); + } + StpKit.USER.addRoleList(roleNames); StpKit.USER.addPermissionList(promissionList); String platformType = ServletUtil.getHeaderIgnoreCase(ServletUtil.getRequest(), "platformType"); if (PlatformTypeEnum.PC_CLIENT.getValue().equals(platformType)) { @@ -216,14 +219,18 @@ public class AuthorizationServiceImpl implements AuthorizationService { if (sysUser.getIsAdmin()) { roleNames.add("admin"); } + // 权限赋予 + List promissionList = sysMenuMapper.selectByUserId(sysUser.getId(), null).stream().map(SysMenu::getPermission).filter(StrUtil::isNotBlank).toList(); boolean isEnableSync = StpKit.USER.isEnableSync(shopInfo.getId()); if (isEnableSync && CollUtil.contains(roleNames, "商户")) { roleNames.remove("商户"); roleNames.add("分店商户"); + List headShopPromissionList = sysMenuMapper.selectByRoleId(2L).stream().map(SysMenu::getPermission).filter(StrUtil::isNotBlank).toList(); + List branchShopPromissionList = sysMenuMapper.selectByRoleId(3L).stream().map(SysMenu::getPermission).filter(StrUtil::isNotBlank).toList(); + promissionList.removeAll(headShopPromissionList); + promissionList.addAll(branchShopPromissionList); } StpKit.USER.addRoleList(roleNames); - // 权限赋予 - List promissionList = sysMenuMapper.selectByUserId(sysUser.getId(), null).stream().map(SysMenu::getPermission).filter(StrUtil::isNotBlank).toList(); StpKit.USER.switchTo(sysUser.getId().equals(headId), sysUser.getId(), sysUser.getAccount(), shopInfo.getId(), shopInfo.getShopName(), MyStpLogic.LoginType.MANAGER, sysUser.getIsAdmin()); StpKit.USER.addPermissionList(promissionList); StpKit.USER.addRoleList(roleNames); diff --git a/cash-service/account-service/src/main/resources/mapper/SysMenuMapper.xml b/cash-service/account-service/src/main/resources/mapper/SysMenuMapper.xml index ccfccfa7b..707b09fa2 100644 --- a/cash-service/account-service/src/main/resources/mapper/SysMenuMapper.xml +++ b/cash-service/account-service/src/main/resources/mapper/SysMenuMapper.xml @@ -15,4 +15,7 @@ order by menu_sort desc +