From ba33c6abf1709546333799a69db3759cc3f1f0bf Mon Sep 17 00:00:00 2001 From: gaoxq <376340421@qq.com> Date: Mon, 16 Feb 2026 22:30:48 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E6=96=87=E4=BB=B6=E7=9B=AE?= =?UTF-8?q?=E5=BD=95=E8=8E=B7=E5=8F=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../modules/biz/web/BizFoldersController.java | 40 ++++++++++--------- 1 file changed, 22 insertions(+), 18 deletions(-) diff --git a/web-api/src/main/java/com/jeesite/modules/biz/web/BizFoldersController.java b/web-api/src/main/java/com/jeesite/modules/biz/web/BizFoldersController.java index 0d463011..687a90e2 100644 --- a/web-api/src/main/java/com/jeesite/modules/biz/web/BizFoldersController.java +++ b/web-api/src/main/java/com/jeesite/modules/biz/web/BizFoldersController.java @@ -10,6 +10,8 @@ import java.util.stream.Collectors; import com.jeesite.modules.app.dao.file.FolderItem; import com.jeesite.modules.app.utils.MyUtils; import com.jeesite.modules.app.utils.vDate; +import com.jeesite.modules.sys.entity.User; +import com.jeesite.modules.sys.utils.UserUtils; import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletResponse; @@ -162,6 +164,7 @@ public class BizFoldersController extends BaseController { @RequestMapping(value = "foldersAll") @ResponseBody public List> foldersAll(BizFolders bizFolders) { + User user = UserUtils.getUser(); // 构建根节点 List> treeData = new ArrayList<>(); Map rootNode = new HashMap<>(); @@ -171,12 +174,13 @@ public class BizFoldersController extends BaseController { // 1. 一次性查询所有未删除的文件夹 BizFolders query = new BizFolders(); query.setIsDeleted(0); + query.setLoginCode(user.getLoginCode()); List allFolders = bizFoldersService.findList(query); // 2. 按parentId分组,构建映射Map Map> folderMap = allFolders.stream() .collect(Collectors.groupingBy(BizFolders::getParentId, Collectors.toList())); // 3. 递归构建树形结构的核心逻辑(内部递归方法) - Function>> buildTree = new Function>>() { + Function>> buildTree = new Function<>() { @Override public List> apply(String parentId) { List> nodeList = new ArrayList<>(); @@ -191,6 +195,7 @@ public class BizFoldersController extends BaseController { } return nodeList; } + // 辅助方法:根据folderId获取文件夹名称 private String getFolderNameById(Map> folderMap, String folderId) { for (List folders : folderMap.values()) { @@ -213,6 +218,7 @@ public class BizFoldersController extends BaseController { @RequestMapping(value = "treeData") @ResponseBody public List> treeFoldersData(BizFolders bizFolders) { + User user = UserUtils.getUser(); // 1. 构建根节点 List> treeData = new ArrayList<>(); Map rootNode = new HashMap<>(); @@ -222,30 +228,28 @@ public class BizFoldersController extends BaseController { // 2. 一次性查询所有未删除的文件夹(仅1次数据库查询) BizFolders query = new BizFolders(); query.setIsDeleted(0); + query.setLoginCode(user.getLoginCode()); List allFolders = bizFoldersService.findList(query); // 3. 按parentId分组,快速查找子节点 Map> folderMap = allFolders.stream() .collect(Collectors.groupingBy(BizFolders::getParentId, Collectors.toList())); final List>>> recursiveHolder = new ArrayList<>(); // 匿名内部类实现递归逻辑(BiFunction:入参parentId+level,出参节点列表) - java.util.function.BiFunction>> buildTree = new java.util.function.BiFunction>>() { - @Override - public List> apply(String parentId, Integer level) { - List> nodeList = new ArrayList<>(); - // 空值保护:获取当前父ID下的子文件夹 - List childFolders = folderMap.getOrDefault(parentId, new ArrayList<>()); - for (BizFolders folder : childFolders) { - // 原业务逻辑:四级节点特殊处理,其他传false - boolean flag = level == 4 ? "add".equals(bizFolders.getDescription()) : false; - Map node = MyUtils.convertToTreeNode(folder, flag); - // 递归调用自身(通过holder获取) - List> children = recursiveHolder.get(0).apply(folder.getFolderId(), level + 1); - // 无子节点时设为空列表(和原代码一致) - node.put("children", children.isEmpty() ? new ArrayList<>() : children); - nodeList.add(node); - } - return nodeList; + java.util.function.BiFunction>> buildTree = (parentId, level) -> { + List> nodeList = new ArrayList<>(); + // 空值保护:获取当前父ID下的子文件夹 + List childFolders = folderMap.getOrDefault(parentId, new ArrayList<>()); + for (BizFolders folder : childFolders) { + // 原业务逻辑:四级节点特殊处理,其他传false + boolean flag = level == 4 ? "add".equals(bizFolders.getDescription()) : false; + Map node = MyUtils.convertToTreeNode(folder, flag); + // 递归调用自身(通过holder获取) + List> children = recursiveHolder.get(0).apply(folder.getFolderId(), level + 1); + // 无子节点时设为空列表(和原代码一致) + node.put("children", children.isEmpty() ? new ArrayList<>() : children); + nodeList.add(node); } + return nodeList; }; // 将递归逻辑放入holder,供内部调用