Jelajahi Sumber

上传视频

lyhzzz 2 tahun lalu
induk
melakukan
193328cf61

+ 70 - 67
src/main/java/com/fdkankan/fusion/service/impl/CaseVideoServiceImpl.java

@@ -88,74 +88,77 @@ public class CaseVideoServiceImpl extends ServiceImpl<ICaseVideoMapper, CaseVide
     }
 
     private void runThread(MultipartFile[] files,CaseVideoFolder videoFolder,ICaseVideoService caseVideoService){
-        ((Runnable) () -> {
-            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());
+        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);
+                    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");
+                updateCaseVideoStatus(videoFolder.getVideoFolderId(), 1);
             }
-            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);
-            redisUtil.set(RedisKeyUtil.mergerVideoKey + videoFolder.getVideoFolderId(), "100");
-            updateCaseVideoStatus(videoFolder.getVideoFolderId(), 1);
-        }).run();
+        }).start();
     }
 
     private void updateCaseVideoStatus(Integer folderId, Integer status) {