diff --git a/front/src/views/project/ShareConfig/index.vue b/front/src/views/project/ShareConfig/index.vue index 7619ee48bfebd91bdb270234b0b06c22bf6eb89e..4e5c528281930c51dc0e7e9a4942a0635600588f 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 170a6f304e77806a421aaf55cfc94eb48f8537b0..84fa953dde31ae33a8732f82a0bbe0f5b932bc48 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); + } + } + } + }