fix:文件更新需要支持分片上传,新增2个接口

This commit is contained in:
2026-04-16 16:40:31 +08:00
parent e17627938c
commit bdbd01f7a9
2 changed files with 21 additions and 3 deletions

View File

@@ -5,6 +5,8 @@ import lombok.Data;
import jakarta.validation.constraints.NotNull;
import java.util.List;
/**
* 大文件分片更新 - 第三步回调请求参数。
* 前端在所有分片上传完成(或失败)后调用,通知后端执行最终的版本更新或回滚。
@@ -17,10 +19,15 @@ public class UpdateFileCallbackReq {
@Schema(description = "待更新的文件id与第一步传入的 fileId 一致example: 123456")
private Long fileId;
@NotNull(message = "uploadTaskId不能为空")
@Schema(description = "分片上传是否全部成功true=成功 false=失败")
private Boolean success;
@Schema(description = "上传任务id第一步返回example: 1713250000000")
private String uploadTaskId;
@Schema(description = "分片上传是否全部成功true=成功 false=失败")
private Boolean success;
// 接口5.1 返回的这个文件成功文件的id集合
private List<Long> succBusinessIds;
// 接口5.1 返回的这个文件失败文件的id集合
private List<Long> failBusinessIds;
}

View File

@@ -3413,6 +3413,17 @@ public class MinioFileIDataFileServiceImpl implements IDataFileService {
@Override
@Transactional(rollbackFor = Exception.class)
public SdmResponse updateFileCallback(UpdateFileCallbackReq req) {
if(CollectionUtils.isNotEmpty(req.getFailBusinessIds())){
req.setFileId(req.getFailBusinessIds().get(0));
req.setSuccess(false);
}else if(CollectionUtils.isNotEmpty(req.getSuccBusinessIds())){
req.setFileId(req.getFailBusinessIds().get(0));
req.setSuccess(true);
}else {
return SdmResponse.failed("请指定待更新的文件");
}
// 1. 查询文件与暂存的 tempMetadata
FileMetadataInfo fileMetadataInfo = fileMetadataInfoService.lambdaQuery()
.eq(FileMetadataInfo::getId, req.getFileId())