lyhzzz 2 gadi atpakaļ
vecāks
revīzija
7e4cafb08c

+ 59 - 54
src/main/java/com/fdkankan/fusion/service/impl/CaseVideoServiceImpl.java

@@ -106,63 +106,68 @@ public class CaseVideoServiceImpl extends ServiceImpl<ICaseVideoMapper, CaseVide
         runThread(videoList,filePathSet,videoFolder,this);
         return videoFolder;
     }
-    @Async
     public void runThread(List<CaseVideo> videoList, LinkedHashSet<String> filePathSet,CaseVideoFolder videoFolder,ICaseVideoService caseVideoService){
-        try {
-            LinkedHashSet<String> filePathSetAll = new LinkedHashSet<>();
-            String mergeVideoUrl = null;
-            if (StringUtils.isNotBlank(videoFolder.getVideoMergeUrl())) {
-                mergeVideoUrl = videoFolder.getVideoMergeUrl().replace(queryPath, "/home/");
-                uploadToOssUtil.downFormAli(videoFolder.getVideoMergeUrl().replace(queryPath, ""), mergeVideoUrl);
-                uploadService.deleteOssUrl(videoFolder.getVideoMergeUrl());
-            }
-            if (StringUtils.isNotBlank(videoFolder.getVideoMergeUrl())) {
-                uploadService.deleteOssUrl(videoFolder.getVideoFolderCover());
-            }
-            this.deleteByFolderId(videoFolder.getVideoFolderId());
-            redisUtil.set(RedisKeyUtil.mergerVideoKey + videoFolder.getVideoFolderId(), "10");
-            caseVideoService.saveBatch(videoList);
-            if (videoList.size() <= 0) {
-                return;
+        new Thread(new Runnable() {
+            @Override
+            public void run() {
+                try {
+                    LinkedHashSet<String> filePathSetAll = new LinkedHashSet<>();
+                    String mergeVideoUrl = null;
+                    if (StringUtils.isNotBlank(videoFolder.getVideoMergeUrl())) {
+                        mergeVideoUrl = videoFolder.getVideoMergeUrl().replace(queryPath, "/home/");
+                        uploadToOssUtil.downFormAli(videoFolder.getVideoMergeUrl().replace(queryPath, ""), mergeVideoUrl);
+                        uploadService.deleteOssUrl(videoFolder.getVideoMergeUrl());
+                    }
+                    if (StringUtils.isNotBlank(videoFolder.getVideoMergeUrl())) {
+                        uploadService.deleteOssUrl(videoFolder.getVideoFolderCover());
+                    }
+                    caseVideoService.deleteByFolderId(videoFolder.getVideoFolderId());
+                    redisUtil.set(RedisKeyUtil.mergerVideoKey + videoFolder.getVideoFolderId(), "10");
+                    caseVideoService.saveBatch(videoList);
+                    if (videoList.size() <= 0) {
+                        return;
+                    }
+
+                    redisUtil.set(RedisKeyUtil.mergerVideoKey + videoFolder.getVideoFolderId(), "20");
+                    if (StringUtils.isNotBlank(mergeVideoUrl)) {
+                        filePathSetAll.add(mergeVideoUrl);
+                    }
+                    filePathSetAll.addAll(filePathSet);
+                    String mergeLocalName = VideoUtil.mergeVideo(filePathSetAll, FilePath.VIDEO_LOCAL_PATH);
+                    redisUtil.set(RedisKeyUtil.mergerVideoKey + videoFolder.getVideoFolderId(), "30");
+                    if (mergeLocalName == null) {
+                        updateCaseVideoStatus(videoFolder.getVideoFolderId(), -1);
+                        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.uploadOss(mergeLocalPath, ossKey);
+                    uploadToOssUtil.uploadOss(mergeLocalPathImg, ossKeyImg);
+                    if (!uploadToOssUtil.existKey(ossKey) && !uploadToOssUtil.existKey(ossKeyImg)) {
+                        updateCaseVideoStatus(videoFolder.getVideoFolderId(), -1);
+                        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);
+                    updateCaseVideoStatus(videoFolder.getVideoFolderId(), 1);
+                    redisUtil.set(RedisKeyUtil.mergerVideoKey + videoFolder.getVideoFolderId(), "100");
+                }catch (Exception e){
+                    updateCaseVideoStatus(videoFolder.getVideoFolderId(), -1);
+                    redisUtil.set(RedisKeyUtil.mergerVideoKey + videoFolder.getVideoFolderId(), "-1");
+                    log.info("合并视频出错:",e);
+                }
             }
+        }).start();
 
-            redisUtil.set(RedisKeyUtil.mergerVideoKey + videoFolder.getVideoFolderId(), "20");
-            if (StringUtils.isNotBlank(mergeVideoUrl)) {
-                filePathSetAll.add(mergeVideoUrl);
-            }
-            filePathSetAll.addAll(filePathSet);
-            String mergeLocalName = VideoUtil.mergeVideo(filePathSetAll, FilePath.VIDEO_LOCAL_PATH);
-            redisUtil.set(RedisKeyUtil.mergerVideoKey + videoFolder.getVideoFolderId(), "30");
-            if (mergeLocalName == null) {
-                updateCaseVideoStatus(videoFolder.getVideoFolderId(), -1);
-                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.uploadOss(mergeLocalPath, ossKey);
-            uploadToOssUtil.uploadOss(mergeLocalPathImg, ossKeyImg);
-            if (!uploadToOssUtil.existKey(ossKey) && !uploadToOssUtil.existKey(ossKeyImg)) {
-                updateCaseVideoStatus(videoFolder.getVideoFolderId(), -1);
-                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);
-            updateCaseVideoStatus(videoFolder.getVideoFolderId(), 1);
-            redisUtil.set(RedisKeyUtil.mergerVideoKey + videoFolder.getVideoFolderId(), "100");
-        }catch (Exception e){
-            updateCaseVideoStatus(videoFolder.getVideoFolderId(), -1);
-            redisUtil.set(RedisKeyUtil.mergerVideoKey + videoFolder.getVideoFolderId(), "-1");
-            log.info("合并视频出错:",e);
-        }
     }
 
     private void updateCaseVideoStatus(Integer folderId, Integer status) {

+ 2 - 1
src/main/java/com/fdkankan/fusion/service/impl/ModelServiceImpl.java

@@ -28,6 +28,7 @@ import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
+import org.springframework.scheduling.annotation.Async;
 import org.springframework.stereotype.Service;
 import org.springframework.web.multipart.MultipartFile;
 
@@ -146,7 +147,7 @@ public class ModelServiceImpl extends ServiceImpl<IModelMapper, Model> implement
         }
     }
 
-    private void runThread(File file1,Model model,File newObjFile,File objPathFile,IModelService modelService){
+    public void runThread(File file1,Model model,File newObjFile,File objPathFile,IModelService modelService){
         new Thread(new Runnable() {
             @Override
             public void run() {