feat: 资料中心你顶层目录能看到子集目录中的文件

This commit is contained in:
2024-09-19 14:43:03 +08:00
parent 9ff09af213
commit ec6381a0ae
@@ -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<LawsDataCenterFil
queryWrapper.between("create_time",
DateUtil.getDateSecond(timeArr[0]), DateUtil.getDateSecond(timeArr[1]));
}
queryWrapper.eq(StringUtils.isNotBlank(lawsDataCenterFile.getFolderId()), "folder_id", lawsDataCenterFile.getFolderId());
// 找到所有子集文件夹Id
List<String> folderIdList = this.getAllChildFolderId(lawsDataCenterFile.getFolderId());
folderIdList.add(lawsDataCenterFile.getFolderId());
queryWrapper.in(StringUtils.isNotBlank(lawsDataCenterFile.getFolderId()), "folder_id", folderIdList);
List<String> adminRoleCodeList = Arrays.asList(adminRoleCode.split(","));
Collection<String> intersection = CollectionUtils.intersection(Arrays.asList(CurrentUserUtil.getRoles().split(",")), adminRoleCodeList);
String userId = CurrentUserUtil.getId();
@@ -109,6 +113,39 @@ public class LawsDataCenterFileServiceImpl extends ServiceImpl<LawsDataCenterFil
return result;
}
private List<String> getAllChildFolderId(String folderId) {
List<String> folderIdList = new java.util.ArrayList<>();
if (StringUtils.isBlank(folderId)){
return folderIdList;
}
// 获取所有parentId等于folderId的数据
List<LawsDataCenterFolder> folderList = lawsDataCenterFolderService.list(new QueryWrapper<LawsDataCenterFolder>()
.eq("parent_id", folderId));
if (folderList != null) {
folderIdList.addAll(folderList.stream()
.map(LawsDataCenterFolder::getId)
.filter(Objects::nonNull) // 确保 ID 不为 null
.collect(Collectors.toList()));
}
// 遍历子文件夹ID并递归调用,避免在迭代时修改集合
List<String> newFolderIds = new java.util.ArrayList<>(); // 用于存储新的子文件夹 ID
for (String f : folderIdList) {
List<String> childFolderIds = getAllChildFolderId(f);
if (!childFolderIds.isEmpty()) {
newFolderIds.addAll(childFolderIds);
}
}
// 在迭代完成后,再批量添加子文件夹 ID
folderIdList.addAll(newFolderIds);
return folderIdList;
}
/**
* 保存
*