新增release上传接口
This commit is contained in:
parent
f9e3ddafd9
commit
d27caef780
@ -52,6 +52,18 @@ public class FileAppController extends DefaultBaseController {
|
||||
return asyncUploadSingle(token, file, UploadTypeEnum.FILE, params);
|
||||
}
|
||||
|
||||
@ApiOperation(value = "上传文件", notes = "上传文件接口")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "userId", value = "userId", paramType = "path"),
|
||||
@ApiImplicitParam(name = "file", value = "文件name", paramType = "query")
|
||||
})
|
||||
@ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)})
|
||||
@PostMapping("upload-file-release/{userId}")
|
||||
public Callable<SuccessResultData<String>> uploadFileByUserId(@PathVariable("userId") String userId, @RequestParam("file") MultipartFile file) {
|
||||
Map<String, Object> params = requestParams();
|
||||
return asyncUploadSingleByUserId(userId, file, UploadTypeEnum.FILE, params);
|
||||
}
|
||||
|
||||
@ApiOperation(value = "上传图片", notes = "上传图片接口")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "token", value = "token", paramType = "header"),
|
||||
@ -64,6 +76,18 @@ public class FileAppController extends DefaultBaseController {
|
||||
return asyncUploadSingle(token, image, UploadTypeEnum.IMAGE, params);
|
||||
}
|
||||
|
||||
@ApiOperation(value = "上传图片", notes = "上传图片接口")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "userId", value = "userId", paramType = "path"),
|
||||
@ApiImplicitParam(name = "image", value = "文件name", paramType = "query")
|
||||
})
|
||||
@ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)})
|
||||
@PostMapping("upload-image-release/{userId}")
|
||||
public Callable<SuccessResultData<String>> uploadImageByUserId(@PathVariable("userId") String userId, @RequestParam("image") MultipartFile image) {
|
||||
Map<String, Object> params = requestParams();
|
||||
return asyncUploadSingleByUserId(userId, image, UploadTypeEnum.IMAGE, params);
|
||||
}
|
||||
|
||||
@ApiOperation(value = "上传视频", notes = "上传视频接口")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "token", value = "token", paramType = "header"),
|
||||
@ -79,6 +103,21 @@ public class FileAppController extends DefaultBaseController {
|
||||
return asyncUploadSingle(token, video, UploadTypeEnum.VIDEO, params);
|
||||
}
|
||||
|
||||
@ApiOperation(value = "上传视频", notes = "上传视频接口")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "userId", value = "userId", paramType = "path"),
|
||||
@ApiImplicitParam(name = "video", value = "文件video", paramType = "query")
|
||||
})
|
||||
@ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)})
|
||||
@PostMapping("upload-video-release/{userId}")
|
||||
public Callable<SuccessResultData<String>> uploadVideoByUserId(@PathVariable("userId") String userId, @RequestParam("video") MultipartFile video) {
|
||||
if (fileProperties.getMediaMaxDuration() != null && fileProperties.getMediaMaxDuration().getApp() != null) {
|
||||
fileService.checkVideoDurationAllow(video, fileProperties.getMediaMaxDuration().getApp().getVideo());
|
||||
}
|
||||
Map<String, Object> params = requestParams();
|
||||
return asyncUploadSingleByUserId(userId, video, UploadTypeEnum.VIDEO, params);
|
||||
}
|
||||
|
||||
@ApiOperation(value = "上传音频", notes = "上传音频接口")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "token", value = "token", paramType = "header"),
|
||||
@ -94,6 +133,21 @@ public class FileAppController extends DefaultBaseController {
|
||||
return asyncUploadSingle(token, audio, UploadTypeEnum.AUDIO, params);
|
||||
}
|
||||
|
||||
@ApiOperation(value = "上传音频", notes = "上传音频接口")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "userId", value = "userId", paramType = "path"),
|
||||
@ApiImplicitParam(name = "audio", value = "文件audio", paramType = "query")
|
||||
})
|
||||
@ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)})
|
||||
@PostMapping("upload-audio-release/{userId}")
|
||||
public Callable<SuccessResultData<String>> uploadAudioByUserId(@PathVariable("userId") String userId, @RequestParam("audio") MultipartFile audio) {
|
||||
if (fileProperties.getMediaMaxDuration() != null && fileProperties.getMediaMaxDuration().getApp() != null) {
|
||||
fileService.checkAudioDurationAllow(audio, fileProperties.getMediaMaxDuration().getApp().getAudio());
|
||||
}
|
||||
Map<String, Object> params = requestParams();
|
||||
return asyncUploadSingleByUserId(userId, audio, UploadTypeEnum.AUDIO, params);
|
||||
}
|
||||
|
||||
@ApiOperation(value = "上传图片", notes = "上传图片接口")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "image", value = "文件name", paramType = "query")
|
||||
@ -111,6 +165,17 @@ public class FileAppController extends DefaultBaseController {
|
||||
})
|
||||
@ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)})
|
||||
@GetMapping("list")
|
||||
public List<FileDTO> list(@RequestHeader("token") String token, @RequestParam("ids") String ids) {
|
||||
List<String> idList = Arrays.asList(ids.split(","));
|
||||
return fileService.list(idList);
|
||||
}
|
||||
|
||||
@ApiOperation(value = "文件列表", notes = "文件列表接口")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "ids", value = "id列表,逗号分隔", paramType = "query")
|
||||
})
|
||||
@ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)})
|
||||
@GetMapping("list-release")
|
||||
public List<FileDTO> list(@RequestParam("ids") String ids) {
|
||||
List<String> idList = Arrays.asList(ids.split(","));
|
||||
return fileService.list(idList);
|
||||
@ -127,4 +192,15 @@ public class FileAppController extends DefaultBaseController {
|
||||
return () -> new SuccessResultData<>(fileService.uploadSingle(token, uploadFile, uploadTypeEnum, params));
|
||||
}
|
||||
|
||||
/**
|
||||
* 上传文件
|
||||
*
|
||||
* @param uploadFile
|
||||
* @param params
|
||||
* @return
|
||||
*/
|
||||
private Callable<SuccessResultData<String>> asyncUploadSingleByUserId(String userId, MultipartFile uploadFile, UploadTypeEnum uploadTypeEnum, Map<String, Object> params) {
|
||||
return () -> new SuccessResultData<>(fileService.uploadSingleByUserId(userId, uploadFile, uploadTypeEnum, params));
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -31,6 +31,16 @@ public interface IDefaultFileService {
|
||||
*/
|
||||
void uploadFile(String token, MultipartFile uploadFile, UploadTypeEnum uploadTypeEnum, Map<String, Object> params) throws SystemException;
|
||||
|
||||
/**
|
||||
* 文件上传
|
||||
*
|
||||
* @param userId 用户ID
|
||||
* @param uploadFile
|
||||
* @param uploadTypeEnum
|
||||
* @param params
|
||||
*/
|
||||
void uploadFileByUserId(String userId, MultipartFile uploadFile, UploadTypeEnum uploadTypeEnum, Map<String, Object> params);
|
||||
|
||||
/**
|
||||
* 物理删除文件
|
||||
*
|
||||
@ -50,6 +60,19 @@ public interface IDefaultFileService {
|
||||
*/
|
||||
void saveUploadFileInfo(String token, String fileName, String uploadPath, String uploadFileName, String fileType, long fileSize, Map<String, Object> params);
|
||||
|
||||
/**
|
||||
* 保存文件信息
|
||||
*
|
||||
* @param userId
|
||||
* @param fileName
|
||||
* @param uploadPath
|
||||
* @param uploadFileName
|
||||
* @param fileType
|
||||
* @param fileSize
|
||||
* @param params
|
||||
*/
|
||||
void saveUploadFileInfoByUserId(String userId, String fileName, String uploadPath, String uploadFileName, String fileType, long fileSize, Map<String, Object> params);
|
||||
|
||||
/**
|
||||
* 获取上传文件路径
|
||||
*
|
||||
@ -81,4 +104,5 @@ public interface IDefaultFileService {
|
||||
* @param canRange
|
||||
*/
|
||||
void downLoadFile(HttpServletRequest request, HttpServletResponse response, FilePO filePO, boolean isOpen, boolean canRange);
|
||||
|
||||
}
|
||||
|
@ -152,6 +152,17 @@ public interface IFileService {
|
||||
*/
|
||||
String uploadSingle(String token, MultipartFile uploadFile, UploadTypeEnum uploadTypeEnum, Map<String, Object> params);
|
||||
|
||||
/**
|
||||
* 文件上传
|
||||
*
|
||||
* @param userId
|
||||
* @param uploadFile
|
||||
* @param uploadTypeEnum
|
||||
* @param params
|
||||
* @return
|
||||
*/
|
||||
String uploadSingleByUserId(String userId, MultipartFile uploadFile, UploadTypeEnum uploadTypeEnum, Map<String, Object> params);
|
||||
|
||||
/**
|
||||
* 文件上传
|
||||
*
|
||||
|
@ -34,7 +34,17 @@ public interface IMinIoFileService {
|
||||
* @param params
|
||||
*/
|
||||
void uploadFile(String token, MultipartFile uploadFile, UploadTypeEnum uploadTypeEnum, Map<String, Object> params);
|
||||
|
||||
|
||||
/**
|
||||
* 文件上传
|
||||
*
|
||||
* @param userId 用户ID
|
||||
* @param uploadFile
|
||||
* @param uploadTypeEnum
|
||||
* @param params
|
||||
*/
|
||||
void uploadFileByUserId(String userId, MultipartFile uploadFile, UploadTypeEnum uploadTypeEnum, Map<String, Object> params);
|
||||
|
||||
/**
|
||||
* 下载文件
|
||||
*
|
||||
|
@ -67,6 +67,24 @@ public class DefaultFileServiceImpl extends DefaultBaseService implements IDefau
|
||||
*/
|
||||
@Override
|
||||
public void uploadFile(String token, MultipartFile uploadFile, UploadTypeEnum uploadTypeEnum, Map<String, Object> params) throws SystemException {
|
||||
uploadFile(token, uploadFile, uploadTypeEnum, params, false);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void uploadFileByUserId(String userId, MultipartFile uploadFile, UploadTypeEnum uploadTypeEnum, Map<String, Object> params) {
|
||||
uploadFile(userId, uploadFile, uploadTypeEnum, params, true);
|
||||
}
|
||||
|
||||
/**
|
||||
* 上传文件
|
||||
*
|
||||
* @param tokenOrUserId
|
||||
* @param uploadFile
|
||||
* @param uploadTypeEnum
|
||||
* @param params
|
||||
* @param useUserId
|
||||
*/
|
||||
private void uploadFile(String tokenOrUserId, MultipartFile uploadFile, UploadTypeEnum uploadTypeEnum, Map<String, Object> params, boolean useUserId) {
|
||||
String baseUploadPath = fileProperties.getUploadPath();
|
||||
if (StringUtils.isBlank(baseUploadPath)) {
|
||||
throw new SystemException("上传路径未配置");
|
||||
@ -96,11 +114,19 @@ public class DefaultFileServiceImpl extends DefaultBaseService implements IDefau
|
||||
params.clear();
|
||||
FileInfoDTO fileInfoDTO = fileInfoDTOs.get(0);
|
||||
params.put("fileSummary", "REF:" + fileInfoDTO.getFileId());
|
||||
saveFile(token, params, fileInfoDTO.getFileName(), fileInfoDTO.getFilePath(), fileInfoDTO.getFileUrl(), fileInfoDTO.getFileType(), fileInfoDTO.getFileSize());
|
||||
if (useUserId) {
|
||||
saveFileByUserId(tokenOrUserId, params, fileInfoDTO.getFileName(), fileInfoDTO.getFilePath(), fileInfoDTO.getFileUrl(), fileInfoDTO.getFileType(), fileInfoDTO.getFileSize());
|
||||
} else {
|
||||
saveFile(tokenOrUserId, params, fileInfoDTO.getFileName(), fileInfoDTO.getFilePath(), fileInfoDTO.getFileUrl(), fileInfoDTO.getFileType(), fileInfoDTO.getFileSize());
|
||||
}
|
||||
return;
|
||||
}
|
||||
params.put("fileSummary", "MD5:" + fileMd5);
|
||||
saveUploadFileInfo(token, fileName, uploadPath, uploadFileName, fileType, fileSize, params);
|
||||
if (useUserId) {
|
||||
saveUploadFileInfoByUserId(tokenOrUserId, fileName, uploadPath, uploadFileName, fileType, fileSize, params);
|
||||
} else {
|
||||
saveUploadFileInfo(tokenOrUserId, fileName, uploadPath, uploadFileName, fileType, fileSize, params);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -180,13 +206,7 @@ public class DefaultFileServiceImpl extends DefaultBaseService implements IDefau
|
||||
* @param fileSize 文件大小
|
||||
*/
|
||||
private void saveFile(String token, Map<String, Object> params, String fileName, String fileFullPath, String fileUrl, String fileType, long fileSize) {
|
||||
params.put("fileId", UUIDUtil.getUUID());
|
||||
params.put("fileName", fileName);
|
||||
params.put("filePath", fileFullPath);
|
||||
params.put("fileUrl", fileUrl);
|
||||
params.put("fileType", fileType);
|
||||
params.put("fileSize", fileSize);
|
||||
params.put("isBack", 0);
|
||||
setFileParams(params, fileName, fileFullPath, fileUrl, fileType, fileSize);
|
||||
if (StringUtils.isBlank(token)) {
|
||||
setSaveInfo(params);
|
||||
} else {
|
||||
@ -195,8 +215,44 @@ public class DefaultFileServiceImpl extends DefaultBaseService implements IDefau
|
||||
fileDao.save(params);
|
||||
}
|
||||
|
||||
/**
|
||||
* 保存文件
|
||||
*
|
||||
* @param userId
|
||||
* @param params
|
||||
* @param fileName
|
||||
* @param fileFullPath
|
||||
* @param fileUrl
|
||||
* @param fileType
|
||||
* @param fileSize
|
||||
*/
|
||||
private void saveFileByUserId(String userId, Map<String, Object> params, String fileName, String fileFullPath, String fileUrl, String fileType, long fileSize) {
|
||||
setFileParams(params, fileName, fileFullPath, fileUrl, fileType, fileSize);
|
||||
setSaveInfoByUserId(params, userId);
|
||||
fileDao.save(params);
|
||||
}
|
||||
|
||||
private void setFileParams(Map<String, Object> params, String fileName, String fileFullPath, String fileUrl, String fileType, long fileSize) {
|
||||
params.put("fileId", UUIDUtil.getUUID());
|
||||
params.put("fileName", fileName);
|
||||
params.put("filePath", fileFullPath);
|
||||
params.put("fileUrl", fileUrl);
|
||||
params.put("fileType", fileType);
|
||||
params.put("fileSize", fileSize);
|
||||
params.put("isBack", 0);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void saveUploadFileInfo(String token, String fileName, String uploadPath, String uploadFileName, String fileType, long fileSize, Map<String, Object> params) {
|
||||
saveUploadFileInfo(token, fileName, uploadPath, uploadFileName, fileType, fileSize, params, false);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void saveUploadFileInfoByUserId(String userId, String fileName, String uploadPath, String uploadFileName, String fileType, long fileSize, Map<String, Object> params) {
|
||||
saveUploadFileInfo(userId, fileName, uploadPath, uploadFileName, fileType, fileSize, params, true);
|
||||
}
|
||||
|
||||
private void saveUploadFileInfo(String tokenOrUserId, String fileName, String uploadPath, String uploadFileName, String fileType, long fileSize, Map<String, Object> params, boolean useUserId) {
|
||||
String fixPath = uploadPath.replace(fileProperties.getUploadPath(), "");
|
||||
if ("\\".equals(File.separator)) {
|
||||
fixPath = fixPath.replace("\\", "/");
|
||||
@ -211,7 +267,11 @@ public class DefaultFileServiceImpl extends DefaultBaseService implements IDefau
|
||||
File photo = new File(fileFullPath);
|
||||
fileSize = photo.length();
|
||||
}
|
||||
saveFile(token, params, fileName, fileFullPath, String.format("files/%s/%s", fixPath, uploadFileName), fileType, fileSize);
|
||||
if (useUserId) {
|
||||
saveFileByUserId(tokenOrUserId, params, fileName, fileFullPath, String.format("files/%s/%s", fixPath, uploadFileName), fileType, fileSize);
|
||||
} else {
|
||||
saveFile(tokenOrUserId, params, fileName, fileFullPath, String.format("files/%s/%s", fixPath, uploadFileName), fileType, fileSize);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -122,6 +122,12 @@ public class FileServiceImpl extends DefaultBaseService implements IFileService
|
||||
return params.get("fileId").toString();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String uploadSingleByUserId(String userId, MultipartFile uploadFile, UploadTypeEnum uploadTypeEnum, Map<String, Object> params) {
|
||||
uploadFileByUserId(userId, uploadFile, uploadTypeEnum, params);
|
||||
return params.get("fileId").toString();
|
||||
}
|
||||
|
||||
@Override
|
||||
public FileDTO uploadSingleForFileDTO(String token, MultipartFile uploadFile, UploadTypeEnum uploadTypeEnum, Map<String, Object> params) throws SystemException {
|
||||
uploadFile(token, uploadFile, uploadTypeEnum, params);
|
||||
@ -150,6 +156,23 @@ public class FileServiceImpl extends DefaultBaseService implements IFileService
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 上传文件
|
||||
*
|
||||
* @param userId
|
||||
* @param uploadFile
|
||||
* @param uploadTypeEnum
|
||||
* @param params
|
||||
* @throws SystemException
|
||||
*/
|
||||
private void uploadFileByUserId(String userId, MultipartFile uploadFile, UploadTypeEnum uploadTypeEnum, Map<String, Object> params) throws SystemException {
|
||||
if (fileProperties.getUseMinIo()) {
|
||||
minIoFileService.uploadFileByUserId(userId, uploadFile, uploadTypeEnum, params);
|
||||
} else {
|
||||
defaultFileService.uploadFileByUserId(userId, uploadFile, uploadTypeEnum, params);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void uploadErrorExcelFileInfo(String fileName, String uploadPath, long fileSize, Map<String, Object> params) {
|
||||
defaultFileService.saveUploadFileInfo(null, fileName, uploadPath, fileName, "xls", fileSize, params);
|
||||
|
@ -68,6 +68,24 @@ public class MinIoFileServiceImpl extends DefaultBaseService implements IMinIoFi
|
||||
|
||||
@Override
|
||||
public void uploadFile(String token, MultipartFile uploadFile, UploadTypeEnum uploadTypeEnum, Map<String, Object> params) {
|
||||
uploadFile(token, uploadFile, uploadTypeEnum, params, false);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void uploadFileByUserId(String userId, MultipartFile uploadFile, UploadTypeEnum uploadTypeEnum, Map<String, Object> params) {
|
||||
uploadFile(userId, uploadFile, uploadTypeEnum, params, true);
|
||||
}
|
||||
|
||||
/**
|
||||
* 上传文件
|
||||
*
|
||||
* @param tokenOrUserId
|
||||
* @param uploadFile
|
||||
* @param uploadTypeEnum
|
||||
* @param params
|
||||
* @param useUserId 是否使用外来userId
|
||||
*/
|
||||
private void uploadFile(String tokenOrUserId, MultipartFile uploadFile, UploadTypeEnum uploadTypeEnum, Map<String, Object> params, boolean useUserId) {
|
||||
String fileId = UUIDUtil.getUUID();
|
||||
params.put("fileId", fileId);
|
||||
|
||||
@ -80,7 +98,11 @@ public class MinIoFileServiceImpl extends DefaultBaseService implements IMinIoFi
|
||||
String bucketName = getBucketName(uploadTypeEnum);
|
||||
// 上传文件
|
||||
upload(uploadFileName, fileSize, bucketName, uploadFile);
|
||||
saveFile(token, fileId, fileName, fileType, fileSize, bucketName);
|
||||
if (useUserId) {
|
||||
saveFileByUserId(tokenOrUserId, fileId, fileName, fileType, fileSize, bucketName);
|
||||
} else {
|
||||
saveFile(tokenOrUserId, fileId, fileName, fileType, fileSize, bucketName);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -187,6 +209,32 @@ public class MinIoFileServiceImpl extends DefaultBaseService implements IMinIoFi
|
||||
* @param bucketName 桶名称
|
||||
*/
|
||||
private void saveFile(String token, String fileId, String fileName, String fileType, long fileSize, String bucketName) {
|
||||
Map<String, Object> params = getFileParams(fileId, fileName, fileType, fileSize, bucketName);
|
||||
if (StringUtils.isBlank(token)) {
|
||||
setSaveInfo(params);
|
||||
} else {
|
||||
setAppSaveInfo(token, params);
|
||||
}
|
||||
fileDao.save(params);
|
||||
}
|
||||
|
||||
/**
|
||||
* 保存用户
|
||||
*
|
||||
* @param userId 用户ID
|
||||
* @param fileId
|
||||
* @param fileName
|
||||
* @param fileType
|
||||
* @param fileSize
|
||||
* @param bucketName
|
||||
*/
|
||||
private void saveFileByUserId(String userId, String fileId, String fileName, String fileType, long fileSize, String bucketName) {
|
||||
Map<String, Object> params = getFileParams(fileId, fileName, fileType, fileSize, bucketName);
|
||||
setSaveInfoByUserId(params, userId);
|
||||
fileDao.save(params);
|
||||
}
|
||||
|
||||
private Map<String, Object> getFileParams(String fileId, String fileName, String fileType, long fileSize, String bucketName) {
|
||||
Map<String, Object> params = getHashMap(2);
|
||||
params.put("fileId", fileId);
|
||||
params.put("fileName", fileName);
|
||||
@ -196,12 +244,7 @@ public class MinIoFileServiceImpl extends DefaultBaseService implements IMinIoFi
|
||||
params.put("fileSize", fileSize);
|
||||
params.put("fileSummary", "minio");
|
||||
params.put("isBack", 1);
|
||||
if (StringUtils.isBlank(token)) {
|
||||
setSaveInfo(params);
|
||||
} else {
|
||||
setAppSaveInfo(token, params);
|
||||
}
|
||||
fileDao.save(params);
|
||||
return params;
|
||||
}
|
||||
|
||||
/**
|
||||
|
Loading…
Reference in New Issue
Block a user