diff --git a/data/src/main/java/com/sdm/data/service/DataStorageAnalysis.java b/data/src/main/java/com/sdm/data/service/DataStorageAnalysis.java index 91e3b3ec..c13629ce 100644 --- a/data/src/main/java/com/sdm/data/service/DataStorageAnalysis.java +++ b/data/src/main/java/com/sdm/data/service/DataStorageAnalysis.java @@ -43,4 +43,6 @@ public interface DataStorageAnalysis { SdmResponse batchUpdateUserQuota(List addUserQuota); + List getListBigFileId(QueryBigFileReq queryBigFileReq); + } diff --git a/data/src/main/java/com/sdm/data/service/impl/DataStorageAnalysisImpl.java b/data/src/main/java/com/sdm/data/service/impl/DataStorageAnalysisImpl.java index a2e16430..4e15acd6 100644 --- a/data/src/main/java/com/sdm/data/service/impl/DataStorageAnalysisImpl.java +++ b/data/src/main/java/com/sdm/data/service/impl/DataStorageAnalysisImpl.java @@ -10,9 +10,9 @@ import com.sdm.common.entity.req.system.UserQueryReq; import com.sdm.common.entity.resp.AllNodeByProjectIdAndTypeResp; import com.sdm.common.entity.resp.PageDataResp; import com.sdm.common.entity.resp.system.CIDUserResp; -import com.sdm.common.utils.FileSizeUtils; import com.sdm.common.feign.impl.project.SimulationNodeFeignClientImpl; import com.sdm.common.feign.impl.system.SysUserFeignClientImpl; +import com.sdm.common.utils.FileSizeUtils; import com.sdm.common.utils.PageUtils; import com.sdm.data.model.dto.NodeSizeDTO; import com.sdm.data.model.dto.UserTotalFileSizeDTO; @@ -272,4 +272,31 @@ public class DataStorageAnalysisImpl implements DataStorageAnalysis { fileStorageQuotaService.saveBatch(fileStorageQuotas); return SdmResponse.success(); } + + /* + * 根据条件查询文件存储表的文件id + * */ + @Override + public List getListBigFileId(QueryBigFileReq queryBigFileReq) { + // 将前端传入的 fileSize 和 fileSizeUnit 转换为字节(B) + Long fileSizeInBytes = null; + if (queryBigFileReq.getFileSize() != null && queryBigFileReq.getFileSizeUnit() != null) { + fileSizeInBytes = convertToBytes(queryBigFileReq.getFileSize(), queryBigFileReq.getFileSizeUnit()); + } + List fileIds = fileStorageService.lambdaQuery() + .select(FileStorage::getFileId) + .eq(ObjectUtils.isNotEmpty(queryBigFileReq.getDirId()), FileStorage::getDirId, queryBigFileReq.getDirId()) + .eq(ObjectUtils.isNotEmpty(queryBigFileReq.getFileSuffix()), FileStorage::getFileSuffix, queryBigFileReq.getFileSuffix()) + .eq(ObjectUtils.isNotEmpty(queryBigFileReq.getFileBizType()), FileStorage::getFileBizType, queryBigFileReq.getFileBizType()) + .like(ObjectUtils.isNotEmpty(queryBigFileReq.getFileName()), FileStorage::getFileName, queryBigFileReq.getFileName()) + .gt(ObjectUtils.isNotEmpty(queryBigFileReq.getStartTime()), FileStorage::getCreateTime, queryBigFileReq.getStartTime()) + .lt(ObjectUtils.isNotEmpty(queryBigFileReq.getEndTime()), FileStorage::getCreateTime, queryBigFileReq.getEndTime()) + .gt(ObjectUtils.isNotEmpty(fileSizeInBytes), FileStorage::getFileSize, fileSizeInBytes) + .list().stream() + .map(FileStorage::getFileId) + .collect(Collectors.toList()); + return fileIds ; + } + + } \ No newline at end of file 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 9fa3b1fa..7a8ba0d2 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 @@ -638,33 +638,20 @@ public class MinioFileIDataFileServiceImpl implements IDataFileService { } BeanUtils.copyProperties(minioFileSearchReq, queryBigFileReq); - - SdmResponse>> searchResult = dataStorageAnalysis.listBigFile(queryBigFileReq); - PageDataResp> pageDataResp = searchResult.getData(); - List data = pageDataResp.getData(); - if(CollectionUtils.isEmpty(data)) { - return SdmResponse.success(); - } - List fileIdList = data.stream().map(FileStorage::getFileId).toList(); - - + List fileIdList =dataStorageAnalysis.getListBigFileId(queryBigFileReq); + PageHelper.startPage(minioFileSearchReq.getCurrent(), minioFileSearchReq.getSize()); List files = fileMetadataInfoService .lambdaQuery() .in(FileMetadataInfo::getId, fileIdList) .eq(FileMetadataInfo::getIsLatest, FileIsLastEnum.YES.getValue()) - // 这里是知识库文件只展示已经审批通过的文件 + // 这里是知识库文件:排除新增在审批的文件 .in(FileMetadataInfo::getApproveType,fileDatdList) .list(); setCreatorNames(files); setCidInfos(files); setProjectName(files); setAnalysisDirectionName(files); - PageDataResp> page = new PageDataResp<>(); - page.setData(files); - page.setTotal(pageDataResp.getTotal()); - page.setCurrentPage(pageDataResp.getCurrentPage()); - page.setPageSize(pageDataResp.getPageSize()); - // 使用分页查询 + PageInfo page = new PageInfo<>(files); return SdmResponse.success(page); }