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()) {