fanxp vor 1 Jahr
Ursprung
Commit
6dcb0ccd6f

+ 3 - 4
src/main/java/com/xjrsoft/module/system/controller/MenuController.java

@@ -67,7 +67,6 @@ public class MenuController {
     @GetMapping("/list")
     @GetMapping("/list")
     @ApiOperation(value = "获取所有菜单(不分页)")
     @ApiOperation(value = "获取所有菜单(不分页)")
     public R list() {
     public R list() {
-
         List<Menu> list = menuService.list(Wrappers.lambdaQuery(Menu.class)
         List<Menu> list = menuService.list(Wrappers.lambdaQuery(Menu.class)
                 .select(Menu.class, x -> VoToColumnUtil.fieldsToColumns(MenuListVo.class).contains(x.getProperty())));
                 .select(Menu.class, x -> VoToColumnUtil.fieldsToColumns(MenuListVo.class).contains(x.getProperty())));
         List<MenuListVo> menuListVos = BeanUtil.copyToList(list, MenuListVo.class);
         List<MenuListVo> menuListVos = BeanUtil.copyToList(list, MenuListVo.class);
@@ -86,14 +85,14 @@ public class MenuController {
 
 
     @GetMapping("/quick")
     @GetMapping("/quick")
     @ApiOperation(value = "用户快捷菜单")
     @ApiOperation(value = "用户快捷菜单")
-    public RT<List<Menu>> quick() {
+    public RT<List<MenuVo>> quick() {
-
         List<Menu> menus = menuService.selectJoinList(Menu.class,
         List<Menu> menus = menuService.selectJoinList(Menu.class,
                 MPJWrappers.<Menu>lambdaJoin()
                 MPJWrappers.<Menu>lambdaJoin()
                         .innerJoin(XjrMenuQuick.class,XjrMenuQuick::getMenuId,Menu::getId)
                         .innerJoin(XjrMenuQuick.class,XjrMenuQuick::getMenuId,Menu::getId)
                         .selectAs(XjrMenuQuick::getSystemId,Menu::getSystemId)
                         .selectAs(XjrMenuQuick::getSystemId,Menu::getSystemId)
                         .select(Menu.class, x -> VoToColumnUtil.fieldsToColumns(MenuListVo.class).contains(x.getProperty())));
                         .select(Menu.class, x -> VoToColumnUtil.fieldsToColumns(MenuListVo.class).contains(x.getProperty())));
-        return RT.ok(menus);
+        List<MenuVo> menuListVos = BeanUtil.copyToList(menus, MenuVo.class);
+        return RT.ok(menuListVos);
     }
     }
 
 
     @GetMapping("/serve")
     @GetMapping("/serve")

+ 14 - 7
src/main/java/com/xjrsoft/module/system/service/impl/MenuServiceImpl.java

@@ -90,34 +90,41 @@ public class MenuServiceImpl extends MPJBaseServiceImpl<MenuMapper, Menu> implem
     @Override
     @Override
     public List<MenuServeVo> getAuthMenuServe() {
     public List<MenuServeVo> getAuthMenuServe() {
         List<MenuVo> menuVos = getAuthMenuList(new MenuTreeDto());
         List<MenuVo> menuVos = getAuthMenuList(new MenuTreeDto());
-
         Map<Long, MenuServeVo> menuVoMap = new HashMap<>();
         Map<Long, MenuServeVo> menuVoMap = new HashMap<>();
-        List<MenuVo> notParents = new ArrayList<>();
+
+        List<MenuVo> childMenus = new ArrayList<>();
 
 
         menuVos.forEach((node) -> {
         menuVos.forEach((node) -> {
             Long parentId = node.getParentId();
             Long parentId = node.getParentId();
 
 
-            //如果在List里面 找不到当前节点的父节点,则当前节点为顶级节点
+            //找到所有子系统信息
             if (menuVos.stream().noneMatch(x -> StrUtil.equals(x.getId().toString(), String.valueOf(parentId)))) {
             if (menuVos.stream().noneMatch(x -> StrUtil.equals(x.getId().toString(), String.valueOf(parentId)))) {
                 if (!menuVoMap.containsKey(node.getSystemId())) {
                 if (!menuVoMap.containsKey(node.getSystemId())) {
                     MenuServeVo ms = new MenuServeVo();
                     MenuServeVo ms = new MenuServeVo();
                     ms.setId(node.getSystemId());
                     ms.setId(node.getSystemId());
                     ms.setName(node.getSystemName());
                     ms.setName(node.getSystemName());
                     ms.setMenuVoList(new ArrayList<>());
                     ms.setMenuVoList(new ArrayList<>());
-                    ms.getMenuVoList().add(node);
+                    menuVoMap.put(node.getSystemId(), ms);
-                    menuVoMap.put(node.getSystemId(),ms);
                 }
                 }
-                notParents.add(node);
             }
             }
 
 
             if (!StrUtil.isEmptyIfStr(parentId) || !StrUtil.equals(String.valueOf(parentId), String.valueOf(GlobalConstant.FIRST_NODE_VALUE))) {
             if (!StrUtil.isEmptyIfStr(parentId) || !StrUtil.equals(String.valueOf(parentId), String.valueOf(GlobalConstant.FIRST_NODE_VALUE))) {
                 menuVos.stream().filter(x -> StrUtil.equals(x.getId().toString(), String.valueOf(parentId)))
                 menuVos.stream().filter(x -> StrUtil.equals(x.getId().toString(), String.valueOf(parentId)))
                         .findAny()
                         .findAny()
                         .ifPresent(parentNode -> {
                         .ifPresent(parentNode -> {
-                            System.out.println();
+                            node.setSystemId(parentNode.getSystemId());
+                            node.setSystemName(parentNode.getSystemName());
                         });
                         });
+                Long number = menuVos.stream().filter(x -> x.getParentId().equals(node.getId())).count();
+                if (number == 0) {
+                    childMenus.add(node);
+                }
             }
             }
         });
         });
+        menuVoMap.values().forEach((node) -> {
+            List<MenuVo> childMenu = childMenus.stream().filter(x -> x.getSystemId().equals(node.getId())).collect(Collectors.toList());
+            node.setMenuVoList(childMenu);
+        });
         return new ArrayList<>(menuVoMap.values());
         return new ArrayList<>(menuVoMap.values());
     }
     }
 }
 }