From 919f727049627e469433ecd067905b4d13cf4a21 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E6=9D=BE?= <8605635+zhang3064194730@user.noreply.gitee.com> Date: Mon, 17 Feb 2025 11:13:48 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A7=92=E8=89=B2=E8=8F=9C=E5=8D=95id=E8=8E=B7?= =?UTF-8?q?=E5=8F=96=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/czg/controller/admin/RoleController.java | 15 +++++++++++++++ .../com/czg/account/service/SysRoleService.java | 2 ++ .../account/service/impl/SysRoleServiceImpl.java | 9 +++++++++ 3 files changed, 26 insertions(+) diff --git a/cash-api/account-server/src/main/java/com/czg/controller/admin/RoleController.java b/cash-api/account-server/src/main/java/com/czg/controller/admin/RoleController.java index 1cb4660b..24614cb9 100644 --- a/cash-api/account-server/src/main/java/com/czg/controller/admin/RoleController.java +++ b/cash-api/account-server/src/main/java/com/czg/controller/admin/RoleController.java @@ -8,11 +8,14 @@ import com.czg.account.entity.SysRole; import com.czg.account.service.SysRoleService; import com.czg.annotation.SaAdminCheckPermission; import com.czg.resp.CzgResult; +import com.czg.sa.StpKit; import com.mybatisflex.core.paginate.Page; import jakarta.annotation.Resource; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; +import java.util.List; + /** * * 角色管理 @@ -37,6 +40,18 @@ public class RoleController { return CzgResult.success(roleService.getList(pageDTO, key, startTime, endTime)); } + /** + * 获取角色对应的菜单 + * 权限标识: role:menu + * @param id 角色id + * @return 分页数据 + */ + @SaAdminCheckPermission(value = "role:menu") + @GetMapping("/menu") + public CzgResult> getRoleMenu(@RequestParam Integer id) { + return CzgResult.success(roleService.getRoleMenu(StpKit.USER.getLoginIdAsLong(), id)); + } + /** * 新增角色 * 权限标识: role:add diff --git a/cash-common/cash-common-service/src/main/java/com/czg/account/service/SysRoleService.java b/cash-common/cash-common-service/src/main/java/com/czg/account/service/SysRoleService.java index c448183a..1de0a8e7 100644 --- a/cash-common/cash-common-service/src/main/java/com/czg/account/service/SysRoleService.java +++ b/cash-common/cash-common-service/src/main/java/com/czg/account/service/SysRoleService.java @@ -24,4 +24,6 @@ public interface SysRoleService extends IService { Boolean add(RoleAddDTO roleAddDTO); Boolean edit(RoleEditDTO roleEditDTO); + + List getRoleMenu(long loginIdAsLong, Integer id); } diff --git a/cash-service/account-service/src/main/java/com/czg/service/account/service/impl/SysRoleServiceImpl.java b/cash-service/account-service/src/main/java/com/czg/service/account/service/impl/SysRoleServiceImpl.java index 22348882..cb3d0be2 100644 --- a/cash-service/account-service/src/main/java/com/czg/service/account/service/impl/SysRoleServiceImpl.java +++ b/cash-service/account-service/src/main/java/com/czg/service/account/service/impl/SysRoleServiceImpl.java @@ -67,6 +67,15 @@ public class SysRoleServiceImpl extends ServiceImpl imp return page(new Page<>(pageDTO.page(), pageDTO.size()), queryWrapper); } + @Override + public List getRoleMenu(long userId, Integer id) { + SysRole role = queryChain().eq(SysRole::getId, id).eq(SysRole::getCreateUserId, userId).one(); + if (role == null) { + throw new ApiNotPrintException("角色不存在"); + } + return sysRolesMenusService.queryChain().eq(SysRolesMenus::getRoleId, id).list().stream().map(SysRolesMenus::getMenuId).toList(); + } + public boolean addMenu(Long roleId, List menuIds) { long count = sysMenuService.queryChain().in(SysMenu::getMenuId, menuIds).count(); if (count != menuIds.size()) {