From 0d8fbb4dea958a89e9406203cdcc56c8506051a9 Mon Sep 17 00:00:00 2001 From: gulongcheng <474084054@qq.com> Date: Fri, 6 Feb 2026 10:42:59 +0800 Subject: [PATCH] =?UTF-8?q?fix:getFileBaseInfo=20=E6=94=AF=E6=8C=81uuid?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../entity/req/data/GetFileBaseInfoReq.java | 3 +++ .../impl/MinioFileIDataFileServiceImpl.java | 27 +++++++++++++++++-- 2 files changed, 28 insertions(+), 2 deletions(-) diff --git a/common/src/main/java/com/sdm/common/entity/req/data/GetFileBaseInfoReq.java b/common/src/main/java/com/sdm/common/entity/req/data/GetFileBaseInfoReq.java index 9300a54f..934cb9c4 100644 --- a/common/src/main/java/com/sdm/common/entity/req/data/GetFileBaseInfoReq.java +++ b/common/src/main/java/com/sdm/common/entity/req/data/GetFileBaseInfoReq.java @@ -11,4 +11,7 @@ public class GetFileBaseInfoReq { @Schema(description = "文件id") private Long fileId; + + @Schema(description = "节点UUID") + private String uuid; } \ 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 1df14be0..734c122b 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 @@ -847,14 +847,37 @@ public class MinioFileIDataFileServiceImpl implements IDataFileService { @Override public SdmResponse getFileBaseInfo(GetFileBaseInfoReq req) { - FileMetadataInfo fileMetadataInfo = fileMetadataInfoService.lambdaQuery().eq(FileMetadataInfo::getId, req.getFileId()).one(); + // 参数校验:fileId 和 uuid 至少有一个不为空 + if (ObjectUtils.isEmpty(req.getFileId()) && ObjectUtils.isEmpty(req.getUuid())) { + return SdmResponse.failed("文件ID或UUID不能为空"); + } + + FileMetadataInfo fileMetadataInfo = null; + + // 优先通过 fileId 查询 + if (ObjectUtils.isNotEmpty(req.getFileId())) { + fileMetadataInfo = fileMetadataInfoService.lambdaQuery() + .eq(FileMetadataInfo::getId, req.getFileId()) + .one(); + } else if (ObjectUtils.isNotEmpty(req.getUuid())) { + fileMetadataInfo = fileMetadataInfoService.lambdaQuery() + .eq(FileMetadataInfo::getRelatedResourceUuid, req.getUuid()) + .one(); + } + + // 查询结果校验 if (fileMetadataInfo == null) { return SdmResponse.failed("文件不存在"); } + + // 封装返回结果 FileMetadataInfoResp fileMetadataInfoResp = new FileMetadataInfoResp(); BeanUtils.copyProperties(fileMetadataInfo, fileMetadataInfoResp); - fileMetadataInfoResp.setPermissionValue(fileUserPermissionService.getMergedPermission(fileMetadataInfo.getId(), ThreadLocalContext.getUserId())); + // 设置当前用户的综合权限位 + fileMetadataInfoResp.setPermissionValue( + fileUserPermissionService.getMergedPermission(fileMetadataInfo.getId(), ThreadLocalContext.getUserId()) + ); return SdmResponse.success(fileMetadataInfoResp); }