diff --git a/basic-pojo/src/main/java/ink/wgink/pojo/dtos/file/FileUploadSuccessDTO.java b/basic-pojo/src/main/java/ink/wgink/pojo/dtos/file/FileUploadSuccessDTO.java new file mode 100644 index 00000000..6f136b4c --- /dev/null +++ b/basic-pojo/src/main/java/ink/wgink/pojo/dtos/file/FileUploadSuccessDTO.java @@ -0,0 +1,61 @@ +package ink.wgink.pojo.dtos.file; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; + +import java.io.Serializable; + +/** + * @Description: 文件上传成功 + * @Author: WenG + * @Date: 2022/4/22 7:09 + * @Version: 1.0 + **/ +@ApiModel +public class FileUploadSuccessDTO implements Serializable { + + private static final long serialVersionUID = 396257753407239500L; + @ApiModelProperty(name = "fileId", value = "文件ID") + private String fileId; + @ApiModelProperty(name = "fileName", value = "文件名") + private String fileName; + @ApiModelProperty(name = "fileSize", value = "文件大小") + private long fileSize; + + public FileUploadSuccessDTO() { + } + + public FileUploadSuccessDTO(String fileId) { + this.fileId = fileId; + } + + public FileUploadSuccessDTO(String fileId, String fileName, long fileSize) { + this.fileId = fileId; + this.fileName = fileName; + this.fileSize = fileSize; + } + + public String getFileId() { + return fileId; + } + + public void setFileId(String fileId) { + this.fileId = fileId; + } + + public String getFileName() { + return fileName; + } + + public void setFileName(String fileName) { + this.fileName = fileName; + } + + public long getFileSize() { + return fileSize; + } + + public void setFileSize(long fileSize) { + this.fileSize = fileSize; + } +} diff --git a/module-file-media/src/main/java/ink/wgink/module/file/media/controller/api/video/VideoController.java b/module-file-media/src/main/java/ink/wgink/module/file/media/controller/api/video/VideoController.java index 23c66a55..a08f89f3 100644 --- a/module-file-media/src/main/java/ink/wgink/module/file/media/controller/api/video/VideoController.java +++ b/module-file-media/src/main/java/ink/wgink/module/file/media/controller/api/video/VideoController.java @@ -4,6 +4,7 @@ import ink.wgink.common.base.DefaultBaseController; import ink.wgink.exceptions.PropertiesException; import ink.wgink.interfaces.consts.ISystemConstant; import ink.wgink.module.file.media.pojo.dtos.video.VideoDTO; +import ink.wgink.module.file.media.pojo.dtos.video.VideoUploadSuccessDTO; import ink.wgink.module.file.media.service.video.IVideoService; import ink.wgink.pojo.ListPage; import ink.wgink.pojo.result.ErrorResult; @@ -21,7 +22,6 @@ import org.springframework.web.servlet.mvc.method.annotation.SseEmitter; import java.util.Arrays; import java.util.List; import java.util.Map; -import java.util.concurrent.Callable; /** * When you feel like quitting. Think about why you started @@ -46,14 +46,14 @@ public class VideoController extends DefaultBaseController { @ApiOperation(value = "上传视频", notes = "上传视频接口") @ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)}) @PostMapping("upload") - public Callable> upload(@RequestParam("video") MultipartFile video) { + public SuccessResultData upload(@RequestParam("video") MultipartFile video) { if (StringUtils.isBlank(mediaProperties.getUploadPath())) { throw new PropertiesException("未设置文件上传路径"); } if (StringUtils.isBlank(mediaProperties.getFfmpegPath())) { throw new PropertiesException("未设置解码器路径"); } - return () -> new SuccessResultData<>(videoService.upload(video)); + return new SuccessResultData<>(videoService.upload(video)); } @ApiOperation(value = "删除文件类别(id列表)", notes = "删除文件类别(id列表)接口") diff --git a/module-file-media/src/main/java/ink/wgink/module/file/media/manager/MediaManager.java b/module-file-media/src/main/java/ink/wgink/module/file/media/manager/MediaManager.java index d5e60793..36e39522 100644 --- a/module-file-media/src/main/java/ink/wgink/module/file/media/manager/MediaManager.java +++ b/module-file-media/src/main/java/ink/wgink/module/file/media/manager/MediaManager.java @@ -603,8 +603,6 @@ public class MediaManager { return null; } - VideoMetaInfo videoInfo = new VideoMetaInfo(); - String parseResult = getMetaInfoFromFFmpeg(videoFile); Matcher durationMacher = durationPattern.matcher(parseResult); diff --git a/module-file-media/src/main/java/ink/wgink/module/file/media/pojo/dtos/video/VideoUploadSuccessDTO.java b/module-file-media/src/main/java/ink/wgink/module/file/media/pojo/dtos/video/VideoUploadSuccessDTO.java new file mode 100644 index 00000000..e74067be --- /dev/null +++ b/module-file-media/src/main/java/ink/wgink/module/file/media/pojo/dtos/video/VideoUploadSuccessDTO.java @@ -0,0 +1,25 @@ +package ink.wgink.module.file.media.pojo.dtos.video; + +import ink.wgink.pojo.dtos.file.FileUploadSuccessDTO; +import io.swagger.annotations.ApiModel; + +/** + * @Description: 视频上传成功 + * @Author: WenG + * @Date: 2022/4/22 7:09 + * @Version: 1.0 + **/ +@ApiModel +public class VideoUploadSuccessDTO extends FileUploadSuccessDTO { + + public VideoUploadSuccessDTO() { + } + + public VideoUploadSuccessDTO(String fileId) { + super(fileId); + } + + public VideoUploadSuccessDTO(String fileId, String fileName, long fileSize) { + super(fileId, fileName, fileSize); + } +} diff --git a/module-file-media/src/main/java/ink/wgink/module/file/media/service/video/IVideoService.java b/module-file-media/src/main/java/ink/wgink/module/file/media/service/video/IVideoService.java index 7eff26b1..77ebe514 100644 --- a/module-file-media/src/main/java/ink/wgink/module/file/media/service/video/IVideoService.java +++ b/module-file-media/src/main/java/ink/wgink/module/file/media/service/video/IVideoService.java @@ -1,8 +1,7 @@ package ink.wgink.module.file.media.service.video; -import ink.wgink.exceptions.SearchException; -import ink.wgink.module.file.media.pojo.dtos.ConvertProgressDTO; import ink.wgink.module.file.media.pojo.dtos.video.VideoDTO; +import ink.wgink.module.file.media.pojo.dtos.video.VideoUploadSuccessDTO; import ink.wgink.module.file.media.pojo.vos.video.VideoVO; import ink.wgink.pojo.ListPage; import ink.wgink.pojo.result.SuccessResultList; @@ -12,7 +11,6 @@ import org.springframework.web.servlet.mvc.method.annotation.SseEmitter; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.File; -import java.io.IOException; import java.util.List; import java.util.Map; @@ -36,7 +34,7 @@ public interface IVideoService { * @param videoVO * @return */ - String save(VideoVO videoVO); + VideoUploadSuccessDTO save(VideoVO videoVO); /** * 保存 @@ -45,7 +43,7 @@ public interface IVideoService { * @param videoVO * @return */ - String save(String token, VideoVO videoVO); + VideoUploadSuccessDTO save(String token, VideoVO videoVO); /** * 删除 @@ -82,7 +80,7 @@ public interface IVideoService { * @param video * @return */ - String upload(MultipartFile video); + VideoUploadSuccessDTO upload(MultipartFile video); /** * 上传视频 @@ -91,7 +89,7 @@ public interface IVideoService { * @param video * @return */ - String upload(String token, MultipartFile video); + VideoUploadSuccessDTO upload(String token, MultipartFile video); /** * 转换进度列表 diff --git a/module-file-media/src/main/java/ink/wgink/module/file/media/service/video/impl/VideoServiceImpl.java b/module-file-media/src/main/java/ink/wgink/module/file/media/service/video/impl/VideoServiceImpl.java index 0d3cec38..f1550a10 100644 --- a/module-file-media/src/main/java/ink/wgink/module/file/media/service/video/impl/VideoServiceImpl.java +++ b/module-file-media/src/main/java/ink/wgink/module/file/media/service/video/impl/VideoServiceImpl.java @@ -10,15 +10,14 @@ import ink.wgink.module.file.media.enums.ConvertStatusEnum; import ink.wgink.module.file.media.manager.MediaManager; import ink.wgink.module.file.media.manager.domain.MusicMetaInfo; import ink.wgink.module.file.media.manager.domain.VideoMetaInfo; -import ink.wgink.module.file.media.pojo.dtos.ConvertProgressDTO; import ink.wgink.module.file.media.pojo.dtos.video.VideoDTO; +import ink.wgink.module.file.media.pojo.dtos.video.VideoUploadSuccessDTO; import ink.wgink.module.file.media.pojo.vos.video.VideoVO; import ink.wgink.module.file.media.service.IMediaService; import ink.wgink.module.file.media.service.video.IVideoService; import ink.wgink.module.file.media.task.transcoding.VideoConvertManager; import ink.wgink.module.file.media.task.transcoding.runnable.VideoConvertRunnable; import ink.wgink.pojo.ListPage; -import ink.wgink.pojo.pos.FilePO; import ink.wgink.pojo.result.SuccessResultList; import ink.wgink.properties.media.MediaProperties; import ink.wgink.util.UUIDUtil; @@ -26,8 +25,6 @@ import ink.wgink.util.date.DateUtil; import ink.wgink.util.map.HashMapUtil; import org.apache.catalina.connector.ClientAbortException; import org.apache.commons.lang3.StringUtils; -import org.joda.time.DateTime; -import org.joda.time.DateTimeZone; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.stereotype.Service; @@ -44,8 +41,6 @@ import java.net.URLEncoder; import java.nio.channels.Channels; import java.nio.channels.FileChannel; import java.nio.channels.WritableByteChannel; -import java.util.ArrayList; -import java.util.Arrays; import java.util.List; import java.util.Map; @@ -70,12 +65,12 @@ public class VideoServiceImpl extends DefaultBaseService implements IVideoServic private IVideoDao videoDao; @Override - public String save(VideoVO videoVO) { + public VideoUploadSuccessDTO save(VideoVO videoVO) { return save(null, videoVO); } @Override - public String save(String token, VideoVO videoVO) { + public VideoUploadSuccessDTO save(String token, VideoVO videoVO) { String fileId = UUIDUtil.getUUID(); Map params = HashMapUtil.beanToMap(videoVO); params.put("fileId", fileId); @@ -85,7 +80,8 @@ public class VideoServiceImpl extends DefaultBaseService implements IVideoServic setAppSaveInfo(token, params); } videoDao.save(params); - return fileId; + + return new VideoUploadSuccessDTO(params.get("fileId").toString(), params.get("fileName").toString(), Long.parseLong(params.get("fileSize").toString())); } @Override @@ -163,12 +159,12 @@ public class VideoServiceImpl extends DefaultBaseService implements IVideoServic } @Override - public String upload(MultipartFile video) { + public VideoUploadSuccessDTO upload(MultipartFile video) { return upload(null, video); } @Override - public String upload(String token, MultipartFile video) { + public VideoUploadSuccessDTO upload(String token, MultipartFile video) { String filePath = VIDEO_PATH + File.separator + DateUtil.getDays(); String uploadFolderPath = mediaProperties.getUploadPath() + File.separator + filePath; String fileName = video.getOriginalFilename(); @@ -183,7 +179,7 @@ public class VideoServiceImpl extends DefaultBaseService implements IVideoServic if (videoDTO != null) { LOG.error("上传的【{}】视频已经存在,原文件为【{}】,返回原文件ID", videoDTO.getFileName(), videoDTO.getFileName()); uploadFile.delete(); - return videoDTO.getFileId(); + return new VideoUploadSuccessDTO(videoDTO.getFileId()); } // 构建视频内容