lyhzzz 2 years ago
parent
commit
f1c0399278

+ 71 - 66
src/main/java/com/fdkankan/fusion/service/impl/CaseVideoServiceImpl.java

@@ -88,77 +88,82 @@ public class CaseVideoServiceImpl extends ServiceImpl<ICaseVideoMapper, CaseVide
     }
 
     private void runThread(MultipartFile[] files,CaseVideoFolder videoFolder,ICaseVideoService caseVideoService){
-        new Runnable() {
+        new Thread(new Runnable() {
             @Override
             public void run() {
-                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");
-                //替换文件夹中文件
-                List<CaseVideo> videoList = new ArrayList<>();
-                Integer sort = 1;
-                LinkedHashSet<String> filePathSet = new LinkedHashSet<>();
-                LinkedHashSet<String> filePathSetAll = 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;
-                }
-
-                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);
+                try {
+                    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");
+                    //替换文件夹中文件
+                    List<CaseVideo> videoList = new ArrayList<>();
+                    Integer sort = 1;
+                    LinkedHashSet<String> filePathSet = new LinkedHashSet<>();
+                    LinkedHashSet<String> filePathSetAll = 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;
+                    }
+
+                    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){
                     redisUtil.set(RedisKeyUtil.mergerVideoKey + videoFolder.getVideoFolderId(), "-1");
-                    return;
+                    e.printStackTrace();
                 }
-                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");
-                updateCaseVideoStatus(videoFolder.getVideoFolderId(), 1);
             }
-        }.run();
+        }).start();
     }
 
     private void updateCaseVideoStatus(Integer folderId, Integer status) {