Преглед на файлове

添加拷贝场景逻辑

tianboguang преди 3 години
родител
ревизия
71e4dd25f4

+ 0 - 9
4dkankan-center-scene/src/main/java/com/fdkankan/scene/controller/SceneController.java

@@ -114,15 +114,6 @@ public class SceneController extends BaseController{
         return sceneFileBuildService.rebuildScene(num);
     }
 
-    /**
-     * 场景模型重新计算
-     */
-    @PostMapping(value = "/copyScene")
-    public ResultData copyScene(@RequestParam("num") String num,@RequestParam("newNum") String newNum) throws Exception {
-        sceneService.copyScene(num,newNum);
-        return ResultData.ok();
-    }
-
 
     /**
      * 场景模型重新计算

+ 23 - 8
4dkankan-center-scene/src/main/java/com/fdkankan/scene/controller/V3Controller.java

@@ -1,23 +1,20 @@
 package com.fdkankan.scene.controller;
 
-import com.dtflys.forest.annotation.Post;
 import com.fdkankan.common.controller.BaseController;
 import com.fdkankan.common.response.ResultData;
 import com.fdkankan.scene.service.ISceneEditInfoService;
 import com.fdkankan.scene.service.IScenePlusService;
+import com.fdkankan.scene.service.ISceneService;
 import com.fdkankan.scene.service.ISceneUpgradeToV4Service;
+import com.fdkankan.scene.vo.CopySceneParamVO;
 import com.fdkankan.scene.vo.MoveSceneParamVO;
 import com.fdkankan.scene.vo.UnbindOrBindCameraParamVO;
 import com.fdkankan.scene.vo.UpgradeToV4ParamVO;
-import java.util.List;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.validation.annotation.Validated;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestParam;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
+
+import java.io.IOException;
 
 /**
  * <p>
@@ -37,6 +34,9 @@ public class V3Controller extends BaseController {
     private ISceneEditInfoService sceneEditInfoService;
     @Autowired
     private IScenePlusService scenePlusService;
+    @Autowired
+    private ISceneService sceneService;
+
 
     /**
      * <p>
@@ -109,5 +109,20 @@ public class V3Controller extends BaseController {
         return scenePlusService.moveScene(param.getNumList(), param.getCameraId(), param.getUserId());
     }
 
+    /**
+     * <p>
+     场景迁移,修改相机id和用户id
+     * </p>
+     * @author dengsixing
+     * @date 2022/6/23
+     * @return com.fdkankan.common.response.ResultData
+     **/
+    @PostMapping(value = "/copyScene")
+    public ResultData copyScene(
+            @RequestBody @Validated CopySceneParamVO param) throws IOException {
+        sceneService.copyScene(param);
+        return ResultData.ok();
+    }
+
 
 }

+ 1 - 1
4dkankan-center-scene/src/main/java/com/fdkankan/scene/service/ISceneService.java

@@ -104,5 +104,5 @@ public interface ISceneService extends IService<Scene> {
 
     Long getSceneCount(Long cameraId, Long userId);
 
-    void copyScene(String num,String newNum) throws IOException;
+    void copyScene(CopySceneParamVO copySceneParamVO) throws IOException;
 }

+ 9 - 5
4dkankan-center-scene/src/main/java/com/fdkankan/scene/service/impl/SceneServiceImpl.java

@@ -1338,7 +1338,10 @@ public class SceneServiceImpl extends ServiceImpl<ISceneMapper, Scene> implement
     }
 
     @Override
-    public void copyScene(String num,String newNum) throws IOException {
+    public void copyScene(CopySceneParamVO paramVO) throws IOException {
+        String num = paramVO.getOldNum();
+        String newNum = paramVO.getNewNum();
+
         ScenePro scenePro = sceneProService.findBySceneNum(num);
         if (ObjectUtils.isEmpty(scenePro)) {
             return;
@@ -1346,6 +1349,7 @@ public class SceneServiceImpl extends ServiceImpl<ISceneMapper, Scene> implement
 
         // 拷贝场景编辑资源
         String oldEditPath = String.format(UploadFilePath.USER_EDIT_PATH, num);
+
         String newEditPath = String.format(UploadFilePath.USER_EDIT_PATH, newNum);
         uploadToOssUtil.copyFiles(oldEditPath,newEditPath);
 
@@ -1363,14 +1367,14 @@ public class SceneServiceImpl extends ServiceImpl<ISceneMapper, Scene> implement
         Long proId = scenePro.getId();
         scenePro.setId(null);
         scenePro.setWebSite(scenePro.getWebSite().replace(num,newNum));
-        scenePro.setSceneName(scenePro.getSceneName().concat("(copy)"));
+        scenePro.setSceneName(paramVO.getNewSceneName());
         scenePro.setThumb(scenePro.getThumb().replace(num,newNum));
         scenePro.setVideos(scenePro.getVideos().replaceAll(num,newNum));
         scenePro.setNum(newNum);
         sceneProService.save(scenePro);
 
         SceneProExt proExt = sceneProExtService.findBySceneProId(proId);
-        proExt.setDataSource(proExt.getDataSource().concat("_cp"));
+        proExt.setDataSource(paramVO.getDatasource());
         proExt.setId(null);
         proExt.setSceneProId(scenePro.getId());
         sceneProExtService.save(proExt);
@@ -1385,7 +1389,7 @@ public class SceneServiceImpl extends ServiceImpl<ISceneMapper, Scene> implement
         ScenePlusExt plusExt = scenePlusExtService.getScenePlusExtByPlusId(plusId);
         plusExt.setId(null);
         plusExt.setPlusId(scenePlus.getId());
-        plusExt.setDataSource(plusExt.getDataSource().concat("_cp"));
+        plusExt.setDataSource(paramVO.getDatasource());
         plusExt.setWebSite(plusExt.getWebSite().replace(num,newNum));
         plusExt.setThumb(plusExt.getThumb().replace(num,newNum));
         plusExt.setVideos(plusExt.getVideos().replace(num,newNum));
@@ -1397,7 +1401,7 @@ public class SceneServiceImpl extends ServiceImpl<ISceneMapper, Scene> implement
         sceneEditInfo.setId(null);
         sceneEditInfo.setScenePlusId(scenePlus.getId());
         sceneEditInfo.setSceneProId(scenePro.getId());
-        sceneEditInfo.setTitle(sceneEditInfo.getTitle().concat("(copy)"));
+        sceneEditInfo.setTitle(paramVO.getNewSceneName());
         sceneEditInfoService.save(sceneEditInfo);
 
         SceneEditInfoExt sceneEditInfoExt = sceneEditInfoExtService.getByEditInfoId(sceneEditInfoId);

+ 29 - 0
4dkankan-center-scene/src/main/java/com/fdkankan/scene/vo/CopySceneParamVO.java

@@ -0,0 +1,29 @@
+package com.fdkankan.scene.vo;
+
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+
+/**
+ * <p>
+ * TODO
+ * </p>
+ *
+ * @author dengsixing
+ * @since 2022/4/21
+ **/
+@Data
+public class CopySceneParamVO {
+
+    @NotNull(message = "oldNum不能为空")
+    private String oldNum;
+
+    @NotNull(message = "newNum不能为空")
+    private String newNum;
+
+    @NotNull(message = "datasource不能为空")
+    private String datasource;
+
+    @NotNull(message = "newSceneName不能为空")
+    private String newSceneName;
+}