修改媒体视频上传返回结果

This commit is contained in:
WenG 2022-04-22 08:42:12 +08:00
parent ebdeaba324
commit e0f5cab373
6 changed files with 102 additions and 24 deletions

View File

@ -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;
}
}

View File

@ -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<SuccessResultData<String>> upload(@RequestParam("video") MultipartFile video) {
public SuccessResultData<VideoUploadSuccessDTO> 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列表)接口")

View File

@ -603,8 +603,6 @@ public class MediaManager {
return null;
}
VideoMetaInfo videoInfo = new VideoMetaInfo();
String parseResult = getMetaInfoFromFFmpeg(videoFile);
Matcher durationMacher = durationPattern.matcher(parseResult);

View File

@ -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);
}
}

View File

@ -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);
/**
* 转换进度列表

View File

@ -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<String, Object> 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());
}
// 构建视频内容