|
@@ -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) {
|