From b2d5c9a45bb97f34112f79eb56db8404ddda6725 Mon Sep 17 00:00:00 2001
From: guoshilong <123456>
Date: Sat, 22 Apr 2023 09:34:29 +0800
Subject: [PATCH] 菜单level,hasSubMenu修改为自添加

---
 skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/service/impl/MenuServiceImpl.java |   65 +++++++++++++++++++++++++++++++-
 1 files changed, 62 insertions(+), 3 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..689b7e7 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;
@@ -278,9 +280,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 +297,60 @@
 		return saveOrUpdate(menu);
 	}
 
+	@Override
+	public List<MenuVO> getAppMenu(String roleId) {
+		return baseMapper.selectAppMenu(roleId);
+	}
+
+	@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());
+		if (list.size()>0){
+			MenuVO menuVO = list.get(0);
+//			int level = 0;
+			WebMenuVO webMenuVO = buildWebMenuVO(menuVO);
+			return webMenuVO.getChildren();
+		}else {
+			return null;
+		}
+
+	}
+
+
+	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