|
@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
import com.qiwenshare.common.util.DateUtil;
|
|
import com.qiwenshare.common.util.DateUtil;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
+import org.springframework.transaction.annotation.Transactional;
|
|
|
import vip.xiaonuo.auth.core.util.StpLoginUserUtil;
|
|
import vip.xiaonuo.auth.core.util.StpLoginUserUtil;
|
|
|
import vip.xiaonuo.common.pojo.CommonResult;
|
|
import vip.xiaonuo.common.pojo.CommonResult;
|
|
|
import vip.xiaonuo.disk.domain.FileBean;
|
|
import vip.xiaonuo.disk.domain.FileBean;
|
|
@@ -44,6 +45,7 @@ public class TranscodingServiceImpl implements TranscodingService {
|
|
|
private OfficeConverter officeConverter;
|
|
private OfficeConverter officeConverter;
|
|
|
|
|
|
|
|
@Override
|
|
@Override
|
|
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
public CommonResult<String> transcodingVideo(TranscodingReqDTO transcodingReqDTO) {
|
|
public CommonResult<String> transcodingVideo(TranscodingReqDTO transcodingReqDTO) {
|
|
|
// 校验目标文件是否存在,是否是本人的
|
|
// 校验目标文件是否存在,是否是本人的
|
|
|
String userId = StpLoginUserUtil.getLoginUser().getId();
|
|
String userId = StpLoginUserUtil.getLoginUser().getId();
|
|
@@ -67,79 +69,61 @@ public class TranscodingServiceImpl implements TranscodingService {
|
|
|
// mp4 wmv avi flv mpeg mpg rmvb mov 互相转
|
|
// mp4 wmv avi flv mpeg mpg rmvb mov 互相转
|
|
|
videoConverter.convertAndUpload(fileBean.getFileUrl(), fileBean.getFileId(), new String[]{transcodingReqDTO.getFormat()});
|
|
videoConverter.convertAndUpload(fileBean.getFileUrl(), fileBean.getFileId(), new String[]{transcodingReqDTO.getFormat()});
|
|
|
// 转换后把文件信息新增到数据库
|
|
// 转换后把文件信息新增到数据库
|
|
|
- FileBean newFile = new FileBean();
|
|
|
|
|
- newFile.setFileId(IdUtil.simpleUUID());
|
|
|
|
|
- newFile.setFileUrl("converted/" + fileBean.getFileId() + "." + transcodingReqDTO.getFormat());
|
|
|
|
|
- newFile.setCreateUserId(userId);
|
|
|
|
|
- newFile.setFileSize(videoConverter.getConverterFileSize("converted/" + fileBean.getFileId() + "." + transcodingReqDTO.getFormat()));
|
|
|
|
|
- newFile.setFileStatus(1);
|
|
|
|
|
- newFile.setIdentifier(fileBean.getIdentifier());
|
|
|
|
|
- newFile.setStorageType(3);
|
|
|
|
|
- newFile.setCreateTime(DateUtil.getCurrentTime());
|
|
|
|
|
- fileMapper.insert(newFile);
|
|
|
|
|
- UserFile newUserFile = new UserFile();
|
|
|
|
|
- newUserFile.setUserFileId(IdUtil.simpleUUID());
|
|
|
|
|
- newUserFile.setCreateUserId(userId);
|
|
|
|
|
- newUserFile.setDeleteFlag(0);
|
|
|
|
|
- newUserFile.setExtendName(transcodingReqDTO.getFormat());
|
|
|
|
|
- newUserFile.setFileId(newFile.getFileId());
|
|
|
|
|
- newUserFile.setFileName(userFile.getFileName());
|
|
|
|
|
- newUserFile.setFilePath(userFile.getFilePath());
|
|
|
|
|
- newUserFile.setIsDir(userFile.getIsDir());
|
|
|
|
|
- newUserFile.setUserId(userId);
|
|
|
|
|
- newUserFile.setCreateTime(DateUtil.getCurrentTime());
|
|
|
|
|
- newUserFile.setUploadTime(DateUtil.getCurrentTime());
|
|
|
|
|
- userFileMapper.insert(newUserFile);
|
|
|
|
|
|
|
+ saveFile(userFile, fileBean, userId, transcodingReqDTO);
|
|
|
} catch (Exception ex) {
|
|
} catch (Exception ex) {
|
|
|
log.error(ex.getMessage());
|
|
log.error(ex.getMessage());
|
|
|
|
|
+ return CommonResult.error("格式转换失败");
|
|
|
}
|
|
}
|
|
|
} else if (transcodingReqDTO.getTranscodingType() == 1) {
|
|
} else if (transcodingReqDTO.getTranscodingType() == 1) {
|
|
|
// 转码文档
|
|
// 转码文档
|
|
|
// pdf doc docx ppt pptx xls xlsx
|
|
// pdf doc docx ppt pptx xls xlsx
|
|
|
// doc转docx,ppt转pptx,xls转xlsx 所有均转pdf
|
|
// doc转docx,ppt转pptx,xls转xlsx 所有均转pdf
|
|
|
// 判断目标格式
|
|
// 判断目标格式
|
|
|
- if ("pdf".equals(transcodingReqDTO.getFormat())) {
|
|
|
|
|
- try {
|
|
|
|
|
|
|
+ try {
|
|
|
|
|
+ if ("pdf".equals(transcodingReqDTO.getFormat())) {
|
|
|
pdfUtils.convertToPdf(fileBean.getFileUrl(), fileBean.getFileId() + "." + transcodingReqDTO.getFormat());
|
|
pdfUtils.convertToPdf(fileBean.getFileUrl(), fileBean.getFileId() + "." + transcodingReqDTO.getFormat());
|
|
|
- } catch (Exception ex) {
|
|
|
|
|
- log.error("PDF格式转换:"+ex.getMessage());
|
|
|
|
|
- }
|
|
|
|
|
- } else {
|
|
|
|
|
- try {
|
|
|
|
|
|
|
+ } else {
|
|
|
officeConverter.convertAndUpload(fileBean.getFileUrl(), fileBean.getFileId() + "." + transcodingReqDTO.getFormat());
|
|
officeConverter.convertAndUpload(fileBean.getFileUrl(), fileBean.getFileId() + "." + transcodingReqDTO.getFormat());
|
|
|
- } catch (Exception ex) {
|
|
|
|
|
- log.error("非PDF格式转换:"+ex.getMessage());
|
|
|
|
|
}
|
|
}
|
|
|
|
|
+ // 转换后把文件信息新增到数据库
|
|
|
|
|
+ saveFile(userFile, fileBean, userId, transcodingReqDTO);
|
|
|
|
|
+ } catch (Exception ex) {
|
|
|
|
|
+ log.error("格式转换:"+ex.getMessage());
|
|
|
|
|
+ return CommonResult.error("格式转换失败");
|
|
|
}
|
|
}
|
|
|
- // 转换后把文件信息新增到数据库
|
|
|
|
|
- FileBean newFile = new FileBean();
|
|
|
|
|
- newFile.setFileId(IdUtil.simpleUUID());
|
|
|
|
|
- newFile.setFileUrl("converted/" + fileBean.getFileId() + "." + transcodingReqDTO.getFormat());
|
|
|
|
|
- newFile.setCreateUserId(userId);
|
|
|
|
|
- newFile.setFileSize(videoConverter.getConverterFileSize("converted/" + fileBean.getFileId() + "." + transcodingReqDTO.getFormat()));
|
|
|
|
|
- newFile.setFileStatus(1);
|
|
|
|
|
- newFile.setIdentifier(fileBean.getIdentifier());
|
|
|
|
|
- newFile.setStorageType(3);
|
|
|
|
|
- newFile.setCreateTime(DateUtil.getCurrentTime());
|
|
|
|
|
- fileMapper.insert(newFile);
|
|
|
|
|
- UserFile newUserFile = new UserFile();
|
|
|
|
|
- newUserFile.setUserFileId(IdUtil.simpleUUID());
|
|
|
|
|
- newUserFile.setCreateUserId(userId);
|
|
|
|
|
- newUserFile.setDeleteFlag(0);
|
|
|
|
|
- newUserFile.setExtendName(transcodingReqDTO.getFormat());
|
|
|
|
|
- newUserFile.setFileId(newFile.getFileId());
|
|
|
|
|
- newUserFile.setFileName(userFile.getFileName());
|
|
|
|
|
- newUserFile.setFilePath(userFile.getFilePath());
|
|
|
|
|
- newUserFile.setIsDir(userFile.getIsDir());
|
|
|
|
|
- newUserFile.setUserId(userId);
|
|
|
|
|
- newUserFile.setCreateTime(DateUtil.getCurrentTime());
|
|
|
|
|
- newUserFile.setUploadTime(DateUtil.getCurrentTime());
|
|
|
|
|
- userFileMapper.insert(newUserFile);
|
|
|
|
|
}
|
|
}
|
|
|
- return null;
|
|
|
|
|
|
|
+ return CommonResult.ok("格式转换成功");
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 封装参数,存储进数据库
|
|
|
|
|
+ */
|
|
|
|
|
+ public void saveFile(UserFile userFile, FileBean fileBean, String userId, TranscodingReqDTO transcodingReqDTO) {
|
|
|
|
|
+ FileBean newFile = new FileBean();
|
|
|
|
|
+ newFile.setFileId(IdUtil.simpleUUID());
|
|
|
|
|
+ newFile.setFileUrl("converted/" + fileBean.getFileId() + "." + transcodingReqDTO.getFormat());
|
|
|
|
|
+ newFile.setCreateUserId(userId);
|
|
|
|
|
+ newFile.setFileSize(videoConverter.getConverterFileSize("converted/" + fileBean.getFileId() + "." + transcodingReqDTO.getFormat()));
|
|
|
|
|
+ newFile.setFileStatus(1);
|
|
|
|
|
+ newFile.setIdentifier(fileBean.getIdentifier());
|
|
|
|
|
+ newFile.setStorageType(3);
|
|
|
|
|
+ newFile.setCreateTime(DateUtil.getCurrentTime());
|
|
|
|
|
+ fileMapper.insert(newFile);
|
|
|
|
|
+ UserFile newUserFile = new UserFile();
|
|
|
|
|
+ newUserFile.setUserFileId(IdUtil.simpleUUID());
|
|
|
|
|
+ newUserFile.setCreateUserId(userId);
|
|
|
|
|
+ newUserFile.setDeleteFlag(0);
|
|
|
|
|
+ newUserFile.setExtendName(transcodingReqDTO.getFormat());
|
|
|
|
|
+ newUserFile.setFileId(newFile.getFileId());
|
|
|
|
|
+ newUserFile.setFileName(userFile.getFileName());
|
|
|
|
|
+ newUserFile.setFilePath(userFile.getFilePath());
|
|
|
|
|
+ newUserFile.setIsDir(userFile.getIsDir());
|
|
|
|
|
+ newUserFile.setUserId(userId);
|
|
|
|
|
+ newUserFile.setCreateTime(DateUtil.getCurrentTime());
|
|
|
|
|
+ newUserFile.setUploadTime(DateUtil.getCurrentTime());
|
|
|
|
|
+ userFileMapper.insert(newUserFile);
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|