From 1dd5d8f8a616f5cf3caa7828d46989c7d3dcafc4 Mon Sep 17 00:00:00 2001
From: xieb <vip_xiaobin810@163.com>
Date: Thu, 19 Oct 2023 15:01:43 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/jtdev' into jtdev
---
skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/service/impl/MenuServiceImpl.java | 84 ++++++++++++++++++++++++++++++++++++++++--
1 files changed, 80 insertions(+), 4 deletions(-)
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/service/impl/MenuServiceImpl.java b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/service/impl/MenuServiceImpl.java
index be88f7a..13036c9 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/service/impl/MenuServiceImpl.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/service/impl/MenuServiceImpl.java
@@ -17,6 +17,8 @@
package cn.gistack.system.service.impl;
import cn.gistack.system.entity.*;
+import cn.gistack.system.vo.Meta;
+import cn.gistack.system.vo.WebMenuVO;
import cn.gistack.system.wrapper.MenuWrapper;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
@@ -68,6 +70,10 @@
public List<MenuVO> lazyList(Long parentId, Map<String, Object> param) {
if (Func.isEmpty(Func.toStr(param.get(PARENT_ID)))) {
parentId = null;
+ }
+ // 如果不是超级管理员
+ if (!AuthUtil.isAdministrator()){
+ param.put("super",1);
}
return baseMapper.lazyList(parentId, param);
}
@@ -144,7 +150,12 @@
@Override
public List<TreeNode> grantTree(BladeUser user) {
- List<TreeNode> menuTree = user.getTenantId().equals(BladeConstant.ADMIN_TENANT_ID) ? baseMapper.grantTree() : baseMapper.grantTreeByRole(Func.toLongList(user.getRoleId()));
+ Map<String, Object> param = new HashMap<>(1);
+ // 如果不是超级管理员
+ if(!AuthUtil.isAdministrator()){
+ return ForestNodeMerger.merge(tenantPackageTree(baseMapper.grantTreeNew(), user.getTenantId()));
+ }
+ List<TreeNode> menuTree = user.getTenantId().equals(BladeConstant.ADMIN_TENANT_ID) ? baseMapper.grantTree(param) : baseMapper.grantTreeByRole(Func.toLongList(user.getRoleId()));
return ForestNodeMerger.merge(tenantPackageTree(menuTree, user.getTenantId()));
}
@@ -278,9 +289,10 @@
);
}
Long cnt = baseMapper.selectCount(menuQueryWrapper);
- if (cnt > 0L) {
- throw new ServiceException("菜单名或编号已存在!");
- }
+ //控制不允许重复菜单名
+// if (cnt > 0L) {
+// throw new ServiceException("菜单名或编号已存在!");
+// }
if (menu.getParentId() == null && menu.getId() == null) {
menu.setParentId(BladeConstant.TOP_PARENT_ID);
}
@@ -294,4 +306,68 @@
return saveOrUpdate(menu);
}
+ @Override
+ public List<MenuVO> getAppMenu(String roleId) {
+ String[] ids = roleId.split(",");
+ return baseMapper.selectAppMenu(ids);
+ }
+
+ @Override
+ public List<WebMenuVO> getWebMenu(String roleId) {
+
+ List<MenuVO> routes = routes(roleId, null);
+
+ List<MenuVO> list = routes.stream().filter(r -> Func.equals(r.getAlias(), "web")).collect(Collectors.toList());
+ list.addAll(routes.stream().filter(r -> Func.equals(r.getAlias(), "newWeb")).collect(Collectors.toList()));
+ list.addAll(routes.stream().filter(r -> Func.equals(r.getAlias(), "superWeb")).collect(Collectors.toList()));
+ if (list.size()>0){
+ MenuVO menuVO = list.get(0);
+// int level = 0;
+ WebMenuVO webMenuVO = buildWebMenuVO(menuVO);
+ return webMenuVO.getChildren();
+ }else {
+ return null;
+ }
+
+ }
+
+ @Override
+ public List<MenuVO> getButtonList(String roleId) {
+ return baseMapper.getButtonList(Func.toLongList(roleId));
+ }
+
+
+ public WebMenuVO buildWebMenuVO(MenuVO menuVO){
+ WebMenuVO webMenuVO = new WebMenuVO();
+ Meta meta = new Meta();
+ webMenuVO.setMeta(meta);
+ webMenuVO.getMeta().setLevel(menuVO.getLevel());
+// level++;
+// final int levelTemp = level;
+ //设置基础信息
+ webMenuVO.setPath(menuVO.getPath());
+ webMenuVO.setComponent(menuVO.getComponents());
+ webMenuVO.getMeta().setIcon(menuVO.getIconPath());
+ webMenuVO.getMeta().setTitle(menuVO.getName());
+ webMenuVO.setComponentPath(menuVO.getComponentPath());
+
+ if (Func.equals(menuVO.getHasSubMenu(),"1")){
+ webMenuVO.getMeta().setHasSubMenu(true);
+ }else {
+ webMenuVO.getMeta().setHasSubMenu(false);
+ }
+ if (menuVO.getChildren().size()>0){
+ //有子菜单
+ List<WebMenuVO> list = new ArrayList<>();
+ menuVO.getChildren().forEach(menu->{
+ WebMenuVO webMenuVO1 = buildWebMenuVO(menu);
+ list.add(webMenuVO1);
+ });
+ webMenuVO.setChildren(list);
+ }
+
+ return webMenuVO;
+
+ }
+
}
--
Gitblit v1.9.3