From 1b137a662cf48ddad94b48de606ac36061fac4dd Mon Sep 17 00:00:00 2001
From: yanderong <307678080@qq.com>
Date: 星期二, 25 八月 2026 10:00:11 +0800
Subject: [PATCH] feat 用户角色菜单配置相关功能
---
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysMenuServiceImpl.java | 42 ++++++++++++++++++++++++++++++++++++++++++
1 files changed, 42 insertions(+), 0 deletions(-)
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysMenuServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysMenuServiceImpl.java
index 131861a..82071a8 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysMenuServiceImpl.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysMenuServiceImpl.java
@@ -4,8 +4,10 @@
import java.util.Arrays;
import java.util.HashSet;
import java.util.Iterator;
+import java.util.LinkedHashMap;
import java.util.LinkedList;
import java.util.List;
+import java.util.Map;
import java.util.Set;
import java.util.stream.Collectors;
import org.slf4j.Logger;
@@ -23,6 +25,7 @@
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.system.domain.vo.MetaVo;
+import com.ruoyi.system.domain.vo.MenuPermissionVo;
import com.ruoyi.system.domain.vo.RouterVo;
import com.ruoyi.system.mapper.SysMenuMapper;
import com.ruoyi.system.mapper.SysRoleMapper;
@@ -53,6 +56,45 @@
private SysRoleMenuMapper roleMenuMapper;
/**
+ * 查询全部菜单,并转换为权限配置表格直接使用的三级结构。
+ */
+ @Override
+ public List<MenuPermissionVo> selectMenuPermissionList()
+ {
+ List<SysMenu> menus = menuMapper.selectMenuList(new SysMenu());
+ Map<Long, MenuPermissionVo> modules = new LinkedHashMap<>();
+ Map<Long, MenuPermissionVo.Page> pages = new LinkedHashMap<>();
+
+ for (SysMenu menu : menus)
+ {
+ if (UserConstants.TYPE_DIR.equals(menu.getMenuType()) && MENU_ROOT_ID.equals(menu.getParentId()))
+ {
+ modules.put(menu.getMenuId(), new MenuPermissionVo(menu.getMenuId(), menu.getMenuName()));
+ }
+ }
+ for (SysMenu menu : menus)
+ {
+ MenuPermissionVo module = modules.get(menu.getParentId());
+ if (module != null && UserConstants.TYPE_MENU.equals(menu.getMenuType()))
+ {
+ MenuPermissionVo.Page page = new MenuPermissionVo.Page(menu.getMenuId(), menu.getMenuName());
+ module.getPages().add(page);
+ pages.put(menu.getMenuId(), page);
+ }
+ }
+ for (SysMenu menu : menus)
+ {
+ MenuPermissionVo.Page page = pages.get(menu.getParentId());
+ if (page != null && UserConstants.TYPE_BUTTON.equals(menu.getMenuType()))
+ {
+ page.getPermissions().add(new MenuPermissionVo.Permission(
+ menu.getMenuId(), menu.getMenuName(), menu.getPerms()));
+ }
+ }
+ return new ArrayList<>(modules.values());
+ }
+
+ /**
* 根据用户查询系统菜单列表
*
* @param userId 用户ID
--
Gitblit v1.7.1