From 110301c5387413ff07ec94b484a83146941e98e9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=9A=8B=E9=B9=A4?= Date: Fri, 25 Aug 2023 04:53:12 +0000 Subject: [PATCH] =?UTF-8?q?fix:=20=E5=89=8D=E7=AB=AF=E5=A4=9A=E5=B1=82?= =?UTF-8?q?=E7=9B=AE=E5=BD=95=E8=BF=BD=E5=8A=A0=E5=AD=90=E7=9B=AE=E5=BD=95?= =?UTF-8?q?=EF=BC=8C=E5=90=8E=E7=AB=AF=E6=9F=A5=E8=AF=A2=E5=AD=90=E7=9B=AE?= =?UTF-8?q?=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 隋鹤 --- front/src/views/project/ShareConfig/index.vue | 2 +- .../web/controller/share/ShareController.java | 18 ++++++++++++++++-- 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/front/src/views/project/ShareConfig/index.vue b/front/src/views/project/ShareConfig/index.vue index 7619ee48..4e5c5282 100644 --- a/front/src/views/project/ShareConfig/index.vue +++ b/front/src/views/project/ShareConfig/index.vue @@ -338,7 +338,7 @@ export default { const children = node.children || [] if (children.length > 0) { for (const child of children) { - append(child, isShareFolder) + append(child, child.isShareFolder) } } } diff --git a/server/server-web/src/main/java/cn/torna/web/controller/share/ShareController.java b/server/server-web/src/main/java/cn/torna/web/controller/share/ShareController.java index 170a6f30..84fa953d 100644 --- a/server/server-web/src/main/java/cn/torna/web/controller/share/ShareController.java +++ b/server/server-web/src/main/java/cn/torna/web/controller/share/ShareController.java @@ -134,11 +134,25 @@ public class ShareController { if (BooleanUtils.toBoolean(shareContent.getIsShareFolder())) { Query query = new Query() .eq("parent_id", shareContent.getDocId()); - List childIdList = docInfoService.listId(query); - idList.addAll(childIdList); + List childIdList = docInfoService.list(query); + idList.addAll(childIdList.stream().map(DocInfo::getId).collect(Collectors.toList())); + // 递归获取子文件夹下的文件内容 + addChildFoldersAndFiles(idList, childIdList.stream().filter(doc->doc.getIsFolder().equals(Booleans.TRUE)).map(DocInfo::getId).collect(Collectors.toList())); } } return idList; } + + private void addChildFoldersAndFiles(List idList, List childIdList) { + for (Long childId : childIdList) { + Query query = new Query().eq("parent_id", childId); + List grandChildIdList = docInfoService.listId(query); + if (!grandChildIdList.isEmpty()) { + idList.addAll(grandChildIdList); + addChildFoldersAndFiles(idList, grandChildIdList); + } + } + } + } -- Gitee