diff --git a/common/src/main/java/com/sdm/common/entity/resp/data/FileMetadataInfoResp.java b/common/src/main/java/com/sdm/common/entity/resp/data/FileMetadataInfoResp.java index 54e8d221..42b91659 100644 --- a/common/src/main/java/com/sdm/common/entity/resp/data/FileMetadataInfoResp.java +++ b/common/src/main/java/com/sdm/common/entity/resp/data/FileMetadataInfoResp.java @@ -119,6 +119,9 @@ public class FileMetadataInfoResp extends BaseResp implements Serializable { @Schema(description = "权限值") private Integer permissionValue; + @Schema(description = "知识库名称") + private String knowledgeBaseName; + private String approvalStatus; private String approveType; private String tempMetadata; diff --git a/data/src/main/java/com/sdm/data/controller/DataFileController.java b/data/src/main/java/com/sdm/data/controller/DataFileController.java index 72c345f0..5a875f4b 100644 --- a/data/src/main/java/com/sdm/data/controller/DataFileController.java +++ b/data/src/main/java/com/sdm/data/controller/DataFileController.java @@ -85,6 +85,14 @@ public class DataFileController implements IDataFeignClient { return IDataFileService.approveDataFile(req); } + //判断是否为空文件夹 + @GetMapping("/isDirEmpty") + @Operation(summary = "判断是否为空文件夹", description = "根据请求参数判断指定文件夹是否为空") + public SdmResponse isDirEmpty(@RequestParam("dirId") Long dirId) { + return IDataFileService.isDirEmpty(dirId); + } + + /** * 删除文件夹 * diff --git a/data/src/main/java/com/sdm/data/service/IDataFileService.java b/data/src/main/java/com/sdm/data/service/IDataFileService.java index 3eb7d1b9..4c42dfda 100644 --- a/data/src/main/java/com/sdm/data/service/IDataFileService.java +++ b/data/src/main/java/com/sdm/data/service/IDataFileService.java @@ -40,6 +40,10 @@ public interface IDataFileService { return null; } + default SdmResponse isDirEmpty(Long dirId) { + return null; + } + /** * 删除目录 * @param req 删除目录请求参数 diff --git a/data/src/main/java/com/sdm/data/service/impl/MinioFileIDataFileServiceImpl.java b/data/src/main/java/com/sdm/data/service/impl/MinioFileIDataFileServiceImpl.java index e96ca5e4..6435eb48 100644 --- a/data/src/main/java/com/sdm/data/service/impl/MinioFileIDataFileServiceImpl.java +++ b/data/src/main/java/com/sdm/data/service/impl/MinioFileIDataFileServiceImpl.java @@ -494,6 +494,13 @@ public class MinioFileIDataFileServiceImpl implements IDataFileService { } } + @Override + public SdmResponse isDirEmpty(Long dirId) { + return SdmResponse.success(fileMetadataInfoService.lambdaQuery() + .eq(FileMetadataInfo::getParentId, dirId) + .exists()); + } + @Override @Transactional(rollbackFor = Exception.class) public SdmResponse delDir(DelDirReq req) { @@ -655,7 +662,6 @@ public class MinioFileIDataFileServiceImpl implements IDataFileService { // 文件夹 FileMetadataInfo dirMetadataInfo = fileMetadataInfoService.lambdaQuery().eq(FileMetadataInfo::getId, deleteFileMetadataInfo.getParentId()).eq(FileMetadataInfo::getDataType, DataTypeEnum.DIRECTORY.getValue()).one(); - String deleteFileMinioObejctKey = deleteFileMetadataInfo.getObjectKey(); /*boolean hasDeletePermission = fileUserPermissionService.hasFilePermission(deleteFileMetadataInfo.getId(), ThreadLocalContext.getUserId(), FilePermissionEnum.DELETE); if (!hasDeletePermission) { @@ -782,6 +788,7 @@ public class MinioFileIDataFileServiceImpl implements IDataFileService { //计算当前用户对该文件的综合权限位 // 对于列表查询,如果层级很深,频繁递归会有性能问题。 dto.setPermissionValue(fileUserPermissionService.getMergedPermission(dto.getId(), ThreadLocalContext.getUserId())); + dto.setKnowledgeBaseName(extractRelativePath(fileMetadataInfoService.lambdaQuery().eq(FileMetadataInfo::getId, dto.getParentId()).one())); return dto; }).collect(Collectors.toList()); PageDataResp> pageDataResp = searchResult.getData(); @@ -851,6 +858,8 @@ public class MinioFileIDataFileServiceImpl implements IDataFileService { setSimulationPoolAndTaskInfo(list); PageInfo page = new PageInfo<>(list); long total = page.getTotal(); + FileMetadataInfo dirMetadataInfo = fileMetadataInfoService.lambdaQuery().eq(FileMetadataInfo::getId, parentId).one(); + String knowledgeBaseName = extractRelativePath(dirMetadataInfo); List dtoList = list.stream().map(entity -> { FileMetadataInfoResp dto = new FileMetadataInfoResp(); BeanUtils.copyProperties(entity, dto); @@ -858,6 +867,7 @@ public class MinioFileIDataFileServiceImpl implements IDataFileService { //计算当前用户对该文件的综合权限位 // 对于列表查询,如果层级很深,频繁递归会有性能问题。 dto.setPermissionValue(fileUserPermissionService.getMergedPermission(entity.getId(), ThreadLocalContext.getUserId())); + dto.setKnowledgeBaseName(knowledgeBaseName); return dto; }).collect(Collectors.toList()); PageInfo page1 = new PageInfo<>(dtoList);