|
|
@@ -1,6 +1,7 @@
|
|
|
package com.fdkankan.manage_jp.service.impl;
|
|
|
|
|
|
import cn.hutool.core.io.FileUtil;
|
|
|
+import cn.hutool.core.thread.ThreadUtil;
|
|
|
import cn.hutool.json.JSONUtil;
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
import com.alibaba.nacos.shaded.org.checkerframework.checker.units.qual.A;
|
|
|
@@ -41,6 +42,8 @@ import java.util.Date;
|
|
|
import java.util.HashMap;
|
|
|
import java.util.HashSet;
|
|
|
import java.util.List;
|
|
|
+import java.util.concurrent.CompletableFuture;
|
|
|
+import java.util.concurrent.ExecutorService;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
|
@@ -220,6 +223,7 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
|
|
|
scenePro.setViewCount(0);
|
|
|
scenePro.setThumb(scenePro.getThumb().replaceAll(oldNum,scenePro.getNum()));
|
|
|
scenePro.setWebSite(scenePro.getWebSite().replaceAll(oldNum,scenePro.getNum()));
|
|
|
+ scenePro.setStatus(0);
|
|
|
scenePro.setDataSource(newDataSource);
|
|
|
this.save(scenePro);
|
|
|
|
|
|
@@ -246,43 +250,49 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
|
|
|
* video/video{SceneNum}
|
|
|
* voice/voice{SceneNum}
|
|
|
*/
|
|
|
- try {
|
|
|
- //重新生成编辑页基础设置二维码
|
|
|
- sceneCommonService.createNewQrCode(SceneVersionType.V3.code(),oldEditScene.getShareLogo(),newNum,scenePro.getWebSite());
|
|
|
- //copyDataSource
|
|
|
- cn.hutool.core.io.FileUtil.copyContent(new File(oldDataSource),new File(newDataSource),true);
|
|
|
-
|
|
|
- String sourceData = String.format(SceneResourcePath.dataPath, oldNum);
|
|
|
- String targetData = String.format(SceneResourcePath.dataPath, scenePro.getNum());
|
|
|
- this.copyOssAndNas(oldNum,scenePro.getNum(),sourceData,targetData);
|
|
|
- //修改 oss status.json ,nas scene.json
|
|
|
- sceneCommonService.updateOssJson(targetData,oldNum,newNum,"v3");
|
|
|
- sceneCommonService.updateNasSceneJson(targetData,oldNum,newNum,oldSceneName,scenePro.getSceneName(),"v3");
|
|
|
-
|
|
|
- String sourceImages = String.format(SceneResourcePath.imagesPath, oldNum);
|
|
|
- String targetImages = String.format(SceneResourcePath.imagesPath, scenePro.getNum());
|
|
|
- this.copyOssAndNas(oldNum,scenePro.getNum(),sourceImages,targetImages);
|
|
|
-
|
|
|
- String sourceVideo = String.format(SceneResourcePath.videoPath, oldNum);
|
|
|
- String targetVideo = String.format(SceneResourcePath.videoPath, scenePro.getNum());
|
|
|
- this.copyOssAndNas(oldNum,scenePro.getNum(),sourceVideo,targetVideo);
|
|
|
-
|
|
|
- String sourceVoice = String.format(SceneResourcePath.voicePath, oldNum);
|
|
|
- String targetVoice = String.format(SceneResourcePath.voicePath, scenePro.getNum());
|
|
|
- this.copyOssAndNas(oldNum,scenePro.getNum(),sourceVoice,targetVoice);
|
|
|
-
|
|
|
- if(scenePro.getSceneSource() == 4){ //深时复制
|
|
|
- String laserPath = laserService.copyDataSource(oldDataSource,scenePro.getDataSource());
|
|
|
- laserService.copy(scenePro.getCameraId(),scenePro.getCreateTime(),newNum,2,laserPath,
|
|
|
- oldEditScene.getSceneKey(),scenePro.getSceneName(),scenePro.getUserId(),"V3");
|
|
|
+ ExecutorService executor = ThreadUtil.newSingleExecutor();
|
|
|
+ CompletableFuture.runAsync(() -> {
|
|
|
+ try {
|
|
|
+ //重新生成编辑页基础设置二维码
|
|
|
+ sceneCommonService.createNewQrCode(SceneVersionType.V3.code(),oldEditScene.getShareLogo(),newNum,scenePro.getWebSite());
|
|
|
+ //copyDataSource
|
|
|
+ cn.hutool.core.io.FileUtil.copyContent(new File(oldDataSource),new File(newDataSource),true);
|
|
|
+
|
|
|
+ String sourceData = String.format(SceneResourcePath.dataPath, oldNum);
|
|
|
+ String targetData = String.format(SceneResourcePath.dataPath, scenePro.getNum());
|
|
|
+ this.copyOssAndNas(oldNum,scenePro.getNum(),sourceData,targetData);
|
|
|
+ //修改 oss status.json ,nas scene.json
|
|
|
+ sceneCommonService.updateOssJson(targetData,oldNum,newNum,"v3");
|
|
|
+ sceneCommonService.updateNasSceneJson(targetData,oldNum,newNum,oldSceneName,scenePro.getSceneName(),"v3");
|
|
|
+
|
|
|
+ String sourceImages = String.format(SceneResourcePath.imagesPath, oldNum);
|
|
|
+ String targetImages = String.format(SceneResourcePath.imagesPath, scenePro.getNum());
|
|
|
+ this.copyOssAndNas(oldNum,scenePro.getNum(),sourceImages,targetImages);
|
|
|
+
|
|
|
+ String sourceVideo = String.format(SceneResourcePath.videoPath, oldNum);
|
|
|
+ String targetVideo = String.format(SceneResourcePath.videoPath, scenePro.getNum());
|
|
|
+ this.copyOssAndNas(oldNum,scenePro.getNum(),sourceVideo,targetVideo);
|
|
|
+
|
|
|
+ String sourceVoice = String.format(SceneResourcePath.voicePath, oldNum);
|
|
|
+ String targetVoice = String.format(SceneResourcePath.voicePath, scenePro.getNum());
|
|
|
+ this.copyOssAndNas(oldNum,scenePro.getNum(),sourceVoice,targetVoice);
|
|
|
+
|
|
|
+ if(scenePro.getSceneSource() == 4){ //深时复制
|
|
|
+ String laserPath = laserService.copyDataSource(oldDataSource,scenePro.getDataSource());
|
|
|
+ laserService.copy(scenePro.getCameraId(),scenePro.getCreateTime(),newNum,2,laserPath,
|
|
|
+ oldEditScene.getSceneKey(),scenePro.getSceneName(),scenePro.getUserId(),"V3");
|
|
|
+ }
|
|
|
+ scenePro.setStatus(-2);
|
|
|
+ this.updateById(scenePro);
|
|
|
+ }catch ( Exception e){
|
|
|
+ log.error("复制场景失败-sceneNum:{},error:{}",oldNum,e);
|
|
|
+ scenePro.setStatus(-1);
|
|
|
+ this.updateById(scenePro);
|
|
|
+ throw new BusinessException(ResultCode.SCENE_DATA_ERROR);
|
|
|
}
|
|
|
-
|
|
|
- }catch ( Exception e){
|
|
|
- log.error("复制场景失败-sceneNum:{},error:{}",oldNum,e);
|
|
|
- scenePro.setStatus(-1);
|
|
|
- this.updateById(scenePro);
|
|
|
- throw new BusinessException(ResultCode.SCENE_DATA_ERROR);
|
|
|
- }
|
|
|
+ }, executor).whenComplete((reslut, e) -> {
|
|
|
+ log.info("copy-success-");
|
|
|
+ });
|
|
|
|
|
|
return scenePro;
|
|
|
}
|