|
@@ -11,20 +11,14 @@ import com.persagy.dmp.common.exception.BusinessException;
|
|
import com.persagy.dmp.common.lang.PsDate;
|
|
import com.persagy.dmp.common.lang.PsDate;
|
|
import com.persagy.dmp.common.lang.PsDateTime;
|
|
import com.persagy.dmp.common.lang.PsDateTime;
|
|
import com.persagy.dmp.file.constant.UploadCodeEnum;
|
|
import com.persagy.dmp.file.constant.UploadCodeEnum;
|
|
-import com.persagy.dmp.file.domain.FileRequestData;
|
|
|
|
-import com.persagy.dmp.file.domain.UploadMes;
|
|
|
|
-import com.persagy.dmp.file.domain.UploadSubMes;
|
|
|
|
-import com.persagy.dmp.file.model.FileInfo;
|
|
|
|
-import com.persagy.dmp.file.model.FileInfoCreator;
|
|
|
|
-import com.persagy.dmp.file.model.FileMd5;
|
|
|
|
-import com.persagy.dmp.file.model.FileMd5Creator;
|
|
|
|
|
|
+import com.persagy.dmp.file.model.*;
|
|
import com.persagy.dmp.file.service.FileMd5Service;
|
|
import com.persagy.dmp.file.service.FileMd5Service;
|
|
import com.persagy.dmp.file.service.IFileService;
|
|
import com.persagy.dmp.file.service.IFileService;
|
|
import com.persagy.dmp.file.dao.FileMapper;
|
|
import com.persagy.dmp.file.dao.FileMapper;
|
|
import com.persagy.dmp.common.constant.ValidEnum;
|
|
import com.persagy.dmp.common.constant.ValidEnum;
|
|
-import com.persagy.dmp.storage.constant.FileCommonConst;
|
|
|
|
-import com.persagy.dmp.storage.service.FileStorageFactory;
|
|
|
|
-import com.persagy.dmp.storage.service.IFileStorageService;
|
|
|
|
|
|
+import com.persagy.dmp.file.constant.FileCommonConst;
|
|
|
|
+import com.persagy.dmp.file.service.FileStorageFactory;
|
|
|
|
+import com.persagy.dmp.file.service.IFileStorageService;
|
|
import lombok.RequiredArgsConstructor;
|
|
import lombok.RequiredArgsConstructor;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
@@ -111,7 +105,7 @@ public class FileServiceImpl extends ServiceImpl<FileMapper, FileInfo> implement
|
|
&& FileCommonConst.UPLOAD_SUCCESS.equals(fileMd5.getUploadStatus())){
|
|
&& FileCommonConst.UPLOAD_SUCCESS.equals(fileMd5.getUploadStatus())){
|
|
// 秒传
|
|
// 秒传
|
|
return secondTransmission(requestData.getFileName(),requestData.getGroupCode(),
|
|
return secondTransmission(requestData.getFileName(),requestData.getGroupCode(),
|
|
- requestData.getBusinessId(),requestData.getExpireDate(),fileMd5.getFileMd5());
|
|
|
|
|
|
+ requestData.getBusinessId(),requestData.getExpireDate(),fileMd5.getFileMd5(),requestData.getFileId());
|
|
}
|
|
}
|
|
// 3.历史已上传且已上传分片
|
|
// 3.历史已上传且已上传分片
|
|
if (ObjectUtil.isNotNull(fileMd5)){
|
|
if (ObjectUtil.isNotNull(fileMd5)){
|
|
@@ -148,7 +142,6 @@ public class FileServiceImpl extends ServiceImpl<FileMapper, FileInfo> implement
|
|
return firstInitChunkUploadInternal(requestData);
|
|
return firstInitChunkUploadInternal(requestData);
|
|
}
|
|
}
|
|
|
|
|
|
-
|
|
|
|
/***
|
|
/***
|
|
* Description: 合并断点续传的文件
|
|
* Description: 合并断点续传的文件
|
|
* @param requestData : 请求参数
|
|
* @param requestData : 请求参数
|
|
@@ -176,7 +169,7 @@ public class FileServiceImpl extends ServiceImpl<FileMapper, FileInfo> implement
|
|
requestData.getBusinessId(),fileMd5.getFileMd5(),requestData.getExpireDate());
|
|
requestData.getBusinessId(),fileMd5.getFileMd5(),requestData.getExpireDate());
|
|
fileInfo.setCreator(AppContext.getContext().getAccountId());
|
|
fileInfo.setCreator(AppContext.getContext().getAccountId());
|
|
// 4.计算文件上传路径
|
|
// 4.计算文件上传路径
|
|
- fileMd5Service.ensureFilePath(fileMd5,fileInfo.getFileName(),requestData.getGroupCode());
|
|
|
|
|
|
+ fileMd5Service.ensureFilePath(fileMd5,fileInfo.getFileName());
|
|
// 5.合并文件
|
|
// 5.合并文件
|
|
if(service.composeObject(requestData.getFileBucket(),chunks,fileMd5.getFilePath())){
|
|
if(service.composeObject(requestData.getFileBucket(),chunks,fileMd5.getFilePath())){
|
|
fileMd5.setUploadStatus(FileCommonConst.UPLOAD_SUCCESS);
|
|
fileMd5.setUploadStatus(FileCommonConst.UPLOAD_SUCCESS);
|
|
@@ -212,18 +205,19 @@ public class FileServiceImpl extends ServiceImpl<FileMapper, FileInfo> implement
|
|
&& FileCommonConst.UPLOAD_SUCCESS.equals(fileMd5.getUploadStatus())){
|
|
&& FileCommonConst.UPLOAD_SUCCESS.equals(fileMd5.getUploadStatus())){
|
|
// 秒传
|
|
// 秒传
|
|
return secondTransmission(requestData.getFileName(),requestData.getGroupCode(),
|
|
return secondTransmission(requestData.getFileName(),requestData.getGroupCode(),
|
|
- requestData.getBusinessId(),requestData.getExpireDate(),fileMd5.getFileMd5());
|
|
|
|
|
|
+ requestData.getBusinessId(),requestData.getExpireDate(),fileMd5.getFileMd5(),requestData.getFileId());
|
|
}
|
|
}
|
|
FileInfo fileInfo = FileInfoCreator
|
|
FileInfo fileInfo = FileInfoCreator
|
|
.of(requestData.getGroupCode(), requestData.getFileName(), requestData.getBusinessId(),
|
|
.of(requestData.getGroupCode(), requestData.getFileName(), requestData.getBusinessId(),
|
|
requestData.getFileMd5(),requestData.getExpireDate());
|
|
requestData.getFileMd5(),requestData.getExpireDate());
|
|
fileInfo.setCreator(AppContext.getContext().getAccountId());
|
|
fileInfo.setCreator(AppContext.getContext().getAccountId());
|
|
|
|
+ fileInfo.setId(requestData.getFileId());
|
|
fileMd5 = FileMd5Creator.of(requestData.getFileBucket(), requestData.getFileMd5(), FileCommonConst.UPLOAD_SUCCESS);
|
|
fileMd5 = FileMd5Creator.of(requestData.getFileBucket(), requestData.getFileMd5(), FileCommonConst.UPLOAD_SUCCESS);
|
|
fileMd5.setFileSize(requestData.getFileSize());
|
|
fileMd5.setFileSize(requestData.getFileSize());
|
|
fileMd5.setCreationTime(new PsDateTime());
|
|
fileMd5.setCreationTime(new PsDateTime());
|
|
- fileMd5Service.ensureFilePath(fileMd5,requestData.getFileName(),requestData.getGroupCode());
|
|
|
|
|
|
+ fileMd5Service.ensureFilePath(fileMd5,requestData.getFileName());
|
|
String uploadUrl = service.createUploadUrl(fileMd5.getFileBucket(), fileMd5.getFilePath());
|
|
String uploadUrl = service.createUploadUrl(fileMd5.getFileBucket(), fileMd5.getFilePath());
|
|
- this.save(fileInfo);
|
|
|
|
|
|
+ this.saveOrUpdate(fileInfo);
|
|
fileMd5Service.save(fileMd5);
|
|
fileMd5Service.save(fileMd5);
|
|
UploadMes uploadMes = new UploadMes();
|
|
UploadMes uploadMes = new UploadMes();
|
|
uploadMes.setId(fileInfo.getId());
|
|
uploadMes.setId(fileInfo.getId());
|
|
@@ -280,12 +274,15 @@ public class FileServiceImpl extends ServiceImpl<FileMapper, FileInfo> implement
|
|
* Update By lijie 2021/10/22 10:03
|
|
* Update By lijie 2021/10/22 10:03
|
|
*/
|
|
*/
|
|
private UploadMes secondTransmission(String fileName, String groupCode,
|
|
private UploadMes secondTransmission(String fileName, String groupCode,
|
|
- String businessId, PsDate expireDate,String fileMd5) {
|
|
|
|
|
|
+ String businessId, PsDate expireDate,String fileMd5,String fileId) {
|
|
// 1.生成文件信息并返回
|
|
// 1.生成文件信息并返回
|
|
FileInfo fileInfo = FileInfoCreator.of(groupCode,fileName,businessId,fileMd5,expireDate);
|
|
FileInfo fileInfo = FileInfoCreator.of(groupCode,fileName,businessId,fileMd5,expireDate);
|
|
fileInfo.setCreator(AppContext.getContext().getAccountId());
|
|
fileInfo.setCreator(AppContext.getContext().getAccountId());
|
|
|
|
+ if (StrUtil.isNotBlank(fileId)){
|
|
|
|
+ fileInfo.setId(fileId);
|
|
|
|
+ }
|
|
// 2.保存文件信息
|
|
// 2.保存文件信息
|
|
- this.save(fileInfo);
|
|
|
|
|
|
+ this.saveOrUpdate(fileInfo);
|
|
// 3.组装上传信息
|
|
// 3.组装上传信息
|
|
UploadMes uploadMes = new UploadMes();
|
|
UploadMes uploadMes = new UploadMes();
|
|
uploadMes.setId(fileInfo.getId());
|
|
uploadMes.setId(fileInfo.getId());
|