Przeglądaj źródła

菜单树中children 为空设置为null

lyhzzz 3 lat temu
rodzic
commit
eb0f57458c

+ 14 - 4
src/main/java/com/fdkankan/manage/service/impl/SysMenuServiceImpl.java

@@ -158,17 +158,27 @@ public class SysMenuServiceImpl extends ServiceImpl<ISysMenuMapper, SysMenu> imp
             if(sysMenu.getParentId() !=null){
                 SysMenuVo menuVo = voMap.get(sysMenu.getId());
                 List<SysMenuVo> children = voMap.get(sysMenu.getParentId()).getChildren();
-                if(children == null){
-                    children = new ArrayList<>();
-                }
                 children.add(menuVo);
-                menuVo.setChildren(children);
             }else {
                 voList.add(voMap.get(sysMenu.getId()));
             }
         }
+        setChildrenNull(voList);
         return voList;
     }
 
+    private void setChildrenNull(List<SysMenuVo> voList){
+        if(voList == null || voList.size() ==0){
+            return ;
+        }
+        for (SysMenuVo menuVo : voList) {
+            if(menuVo.getChildren()!=null && menuVo.getChildren().size() == 0 ) {
+                menuVo.setChildren(null);
+                continue ;
+            }
+             setChildrenNull(menuVo.getChildren());
+        }
+    }
+
 
 }

+ 1 - 1
src/main/java/com/fdkankan/manage/vo/response/SysMenuVo.java

@@ -10,5 +10,5 @@ import java.util.List;
 @Data
 public class SysMenuVo extends SysMenu {
     private Meta meta;
-    private List<SysMenuVo> children ;
+    private List<SysMenuVo> children = new ArrayList<>();
 }