From 9d8b9fabbea813e980d7f8e67ee633a55d205955 Mon Sep 17 00:00:00 2001
From: 疯狂的狮子Li <15040126243@163.com>
Date: 星期四, 16 一月 2025 11:50:19 +0800
Subject: [PATCH] update 优化 ws模块替换session的时候关闭session连接
---
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysMenuServiceImpl.java | 35 +++++++++++++++++++++--------------
1 files changed, 21 insertions(+), 14 deletions(-)
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysMenuServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysMenuServiceImpl.java
index 194b044..40643e1 100644
--- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysMenuServiceImpl.java
+++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysMenuServiceImpl.java
@@ -7,7 +7,8 @@
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
-import org.dromara.common.core.constant.UserConstants;
+import lombok.RequiredArgsConstructor;
+import org.dromara.common.core.constant.SystemConstants;
import org.dromara.common.core.utils.MapstructUtils;
import org.dromara.common.core.utils.StreamUtils;
import org.dromara.common.core.utils.StringUtils;
@@ -26,7 +27,6 @@
import org.dromara.system.mapper.SysRoleMenuMapper;
import org.dromara.system.mapper.SysTenantPackageMapper;
import org.dromara.system.service.ISysMenuService;
-import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import java.util.*;
@@ -75,7 +75,7 @@
.orderByAsc(SysMenu::getOrderNum));
} else {
QueryWrapper<SysMenu> wrapper = Wrappers.query();
- wrapper.eq("sur.user_id", userId)
+ wrapper.inSql("r.role_id", "select role_id from sys_user_role where user_id = " + userId)
.like(StringUtils.isNotBlank(menu.getMenuName()), "m.menu_name", menu.getMenuName())
.eq(StringUtils.isNotBlank(menu.getVisible()), "m.visible", menu.getVisible())
.eq(StringUtils.isNotBlank(menu.getStatus()), "m.status", menu.getStatus())
@@ -169,15 +169,16 @@
if (tenantPackage.getMenuCheckStrictly()) {
parentIds = baseMapper.selectObjs(new LambdaQueryWrapper<SysMenu>()
.select(SysMenu::getParentId)
- .in(SysMenu::getMenuId, menuIds), Convert::toLong);
+ .in(SysMenu::getMenuId, menuIds), x -> {return Convert.toLong(x);});
}
return baseMapper.selectObjs(new LambdaQueryWrapper<SysMenu>()
.in(SysMenu::getMenuId, menuIds)
- .notIn(CollUtil.isNotEmpty(parentIds), SysMenu::getMenuId, parentIds), Convert::toLong);
+ .notIn(CollUtil.isNotEmpty(parentIds), SysMenu::getMenuId, parentIds), x -> {return Convert.toLong(x);});
}
/**
* 鏋勫缓鍓嶇璺敱鎵�闇�瑕佺殑鑿滃崟
+ * 璺敱name鍛藉悕瑙勫垯 path棣栧瓧姣嶈浆澶у啓 + id
*
* @param menus 鑿滃崟鍒楄〃
* @return 璺敱鍒楄〃
@@ -186,25 +187,27 @@
public List<RouterVo> buildMenus(List<SysMenu> menus) {
List<RouterVo> routers = new LinkedList<>();
for (SysMenu menu : menus) {
+ String name = menu.getRouteName() + menu.getMenuId();
RouterVo router = new RouterVo();
router.setHidden("1".equals(menu.getVisible()));
- router.setName(menu.getRouteName());
+ router.setName(name);
router.setPath(menu.getRouterPath());
router.setComponent(menu.getComponentInfo());
router.setQuery(menu.getQueryParam());
router.setMeta(new MetaVo(menu.getMenuName(), menu.getIcon(), StringUtils.equals("1", menu.getIsCache()), menu.getPath()));
List<SysMenu> cMenus = menu.getChildren();
- if (CollUtil.isNotEmpty(cMenus) && UserConstants.TYPE_DIR.equals(menu.getMenuType())) {
+ if (CollUtil.isNotEmpty(cMenus) && SystemConstants.TYPE_DIR.equals(menu.getMenuType())) {
router.setAlwaysShow(true);
router.setRedirect("noRedirect");
router.setChildren(buildMenus(cMenus));
} else if (menu.isMenuFrame()) {
+ String frameName = StringUtils.capitalize(menu.getPath()) + menu.getMenuId();
router.setMeta(null);
List<RouterVo> childrenList = new ArrayList<>();
RouterVo children = new RouterVo();
children.setPath(menu.getPath());
- children.setComponent(menu.getComponentInfo());
- children.setName(StringUtils.capitalize(menu.getPath()));
+ children.setComponent(menu.getComponent());
+ children.setName(frameName);
children.setMeta(new MetaVo(menu.getMenuName(), menu.getIcon(), StringUtils.equals("1", menu.getIsCache()), menu.getPath()));
children.setQuery(menu.getQueryParam());
childrenList.add(children);
@@ -215,9 +218,10 @@
List<RouterVo> childrenList = new ArrayList<>();
RouterVo children = new RouterVo();
String routerPath = SysMenu.innerLinkReplaceEach(menu.getPath());
+ String innerLinkName = StringUtils.capitalize(routerPath) + menu.getMenuId();
children.setPath(routerPath);
- children.setComponent(UserConstants.INNER_LINK);
- children.setName(StringUtils.capitalize(routerPath));
+ children.setComponent(SystemConstants.INNER_LINK);
+ children.setName(innerLinkName);
children.setMeta(new MetaVo(menu.getMenuName(), menu.getIcon(), menu.getPath()));
childrenList.add(children);
router.setChildren(childrenList);
@@ -238,11 +242,14 @@
if (CollUtil.isEmpty(menus)) {
return CollUtil.newArrayList();
}
- return TreeBuildUtils.build(menus, (menu, tree) ->
- tree.setId(menu.getMenuId())
+ return TreeBuildUtils.build(menus, (menu, tree) -> {
+ Tree<Long> menuTree = tree.setId(menu.getMenuId())
.setParentId(menu.getParentId())
.setName(menu.getMenuName())
- .setWeight(menu.getOrderNum()));
+ .setWeight(menu.getOrderNum());
+ menuTree.put("menuType", menu.getMenuType());
+ menuTree.put("icon", menu.getIcon());
+ });
}
/**
--
Gitblit v1.9.3