From ec6381a0ae27038077aee08677439f2998a813e8 Mon Sep 17 00:00:00 2001 From: caihaohan Date: Thu, 19 Sep 2024 14:42:54 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E8=B5=84=E6=96=99=E4=B8=AD=E5=BF=83?= =?UTF-8?q?=E4=BD=A0=E9=A1=B6=E5=B1=82=E7=9B=AE=E5=BD=95=E8=83=BD=E7=9C=8B?= =?UTF-8?q?=E5=88=B0=E5=AD=90=E9=9B=86=E7=9B=AE=E5=BD=95=E4=B8=AD=E7=9A=84?= =?UTF-8?q?=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/LawsDataCenterFileServiceImpl.java | 39 ++++++++++++++++++- 1 file changed, 38 insertions(+), 1 deletion(-) diff --git a/laws-modules/src/main/java/com/jero/modules/laws/dataCenter/service/impl/LawsDataCenterFileServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/laws/dataCenter/service/impl/LawsDataCenterFileServiceImpl.java index ed43098f..a539f0f0 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/dataCenter/service/impl/LawsDataCenterFileServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/dataCenter/service/impl/LawsDataCenterFileServiceImpl.java @@ -33,6 +33,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.*; +import java.util.stream.Collectors; /** @@ -79,7 +80,10 @@ public class LawsDataCenterFileServiceImpl extends ServiceImpl folderIdList = this.getAllChildFolderId(lawsDataCenterFile.getFolderId()); + folderIdList.add(lawsDataCenterFile.getFolderId()); + queryWrapper.in(StringUtils.isNotBlank(lawsDataCenterFile.getFolderId()), "folder_id", folderIdList); List adminRoleCodeList = Arrays.asList(adminRoleCode.split(",")); Collection intersection = CollectionUtils.intersection(Arrays.asList(CurrentUserUtil.getRoles().split(",")), adminRoleCodeList); String userId = CurrentUserUtil.getId(); @@ -109,6 +113,39 @@ public class LawsDataCenterFileServiceImpl extends ServiceImpl getAllChildFolderId(String folderId) { + List folderIdList = new java.util.ArrayList<>(); + + if (StringUtils.isBlank(folderId)){ + return folderIdList; + } + + // 获取所有parentId等于folderId的数据 + List folderList = lawsDataCenterFolderService.list(new QueryWrapper() + .eq("parent_id", folderId)); + + if (folderList != null) { + folderIdList.addAll(folderList.stream() + .map(LawsDataCenterFolder::getId) + .filter(Objects::nonNull) // 确保 ID 不为 null + .collect(Collectors.toList())); + } + + // 遍历子文件夹ID并递归调用,避免在迭代时修改集合 + List newFolderIds = new java.util.ArrayList<>(); // 用于存储新的子文件夹 ID + for (String f : folderIdList) { + List childFolderIds = getAllChildFolderId(f); + if (!childFolderIds.isEmpty()) { + newFolderIds.addAll(childFolderIds); + } + } + + // 在迭代完成后,再批量添加子文件夹 ID + folderIdList.addAll(newFolderIds); + + return folderIdList; + } + /** * 保存 *