|
@@ -10,16 +10,11 @@ import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
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.ResourceFile;
|
|
|
|
|
-import vip.xiaonuo.disk.domain.ResourceUserFile;
|
|
|
|
|
-import vip.xiaonuo.disk.domain.UserFile;
|
|
|
|
|
|
|
+import vip.xiaonuo.disk.domain.*;
|
|
|
import vip.xiaonuo.disk.dto.file.TranscodingReqDTO;
|
|
import vip.xiaonuo.disk.dto.file.TranscodingReqDTO;
|
|
|
import vip.xiaonuo.disk.dto.file.TranscodingResourceReqDTO;
|
|
import vip.xiaonuo.disk.dto.file.TranscodingResourceReqDTO;
|
|
|
-import vip.xiaonuo.disk.mapper.FileMapper;
|
|
|
|
|
-import vip.xiaonuo.disk.mapper.ResourceFileMapper;
|
|
|
|
|
-import vip.xiaonuo.disk.mapper.ResourceUserFileMapper;
|
|
|
|
|
-import vip.xiaonuo.disk.mapper.UserFileMapper;
|
|
|
|
|
|
|
+import vip.xiaonuo.disk.enums.ResourceUserfileConvertEnum;
|
|
|
|
|
+import vip.xiaonuo.disk.mapper.*;
|
|
|
import vip.xiaonuo.disk.service.TranscodingService;
|
|
import vip.xiaonuo.disk.service.TranscodingService;
|
|
|
import vip.xiaonuo.disk.util.OfficeConverter;
|
|
import vip.xiaonuo.disk.util.OfficeConverter;
|
|
|
import vip.xiaonuo.disk.util.PdfUtils;
|
|
import vip.xiaonuo.disk.util.PdfUtils;
|
|
@@ -62,6 +57,11 @@ public class TranscodingServiceImpl implements TranscodingService {
|
|
|
|
|
|
|
|
@Resource
|
|
@Resource
|
|
|
private ResourceFileMapper resourceFileMapper;
|
|
private ResourceFileMapper resourceFileMapper;
|
|
|
|
|
+ @Resource
|
|
|
|
|
+ private ResourceUserfileConvertMapper resourceUserfileConvertMapper;
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
@Override
|
|
@Override
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
public CommonResult<String> transcodingVideo(TranscodingReqDTO transcodingReqDTO) {
|
|
public CommonResult<String> transcodingVideo(TranscodingReqDTO transcodingReqDTO) {
|
|
@@ -215,8 +215,15 @@ public class TranscodingServiceImpl implements TranscodingService {
|
|
|
QueryWrapper<ResourceUserFile> queryWrapper = new QueryWrapper<>();
|
|
QueryWrapper<ResourceUserFile> queryWrapper = new QueryWrapper<>();
|
|
|
queryWrapper.lambda().eq(ResourceUserFile::getUserFileId, transcodingResourceReqDTO.getUserFileId());
|
|
queryWrapper.lambda().eq(ResourceUserFile::getUserFileId, transcodingResourceReqDTO.getUserFileId());
|
|
|
ResourceUserFile userFile = resourceUserFileMapper.selectOne(queryWrapper);
|
|
ResourceUserFile userFile = resourceUserFileMapper.selectOne(queryWrapper);
|
|
|
|
|
+
|
|
|
|
|
+ //插入转换日志表
|
|
|
|
|
+ insertResourceUserfileConvert(transcodingResourceReqDTO.getUserFileId(), userFile.getFileId(),userFile.getFileName(), userFile.getExtendName(), userFile.getFilePath(), ResourceUserfileConvertEnum.ING.getValue(), userId,null);
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
if (userFile == null || !userFile.getUserId().equals(userId)) {
|
|
if (userFile == null || !userFile.getUserId().equals(userId)) {
|
|
|
System.out.println("文件不存在或不是本人的");
|
|
System.out.println("文件不存在或不是本人的");
|
|
|
|
|
+ insertResourceUserfileConvert(transcodingResourceReqDTO.getUserFileId(), userFile.getFileId(),userFile.getFileName(), userFile.getExtendName(), userFile.getFilePath(), ResourceUserfileConvertEnum.FAIL.getValue(), userId,"文件不存在或不是本人的");
|
|
|
|
|
+ throw new RuntimeException("文件不存在或不是本人的");
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
List<String> videoList= Arrays.asList("wmv","avi","flv","mpeg","mpg","rmvb","mov","mkv");
|
|
List<String> videoList= Arrays.asList("wmv","avi","flv","mpeg","mpg","rmvb","mov","mkv");
|
|
@@ -227,6 +234,8 @@ public class TranscodingServiceImpl implements TranscodingService {
|
|
|
ResourceFile fileBean = resourceFileMapper.selectById(userFile.getFileId());
|
|
ResourceFile fileBean = resourceFileMapper.selectById(userFile.getFileId());
|
|
|
if (fileBean == null) {
|
|
if (fileBean == null) {
|
|
|
System.out.println("文件不存在");
|
|
System.out.println("文件不存在");
|
|
|
|
|
+ insertResourceUserfileConvert(transcodingResourceReqDTO.getUserFileId(), userFile.getFileId(),userFile.getFileName(), userFile.getExtendName(), userFile.getFilePath(), ResourceUserfileConvertEnum.FAIL.getValue(), userId,"文件不存在");
|
|
|
|
|
+ throw new RuntimeException("文件不存在");
|
|
|
}
|
|
}
|
|
|
if(videoList.contains(userFile.getExtendName())){
|
|
if(videoList.contains(userFile.getExtendName())){
|
|
|
transcodingResourceReqDTO.setTranscodingType(0);
|
|
transcodingResourceReqDTO.setTranscodingType(0);
|
|
@@ -242,6 +251,8 @@ public class TranscodingServiceImpl implements TranscodingService {
|
|
|
// 构建转码格式列表
|
|
// 构建转码格式列表
|
|
|
ArrayList<String> formatList = new ArrayList<>();
|
|
ArrayList<String> formatList = new ArrayList<>();
|
|
|
formatList.add(transcodingResourceReqDTO.getFormat());
|
|
formatList.add(transcodingResourceReqDTO.getFormat());
|
|
|
|
|
+
|
|
|
|
|
+ ResourceFile newFile = new ResourceFile();
|
|
|
// 判断视频还是图片
|
|
// 判断视频还是图片
|
|
|
if(transcodingResourceReqDTO.getTranscodingType()!= null)
|
|
if(transcodingResourceReqDTO.getTranscodingType()!= null)
|
|
|
{
|
|
{
|
|
@@ -252,7 +263,7 @@ public class TranscodingServiceImpl implements TranscodingService {
|
|
|
videoConverter.convertAndUpload(fileBean.getFileUrl(), fileBean.getFileId(), new String[]{transcodingResourceReqDTO.getFormat()});
|
|
videoConverter.convertAndUpload(fileBean.getFileUrl(), fileBean.getFileId(), new String[]{transcodingResourceReqDTO.getFormat()});
|
|
|
//根据文件id修改预览地址
|
|
//根据文件id修改预览地址
|
|
|
if(videoList.contains(userFile.getExtendName())||wordList.contains(userFile.getExtendName())){
|
|
if(videoList.contains(userFile.getExtendName())||wordList.contains(userFile.getExtendName())){
|
|
|
- ResourceFile newFile = new ResourceFile();
|
|
|
|
|
|
|
+ newFile = new ResourceFile();
|
|
|
newFile.setFileId(fileBean.getFileId());
|
|
newFile.setFileId(fileBean.getFileId());
|
|
|
newFile.setPreviewFileUrl("converted/" + fileBean.getFileId() + "." + transcodingResourceReqDTO.getFormat());
|
|
newFile.setPreviewFileUrl("converted/" + fileBean.getFileId() + "." + transcodingResourceReqDTO.getFormat());
|
|
|
resourceFileMapper.updateById(newFile);
|
|
resourceFileMapper.updateById(newFile);
|
|
@@ -260,6 +271,8 @@ public class TranscodingServiceImpl implements TranscodingService {
|
|
|
} catch (Exception ex) {
|
|
} catch (Exception ex) {
|
|
|
log.error(ex.getMessage());
|
|
log.error(ex.getMessage());
|
|
|
System.out.println("格式转换失败");
|
|
System.out.println("格式转换失败");
|
|
|
|
|
+ insertResourceUserfileConvert(transcodingResourceReqDTO.getUserFileId(), userFile.getFileId(),userFile.getFileName(), userFile.getExtendName(), newFile.getPreviewFileUrl(), ResourceUserfileConvertEnum.FAIL.getValue(), userId,ex.getMessage());
|
|
|
|
|
+
|
|
|
}
|
|
}
|
|
|
} else if (transcodingResourceReqDTO.getTranscodingType() == 1) {
|
|
} else if (transcodingResourceReqDTO.getTranscodingType() == 1) {
|
|
|
// 转码文档
|
|
// 转码文档
|
|
@@ -273,7 +286,7 @@ public class TranscodingServiceImpl implements TranscodingService {
|
|
|
officeConverter.convertAndUpload(fileBean.getFileUrl(), fileBean.getFileId() + "." + transcodingResourceReqDTO.getFormat());
|
|
officeConverter.convertAndUpload(fileBean.getFileUrl(), fileBean.getFileId() + "." + transcodingResourceReqDTO.getFormat());
|
|
|
}
|
|
}
|
|
|
//根据文件id修改预览地址
|
|
//根据文件id修改预览地址
|
|
|
- ResourceFile newFile = new ResourceFile();
|
|
|
|
|
|
|
+ newFile = new ResourceFile();
|
|
|
newFile.setFileId(fileBean.getFileId());
|
|
newFile.setFileId(fileBean.getFileId());
|
|
|
if(videoList.contains(userFile.getExtendName())||wordList.contains(userFile.getExtendName())){
|
|
if(videoList.contains(userFile.getExtendName())||wordList.contains(userFile.getExtendName())){
|
|
|
newFile.setPreviewFileUrl("converted/" + fileBean.getFileId() + "." + transcodingResourceReqDTO.getFormat());
|
|
newFile.setPreviewFileUrl("converted/" + fileBean.getFileId() + "." + transcodingResourceReqDTO.getFormat());
|
|
@@ -284,16 +297,19 @@ public class TranscodingServiceImpl implements TranscodingService {
|
|
|
} catch (Exception ex) {
|
|
} catch (Exception ex) {
|
|
|
log.error("格式转换:"+ex.getMessage());
|
|
log.error("格式转换:"+ex.getMessage());
|
|
|
System.out.println("格式转换失败");
|
|
System.out.println("格式转换失败");
|
|
|
|
|
+ insertResourceUserfileConvert(transcodingResourceReqDTO.getUserFileId(), userFile.getFileId(),userFile.getFileName(), userFile.getExtendName(), newFile.getPreviewFileUrl(), ResourceUserfileConvertEnum.FAIL.getValue(), userId,ex.getMessage());
|
|
|
|
|
+
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
else
|
|
else
|
|
|
{
|
|
{
|
|
|
- ResourceFile newFile = new ResourceFile();
|
|
|
|
|
|
|
+ newFile = new ResourceFile();
|
|
|
newFile.setFileId(fileBean.getFileId());
|
|
newFile.setFileId(fileBean.getFileId());
|
|
|
newFile.setPreviewFileUrl(fileBean.getFileUrl());
|
|
newFile.setPreviewFileUrl(fileBean.getFileUrl());
|
|
|
resourceFileMapper.updateById(newFile);
|
|
resourceFileMapper.updateById(newFile);
|
|
|
}
|
|
}
|
|
|
|
|
+ insertResourceUserfileConvert(transcodingResourceReqDTO.getUserFileId(), userFile.getFileId(),userFile.getFileName(), userFile.getExtendName(), newFile.getPreviewFileUrl(), ResourceUserfileConvertEnum.SUCCESS.getValue(), userId,null);
|
|
|
log.info("格式转换成功");
|
|
log.info("格式转换成功");
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
@@ -301,6 +317,20 @@ public class TranscodingServiceImpl implements TranscodingService {
|
|
|
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ private void insertResourceUserfileConvert(String userFileId, String fileId, String fileName, String extendName,String filePath,String status,String userId,String reason) {
|
|
|
|
|
+ ResourceUserfileConvert resourceUserfileConvert=new ResourceUserfileConvert();
|
|
|
|
|
+ resourceUserfileConvert.setUserFileId(userFileId);
|
|
|
|
|
+ resourceUserfileConvert.setFileId(fileId);
|
|
|
|
|
+ resourceUserfileConvert.setFileName(fileName);
|
|
|
|
|
+ resourceUserfileConvert.setExtendName(extendName);
|
|
|
|
|
+ resourceUserfileConvert.setFilePath(filePath);
|
|
|
|
|
+ resourceUserfileConvert.setStatus(status); //0转换中 1转换成功 2转换失败
|
|
|
|
|
+ resourceUserfileConvert.setUserId(userId);
|
|
|
|
|
+ resourceUserfileConvert.setReason(reason);
|
|
|
|
|
+ resourceUserfileConvert.setCreateUser(userId);
|
|
|
|
|
+ resourceUserfileConvert.setCreateTime(new Date());
|
|
|
|
|
+ resourceUserfileConvertMapper.insert(resourceUserfileConvert);
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
/**
|