From 9ab109b9ee96e7ff2bf2b935a044aee5842a3ddc Mon Sep 17 00:00:00 2001
From: doum <doum>
Date: 星期日, 28 九月 2025 10:08:09 +0800
Subject: [PATCH] 最新版本541200007

---
 server/system_service/src/main/java/com/doumee/biz/system/impl/SystemMenuBizImpl.java |   45 ++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 42 insertions(+), 3 deletions(-)

diff --git a/server/system_service/src/main/java/com/doumee/biz/system/impl/SystemMenuBizImpl.java b/server/system_service/src/main/java/com/doumee/biz/system/impl/SystemMenuBizImpl.java
index 958a24f..9cb6752 100644
--- a/server/system_service/src/main/java/com/doumee/biz/system/impl/SystemMenuBizImpl.java
+++ b/server/system_service/src/main/java/com/doumee/biz/system/impl/SystemMenuBizImpl.java
@@ -3,6 +3,7 @@
 import com.doumee.biz.system.SystemMenuBiz;
 import com.doumee.core.exception.BusinessException;
 import com.doumee.core.constants.ResponseStatus;
+import com.doumee.core.utils.Constants;
 import com.doumee.dao.system.dto.UpdateSystemMenuSortDTO;
 import com.doumee.dao.system.model.SystemMenu;
 import com.doumee.dao.system.vo.SystemMenuListVO;
@@ -93,11 +94,19 @@
     }
 
     @Override
-    public List<SystemMenuListVO> findTree() {
-        List<SystemMenuListVO> menus = systemMenuService.findList();
+    public List<SystemMenu>  findTopList() {
+        SystemMenu param =new SystemMenu();
+        param.setDeleted(Boolean.FALSE);
+        param.setType(Constants.ONE);
+        List<SystemMenu> menus = systemMenuService.findList(param);
+        return menus;
+    }
+    @Override
+    public List<SystemMenuListVO> findTree(SystemMenu param) {
+        List<SystemMenuListVO> menus = systemMenuService.findManageList(param);
         List<SystemMenuListVO> rootMenus = new ArrayList<>();
         // 娣诲姞鏍硅彍鍗�
-        for (SystemMenu menu : menus) {
+        for (SystemMenuListVO menu : menus) {
             if (menu.getParentId() == null) {
                 SystemMenuListVO rootMenu = new SystemMenuListVO();
                 BeanUtils.copyProperties(menu, rootMenu, "children");
@@ -127,7 +136,10 @@
                 nodeVO.setLabel(menu.getName());
                 nodeVO.setUrl(menu.getPath());
                 nodeVO.setParams(menu.getParams());
+                nodeVO.setType(menu.getType());
+                nodeVO.setLinkType(menu.getLinkType());
                 nodeVO.setIcon(menu.getIcon());
+//                nodeVO.setHomeUrl("/index");//榛樿宸ヤ綔鍙�
                 nodeVO.setChildren(new ArrayList<>());
                 rootNodes.add(nodeVO);
             }
@@ -135,8 +147,27 @@
         menus.removeIf(menu -> menu.getParentId() == null);
         for (SystemMenuNodeVO child : rootNodes) {
             this.fillChildren(child, menus);
+            SystemMenuNodeVO homeMenus = getHomeUrlByChild(child);
+            if(homeMenus!=null && homeMenus.getUrl() != null){
+                    child.setHomeUrl(homeMenus.getUrl());
+            }
         }
         return rootNodes;
+    }
+
+    private SystemMenuNodeVO getHomeUrlByChild( SystemMenuNodeVO  child) {
+        if(child.getChildren()==null || child.getChildren().size() ==0){
+            return null;
+        }
+        for(SystemMenuNodeVO tt : child.getChildren()){
+            if(tt.getChildren()==null || tt.getChildren().size() ==0){
+                return tt;
+            }else{
+                SystemMenuNodeVO ttt = getHomeUrlByChild(tt);
+                return ttt;
+            }
+        }
+        return null;
     }
 
     @Override
@@ -177,6 +208,9 @@
         }
         List<Integer> handledIds = new ArrayList<>();
         for (SystemMenu menu : menus) {
+            if(!Constants.equalsInteger(menu.getType(),Constants.ZERO)){
+                continue;
+            }
             if (parent.getId().equals(menu.getParentId())) {
                 SystemMenuListVO child = new SystemMenuListVO();
                 BeanUtils.copyProperties(menu, child, "children");
@@ -206,6 +240,9 @@
         }
         List<Integer> handledIds = new ArrayList<>();
         for (SystemMenu menu : menus) {
+            if(!Constants.equalsInteger(menu.getType(),Constants.ZERO)){
+                continue;
+            }
             if (parent.getId().equals(menu.getParentId())) {
                 SystemMenuNodeVO child = new SystemMenuNodeVO();
                 child.setId(menu.getId());
@@ -213,6 +250,8 @@
                 child.setUrl(menu.getPath());
                 child.setParams(menu.getParams());
                 child.setIcon(menu.getIcon());
+                child.setType(menu.getType());
+                child.setLinkType(menu.getLinkType());
                 child.setIndex("menu_" + menu.getId());
                 child.setChildren(new ArrayList<>());
                 parent.getChildren().add(child);

--
Gitblit v1.9.3