|
@@ -5,7 +5,8 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
import com.fdkankan.fusion.common.ResultCode;
|
|
|
import com.fdkankan.fusion.common.FilePath;
|
|
|
-import com.fdkankan.fusion.common.ResultCode;
|
|
|
+import com.fdkankan.fusion.common.util.RedisKeyUtil;
|
|
|
+import com.fdkankan.fusion.common.util.ThreadUtil;
|
|
|
import com.fdkankan.fusion.common.util.UploadToOssUtil;
|
|
|
import com.fdkankan.fusion.common.util.VideoUtil;
|
|
|
import com.fdkankan.fusion.entity.CaseEntity;
|
|
@@ -13,21 +14,17 @@ import com.fdkankan.fusion.entity.CaseVideoFolder;
|
|
|
import com.fdkankan.fusion.exception.BusinessException;
|
|
|
import com.fdkankan.fusion.entity.CaseVideo;
|
|
|
import com.fdkankan.fusion.mapper.ICaseVideoMapper;
|
|
|
-import com.fdkankan.fusion.request.CaseParam;
|
|
|
-import com.fdkankan.fusion.request.CaseVideoParam;
|
|
|
import com.fdkankan.fusion.service.ICaseService;
|
|
|
import com.fdkankan.fusion.service.ICaseVideoFolderService;
|
|
|
import com.fdkankan.fusion.service.ICaseVideoService;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
-import org.apache.commons.lang3.StringUtils;
|
|
|
+import com.fdkankan.redis.util.RedisUtil;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.beans.factory.annotation.Value;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.web.multipart.MultipartFile;
|
|
|
|
|
|
-import java.io.File;
|
|
|
import java.io.IOException;
|
|
|
-import java.lang.reflect.Field;
|
|
|
import java.util.ArrayList;
|
|
|
import java.util.LinkedHashSet;
|
|
|
import java.util.List;
|
|
@@ -52,9 +49,10 @@ public class CaseVideoServiceImpl extends ServiceImpl<ICaseVideoMapper, CaseVide
|
|
|
ICaseService caseService;
|
|
|
@Autowired
|
|
|
UploadService uploadService;
|
|
|
-
|
|
|
@Value("${upload.query-path}")
|
|
|
private String queryPath;
|
|
|
+ @Autowired
|
|
|
+ RedisUtil redisUtil;
|
|
|
|
|
|
@Override
|
|
|
public List<CaseVideo> getAllList(Integer folderId) {
|
|
@@ -102,25 +100,59 @@ public class CaseVideoServiceImpl extends ServiceImpl<ICaseVideoMapper, CaseVide
|
|
|
sort ++;
|
|
|
}
|
|
|
this.saveBatch(videoList);
|
|
|
-
|
|
|
- String mergeLocalName = VideoUtil.mergeVideo(filePathSet, FilePath.VIDEO_LOCAL_PATH);
|
|
|
- if(mergeLocalName == null){
|
|
|
- throw new BusinessException(ResultCode.MERGER_VIDEO_ERROR);
|
|
|
+ if(videoList.size() <=0){
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ if(videoList.size() ==1){
|
|
|
+ videoFolder.setVideoMergeUrl(videoList.get(0).getVideoPath());
|
|
|
+ videoFolder.setVideoFolderCover(videoList.get(0).getVideoCover());
|
|
|
+ videoFolderService.updateById(videoFolder);
|
|
|
+ return;
|
|
|
}
|
|
|
- String mergeLocalPath = FilePath.VIDEO_LOCAL_PATH +"/"+mergeLocalName;
|
|
|
- String ossKey = String.format(FilePath.VIDEO_OSS_PATH,videoFolder.getVideoFolderId()) +"/"+mergeLocalName;
|
|
|
-
|
|
|
- String mergeLocalPathImg = FilePath.VIDEO_LOCAL_PATH +"/"+mergeLocalName.replace(".mp4",".jpg");
|
|
|
- String ossKeyImg = String.format(FilePath.VIDEO_OSS_PATH,videoFolder.getVideoFolderId()) +"/"+mergeLocalName.replace(".mp4",".jpg");
|
|
|
- uploadToOssUtil.upload(mergeLocalPath,ossKey);
|
|
|
- uploadToOssUtil.upload(mergeLocalPathImg,ossKeyImg);
|
|
|
-
|
|
|
- videoFolder.setVideoMergeUrl(queryPath + ossKey);
|
|
|
- videoFolder.setVideoFolderCover(queryPath + ossKeyImg);
|
|
|
- videoFolderService.updateById(videoFolder);
|
|
|
- FileUtil.del(FilePath.VIDEO_LOCAL_PATH);
|
|
|
+ redisUtil.set(RedisKeyUtil.mergerVideoKey+videoFolder.getVideoFolderId(),"10");
|
|
|
+ runThread(filePathSet,videoFolder);
|
|
|
+ }
|
|
|
+
|
|
|
+ private void runThread(LinkedHashSet<String> filePathSet,CaseVideoFolder videoFolder){
|
|
|
+ ThreadUtil.executorService.execute(new Runnable() {
|
|
|
+ @Override
|
|
|
+ public void run() {
|
|
|
+ String mergeLocalName = VideoUtil.mergeVideo(filePathSet, FilePath.VIDEO_LOCAL_PATH);
|
|
|
+ redisUtil.set(RedisKeyUtil.mergerVideoKey+videoFolder.getVideoFolderId(),"30");
|
|
|
+ if(mergeLocalName == null){
|
|
|
+ redisUtil.set(RedisKeyUtil.mergerVideoKey+videoFolder.getVideoFolderId(),"-1");
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ String mergeLocalPath = FilePath.VIDEO_LOCAL_PATH +"/"+mergeLocalName;
|
|
|
+ String ossKey = String.format(FilePath.VIDEO_OSS_PATH,videoFolder.getVideoFolderId()) +"/"+mergeLocalName;
|
|
|
+
|
|
|
+ String mergeLocalPathImg = FilePath.VIDEO_LOCAL_PATH +"/"+mergeLocalName.replace(".mp4",".jpg");
|
|
|
+ String ossKeyImg = String.format(FilePath.VIDEO_OSS_PATH,videoFolder.getVideoFolderId()) +"/"+mergeLocalName.replace(".mp4",".jpg");
|
|
|
+ uploadToOssUtil.upload(mergeLocalPath,ossKey);
|
|
|
+ uploadToOssUtil.upload(mergeLocalPathImg,ossKeyImg);
|
|
|
+ if(!uploadToOssUtil.existKey(ossKey)&& !uploadToOssUtil.existKey(ossKeyImg)){
|
|
|
+ redisUtil.set(RedisKeyUtil.mergerVideoKey+videoFolder.getVideoFolderId(),"-1");
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ redisUtil.set(RedisKeyUtil.mergerVideoKey+videoFolder.getVideoFolderId(),"70");
|
|
|
+
|
|
|
+ videoFolder.setVideoMergeUrl(queryPath + ossKey);
|
|
|
+ videoFolder.setVideoFolderCover(queryPath + ossKeyImg);
|
|
|
+ videoFolderService.updateById(videoFolder);
|
|
|
+ FileUtil.del(FilePath.VIDEO_LOCAL_PATH);
|
|
|
+ redisUtil.set(RedisKeyUtil.mergerVideoKey+videoFolder.getVideoFolderId(),"100");
|
|
|
+ }
|
|
|
+ });
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ public String uploadAddVideoProgress(Integer folderId) {
|
|
|
+ String redisKey = RedisKeyUtil.mergerVideoKey+folderId;
|
|
|
+ if(redisUtil.hasKey(redisKey)){
|
|
|
+ return redisUtil.get(redisKey);
|
|
|
+ }
|
|
|
+ return "0";
|
|
|
+ }
|
|
|
|
|
|
@Override
|
|
|
public void deleteByFolderId(Integer videoFolderId) {
|