From 2c35ada755cd899d07d06d98556d7de0f4705bf8 Mon Sep 17 00:00:00 2001
From: xuhy <3313886187@qq.com>
Date: 星期一, 17 十一月 2025 18:07:03 +0800
Subject: [PATCH] 菜单处理
---
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysMenuServiceImpl.java | 42 +++++++++++++++++++++++++++++++++++-------
1 files changed, 35 insertions(+), 7 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 7d46e40..120f48e 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
@@ -1,17 +1,13 @@
package com.ruoyi.system.service.impl;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Set;
+import java.util.*;
import java.util.stream.Collectors;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.ruoyi.system.mapper.SysMenuMapper;
import com.ruoyi.system.mapper.SysRoleMapper;
import com.ruoyi.system.mapper.SysRoleMenuMapper;
+import com.ruoyi.system.utils.util.SpringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ruoyi.common.constant.Constants;
@@ -25,6 +21,8 @@
import com.ruoyi.system.domain.vo.MetaVo;
import com.ruoyi.system.domain.vo.RouterVo;
import com.ruoyi.system.service.ISysMenuService;
+
+import static java.util.Comparator.comparing;
/**
* 菜单 业务层处理
@@ -362,6 +360,36 @@
return menuMapper.selectList();
}
+ @Override
+ public List<SysMenu> selectResources() {
+ List<SysMenu> allResources = menuMapper.selectList();
+ SysMenu item;
+ //获取根节点的集合
+ List<SysMenu> root = new ArrayList<>();
+ Map<Long, SysMenu> tempMap = new HashMap<>(3);
+ //子节点集合
+ SysMenu parent;
+ for (SysMenu resources : allResources) {
+ item = SpringUtils.beanCopy(resources, SysMenu.class);
+ //每次循环都将集合重新循环添加到父集合中
+ tempMap.put(resources.getMenuId(), item);
+ parent = tempMap.get(resources.getParentId());
+ if (Objects.nonNull(parent)) {
+ //父集合不为空时,获取下级集合
+ //子节点集合
+ parent.getChildren().add(item);
+ // 对子集排序,升序
+// parent.getChildren().sort(comparing(SysMenu::getSort));
+ } else {
+ //根集合
+ root.add(item);
+ // 对根集合排序,升序
+// root.sort(comparing(SysMenu::getSort));
+ }
+ }
+ return root;
+ }
+
/**
* 获取路由名称
*
--
Gitblit v1.7.1