|
@@ -82,41 +82,44 @@ public class CaseVideoServiceImpl extends ServiceImpl<ICaseVideoMapper, CaseVide
|
|
uploadService.deleteOssUrl(videoFolder.getVideoMergeUrl());
|
|
uploadService.deleteOssUrl(videoFolder.getVideoMergeUrl());
|
|
uploadService.deleteOssUrl(videoFolder.getVideoFolderCover());
|
|
uploadService.deleteOssUrl(videoFolder.getVideoFolderCover());
|
|
this.deleteByFolderId(folderId);
|
|
this.deleteByFolderId(folderId);
|
|
- //替换文件夹中文件
|
|
|
|
- List<CaseVideo> videoList = new ArrayList<>();
|
|
|
|
- Integer sort = 1;
|
|
|
|
- LinkedHashSet<String> filePathSet = new LinkedHashSet<>();
|
|
|
|
- for (MultipartFile file : files) {
|
|
|
|
- String ossPath = uploadService.uploadFile(file, true, String.format(FilePath.VIDEO_OSS_PATH,videoFolder.getVideoFolderId())+"/",filePathSet);
|
|
|
|
- String suffixName = ossPath.substring(ossPath.lastIndexOf("."));
|
|
|
|
-
|
|
|
|
- CaseVideo caseVideo = new CaseVideo();
|
|
|
|
- caseVideo.setFolderId(videoFolder.getVideoFolderId());
|
|
|
|
- caseVideo.setVideoPath(ossPath);
|
|
|
|
- caseVideo.setVideoName(file.getName());
|
|
|
|
- caseVideo.setVideoCover(ossPath.replace(suffixName,".jpg"));
|
|
|
|
- caseVideo.setSort(sort);
|
|
|
|
- videoList.add(caseVideo);
|
|
|
|
- sort ++;
|
|
|
|
- }
|
|
|
|
- this.saveBatch(videoList);
|
|
|
|
- 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;
|
|
|
|
- }
|
|
|
|
redisUtil.set(RedisKeyUtil.mergerVideoKey+videoFolder.getVideoFolderId(),"10");
|
|
redisUtil.set(RedisKeyUtil.mergerVideoKey+videoFolder.getVideoFolderId(),"10");
|
|
- runThread(filePathSet,videoFolder);
|
|
|
|
|
|
+ runThread(files,videoFolder,this);
|
|
|
|
+
|
|
}
|
|
}
|
|
|
|
|
|
- private void runThread(LinkedHashSet<String> filePathSet,CaseVideoFolder videoFolder){
|
|
|
|
|
|
+ private void runThread(MultipartFile[] files,CaseVideoFolder videoFolder,ICaseVideoService caseVideoService){
|
|
ThreadUtil.executorService.execute(new Runnable() {
|
|
ThreadUtil.executorService.execute(new Runnable() {
|
|
@Override
|
|
@Override
|
|
public void run() {
|
|
public void run() {
|
|
|
|
+ //替换文件夹中文件
|
|
|
|
+ List<CaseVideo> videoList = new ArrayList<>();
|
|
|
|
+ Integer sort = 1;
|
|
|
|
+ LinkedHashSet<String> filePathSet = new LinkedHashSet<>();
|
|
|
|
+ for (MultipartFile file : files) {
|
|
|
|
+ String ossPath = uploadService.uploadFile(file, true, String.format(FilePath.VIDEO_OSS_PATH,videoFolder.getVideoFolderId())+"/",filePathSet);
|
|
|
|
+ String suffixName = ossPath.substring(ossPath.lastIndexOf("."));
|
|
|
|
+
|
|
|
|
+ CaseVideo caseVideo = new CaseVideo();
|
|
|
|
+ caseVideo.setFolderId(videoFolder.getVideoFolderId());
|
|
|
|
+ caseVideo.setVideoPath(ossPath);
|
|
|
|
+ caseVideo.setVideoName(file.getName());
|
|
|
|
+ caseVideo.setVideoCover(ossPath.replace(suffixName,".jpg"));
|
|
|
|
+ caseVideo.setSort(sort);
|
|
|
|
+ videoList.add(caseVideo);
|
|
|
|
+ sort ++;
|
|
|
|
+ }
|
|
|
|
+ caseVideoService.saveBatch(videoList);
|
|
|
|
+ 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;
|
|
|
|
+ }
|
|
|
|
+ redisUtil.set(RedisKeyUtil.mergerVideoKey+videoFolder.getVideoFolderId(),"20");
|
|
|
|
+
|
|
String mergeLocalName = VideoUtil.mergeVideo(filePathSet, FilePath.VIDEO_LOCAL_PATH);
|
|
String mergeLocalName = VideoUtil.mergeVideo(filePathSet, FilePath.VIDEO_LOCAL_PATH);
|
|
redisUtil.set(RedisKeyUtil.mergerVideoKey+videoFolder.getVideoFolderId(),"30");
|
|
redisUtil.set(RedisKeyUtil.mergerVideoKey+videoFolder.getVideoFolderId(),"30");
|
|
if(mergeLocalName == null){
|
|
if(mergeLocalName == null){
|