From 4e372402fc814645e1808cd8c0e623c900d5f728 Mon Sep 17 00:00:00 2001
From: xieb <vip_xiaobin810@163.com>
Date: Mon, 05 Jun 2023 21:29:37 +0800
Subject: [PATCH] 增加新菜单配置

---
 skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/service/impl/MenuServiceImpl.java |   50 ++++++++++++++++++++++++++++++++++++--------------
 1 files changed, 36 insertions(+), 14 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 e3a74a8..8d9dbe0 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
@@ -71,6 +71,10 @@
 		if (Func.isEmpty(Func.toStr(param.get(PARENT_ID)))) {
 			parentId = null;
 		}
+		// 如果不是超级管理员
+		if (!AuthUtil.isAdministrator()){
+			param.put("super",1);
+		}
 		return baseMapper.lazyList(parentId, param);
 	}
 
@@ -146,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()));
 	}
 
@@ -308,38 +317,51 @@
 		List<MenuVO> routes = routes(roleId, null);
 
 		List<MenuVO> list = routes.stream().filter(r -> Func.equals(r.getAlias(), "web")).collect(Collectors.toList());
-		MenuVO menuVO = list.get(0);
-		int level = 0;
-		WebMenuVO webMenuVO = buildWebMenuVO(menuVO,level);
-		return webMenuVO.getChildren();
+		list.contains(routes.stream().filter(r -> Func.equals(r.getAlias(), "newWeb")).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,int level){
+	public WebMenuVO buildWebMenuVO(MenuVO menuVO){
 		WebMenuVO webMenuVO = new WebMenuVO();
 		Meta meta = new Meta();
 		webMenuVO.setMeta(meta);
-		webMenuVO.getMeta().setLevel(level);
-		level++;
-		final int levelTemp = level;
+		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){
 			//有子菜单
-			webMenuVO.getMeta().setHasSubMenu(true);
 			List<WebMenuVO> list = new ArrayList<>();
 			menuVO.getChildren().forEach(menu->{
-				WebMenuVO webMenuVO1 = buildWebMenuVO(menu,levelTemp);
+				WebMenuVO webMenuVO1 = buildWebMenuVO(menu);
 				list.add(webMenuVO1);
 			});
 			webMenuVO.setChildren(list);
-		}else {
-			//无子菜单
-			webMenuVO.getMeta().setHasSubMenu(false);
 		}
 
 		return webMenuVO;

--
Gitblit v1.9.3