Browse Source

更换场景主表

dengsixing 3 years ago
parent
commit
937582c563
21 changed files with 615 additions and 213 deletions
  1. 3 0
      4dkankan-center-scene/src/main/java/com/fdkankan/scene/entity/SceneEditInfo.java
  2. 3 0
      4dkankan-center-scene/src/main/java/com/fdkankan/scene/entity/SceneEditInfoExt.java
  3. 18 0
      4dkankan-center-scene/src/main/java/com/fdkankan/scene/entity/ScenePlusExt.java
  4. 4 4
      4dkankan-center-scene/src/main/java/com/fdkankan/scene/entity/SceneProPO.java
  5. 9 4
      4dkankan-center-scene/src/main/java/com/fdkankan/scene/factory/handler/FloorLogoHandler.java
  6. 17 9
      4dkankan-center-scene/src/main/java/com/fdkankan/scene/factory/handler/FloorPlanHandler.java
  7. 12 4
      4dkankan-center-scene/src/main/java/com/fdkankan/scene/factory/handler/MusicHandler.java
  8. 6 0
      4dkankan-center-scene/src/main/java/com/fdkankan/scene/factory/handler/ScreenshotHandler.java
  9. 2 0
      4dkankan-center-scene/src/main/java/com/fdkankan/scene/service/ISceneEditInfoExtService.java
  10. 3 1
      4dkankan-center-scene/src/main/java/com/fdkankan/scene/service/ISceneEditInfoService.java
  11. 1 1
      4dkankan-center-scene/src/main/java/com/fdkankan/scene/service/IScenePlusExtService.java
  12. 3 0
      4dkankan-center-scene/src/main/java/com/fdkankan/scene/service/IScenePlusService.java
  13. 5 0
      4dkankan-center-scene/src/main/java/com/fdkankan/scene/service/impl/SceneEditInfoExtServiceImpl.java
  14. 55 42
      4dkankan-center-scene/src/main/java/com/fdkankan/scene/service/impl/SceneEditInfoServiceImpl.java
  15. 10 7
      4dkankan-center-scene/src/main/java/com/fdkankan/scene/service/impl/SceneEditServiceImpl.java
  16. 391 106
      4dkankan-center-scene/src/main/java/com/fdkankan/scene/service/impl/SceneFileBuildServiceImpl.java
  17. 1 1
      4dkankan-center-scene/src/main/java/com/fdkankan/scene/service/impl/ScenePlusExtServiceImpl.java
  18. 37 0
      4dkankan-center-scene/src/main/java/com/fdkankan/scene/service/impl/ScenePlusServiceImpl.java
  19. 24 18
      4dkankan-center-scene/src/main/java/com/fdkankan/scene/service/impl/SceneProServiceImpl.java
  20. 10 6
      4dkankan-center-scene/src/main/java/com/fdkankan/scene/service/impl/SceneUploadServiceImpl.java
  21. 1 10
      4dkankan-center-scene/src/main/java/com/fdkankan/scene/vo/SceneEditInfoParamVO.java

+ 3 - 0
4dkankan-center-scene/src/main/java/com/fdkankan/scene/entity/SceneEditInfo.java

@@ -31,6 +31,9 @@ public class SceneEditInfo implements Serializable {
     @TableField("scene_pro_id")
     @TableField("scene_pro_id")
     private Long sceneProId;
     private Long sceneProId;
 
 
+    @TableField("scene_plus_id")
+    private Long scenePlusId;
+
     /**
     /**
      * 地面logo名称
      * 地面logo名称
      */
      */

+ 3 - 0
4dkankan-center-scene/src/main/java/com/fdkankan/scene/entity/SceneEditInfoExt.java

@@ -29,6 +29,9 @@ public class SceneEditInfoExt extends BaseEntity {
     @TableField("scene_pro_id")
     @TableField("scene_pro_id")
     private Long sceneProId;
     private Long sceneProId;
 
 
+    @TableField("scene_plus_id")
+    private Long scenePlusId;
+
     @TableField("edit_info_id")
     @TableField("edit_info_id")
     private Long editInfoId;
     private Long editInfoId;
 
 

+ 18 - 0
4dkankan-center-scene/src/main/java/com/fdkankan/scene/entity/ScenePlusExt.java

@@ -107,6 +107,24 @@ public class ScenePlusExt implements Serializable {
     private String buildType;
     private String buildType;
 
 
     /**
     /**
+     * 全景图加载方式,tiles/1k:1k瓦片图,tiles/2:2k瓦片图,tiles/4k:4k瓦片图,pan:全景图 ,local:本地切片,cube:立体图
+     */
+    @TableField("scene_resolution")
+    private String sceneResolution;
+
+    /**
+     * 场景来源,lite:双目lite相机,pro:八目相机,minion:双面转台相机,laser:激光相机,virtual:虚拟场景,sketch:图片建模场景
+     */
+    @TableField("scene_from")
+    private String sceneFrom;
+
+    /**
+     * 点位视频
+     */
+    @TableField("videos")
+    private String videos;
+
+    /**
      * 创建时间
      * 创建时间
      */
      */
     @TableField("create_time")
     @TableField("create_time")

+ 4 - 4
4dkankan-center-scene/src/main/java/com/fdkankan/scene/entity/SceneProPO.java

@@ -179,9 +179,9 @@ public class SceneProPO {
     @Transient
     @Transient
     private String cooperationUserId;
     private String cooperationUserId;
 
 
-    /**
-     * 触发mq调度,事务最后触发
-     */
-    private BuildSceneMqMessage mqMsg;
+//    /**
+//     * 触发mq调度,事务最后触发
+//     */
+//    private BuildSceneMqMessage mqMsg;
 
 
 }
 }

+ 9 - 4
4dkankan-center-scene/src/main/java/com/fdkankan/scene/factory/handler/FloorLogoHandler.java

@@ -8,8 +8,10 @@ import com.fdkankan.common.constant.ErrorCode;
 import com.fdkankan.common.exception.BusinessException;
 import com.fdkankan.common.exception.BusinessException;
 import com.fdkankan.common.response.ResultData;
 import com.fdkankan.common.response.ResultData;
 import com.fdkankan.scene.entity.SceneEditInfo;
 import com.fdkankan.scene.entity.SceneEditInfo;
+import com.fdkankan.scene.entity.ScenePlus;
 import com.fdkankan.scene.entity.ScenePro;
 import com.fdkankan.scene.entity.ScenePro;
 import com.fdkankan.scene.service.ISceneEditInfoService;
 import com.fdkankan.scene.service.ISceneEditInfoService;
+import com.fdkankan.scene.service.IScenePlusService;
 import com.fdkankan.scene.service.ISceneProService;
 import com.fdkankan.scene.service.ISceneProService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 import org.springframework.stereotype.Component;
@@ -32,12 +34,15 @@ public class FloorLogoHandler implements ISaveUploadHandler {
     private ISceneEditInfoService sceneEditInfoService;
     private ISceneEditInfoService sceneEditInfoService;
     @Autowired
     @Autowired
     private ISceneProService sceneProService;
     private ISceneProService sceneProService;
+    @Autowired
+    private IScenePlusService scenePlusService;
 
 
     @Override
     @Override
     public ResultData save(String num, String fileInfo) {
     public ResultData save(String num, String fileInfo) {
 
 
-        ScenePro scenePro = sceneProService.findBySceneNum(num);
-        if(Objects.isNull(scenePro))
+//        ScenePro scenePro = sceneProService.findBySceneNum(num);
+        ScenePlus scenePlus = scenePlusService.getScenePlusByNum(num);
+        if(Objects.isNull(scenePlus))
             throw new BusinessException(ErrorCode.FAILURE_CODE_5005);
             throw new BusinessException(ErrorCode.FAILURE_CODE_5005);
 
 
         JSONObject fileInfoJson = JSON.parseObject(fileInfo);
         JSONObject fileInfoJson = JSON.parseObject(fileInfo);
@@ -46,7 +51,7 @@ public class FloorLogoHandler implements ISaveUploadHandler {
         floorLogo = StrUtil.isBlank(floorLogo) ? "0" : floorLogo;
         floorLogo = StrUtil.isBlank(floorLogo) ? "0" : floorLogo;
         Integer floorLogoSize = fileInfoJson.getInteger("floorLogoSize");
         Integer floorLogoSize = fileInfoJson.getInteger("floorLogoSize");
 
 
-        SceneEditInfo sceneEditInfoDb = sceneEditInfoService.getBySceneProId(scenePro.getId());
+        SceneEditInfo sceneEditInfoDb = sceneEditInfoService.getByScenePlusId(scenePlus.getId());
         if(Objects.nonNull(sceneEditInfoDb)){
         if(Objects.nonNull(sceneEditInfoDb)){
             sceneEditInfoService.update(new LambdaUpdateWrapper<SceneEditInfo>()
             sceneEditInfoService.update(new LambdaUpdateWrapper<SceneEditInfo>()
                     .set(SceneEditInfo::getFloorLogo, floorLogo)
                     .set(SceneEditInfo::getFloorLogo, floorLogo)
@@ -54,7 +59,7 @@ public class FloorLogoHandler implements ISaveUploadHandler {
                     .eq(SceneEditInfo::getId, sceneEditInfoDb.getId()));
                     .eq(SceneEditInfo::getId, sceneEditInfoDb.getId()));
         }else{
         }else{
             sceneEditInfoDb = new SceneEditInfo();
             sceneEditInfoDb = new SceneEditInfo();
-            sceneEditInfoDb.setSceneProId(scenePro.getId());
+            sceneEditInfoDb.setScenePlusId(scenePlus.getId());
             sceneEditInfoDb.setFloorLogo(floorLogo);
             sceneEditInfoDb.setFloorLogo(floorLogo);
             sceneEditInfoDb.setFloorLogoSize(floorLogoSize);
             sceneEditInfoDb.setFloorLogoSize(floorLogoSize);
             sceneEditInfoService.save(sceneEditInfoDb);
             sceneEditInfoService.save(sceneEditInfoDb);

+ 17 - 9
4dkankan-center-scene/src/main/java/com/fdkankan/scene/factory/handler/FloorPlanHandler.java

@@ -14,9 +14,13 @@ import com.fdkankan.common.response.ResultData;
 import com.fdkankan.common.util.FileUtils;
 import com.fdkankan.common.util.FileUtils;
 import com.fdkankan.fyun.oss.UploadToOssUtil;
 import com.fdkankan.fyun.oss.UploadToOssUtil;
 import com.fdkankan.scene.entity.SceneEditInfo;
 import com.fdkankan.scene.entity.SceneEditInfo;
+import com.fdkankan.scene.entity.ScenePlus;
+import com.fdkankan.scene.entity.ScenePlusExt;
 import com.fdkankan.scene.entity.ScenePro;
 import com.fdkankan.scene.entity.ScenePro;
 import com.fdkankan.scene.entity.SceneProExt;
 import com.fdkankan.scene.entity.SceneProExt;
 import com.fdkankan.scene.service.ISceneEditInfoService;
 import com.fdkankan.scene.service.ISceneEditInfoService;
+import com.fdkankan.scene.service.IScenePlusExtService;
+import com.fdkankan.scene.service.IScenePlusService;
 import com.fdkankan.scene.service.ISceneProExtService;
 import com.fdkankan.scene.service.ISceneProExtService;
 import com.fdkankan.scene.service.ISceneProService;
 import com.fdkankan.scene.service.ISceneProService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -47,12 +51,17 @@ public class FloorPlanHandler implements ISaveUploadHandler {
     private ISceneProExtService sceneProExtService;
     private ISceneProExtService sceneProExtService;
     @Autowired
     @Autowired
     UploadToOssUtil uploadToOssUtil;
     UploadToOssUtil uploadToOssUtil;
+    @Autowired
+    IScenePlusService scenePlusService;
+    @Autowired
+    IScenePlusExtService scenePlusExtService;
 
 
     @Override
     @Override
     public ResultData save(String num, String fileInfo) throws Exception {
     public ResultData save(String num, String fileInfo) throws Exception {
 
 
-        ScenePro scenePro = sceneProService.findBySceneNum(num);
-        if(Objects.isNull(scenePro))
+//        ScenePro scenePro = sceneProService.findBySceneNum(num);
+        ScenePlus scenePlus = scenePlusService.getScenePlusByNum(num);
+        if(Objects.isNull(scenePlus))
             throw new BusinessException(ErrorCode.FAILURE_CODE_5005);
             throw new BusinessException(ErrorCode.FAILURE_CODE_5005);
         JSONObject fileInfoJson = JSON.parseObject(fileInfo);
         JSONObject fileInfoJson = JSON.parseObject(fileInfo);
         //户型图文件路径
         //户型图文件路径
@@ -69,7 +78,7 @@ public class FloorPlanHandler implements ISaveUploadHandler {
 
 
 
 
         //写入数据库
         //写入数据库
-        SceneEditInfo sceneEditInfoDb = sceneEditInfoService.getBySceneProId(scenePro.getId());
+        SceneEditInfo sceneEditInfoDb = sceneEditInfoService.getByScenePlusId(scenePlus.getId());
         if(Objects.nonNull(sceneEditInfoDb)){
         if(Objects.nonNull(sceneEditInfoDb)){
             sceneEditInfoService.update(new LambdaUpdateWrapper<SceneEditInfo>()
             sceneEditInfoService.update(new LambdaUpdateWrapper<SceneEditInfo>()
                     .setSql("version=version+"+1)
                     .setSql("version=version+"+1)
@@ -78,7 +87,7 @@ public class FloorPlanHandler implements ISaveUploadHandler {
                     .eq(SceneEditInfo::getId, sceneEditInfoDb.getId()));
                     .eq(SceneEditInfo::getId, sceneEditInfoDb.getId()));
         }else{
         }else{
             sceneEditInfoDb = new SceneEditInfo();
             sceneEditInfoDb = new SceneEditInfo();
-            sceneEditInfoDb.setSceneProId(scenePro.getId());
+            sceneEditInfoDb.setScenePlusId(scenePlus.getId());
 //            sceneEditInfoDb.setFloorPlanPath(filePaths);
 //            sceneEditInfoDb.setFloorPlanPath(filePaths);
             sceneEditInfoDb.setCadInfo(cadInfo);
             sceneEditInfoDb.setCadInfo(cadInfo);
             sceneEditInfoService.save(sceneEditInfoDb);
             sceneEditInfoService.save(sceneEditInfoDb);
@@ -92,12 +101,11 @@ public class FloorPlanHandler implements ISaveUploadHandler {
         String oldDataPath = String.format(ConstantFilePath.DATA_PATH_FORMAT, num);
         String oldDataPath = String.format(ConstantFilePath.DATA_PATH_FORMAT, num);
 
 
         if(StrUtil.isEmpty(floorJsonData)){
         if(StrUtil.isEmpty(floorJsonData)){
-            if(scenePro == null){
-                throw new BusinessException(ErrorCode.FAILURE_CODE_5005);
-            }
-            SceneProExt sceneProExt = sceneProExtService.findBySceneProId(scenePro.getId());
+//            SceneProExt sceneProExt = sceneProExtService.findBySceneProId(scenePro.getId());
+            ScenePlusExt scenePlusExt= scenePlusExtService
+                .getScenePlusExtByPlusId(scenePlus.getId());
             // TODO: 2022/1/27 老版本数据目录挂在nas,新版本目前流程尚不清楚,先暂时按照老版本写,以后再调整
             // TODO: 2022/1/27 老版本数据目录挂在nas,新版本目前流程尚不清楚,先暂时按照老版本写,以后再调整
-            FileUtils.copyFile(sceneProExt.getDataSource() + "/results/floor.json", localDataPath + "houst_floor.json", true);
+            FileUtils.copyFile(scenePlusExt.getDataSource() + "/results/floor.json", localDataPath + "houst_floor.json", true);
             uploadToOssUtil.upload(localDataPath + "houst_floor.json", dataPath + "houst_floor.json");
             uploadToOssUtil.upload(localDataPath + "houst_floor.json", dataPath + "houst_floor.json");
 
 
             // TODO: 2022/1/27 老版本上传目录 待删除
             // TODO: 2022/1/27 老版本上传目录 待删除

+ 12 - 4
4dkankan-center-scene/src/main/java/com/fdkankan/scene/factory/handler/MusicHandler.java

@@ -7,8 +7,11 @@ import com.fdkankan.common.constant.ErrorCode;
 import com.fdkankan.common.exception.BusinessException;
 import com.fdkankan.common.exception.BusinessException;
 import com.fdkankan.common.response.ResultData;
 import com.fdkankan.common.response.ResultData;
 import com.fdkankan.scene.entity.SceneEditInfo;
 import com.fdkankan.scene.entity.SceneEditInfo;
+import com.fdkankan.scene.entity.ScenePlus;
 import com.fdkankan.scene.entity.ScenePro;
 import com.fdkankan.scene.entity.ScenePro;
 import com.fdkankan.scene.service.ISceneEditInfoService;
 import com.fdkankan.scene.service.ISceneEditInfoService;
+import com.fdkankan.scene.service.IScenePlusExtService;
+import com.fdkankan.scene.service.IScenePlusService;
 import com.fdkankan.scene.service.ISceneProService;
 import com.fdkankan.scene.service.ISceneProService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 import org.springframework.stereotype.Component;
@@ -31,25 +34,30 @@ public class MusicHandler implements ISaveUploadHandler {
     private ISceneEditInfoService sceneEditInfoService;
     private ISceneEditInfoService sceneEditInfoService;
     @Autowired
     @Autowired
     private ISceneProService sceneProService;
     private ISceneProService sceneProService;
+    @Autowired
+    IScenePlusService scenePlusService;
+    @Autowired
+    IScenePlusExtService scenePlusExtService;
 
 
     @Override
     @Override
     public ResultData save(String num, String fileInfo) {
     public ResultData save(String num, String fileInfo) {
 
 
-        ScenePro scenePro = sceneProService.findBySceneNum(num);
-        if(Objects.isNull(scenePro))
+//        ScenePro scenePro = sceneProService.findBySceneNum(num);
+        ScenePlus scenePlus = scenePlusService.getScenePlusByNum(num);
+        if(Objects.isNull(scenePlus))
             throw new BusinessException(ErrorCode.FAILURE_CODE_5005);
             throw new BusinessException(ErrorCode.FAILURE_CODE_5005);
 
 
         JSONObject fileInfoJson = JSON.parseObject(fileInfo);
         JSONObject fileInfoJson = JSON.parseObject(fileInfo);
         String music = fileInfoJson.getString("music");
         String music = fileInfoJson.getString("music");
 
 
-        SceneEditInfo sceneEditInfoDb = sceneEditInfoService.getBySceneProId(scenePro.getId());
+        SceneEditInfo sceneEditInfoDb = sceneEditInfoService.getByScenePlusId(scenePlus.getId());
         if(Objects.nonNull(sceneEditInfoDb)){
         if(Objects.nonNull(sceneEditInfoDb)){
             sceneEditInfoService.update(new LambdaUpdateWrapper<SceneEditInfo>()
             sceneEditInfoService.update(new LambdaUpdateWrapper<SceneEditInfo>()
                     .set(SceneEditInfo::getMusic, music)
                     .set(SceneEditInfo::getMusic, music)
                     .eq(SceneEditInfo::getId, sceneEditInfoDb.getId()));
                     .eq(SceneEditInfo::getId, sceneEditInfoDb.getId()));
         }else{
         }else{
             sceneEditInfoDb = new SceneEditInfo();
             sceneEditInfoDb = new SceneEditInfo();
-            sceneEditInfoDb.setSceneProId(scenePro.getId());
+            sceneEditInfoDb.setScenePlusId(scenePlus.getId());
             sceneEditInfoDb.setMusic(music);
             sceneEditInfoDb.setMusic(music);
             sceneEditInfoService.save(sceneEditInfoDb);
             sceneEditInfoService.save(sceneEditInfoDb);
         }
         }

+ 6 - 0
4dkankan-center-scene/src/main/java/com/fdkankan/scene/factory/handler/ScreenshotHandler.java

@@ -10,6 +10,8 @@ import com.fdkankan.common.response.ResultData;
 import com.fdkankan.scene.entity.SceneEditInfo;
 import com.fdkankan.scene.entity.SceneEditInfo;
 import com.fdkankan.scene.entity.ScenePro;
 import com.fdkankan.scene.entity.ScenePro;
 import com.fdkankan.scene.service.ISceneEditInfoService;
 import com.fdkankan.scene.service.ISceneEditInfoService;
+import com.fdkankan.scene.service.IScenePlusExtService;
+import com.fdkankan.scene.service.IScenePlusService;
 import com.fdkankan.scene.service.ISceneProService;
 import com.fdkankan.scene.service.ISceneProService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 import org.springframework.stereotype.Component;
@@ -30,6 +32,10 @@ public class ScreenshotHandler implements ISaveUploadHandler {
     private ISceneEditInfoService sceneEditInfoService;
     private ISceneEditInfoService sceneEditInfoService;
     @Autowired
     @Autowired
     private ISceneProService sceneProService;
     private ISceneProService sceneProService;
+    @Autowired
+    IScenePlusService scenePlusService;
+    @Autowired
+    IScenePlusExtService scenePlusExtService;
 
 
     @Override
     @Override
     public ResultData save(String num, String fileInfo) {
     public ResultData save(String num, String fileInfo) {

+ 2 - 0
4dkankan-center-scene/src/main/java/com/fdkankan/scene/service/ISceneEditInfoExtService.java

@@ -13,4 +13,6 @@ import com.fdkankan.scene.entity.SceneEditInfoExt;
  */
  */
 public interface ISceneEditInfoExtService extends IService<SceneEditInfoExt> {
 public interface ISceneEditInfoExtService extends IService<SceneEditInfoExt> {
 
 
+    public SceneEditInfoExt getByEditInfoId(long editInfoId);
+
 }
 }

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

@@ -22,6 +22,8 @@ public interface ISceneEditInfoService extends IService<SceneEditInfo> {
 
 
     SceneEditInfo getBySceneProId(long sceneProId);
     SceneEditInfo getBySceneProId(long sceneProId);
 
 
+    SceneEditInfo getByScenePlusId(long scenePlusId);
+
     ResultData publicScene(SceneEditInfoParamVO param) throws Exception;
     ResultData publicScene(SceneEditInfoParamVO param) throws Exception;
 
 
     SceneInfoVO getSceneInfo(SceneInfoParamVO param) throws Exception;
     SceneInfoVO getSceneInfo(SceneInfoParamVO param) throws Exception;
@@ -38,7 +40,7 @@ public interface ISceneEditInfoService extends IService<SceneEditInfo> {
 
 
     ResultData downloadPanorama(FileParamVO param) throws Exception;
     ResultData downloadPanorama(FileParamVO param) throws Exception;
 
 
-    void saveTagsToSceneEditInfo(String num, Long sceneProId, SceneEditInfo sceneEditInfo);
+    void saveTagsToSceneEditInfo(String num, SceneEditInfo sceneEditInfo);
 
 
     ResultData saveVideoBox(FileNameAndDataParamVO param) throws Exception;
     ResultData saveVideoBox(FileNameAndDataParamVO param) throws Exception;
 
 

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

@@ -13,6 +13,6 @@ import com.fdkankan.scene.entity.ScenePlusExt;
  */
  */
 public interface IScenePlusExtService extends IService<ScenePlusExt> {
 public interface IScenePlusExtService extends IService<ScenePlusExt> {
 
 
-    ScenePlusExt getSceneProExtByPlusId(long plusId);
+    ScenePlusExt getScenePlusExtByPlusId(long plusId);
 
 
 }
 }

+ 3 - 0
4dkankan-center-scene/src/main/java/com/fdkankan/scene/service/IScenePlusService.java

@@ -1,6 +1,7 @@
 package com.fdkankan.scene.service;
 package com.fdkankan.scene.service;
 
 
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.fdkankan.common.response.ResultData;
 import com.fdkankan.scene.entity.ScenePlus;
 import com.fdkankan.scene.entity.ScenePlus;
 
 
 /**
 /**
@@ -15,4 +16,6 @@ public interface IScenePlusService extends IService<ScenePlus> {
 
 
     ScenePlus getScenePlusByNum(String num);
     ScenePlus getScenePlusByNum(String num);
 
 
+    ResultData resetSpace(String num) throws Exception;
+
 }
 }

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

@@ -1,5 +1,6 @@
 package com.fdkankan.scene.service.impl;
 package com.fdkankan.scene.service.impl;
 
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.fdkankan.scene.entity.SceneEditInfoExt;
 import com.fdkankan.scene.entity.SceneEditInfoExt;
 import com.fdkankan.scene.mapper.ISceneEditInfoExtMapper;
 import com.fdkankan.scene.mapper.ISceneEditInfoExtMapper;
@@ -17,4 +18,8 @@ import org.springframework.stereotype.Service;
 @Service
 @Service
 public class SceneEditInfoExtServiceImpl extends ServiceImpl<ISceneEditInfoExtMapper, SceneEditInfoExt> implements ISceneEditInfoExtService {
 public class SceneEditInfoExtServiceImpl extends ServiceImpl<ISceneEditInfoExtMapper, SceneEditInfoExt> implements ISceneEditInfoExtService {
 
 
+    @Override
+    public SceneEditInfoExt getByEditInfoId(long editInfoId) {
+        return this.getOne(new LambdaQueryWrapper<SceneEditInfoExt>().eq(SceneEditInfoExt::getEditInfoId, editInfoId));
+    }
 }
 }

+ 55 - 42
4dkankan-center-scene/src/main/java/com/fdkankan/scene/service/impl/SceneEditInfoServiceImpl.java

@@ -33,6 +33,8 @@ import com.fdkankan.scene.bean.SceneJsonBean;
 import com.fdkankan.scene.entity.SceneDataDownload;
 import com.fdkankan.scene.entity.SceneDataDownload;
 import com.fdkankan.scene.entity.SceneEditControls;
 import com.fdkankan.scene.entity.SceneEditControls;
 import com.fdkankan.scene.entity.SceneEditInfo;
 import com.fdkankan.scene.entity.SceneEditInfo;
+import com.fdkankan.scene.entity.ScenePlus;
+import com.fdkankan.scene.entity.ScenePlusExt;
 import com.fdkankan.scene.entity.ScenePro;
 import com.fdkankan.scene.entity.ScenePro;
 import com.fdkankan.scene.entity.SceneProExt;
 import com.fdkankan.scene.entity.SceneProExt;
 import com.fdkankan.scene.factory.FloorLogoHandlerFactory;
 import com.fdkankan.scene.factory.FloorLogoHandlerFactory;
@@ -42,6 +44,8 @@ import com.fdkankan.scene.mapper.ISceneEditInfoMapper;
 import com.fdkankan.scene.service.ISceneDataDownloadService;
 import com.fdkankan.scene.service.ISceneDataDownloadService;
 import com.fdkankan.scene.service.ISceneEditControlsService;
 import com.fdkankan.scene.service.ISceneEditControlsService;
 import com.fdkankan.scene.service.ISceneEditInfoService;
 import com.fdkankan.scene.service.ISceneEditInfoService;
+import com.fdkankan.scene.service.IScenePlusExtService;
+import com.fdkankan.scene.service.IScenePlusService;
 import com.fdkankan.scene.service.ISceneProExtService;
 import com.fdkankan.scene.service.ISceneProExtService;
 import com.fdkankan.scene.service.ISceneProService;
 import com.fdkankan.scene.service.ISceneProService;
 import com.fdkankan.scene.vo.*;
 import com.fdkankan.scene.vo.*;
@@ -105,29 +109,33 @@ public class SceneEditInfoServiceImpl extends ServiceImpl<ISceneEditInfoMapper,
     PlatformGoodsClient platformGoodsClient;
     PlatformGoodsClient platformGoodsClient;
     @Autowired
     @Autowired
     PlatformUserClient platformUserClient;
     PlatformUserClient platformUserClient;
+    @Autowired
+    IScenePlusService scenePlusService;
+    @Autowired
+    IScenePlusExtService scenePlusExtService;
 
 
 
 
     @Transactional
     @Transactional
     @Override
     @Override
     public SceneEditInfoVO saveScene(SceneEditInfoParamVO param) {
     public SceneEditInfoVO saveScene(SceneEditInfoParamVO param) {
 
 
-        ScenePro scenePro = sceneProService.findBySceneNum(param.getNum());
-        if(Objects.isNull(scenePro)){
+        ScenePlus scenePlus = scenePlusService.getScenePlusByNum(param.getNum());
+//        ScenePro scenePro = sceneProService.findBySceneNum(param.getNum());
+        if(Objects.isNull(scenePlus)){
             throw new BusinessException(ErrorCode.FAILURE_CODE_5005);
             throw new BusinessException(ErrorCode.FAILURE_CODE_5005);
         }
         }
-        SceneEditInfo sceneEditInfoDb = this.getBySceneProId(scenePro.getId());
+        SceneEditInfo sceneEditInfoDb = this.getByScenePlusId(scenePlus.getId());
         SceneEditControls sceneEditControlsDb = null;
         SceneEditControls sceneEditControlsDb = null;
         if(Objects.nonNull(sceneEditInfoDb)){
         if(Objects.nonNull(sceneEditInfoDb)){
             sceneEditControlsDb = sceneEditControlsService.getBySceneEditId(sceneEditInfoDb.getId());
             sceneEditControlsDb = sceneEditControlsService.getBySceneEditId(sceneEditInfoDb.getId());
         }
         }
 
 
         SceneEditInfo sceneEditInfo = BeanUtil.copyProperties(param, SceneEditInfo.class);
         SceneEditInfo sceneEditInfo = BeanUtil.copyProperties(param, SceneEditInfo.class);
-        sceneEditInfo.setSceneProId(scenePro.getId());
+        sceneEditInfo.setScenePlusId(scenePlus.getId());
         if(Objects.isNull(sceneEditInfoDb)){
         if(Objects.isNull(sceneEditInfoDb)){
             this.save(sceneEditInfo);
             this.save(sceneEditInfo);
         }else{
         }else{
             sceneEditInfo.setId(sceneEditInfoDb.getId());
             sceneEditInfo.setId(sceneEditInfoDb.getId());
-            sceneEditInfo.setUpdateTime(Calendar.getInstance().getTime());
             this.updateById(sceneEditInfo);
             this.updateById(sceneEditInfo);
         }
         }
 
 
@@ -151,26 +159,30 @@ public class SceneEditInfoServiceImpl extends ServiceImpl<ISceneEditInfoMapper,
     @Override
     @Override
     public SceneEditInfo getBySceneProId(long sceneProId) {
     public SceneEditInfo getBySceneProId(long sceneProId) {
         return this.getOne(new LambdaQueryWrapper<SceneEditInfo>()
         return this.getOne(new LambdaQueryWrapper<SceneEditInfo>()
-                .eq(SceneEditInfo::getTbStatus, TbStatus.VALID.code())
                 .eq(SceneEditInfo::getSceneProId, sceneProId));
                 .eq(SceneEditInfo::getSceneProId, sceneProId));
     }
     }
 
 
+    @Override
+    public SceneEditInfo getByScenePlusId(long scenePlusId) {
+        return this.getOne(new LambdaQueryWrapper<SceneEditInfo>()
+            .eq(SceneEditInfo::getScenePlusId, scenePlusId));
+    }
+
     @Transactional
     @Transactional
     @Override
     @Override
     public ResultData publicScene(SceneEditInfoParamVO param)  throws Exception{
     public ResultData publicScene(SceneEditInfoParamVO param)  throws Exception{
-        String sceneNum = param.getNum();
-        if(StrUtil.isEmpty(sceneNum)){
-            throw new BusinessException(ErrorCode.PARAM_REQUIRED);
-        }
+        String num = param.getNum();
 
 
         //根据场景码查询数据库
         //根据场景码查询数据库
-        ScenePro scenePro = sceneProService.findBySceneNum(sceneNum);
-        SceneProExt sceneProExt = sceneProExtService.findBySceneProId(scenePro.getId());
-        SceneEditInfo sceneEditInfo = this.getBySceneProId(scenePro.getId());
+//        ScenePro scenePro = sceneProService.findBySceneNum(num);
+//        SceneProExt sceneProExt = sceneProExtService.findBySceneProId(scenePro.getId());
+        ScenePlus scenePlus = scenePlusService.getScenePlusByNum(num);
+        ScenePlusExt scenePlusExt = scenePlusExtService.getScenePlusExtByPlusId(scenePlus.getId());
+        SceneEditInfo sceneEditInfo = this.getByScenePlusId(scenePlus.getId());
         SceneEditControls sceneEditControls = null;
         SceneEditControls sceneEditControls = null;
         if(sceneEditInfo == null){
         if(sceneEditInfo == null){
             sceneEditInfo = new SceneEditInfo();
             sceneEditInfo = new SceneEditInfo();
-            sceneEditInfo.setSceneProId(scenePro.getId());
+            sceneEditInfo.setSceneProId(scenePlus.getId());
         }else{
         }else{
             sceneEditControls = sceneEditControlsService.getBySceneEditId(sceneEditInfo.getId());
             sceneEditControls = sceneEditControlsService.getBySceneEditId(sceneEditInfo.getId());
         }
         }
@@ -183,38 +195,38 @@ public class SceneEditInfoServiceImpl extends ServiceImpl<ISceneEditInfoMapper,
         SceneJsonBean sceneJson = BeanUtil.copyProperties(sceneEditInfo, SceneJsonBean.class);
         SceneJsonBean sceneJson = BeanUtil.copyProperties(sceneEditInfo, SceneJsonBean.class);
         SceneEditControlsVO sceneEditControlsVO = BeanUtil.copyProperties(sceneEditControls, SceneEditControlsVO.class);
         SceneEditControlsVO sceneEditControlsVO = BeanUtil.copyProperties(sceneEditControls, SceneEditControlsVO.class);
         sceneJson.setControls(sceneEditControlsVO);
         sceneJson.setControls(sceneEditControlsVO);
-        sceneJson.setNum(sceneNum);
+        sceneJson.setNum(num);
 //        if(StrUtil.isNotEmpty(sceneEditInfo.getFloorPlanPath())){
 //        if(StrUtil.isNotEmpty(sceneEditInfo.getFloorPlanPath())){
 //            sceneJson.setFloorPlanPaths(sceneEditInfo.getFloorPlanPath().split(","));
 //            sceneJson.setFloorPlanPaths(sceneEditInfo.getFloorPlanPath().split(","));
 //        }
 //        }
-        sceneJson.setCreateTime(scenePro.getCreateTime());
+        sceneJson.setCreateTime(scenePlus.getCreateTime());
 
 
-        sceneJson.setSceneResolution(sceneProExt.getSceneResolution());
-        sceneJson.setSceneFrom(sceneProExt.getSceneFrom());
-        if(StrUtil.isNotEmpty(scenePro.getVideos())){
-            sceneJson.setVideos(JSON.parseObject(scenePro.getVideos()));
+        sceneJson.setSceneResolution(scenePlusExt.getSceneResolution());
+        sceneJson.setSceneFrom(scenePlusExt.getSceneFrom());
+        if(StrUtil.isNotEmpty(scenePlusExt.getVideos())){
+            sceneJson.setVideos(JSON.parseObject(scenePlusExt.getVideos()));
         }
         }
 
 
         //处理热点数据,生成hot.json
         //处理热点数据,生成hot.json
-        this.publicHotData(sceneNum, sceneJson, sceneEditInfo);
+        this.publicHotData(num, sceneJson, sceneEditInfo);
 
 
         // TODO: 2022/3/2 这里的逻辑放在上传球幕视频接口中做了,这里先暂时注释掉,以后要删除
         // TODO: 2022/3/2 这里的逻辑放在上传球幕视频接口中做了,这里先暂时注释掉,以后要删除
         //处理球幕视频
         //处理球幕视频
 //        this.buildVideo(sceneEditInfo, sceneProExt.getDataSource(), sceneNum);
 //        this.buildVideo(sceneEditInfo, sceneProExt.getDataSource(), sceneNum);
 
 
         //本地写sceneJson文件
         //本地写sceneJson文件
-        String localSceneJsonPath = String.format(ConstantFilePath.SCENE_PATH_FORMAT, sceneNum);
+        String localSceneJsonPath = String.format(ConstantFilePath.SCENE_PATH_FORMAT, num);
         FileUtils.writeFile(localSceneJsonPath, JSON.toJSONString(sceneJson));
         FileUtils.writeFile(localSceneJsonPath, JSON.toJSONString(sceneJson));
         //上传sceneJson文件
         //上传sceneJson文件
-        String sceneJsonPath = String.format(UploadFilePath.DATA_VIEW_PATH+"scene.json", sceneNum);
+        String sceneJsonPath = String.format(UploadFilePath.DATA_VIEW_PATH+"scene.json", num);
         uploadToOssUtil.upload(JSON.toJSONBytes(sceneJson), sceneJsonPath);
         uploadToOssUtil.upload(JSON.toJSONBytes(sceneJson), sceneJsonPath);
 
 
         //sceneJson放入缓存
         //sceneJson放入缓存
-        String key = String.format(RedisKey.SCENE_JSON, sceneNum);
+        String key = String.format(RedisKey.SCENE_JSON, num);
         redisUtil.set(key, JSON.toJSONString(sceneJson));
         redisUtil.set(key, JSON.toJSONString(sceneJson));
 
 
         //删除发布数据中的user目录
         //删除发布数据中的user目录
-        String publicUserPath = String.format(UploadFilePath.USER_VIEW_PATH, sceneNum);
+        String publicUserPath = String.format(UploadFilePath.USER_VIEW_PATH, num);
         uploadToOssUtil.deleteFile(publicUserPath);
         uploadToOssUtil.deleteFile(publicUserPath);
 
 
 //        String editUserPath = String.format(UploadFilePath.USER_EDIT_PATH, sceneNum);
 //        String editUserPath = String.format(UploadFilePath.USER_EDIT_PATH, sceneNum);
@@ -296,9 +308,7 @@ public class SceneEditInfoServiceImpl extends ServiceImpl<ISceneEditInfoMapper,
             uploadToOssUtil.upload(jsonhots.toString().getBytes(), hotJsonPath);
             uploadToOssUtil.upload(jsonhots.toString().getBytes(), hotJsonPath);
 
 
             //修改tags状态为是,标识有热点数据
             //修改tags状态为是,标识有热点数据
-            ScenePro scenePro = sceneProService.findBySceneNum(sceneNum);
-
-            this.saveTagsToSceneEditInfo(sceneNum, scenePro.getId(), sceneEditInfo);
+            this.saveTagsToSceneEditInfo(sceneNum, sceneEditInfo);
         }
         }
     }
     }
 
 
@@ -326,13 +336,15 @@ public class SceneEditInfoServiceImpl extends ServiceImpl<ISceneEditInfoMapper,
      * @return com.fdkankan.scene.vo.SceneInfoVO
      * @return com.fdkankan.scene.vo.SceneInfoVO
      **/
      **/
     private SceneInfoVO getSceneInfo4Edit(String num) throws Exception{
     private SceneInfoVO getSceneInfo4Edit(String num) throws Exception{
-        ScenePro scenePro = sceneProService.findBySceneNum(num);
-        if(Objects.isNull(scenePro)){
+//        ScenePro scenePro = sceneProService.findBySceneNum(num);
+        ScenePlus scenePlus = scenePlusService.getScenePlusByNum(num);
+        if(Objects.isNull(scenePlus)){
             throw new BusinessException(ErrorCode.FAILURE_CODE_5005);
             throw new BusinessException(ErrorCode.FAILURE_CODE_5005);
         }
         }
-        SceneProExt sceneProExt = sceneProExtService.findBySceneProId(scenePro.getId());
+//        SceneProExt sceneProExt = sceneProExtService.findBySceneProId(scenePro.getId());
+        ScenePlusExt scenePlusExt = scenePlusExtService.getScenePlusExtByPlusId(scenePlus.getId());
 
 
-        SceneEditInfo sceneEditInfo = this.getBySceneProId(scenePro.getId());
+        SceneEditInfo sceneEditInfo = this.getByScenePlusId(scenePlus.getId());
         if(Objects.isNull(sceneEditInfo)){
         if(Objects.isNull(sceneEditInfo)){
             throw new BusinessException(ErrorCode.FAILURE_CODE_5005);
             throw new BusinessException(ErrorCode.FAILURE_CODE_5005);
         }
         }
@@ -344,13 +356,13 @@ public class SceneEditInfoServiceImpl extends ServiceImpl<ISceneEditInfoMapper,
 //        if(StrUtil.isNotEmpty(sceneEditInfo.getFloorPlanPath())){
 //        if(StrUtil.isNotEmpty(sceneEditInfo.getFloorPlanPath())){
 //            sceneInfoVO.setFloorPlanPaths(sceneEditInfo.getFloorPlanPath().split(","));
 //            sceneInfoVO.setFloorPlanPaths(sceneEditInfo.getFloorPlanPath().split(","));
 //        }
 //        }
-        sceneInfoVO.setCreateTime(scenePro.getCreateTime());
+        sceneInfoVO.setCreateTime(scenePlus.getCreateTime());
 
 
-        sceneInfoVO.setSceneResolution(sceneProExt.getSceneResolution());
-        sceneInfoVO.setSceneFrom(sceneProExt.getSceneFrom());
-        sceneInfoVO.setVideos(scenePro.getVideos());
+        sceneInfoVO.setSceneResolution(scenePlusExt.getSceneResolution());
+        sceneInfoVO.setSceneFrom(scenePlusExt.getSceneFrom());
+        sceneInfoVO.setVideos(scenePlusExt.getVideos());
 
 
-        this.setExtData(sceneInfoVO, scenePro.getCameraId());
+        this.setExtData(sceneInfoVO, scenePlus.getCameraId());
 
 
         return sceneInfoVO;
         return sceneInfoVO;
     }
     }
@@ -450,8 +462,9 @@ public class SceneEditInfoServiceImpl extends ServiceImpl<ISceneEditInfoMapper,
     public ResultData saveCad(BaseDataParamVO param) throws Exception {
     public ResultData saveCad(BaseDataParamVO param) throws Exception {
 
 
         String num = param.getNum();
         String num = param.getNum();
-        ScenePro scenePro = sceneProService.findBySceneNum(num);
-        if(Objects.isNull(scenePro))
+//        ScenePro scenePro = sceneProService.findBySceneNum(num);
+        ScenePlus scenePlus = scenePlusService.getScenePlusByNum(num);
+        if(Objects.isNull(scenePlus))
             throw new BusinessException(ErrorCode.FAILURE_CODE_5005);
             throw new BusinessException(ErrorCode.FAILURE_CODE_5005);
 
 
         String editDataPath = String.format(UploadFilePath.DATA_EDIT_PATH, num);
         String editDataPath = String.format(UploadFilePath.DATA_EDIT_PATH, num);
@@ -526,7 +539,7 @@ public class SceneEditInfoServiceImpl extends ServiceImpl<ISceneEditInfoMapper,
 //        if(CommonStatus.YES.code().equals(reSet)){
 //        if(CommonStatus.YES.code().equals(reSet)){
 //            floorPlanUser = CommonStatus.NO.code();
 //            floorPlanUser = CommonStatus.NO.code();
 //        }
 //        }
-        SceneEditInfo sceneEditInfoDb = this.getBySceneProId(scenePro.getId());
+        SceneEditInfo sceneEditInfoDb = this.getByScenePlusId(scenePlus.getId());
         if(Objects.nonNull(sceneEditInfoDb)){
         if(Objects.nonNull(sceneEditInfoDb)){
             LambdaUpdateWrapper<SceneEditInfo> updateWrapper = new LambdaUpdateWrapper<SceneEditInfo>()
             LambdaUpdateWrapper<SceneEditInfo> updateWrapper = new LambdaUpdateWrapper<SceneEditInfo>()
                 .setSql("version=version+" + 1)
                 .setSql("version=version+" + 1)
@@ -543,7 +556,7 @@ public class SceneEditInfoServiceImpl extends ServiceImpl<ISceneEditInfoMapper,
             this.update(updateWrapper);
             this.update(updateWrapper);
         }else{
         }else{
             sceneEditInfoDb = new SceneEditInfo();
             sceneEditInfoDb = new SceneEditInfo();
-            sceneEditInfoDb.setSceneProId(scenePro.getId());
+            sceneEditInfoDb.setScenePlusId(scenePlus.getId());
 //            sceneEditInfoDb.setFloorPlanPath(filePathStr);
 //            sceneEditInfoDb.setFloorPlanPath(filePathStr);
             sceneEditInfoDb.setCadInfo(cadInfo);
             sceneEditInfoDb.setCadInfo(cadInfo);
             sceneEditInfoDb.setFloorPlanUser(floorPlanUser);
             sceneEditInfoDb.setFloorPlanUser(floorPlanUser);
@@ -731,7 +744,7 @@ public class SceneEditInfoServiceImpl extends ServiceImpl<ISceneEditInfoMapper,
     }
     }
 
 
     @Override
     @Override
-    public void saveTagsToSceneEditInfo(String num, Long sceneProId, SceneEditInfo sceneEditInfo){
+    public void saveTagsToSceneEditInfo(String num, SceneEditInfo sceneEditInfo){
         //查询缓存是否包含热点数据
         //查询缓存是否包含热点数据
         String key = String.format(RedisKey.SCENE_HOT_DATA, num);
         String key = String.format(RedisKey.SCENE_HOT_DATA, num);
         Map<String, String> allTagsMap = redisUtil.hmget(key);
         Map<String, String> allTagsMap = redisUtil.hmget(key);

+ 10 - 7
4dkankan-center-scene/src/main/java/com/fdkankan/scene/service/impl/SceneEditServiceImpl.java

@@ -13,8 +13,10 @@ import com.fdkankan.platform.api.feign.PlatformGoodsClient;
 import com.fdkankan.platform.api.feign.PlatformUserClient;
 import com.fdkankan.platform.api.feign.PlatformUserClient;
 import com.fdkankan.platform.api.vo.Camera;
 import com.fdkankan.platform.api.vo.Camera;
 import com.fdkankan.platform.api.vo.UserIncrement;
 import com.fdkankan.platform.api.vo.UserIncrement;
+import com.fdkankan.scene.entity.ScenePlus;
 import com.fdkankan.scene.entity.ScenePro;
 import com.fdkankan.scene.entity.ScenePro;
 import com.fdkankan.scene.service.ISceneEditService;
 import com.fdkankan.scene.service.ISceneEditService;
+import com.fdkankan.scene.service.IScenePlusService;
 import com.fdkankan.scene.service.ISceneProService;
 import com.fdkankan.scene.service.ISceneProService;
 import com.fdkankan.scene.vo.BaseSceneParamVO;
 import com.fdkankan.scene.vo.BaseSceneParamVO;
 import com.fdkankan.scene.vo.SceneAuthVO;
 import com.fdkankan.scene.vo.SceneAuthVO;
@@ -40,23 +42,24 @@ public class SceneEditServiceImpl implements ISceneEditService {
     PlatformGoodsClient platformGoodsClient;
     PlatformGoodsClient platformGoodsClient;
     @Autowired
     @Autowired
     PlatformUserClient platformUserClient;
     PlatformUserClient platformUserClient;
+    @Autowired
+    IScenePlusService scenePlusService;
 
 
     @Override
     @Override
     public SceneAuthVO getAuth(BaseSceneParamVO param) throws Exception{
     public SceneAuthVO getAuth(BaseSceneParamVO param) throws Exception{
 
 
-        ScenePro scenePro = sceneProService.getOne(
-            new LambdaQueryWrapper<ScenePro>()
-                .eq(ScenePro::getNum, param.getNum())
-                .eq(ScenePro::getPayStatus,PayStatus.PAY.code())
-                .in(ScenePro::getSceneStatus, SceneStatus.SUCCESS.code(), SceneStatus.NO_DISPLAY.code()));
-        if(scenePro == null){
+        ScenePlus scenePlus = scenePlusService.getOne(
+            new LambdaQueryWrapper<ScenePlus>().eq(ScenePlus::getNum, param.getNum())
+                .eq(ScenePlus::getPayStatus, PayStatus.PAY.code())
+                .in(ScenePlus::getSceneStatus, SceneStatus.SUCCESS.code(), SceneStatus.NO_DISPLAY.code()));
+        if(scenePlus == null){
             throw new BusinessException(ErrorCode.FAILURE_CODE_5005);
             throw new BusinessException(ErrorCode.FAILURE_CODE_5005);
         }
         }
         //判断该场景是否属于增值权益
         //判断该场景是否属于增值权益
         boolean isVip = false;
         boolean isVip = false;
         //获取该相机是否有权益
         //获取该相机是否有权益
         boolean isExpired  = false;
         boolean isExpired  = false;
-        ResultData<Camera> cameraResultData = platformGoodsClient.getCameraById(scenePro.getCameraId());
+        ResultData<Camera> cameraResultData = platformGoodsClient.getCameraById(scenePlus.getCameraId());
         if(!cameraResultData.getSuccess()){
         if(!cameraResultData.getSuccess()){
             throw new Exception(ServerCode.FEIGN_REQUEST_FAILD.message());
             throw new Exception(ServerCode.FEIGN_REQUEST_FAILD.message());
         }
         }

+ 391 - 106
4dkankan-center-scene/src/main/java/com/fdkankan/scene/service/impl/SceneFileBuildServiceImpl.java

@@ -26,6 +26,7 @@ import com.fdkankan.platform.api.vo.Camera;
 import com.fdkankan.platform.api.vo.CameraDetail;
 import com.fdkankan.platform.api.vo.CameraDetail;
 import com.fdkankan.platform.api.vo.Company;
 import com.fdkankan.platform.api.vo.Company;
 import com.fdkankan.redis.util.RedisUtil;
 import com.fdkankan.redis.util.RedisUtil;
+import com.fdkankan.scene.bean.SceneJsonBean;
 import com.fdkankan.scene.entity.*;
 import com.fdkankan.scene.entity.*;
 import com.fdkankan.scene.mapper.ISceneFileBuildMapper;
 import com.fdkankan.scene.mapper.ISceneFileBuildMapper;
 import com.fdkankan.scene.service.*;
 import com.fdkankan.scene.service.*;
@@ -150,6 +151,10 @@ public class SceneFileBuildServiceImpl extends ServiceImpl<ISceneFileBuildMapper
     IFdkkLaserService fdkkLaserService;
     IFdkkLaserService fdkkLaserService;
     @Autowired
     @Autowired
     ISceneEditInfoService sceneEditInfoService;
     ISceneEditInfoService sceneEditInfoService;
+    @Autowired
+    ISceneEditControlsService sceneEditControlsService;
+    @Autowired
+    ISceneEditInfoExtService sceneEditInfoExtService;
 
 
     @Override
     @Override
     public SceneFileBuild findByFileId(String fileId) {
     public SceneFileBuild findByFileId(String fileId) {
@@ -840,6 +845,7 @@ public class SceneFileBuildServiceImpl extends ServiceImpl<ISceneFileBuildMapper
             cameraType = 6L;
             cameraType = 6L;
         }
         }
 
 
+        // TODO: 2022/3/21 plus版本稳定后删除 ---------------------------------------------------------------------------------start
         SceneProPO scene = this.createScenePro(sceneNum, camera.getId(), camera.getChildName(), jsonObject.getString("creator"),
         SceneProPO scene = this.createScenePro(sceneNum, camera.getId(), camera.getChildName(), jsonObject.getString("creator"),
                 jsonObject.getString("pwd"), unicode,
                 jsonObject.getString("pwd"), unicode,
                 cameraType, "", prefix, zipName, icon, "0", cameraDetail.getUserId(), userName,
                 cameraType, "", prefix, zipName, icon, "0", cameraDetail.getUserId(), userName,
@@ -847,6 +853,20 @@ public class SceneFileBuildServiceImpl extends ServiceImpl<ISceneFileBuildMapper
                 jsonObject.getJSONArray("points").size(), jsonObject.getString("name"), jsonObject.getString("info"),
                 jsonObject.getJSONArray("points").size(), jsonObject.getString("name"), jsonObject.getString("info"),
                 jsonObject.getInteger("scenetype"), jsonObject.getString("gps"), rebuild,
                 jsonObject.getInteger("scenetype"), jsonObject.getString("gps"), rebuild,
                 4, firmwareVersion.toString(), sceneUrl, buildType, type, ecsType, cameraDetail.getCooperationUser());
                 4, firmwareVersion.toString(), sceneUrl, buildType, type, ecsType, cameraDetail.getCooperationUser());
+        // TODO: 2022/3/21 plus版本稳定后删除 ---------------------------------------------------------------------------------end
+
+        Object[] objects = this.createScenePlus2(sceneNum, camera.getId(), camera.getChildName(),
+            jsonObject.getString("creator"),
+            jsonObject.getString("pwd"), unicode,
+            cameraType, "", prefix, zipName, icon, "0", cameraDetail.getUserId(), userName,
+            jsonObject.getString("location") != null && "1".equals(jsonObject.getString("location"))
+                ? "sfm" : "slam",
+            jsonObject.getJSONArray("points").size(), jsonObject.getString("name"),
+            jsonObject.getString("info"),
+            jsonObject.getInteger("scenetype"), jsonObject.getString("gps"), rebuild,
+            4, firmwareVersion.toString(), sceneUrl, buildType, ecsType,
+            cameraDetail.getCooperationUser());
+        BuildSceneMqMessage mqMessage = (BuildSceneMqMessage)objects[1];
 
 
         if(scene == null){
         if(scene == null){
             log.info("双目相机入库失败");
             log.info("双目相机入库失败");
@@ -866,7 +886,7 @@ public class SceneFileBuildServiceImpl extends ServiceImpl<ISceneFileBuildMapper
         //删除oss的houst_floor.json
         //删除oss的houst_floor.json
         uploadToOssUtil.delete("data/data"+sceneNum+File.separator+"houst_floor.json");
         uploadToOssUtil.delete("data/data"+sceneNum+File.separator+"houst_floor.json");
 
 
-        mqProducer.sendInOrder(topicModelingA, scene.getId()+"", scene.getMqMsg());
+        mqProducer.syncSend(topicModelingAPre, mqMessage);
 
 
         Map<String, String> map = new HashMap<>();
         Map<String, String> map = new HashMap<>();
         map.put("sceneNum", sceneNum);
         map.put("sceneNum", sceneNum);
@@ -899,23 +919,25 @@ public class SceneFileBuildServiceImpl extends ServiceImpl<ISceneFileBuildMapper
         }
         }
 
 
         String sceneNum = "";
         String sceneNum = "";
-
         String snCode = jsonObject.getJSONObject("cam").getString("uuid");
         String snCode = jsonObject.getJSONObject("cam").getString("uuid");
         String unicode = jsonObject.getString("creator") + "_" + jsonObject.getString("uuidtime"); //从data.fage 取出
         String unicode = jsonObject.getString("creator") + "_" + jsonObject.getString("uuidtime"); //从data.fage 取出
-//            sceneProService.updateRecStatus(unicode);
         //查看场景中的文件目录是否有改文件id,有则重新计算改场景,无则新建场景
         //查看场景中的文件目录是否有改文件id,有则重新计算改场景,无则新建场景
-        ScenePlusExt scene = scenePlusExtService.list(
+        ScenePlusExt scenePlusExt = scenePlusExtService.list(
             new LambdaQueryWrapper<ScenePlusExt>()
             new LambdaQueryWrapper<ScenePlusExt>()
                 .like(ScenePlusExt::getDataSource, "%/" + fileId + "/%")).get(0);
                 .like(ScenePlusExt::getDataSource, "%/" + fileId + "/%")).get(0);
+        ScenePlus scene1 = null;
+        if(Objects.nonNull(scenePlusExt)){
+            scene1 = scenePlusService.getById(scenePlusExt.getPlusId());
+        }
 
 
         // TODO: 2022/3/19 plus 版本稳定后删除-------------------------------start
         // TODO: 2022/3/19 plus 版本稳定后删除-------------------------------start
-        SceneProPO scene = sceneProService.findByFileId("/" + fileId + "/");
+//        SceneProPO scene = sceneProService.findByFileId("/" + fileId + "/");
         // TODO: 2022/3/19 plus 版本稳定后删除-------------------------------end
         // TODO: 2022/3/19 plus 版本稳定后删除-------------------------------end
 
 
         int rebuild = 1;
         int rebuild = 1;
-        if(scene != null){
-            sceneNum = scene.getNum();
-            if(scene.getSceneStatus() == SceneStatus.wait.code()){
+        if(scene1 != null){
+            sceneNum = scene1.getNum();
+            if(scene1.getSceneStatus() == SceneStatus.wait.code()){
                 log.info(sceneNum + ":场景处于计算中,不能再计算");
                 log.info(sceneNum + ":场景处于计算中,不能再计算");
                 return;
                 return;
             }
             }
@@ -962,7 +984,7 @@ public class SceneFileBuildServiceImpl extends ServiceImpl<ISceneFileBuildMapper
             }
             }
         }
         }
 
 
-        String icon = null;//新系统
+        String icon = null;
         if(jsonObject.containsKey("icon") && StrUtil.isNotEmpty(jsonObject.getString("icon"))){
         if(jsonObject.containsKey("icon") && StrUtil.isNotEmpty(jsonObject.getString("icon"))){
             CreateObjUtil.ossUtilCp(ConstantFilePath.OSS_PREFIX + prefix + jsonObject.getString("icon"), filePath);
             CreateObjUtil.ossUtilCp(ConstantFilePath.OSS_PREFIX + prefix + jsonObject.getString("icon"), filePath);
             icon = prefixAli + imageViewPath + jsonObject.getString("icon");
             icon = prefixAli + imageViewPath + jsonObject.getString("icon");
@@ -1000,7 +1022,10 @@ public class SceneFileBuildServiceImpl extends ServiceImpl<ISceneFileBuildMapper
 
 
         //重算的场景,先移除该场景对应的容量
         //重算的场景,先移除该场景对应的容量
         if(rebuild == 1){
         if(rebuild == 1){
+            scenePlusService.resetSpace(sceneNum);
+            // TODO: 2022/3/19 plus版本稳定后需要删除---------------start
             sceneProService.rebuildReduceSpaceBySceneNum(sceneNum);
             sceneProService.rebuildReduceSpaceBySceneNum(sceneNum);
+            // TODO: 2022/3/19 plus版本稳定后需要删除---------------end
         }else {
         }else {
             //上传log-main.png
             //上传log-main.png
             uploadToOssUtil.upload(ConstantFilePath.LOGO_PATH + "logo-main.png", imageViewPath + "logo-main.png");
             uploadToOssUtil.upload(ConstantFilePath.LOGO_PATH + "logo-main.png", imageViewPath + "logo-main.png");
@@ -1013,13 +1038,24 @@ public class SceneFileBuildServiceImpl extends ServiceImpl<ISceneFileBuildMapper
 
 
         }
         }
         SceneProPO scene = null;
         SceneProPO scene = null;
+        // TODO: 2022/3/21 plus版本稳定后删除 ---------------------------------------------------------------------------------start
         scene = this.createScenePro(sceneNum, camera.getId(), camera.getChildName(), jsonObject.getString("creator"),
         scene = this.createScenePro(sceneNum, camera.getId(), camera.getChildName(), jsonObject.getString("creator"),
                 jsonObject.getString("pwd"), unicode,
                 jsonObject.getString("pwd"), unicode,
                 cameraType, String.valueOf(fileId), prefix, "", icon, "0", cameraDetail.getUserId(), userName,
                 cameraType, String.valueOf(fileId), prefix, "", icon, "0", cameraDetail.getUserId(), userName,
                 jsonObject.getString("location") != null && "1".equals(jsonObject.getString("location")) ? "sfm" : "slam",
                 jsonObject.getString("location") != null && "1".equals(jsonObject.getString("location")) ? "sfm" : "slam",
                 jsonObject.getJSONArray("points").size(), jsonObject.getString("name"), jsonObject.getString("info"),
                 jsonObject.getJSONArray("points").size(), jsonObject.getString("name"), jsonObject.getString("info"),
                 jsonObject.getInteger("scenetype"), jsonObject.getString("gps"), rebuild,
                 jsonObject.getInteger("scenetype"), jsonObject.getString("gps"), rebuild,
-                jsonObject.getInteger("resolution"), firmwareVersion.toString(), sceneUrl, buildType, type, ecsType,cameraDetail.getCooperationUser());
+                jsonObject.getInteger("resolution"), firmwareVersion.toString(), sceneUrl, buildType, type, ecsType, cameraDetail.getCooperationUser());
+        // TODO: 2022/3/21 plus版本稳定后删除 ---------------------------------------------------------------------------------end
+
+        Object[] objects = this.createScenePlus2(sceneNum, camera.getId(), camera.getChildName(), jsonObject.getString("creator"),
+            jsonObject.getString("pwd"), unicode,
+            cameraType, String.valueOf(fileId), prefix, "", icon, "0", cameraDetail.getUserId(), userName,
+            jsonObject.getString("location") != null && "1".equals(jsonObject.getString("location")) ? "sfm" : "slam",
+            jsonObject.getJSONArray("points").size(), jsonObject.getString("name"), jsonObject.getString("info"),
+            jsonObject.getInteger("scenetype"), jsonObject.getString("gps"), rebuild,
+            jsonObject.getInteger("resolution"), firmwareVersion.toString(), sceneUrl, buildType, ecsType, cameraDetail.getCooperationUser());
+        BuildSceneMqMessage  mqMessage = (BuildSceneMqMessage)objects[1];
 
 
         if(scene != null){
         if(scene != null){
             JSONObject statusJson = new JSONObject();
             JSONObject statusJson = new JSONObject();
@@ -1144,11 +1180,12 @@ public class SceneFileBuildServiceImpl extends ServiceImpl<ISceneFileBuildMapper
         //激光转台 八目相机占用 10 和 11
         //激光转台 八目相机占用 10 和 11
         log.info("发送mq,camType:{}", jsonObject.getJSONObject("cam").getIntValue("type"));
         log.info("发送mq,camType:{}", jsonObject.getJSONObject("cam").getIntValue("type"));
         if(jsonObject.getJSONObject("cam").getIntValue("type") == 10){
         if(jsonObject.getJSONObject("cam").getIntValue("type") == 10){
-            mqProducer.sendOneWay(topicLaserA, scene.getMqMsg());
+//            mqProducer.sendOneWay(topicLaserA, mqMessage);
+            // TODO: 2022/3/19 这里应该是发送激光的 ,目前还不清楚,先统一发送同一个mq
+            mqProducer.syncSend(topicModelingAPre, mqMessage);
         }else if(scene != null){
         }else if(scene != null){
 //            mqProducer.sendInOrder(topicModelingA, scene.getId()+"", scene.getMqMsg());
 //            mqProducer.sendInOrder(topicModelingA, scene.getId()+"", scene.getMqMsg());
-            mqProducer.syncSend(topicModelingAPre, scene.getMqMsg());
-
+            mqProducer.syncSend(topicModelingAPre, mqMessage);
         }
         }
     }
     }
 
 
@@ -1338,7 +1375,10 @@ public class SceneFileBuildServiceImpl extends ServiceImpl<ISceneFileBuildMapper
                     uploadToOssUtil.upload(ConstantFilePath.LOGO_PATH + "logo-main-en.png", "images/images" + sceneNum + "/logo-main-en.png");
                     uploadToOssUtil.upload(ConstantFilePath.LOGO_PATH + "logo-main-en.png", "images/images" + sceneNum + "/logo-main-en.png");
                 }
                 }
                 SceneProPO sceneProPO = null;
                 SceneProPO sceneProPO = null;
+                Object[] objects = null;
+                BuildSceneMqMessage mqMessage = null;
                 if(fromOss){
                 if(fromOss){
+                    // TODO: 2022/3/21 plus版本稳定后删除 ---------------------------------------------------------------------------------start
                     sceneProPO = this.createScenePro(sceneNum, camera.getId(), camera.getChildName(), jsonObject.getString("creator"),
                     sceneProPO = this.createScenePro(sceneNum, camera.getId(), camera.getChildName(), jsonObject.getString("creator"),
                             jsonObject.getString("pwd"), unicode,
                             jsonObject.getString("pwd"), unicode,
                             cameraType, String.valueOf(fileId), prefix, "", icon, "0", cameraDetail.getUserId(), userName,
                             cameraType, String.valueOf(fileId), prefix, "", icon, "0", cameraDetail.getUserId(), userName,
@@ -1346,7 +1386,18 @@ public class SceneFileBuildServiceImpl extends ServiceImpl<ISceneFileBuildMapper
                             jsonObject.getJSONArray("points").size(), jsonObject.getString("name"), jsonObject.getString("info"),
                             jsonObject.getJSONArray("points").size(), jsonObject.getString("name"), jsonObject.getString("info"),
                             jsonObject.getInteger("scenetype"), jsonObject.getString("gps"), rebuild,
                             jsonObject.getInteger("scenetype"), jsonObject.getString("gps"), rebuild,
                             jsonObject.getInteger("resolution"), firmwareVersion.toString(), sceneUrl, buildType, type, ecsType,cameraDetail.getCooperationUser());
                             jsonObject.getInteger("resolution"), firmwareVersion.toString(), sceneUrl, buildType, type, ecsType,cameraDetail.getCooperationUser());
+                    // TODO: 2022/3/21 plus版本稳定后删除 ---------------------------------------------------------------------------------end
+
+                    objects = this.createScenePlus2(sceneNum, camera.getId(), camera.getChildName(), jsonObject.getString("creator"),
+                        jsonObject.getString("pwd"), unicode,
+                        cameraType, String.valueOf(fileId), prefix, "", icon, "0", cameraDetail.getUserId(), userName,
+                        jsonObject.getString("location") != null && "1".equals(jsonObject.getString("location")) ? "sfm" : "slam",
+                        jsonObject.getJSONArray("points").size(), jsonObject.getString("name"), jsonObject.getString("info"),
+                        jsonObject.getInteger("scenetype"), jsonObject.getString("gps"), rebuild,
+                        jsonObject.getInteger("resolution"), firmwareVersion.toString(), sceneUrl, buildType, ecsType,cameraDetail.getCooperationUser());
+
                 }else {
                 }else {
+                    // TODO: 2022/3/21 plus版本稳定后删除 ---------------------------------------------------------------------------------start
                     sceneProPO = this.createScenePro(sceneNum, camera.getId(), camera.getChildName(), jsonObject.getString("creator"),
                     sceneProPO = this.createScenePro(sceneNum, camera.getId(), camera.getChildName(), jsonObject.getString("creator"),
                             jsonObject.getString("pwd"), unicode,
                             jsonObject.getString("pwd"), unicode,
                             cameraDetail.getGoodsId(), String.valueOf(fileId), "", "", icon, "0", cameraDetail.getUserId(), userName,
                             cameraDetail.getGoodsId(), String.valueOf(fileId), "", "", icon, "0", cameraDetail.getUserId(), userName,
@@ -1354,7 +1405,17 @@ public class SceneFileBuildServiceImpl extends ServiceImpl<ISceneFileBuildMapper
                             jsonObject.getJSONArray("points").size(), jsonObject.getString("name"), jsonObject.getString("info"),
                             jsonObject.getJSONArray("points").size(), jsonObject.getString("name"), jsonObject.getString("info"),
                             jsonObject.getInteger("scenetype"), jsonObject.getString("gps"), rebuild,
                             jsonObject.getInteger("scenetype"), jsonObject.getString("gps"), rebuild,
                             jsonObject.getInteger("resolution"), firmwareVersion.toString(), sceneUrl, buildType, type, ecsType, cameraDetail.getCooperationUser());
                             jsonObject.getInteger("resolution"), firmwareVersion.toString(), sceneUrl, buildType, type, ecsType, cameraDetail.getCooperationUser());
+                    // TODO: 2022/3/21 plus版本稳定后删除 ---------------------------------------------------------------------------------end
+
+                    objects = this.createScenePlus2(sceneNum, camera.getId(), camera.getChildName(), jsonObject.getString("creator"),
+                        jsonObject.getString("pwd"), unicode,
+                        cameraDetail.getGoodsId(), String.valueOf(fileId), "", "", icon, "0", cameraDetail.getUserId(), userName,
+                        jsonObject.getString("location") != null && "1".equals(jsonObject.getString("location")) ? "sfm" : "slam",
+                        jsonObject.getJSONArray("points").size(), jsonObject.getString("name"), jsonObject.getString("info"),
+                        jsonObject.getInteger("scenetype"), jsonObject.getString("gps"), rebuild,
+                        jsonObject.getInteger("resolution"), firmwareVersion.toString(), sceneUrl, buildType, ecsType, cameraDetail.getCooperationUser());
                 }
                 }
+                mqMessage = (BuildSceneMqMessage)objects[1];
 
 
                 if(sceneProPO != null){
                 if(sceneProPO != null){
                     JSONObject statusJson = new JSONObject();
                     JSONObject statusJson = new JSONObject();
@@ -1477,7 +1538,7 @@ public class SceneFileBuildServiceImpl extends ServiceImpl<ISceneFileBuildMapper
                     return;
                     return;
                 }
                 }
                 if(sceneProPO != null){
                 if(sceneProPO != null){
-                    mqProducer.sendInOrder(topicModelingA, sceneProPO.getId()+"", sceneProPO.getMqMsg());
+                    mqProducer.syncSend(topicModelingAPre,  mqMessage);
                 }
                 }
 
 
             }
             }
@@ -1631,6 +1692,7 @@ public class SceneFileBuildServiceImpl extends ServiceImpl<ISceneFileBuildMapper
         MatrixToImageWriterUtil.createQRCode(url + projectNum + "&lang=en", ConstantFilePath.BASE_PATH + File.separator + "sceneQRcode/"+projectNum+"_en.png", null);
         MatrixToImageWriterUtil.createQRCode(url + projectNum + "&lang=en", ConstantFilePath.BASE_PATH + File.separator + "sceneQRcode/"+projectNum+"_en.png", null);
         log.info("二维码生成完成");
         log.info("二维码生成完成");
 
 
+
         BeanUtil.copyProperties(sceneExt, scenePo);
         BeanUtil.copyProperties(sceneExt, scenePo);
         BeanUtil.copyProperties(scene, scenePo);
         BeanUtil.copyProperties(scene, scenePo);
 
 
@@ -1646,13 +1708,10 @@ public class SceneFileBuildServiceImpl extends ServiceImpl<ISceneFileBuildMapper
         ScenePlusVO scenePlusVO = new ScenePlusVO();
         ScenePlusVO scenePlusVO = new ScenePlusVO();
         ScenePlus scenePlus = new ScenePlus();
         ScenePlus scenePlus = new ScenePlus();
         ScenePlusExt scenePlusExt = new ScenePlusExt();
         ScenePlusExt scenePlusExt = new ScenePlusExt();
-//        ScenePO scenePo = new ScenePO();
-//        Scene scene = new Scene();
-//        SceneExt sceneExt = new SceneExt();
         scenePlusExt.setWebSite(url+projectNum);
         scenePlusExt.setWebSite(url+projectNum);
         scenePlus.setCameraId(cameraId);
         scenePlus.setCameraId(cameraId);
         scenePlus.setPhoneId(phoneId);
         scenePlus.setPhoneId(phoneId);
-        scenePlus.setNum(String.valueOf(projectNum));
+        scenePlus.setNum(projectNum);
         if(scenepsd == null)
         if(scenepsd == null)
         {
         {
             scenepsd = "";
             scenepsd = "";
@@ -1664,10 +1723,6 @@ public class SceneFileBuildServiceImpl extends ServiceImpl<ISceneFileBuildMapper
 //        }
 //        }
         // TODO: 2022/3/16 这里暂时不确定要不要 ---end
         // TODO: 2022/3/16 这里暂时不确定要不要 ---end
 
 
-        if(!org.springframework.util.StringUtils.isEmpty(ecsType)){
-            scenePlusExt.setEcs(ecsType);
-        }
-
         String path =  ConstantFilePath.BUILD_MODEL_PATH + unicode;
         String path =  ConstantFilePath.BUILD_MODEL_PATH + unicode;
 
 
         if(cameraType.longValue() >= 4){
         if(cameraType.longValue() >= 4){
@@ -1687,6 +1742,10 @@ public class SceneFileBuildServiceImpl extends ServiceImpl<ISceneFileBuildMapper
 
 
         }
         }
 
 
+        if(!org.springframework.util.StringUtils.isEmpty(ecsType)){
+            scenePlusExt.setEcs(ecsType);
+        }
+
         if(pic!=null&&pic.length()>5) {
         if(pic!=null&&pic.length()>5) {
             scenePlusExt.setThumb(pic);
             scenePlusExt.setThumb(pic);
         }else{
         }else{
@@ -1906,8 +1965,8 @@ public class SceneFileBuildServiceImpl extends ServiceImpl<ISceneFileBuildMapper
         //type=0为新生成场景,其余为重新计算场景
         //type=0为新生成场景,其余为重新计算场景
 
 
         // TODO: 2022/2/23  SceneProEdit 重构版本SceneProEdit 这个表可能不用,这里先暂时注释掉
         // TODO: 2022/2/23  SceneProEdit 重构版本SceneProEdit 这个表可能不用,这里先暂时注释掉
-//        SceneProEdit sceneProEdit = new SceneProEdit();
-//        SceneProEditExt sceneProEditExt = new SceneProEditExt();
+        SceneProEdit sceneProEdit = new SceneProEdit();
+        SceneProEditExt sceneProEditExt = new SceneProEditExt();
         if(type == 0){
         if(type == 0){
             scenePro.setSceneStatus(SceneStatus.wait.code());
             scenePro.setSceneStatus(SceneStatus.wait.code());
             sceneProService.save(scenePro);
             sceneProService.save(scenePro);
@@ -1918,35 +1977,35 @@ public class SceneFileBuildServiceImpl extends ServiceImpl<ISceneFileBuildMapper
             sceneEditInfo.setSceneProId(scenePro.getId());
             sceneEditInfo.setSceneProId(scenePro.getId());
             sceneEditInfoService.save(sceneEditInfo);
             sceneEditInfoService.save(sceneEditInfo);
 
 
-//            sceneProEdit.setNeedKey(0);
-//            if(sceneKey == null) {
-//                sceneKey = "";
-//            }
-//            sceneProEdit.setSceneKey(sceneKey);
-//            if(!sceneKey.equals("")) {
-//                sceneProEdit.setNeedKey(1);
-//            }else {
-//                sceneProEdit.setNeedKey(0);
-//            }
-//
-//            sceneProEdit.setProId(scenePro.getId());
-//            sceneProEdit.setFloorLogoSize(100);
-//            sceneProEdit.setCreateTime(Calendar.getInstance().getTime());
-//            sceneProEditService.save(sceneProEdit);
-//
-//            sceneProEditExt.setProEditId(sceneProEdit.getId());
-//            sceneProEditExt.setProId(scenePro.getId());
-//            sceneProEditExt.setMapVisi(1);
-//            sceneProEditExt.setTourVisi(1);
-//            sceneProEditExt.setVrVisi(1);
-//            sceneProEditExt.setRulerVisi(1);
-//            sceneProEditExt.setCadImgVisi(1);
-//            sceneProEditExt.setPanoVisi(1);
-//            sceneProEditExt.setM2dVisi(1);
-//            sceneProEditExt.setM3dVisi(1);
-//            sceneProEditExt.setMeasureVisi(0);
-//            sceneProEditExt.setCreateTime(Calendar.getInstance().getTime());
-//            sceneProEditExtService.save(sceneProEditExt);
+            sceneProEdit.setNeedKey(0);
+            if(sceneKey == null) {
+                sceneKey = "";
+            }
+            sceneProEdit.setSceneKey(sceneKey);
+            if(!sceneKey.equals("")) {
+                sceneProEdit.setNeedKey(1);
+            }else {
+                sceneProEdit.setNeedKey(0);
+            }
+
+            sceneProEdit.setProId(scenePro.getId());
+            sceneProEdit.setFloorLogoSize(100);
+            sceneProEdit.setCreateTime(Calendar.getInstance().getTime());
+            sceneProEditService.save(sceneProEdit);
+
+            sceneProEditExt.setProEditId(sceneProEdit.getId());
+            sceneProEditExt.setProId(scenePro.getId());
+            sceneProEditExt.setMapVisi(1);
+            sceneProEditExt.setTourVisi(1);
+            sceneProEditExt.setVrVisi(1);
+            sceneProEditExt.setRulerVisi(1);
+            sceneProEditExt.setCadImgVisi(1);
+            sceneProEditExt.setPanoVisi(1);
+            sceneProEditExt.setM2dVisi(1);
+            sceneProEditExt.setM3dVisi(1);
+            sceneProEditExt.setMeasureVisi(0);
+            sceneProEditExt.setCreateTime(Calendar.getInstance().getTime());
+            sceneProEditExtService.save(sceneProEditExt);
 
 
 
 
             //新增场景时,同时新增场景协作信息
             //新增场景时,同时新增场景协作信息
@@ -1998,56 +2057,54 @@ public class SceneFileBuildServiceImpl extends ServiceImpl<ISceneFileBuildMapper
             }
             }
             sceneEditInfoService.updateById(sceneEditInfo);
             sceneEditInfoService.updateById(sceneEditInfo);
 
 
+            SceneProEdit oldSceneProEdit = sceneProEditService.findByProId(scenePro.getId());
+            SceneProEditExt oldSceneProEditeExt = sceneProEditExtService.getByProEditId(oldSceneProEdit.getId());
+            sceneProEdit.setNeedKey(0);
 
 
-//            SceneProEdit oldSceneProEdit = sceneProEditService.findByProId(scenePro.getId());
-//            SceneProEditExt oldSceneProEditeExt = sceneProEditExtService.getByProEditId(oldSceneProEdit.getId());
-//            sceneProEdit.setNeedKey(0);
-//
-//            if(sceneKey == null) {
-//                sceneKey = "";
-//            }
-//            sceneProEdit.setSceneKey(sceneKey);
-//            if(!sceneKey.equals("")) {
-//                sceneProEdit.setNeedKey(1);
-//            }else {
-//                sceneProEdit.setNeedKey(0);
-//            }
-//
-//            sceneProEdit.setId(oldSceneProEdit.getId());
-//            sceneProEdit.setProId(scenePro.getId());
-//            sceneProEdit.setFloorLogoSize(100);
-//            sceneProEdit.setTbStatus(TbStatus.VALID.code());
-//            sceneProEdit.setFloorPublishVer(oldSceneProEdit.getFloorEditVer() + 1);
-//            sceneProEdit.setFloorEditVer(oldSceneProEdit.getFloorEditVer() + 1);
-//            sceneProEdit.setVersion(oldSceneProEdit.getVersion() + 1);
-//            sceneProEdit.setUpdateTime(Calendar.getInstance().getTime());
-//            sceneProEditService.updateById(sceneProEdit);
-//
-//            sceneProEditExt.setId(oldSceneProEditeExt.getId());
-//            sceneProEditExt.setProId(scenePro.getId());
-//            sceneProEditExt.setMapVisi(1);
-//            sceneProEditExt.setTourVisi(1);
-//            sceneProEditExt.setVrVisi(1);
-//            sceneProEditExt.setRulerVisi(1);
-//            sceneProEditExt.setCadImgVisi(1);
-//            sceneProEditExt.setPanoVisi(1);
-//            sceneProEditExt.setM2dVisi(1);
-//            sceneProEditExt.setM3dVisi(1);
-//            sceneProEditExt.setMeasureVisi(0);
-//            sceneProEditExt.setCreateTime(oldSceneProEdit.getCreateTime());
-//            sceneProEditExt.setImagesVersion(oldSceneProEditeExt.getImagesVersion() + 1);
-//            sceneProEditExt.setUpdateTime(Calendar.getInstance().getTime());
-//            sceneProEditExtService.updateById(sceneProEditExt);
-
-        }
+            if(sceneKey == null) {
+                sceneKey = "";
+            }
+            sceneProEdit.setSceneKey(sceneKey);
+            if(!sceneKey.equals("")) {
+                sceneProEdit.setNeedKey(1);
+            }else {
+                sceneProEdit.setNeedKey(0);
+            }
 
 
-        BuildSceneMqMessage buildSceneMqMessage =this.getBuildSceneMqMessage(
-                projectNum, cameraName, unicode, cameraType, fileId, prefix, imgsName, isModel,
-                userName, algorithm, resolution, buildType, path, scenePro.getId(), scenePro.getSceneName(),
-                scenePro.getWebSite(), scenePro.getCreateTime(), scenePro.getUserId(),
-                sceneProExt.getDataSource(), scenePro.getSceneStatus(), scenePro.getPayStatus(), scenePro.getThumb());
+            sceneProEdit.setId(oldSceneProEdit.getId());
+            sceneProEdit.setProId(scenePro.getId());
+            sceneProEdit.setFloorLogoSize(100);
+            sceneProEdit.setTbStatus(TbStatus.VALID.code());
+            sceneProEdit.setFloorPublishVer(oldSceneProEdit.getFloorEditVer() + 1);
+            sceneProEdit.setFloorEditVer(oldSceneProEdit.getFloorEditVer() + 1);
+            sceneProEdit.setVersion(oldSceneProEdit.getVersion() + 1);
+            sceneProEdit.setUpdateTime(Calendar.getInstance().getTime());
+            sceneProEditService.updateById(sceneProEdit);
+
+            sceneProEditExt.setId(oldSceneProEditeExt.getId());
+            sceneProEditExt.setProId(scenePro.getId());
+            sceneProEditExt.setMapVisi(1);
+            sceneProEditExt.setTourVisi(1);
+            sceneProEditExt.setVrVisi(1);
+            sceneProEditExt.setRulerVisi(1);
+            sceneProEditExt.setCadImgVisi(1);
+            sceneProEditExt.setPanoVisi(1);
+            sceneProEditExt.setM2dVisi(1);
+            sceneProEditExt.setM3dVisi(1);
+            sceneProEditExt.setMeasureVisi(0);
+            sceneProEditExt.setCreateTime(oldSceneProEdit.getCreateTime());
+            sceneProEditExt.setImagesVersion(oldSceneProEditeExt.getImagesVersion() + 1);
+            sceneProEditExt.setUpdateTime(Calendar.getInstance().getTime());
+            sceneProEditExtService.updateById(sceneProEditExt);
+
+        }
+
+//        BuildSceneMqMessage buildSceneMqMessage =this.getBuildSceneMqMessage(
+//                projectNum, cameraName, unicode, cameraType, fileId, prefix, imgsName, isModel,
+//                userName, algorithm, resolution, buildType, path, scenePro.getId(), scenePro.getSceneName(),
+//                scenePro.getWebSite(), scenePro.getCreateTime(), scenePro.getUserId(),
+//                sceneProExt.getDataSource(), scenePro.getSceneStatus(), scenePro.getPayStatus(), scenePro.getThumb());
 
 
-        sceneProPO.setMqMsg(buildSceneMqMessage);
         BeanUtil.copyProperties(sceneProExt, sceneProPO);
         BeanUtil.copyProperties(sceneProExt, sceneProPO);
         BeanUtil.copyProperties(scenePro, sceneProPO);
         BeanUtil.copyProperties(scenePro, sceneProPO);
 
 
@@ -2069,13 +2126,13 @@ public class SceneFileBuildServiceImpl extends ServiceImpl<ISceneFileBuildMapper
         }
         }
         scenejson.put("createTime", new DateTime(new Date()).toString("yyyy-MM-dd HH:mm"));
         scenejson.put("createTime", new DateTime(new Date()).toString("yyyy-MM-dd HH:mm"));
 
 
-//        scenejson.put("floorPublishVer", sceneProEdit.getFloorPublishVer());
-//        scenejson.put("floorEditVer", sceneProEdit.getFloorEditVer());
+        scenejson.put("floorPublishVer", sceneProEdit.getFloorPublishVer());
+        scenejson.put("floorEditVer", sceneProEdit.getFloorEditVer());
         scenejson.put("entry", null);
         scenejson.put("entry", null);
 
 
-//        if(!org.springframework.util.StringUtils.isEmpty(sceneProEdit.getHotsIds())){
-//            scenejson.put("hots", 1);
-//        }
+        if(!org.springframework.util.StringUtils.isEmpty(sceneProEdit.getHotsIds())){
+            scenejson.put("hots", 1);
+        }
 
 
         File file = new File(ConstantFilePath.SCENE_PATH+"data/data"+projectNum);
         File file = new File(ConstantFilePath.SCENE_PATH+"data/data"+projectNum);
         if(!file.exists()||!file.isDirectory())
         if(!file.exists()||!file.isDirectory())
@@ -2093,6 +2150,228 @@ public class SceneFileBuildServiceImpl extends ServiceImpl<ISceneFileBuildMapper
         return sceneProPO;
         return sceneProPO;
     }
     }
 
 
+    public Object[] createScenePlus2(String projectNum, Long cameraId, String cameraName, String phoneId, String sceneKey,
+        String unicode, Long cameraType, String fileId, String prefix,
+        String imgsName, String pic, String isModel, Long userId, String userName,
+        String algorithm, Integer sceneShootCount, String sceneName,
+        String sceneDec, Integer sceneType, String gps,Integer type,
+        Integer resolution, String firmwareVersion, String url, String buildType, String ecsType,
+        Long cooperationUser)throws Exception{
+
+//        SceneProPO sceneProPO = new SceneProPO();
+//        ScenePro scenePro = new ScenePro();
+//        SceneProExt sceneProExt = new SceneProExt();
+//        scenePro.setWebSite(url+projectNum);
+//        scenePro.setCameraId(cameraId);
+//        sceneProExt.setPhoneId(phoneId);
+//        scenePro.setNum(projectNum);
+        ScenePlusVO scenePlusVO = new ScenePlusVO();
+        ScenePlus scenePlus = new ScenePlus();
+        ScenePlusExt scenePlusExt = new ScenePlusExt();
+        scenePlusExt.setWebSite(url+projectNum);
+        scenePlus.setCameraId(cameraId);
+        scenePlus.setPhoneId(phoneId);
+        scenePlus.setNum(projectNum);
+
+        String path =  ConstantFilePath.BUILD_MODEL_PATH + unicode;
+
+        scenePlus.setSceneSource(1);
+        if(cameraType.longValue() == 5 || cameraType.longValue() == 6){
+            //场景来源双目相机
+            scenePlus.setSceneSource(2);
+            scenePlusExt.setDataSource(ConstantFilePath.BUILD_MODEL_PATH + unicode);
+        }else if(cameraType.longValue() == 14){
+
+            scenePlusExt.setDataSource(ConstantFilePath.BUILD_MODEL_LASER_PATH +
+                cameraName.replace("4DKKPRO_", "").replace("-fdage", "").toLowerCase() + File.separator +
+                fileId + File.separator + unicode);
+            path =  ConstantFilePath.BUILD_MODEL_LASER_PATH + unicode;
+            log.info("激光相机 dataSource :" + scenePlusExt.getDataSource());
+
+        }else if(cameraType.longValue() >= 3){
+            scenePlusExt.setDataSource(ConstantFilePath.BUILD_MODEL_PATH +
+                cameraName.replace("4DKKPRO_", "").replace("-fdage", "").toLowerCase() + File.separator +
+                fileId + File.separator + unicode);
+        }else {
+            scenePlusExt.setDataSource(prefix+imgsName);
+        }
+
+        if(!org.springframework.util.StringUtils.isEmpty(ecsType)){
+            scenePlusExt.setEcs(ecsType);
+        }
+
+        if(resolution == null || resolution.intValue() == 0){
+            scenePlusExt.setSceneScheme(cameraType.intValue());
+        }else {
+            scenePlusExt.setSceneScheme(4);
+        }
+
+        //场景来源双目相机,sceneScheme为4,加载high,low图
+        if(cameraType.longValue() == 5 || cameraType.longValue() == 6){
+            scenePlusExt.setSceneScheme(4);
+        }
+
+        //转台相机用4k图
+        if(cameraType.longValue() == 13 ){
+            scenePlus.setSceneSource(3);
+            scenePlusExt.setSceneScheme(10);
+        }
+
+        //激光相机
+        if(cameraType.longValue() == 14 ){
+            scenePlus.setSceneSource(4);
+            scenePlusExt.setSceneScheme(10);
+        }
+
+        if(pic!=null&&pic.length()>5)
+        {
+            scenePlusExt.setThumb(pic);
+        }
+        else
+        {
+            scenePlusExt.setThumb(ConstantUrl.DEFAULT_SCENE_PIC);
+        }
+        scenePlusExt.setThumb(scenePlusExt.getThumb().concat("?t=")+System.currentTimeMillis());
+
+        if(!ObjectUtils.isEmpty(userName)){
+            scenePlus.setUserId(userId);
+        }
+
+        if(sceneShootCount == null)
+        {
+            scenePlusExt.setShootCount(0);
+        }
+        else
+        {
+            scenePlusExt.setShootCount(sceneShootCount);
+        }
+        if(sceneName!=null)
+        {
+            scenePlus.setTitle(sceneName);
+        }
+        if(sceneDec!=null)
+        {
+            scenePlus.setDescription("<p>"+ new String(sceneDec.getBytes("UTF-8"))+"</p>");
+        }
+
+        if(sceneType!=null)
+        {
+            scenePlus.setSceneType(sceneType);
+        }
+
+        if(gps!=null&&!gps.trim().equals(""))
+        {
+            scenePlusExt.setGps(gps);
+        }
+
+        scenePlusExt.setAlgorithm(algorithm);
+        if(!org.springframework.util.StringUtils.isEmpty(firmwareVersion)){
+            scenePlusExt.setFirmwareVersion(firmwareVersion);
+        }
+        scenePlusExt.setBuildType(buildType);
+        log.info("场景记录添加到数据库:"+projectNum);
+        //type=0为新生成场景,其余为重新计算场景
+
+        SceneEditInfo sceneEditInfo = new SceneEditInfo();
+        SceneEditInfoExt sceneEditInfoExt = new SceneEditInfoExt();
+        SceneEditControls sceneEditControls = new SceneEditControls();
+        if(type == 0){
+            scenePlus.setSceneStatus(SceneStatus.wait.code());
+            scenePlusService.save(scenePlus);
+            scenePlusExt.setPlusId(scenePlus.getId());
+            scenePlusExtService.save(scenePlusExt);
+
+            sceneEditInfo.setScenePlusId(scenePlus.getId());
+
+            if(StrUtil.isNotBlank(sceneKey)) {
+                sceneEditInfo.setScenePassword(sceneKey);
+                sceneEditControls.setShowLock((int) CommonStatus.YES.code());
+            }
+
+            sceneEditInfoService.save(sceneEditInfo);
+            sceneEditControls.setEditInfoId(sceneEditInfo.getId());
+            sceneEditControlsService.save(sceneEditControls);
+
+            //新增场景时,同时新增场景协作信息
+            if(cooperationUser != null){
+                SceneCooperation sceneCooperationEntity = new SceneCooperation();
+                sceneCooperationEntity.setNum(projectNum);
+                sceneCooperationEntity.setUserId(cooperationUser);
+                sceneCooperationService.save(sceneCooperationEntity);
+
+                List<SceneResourceCamera> resourceCameraList = sceneResourceCameraService.findListByCameraId(cameraId);
+
+                SceneResourceCooperation sceneResourceCooperation = null;
+                if(resourceCameraList != null && resourceCameraList.size() > 0){
+                    for (SceneResourceCamera sceneResourceCamera : resourceCameraList) {
+                        sceneResourceCooperation = new SceneResourceCooperation();
+                        sceneResourceCooperation.setSceneResourceId(sceneResourceCamera.getSceneResourceId());
+                        sceneResourceCooperation.setSceneCooperationId(sceneCooperationEntity.getId());
+                        sceneResourceCooperationService.save(sceneResourceCooperation);
+                    }
+                }
+            }
+        }else {
+            ScenePlus oldScene = scenePlusService.getScenePlusByNum(projectNum);
+            scenePlus.setId(oldScene.getId());
+            scenePlus.setSceneStatus(0);
+            scenePlus.setTbStatus(TbStatus.VALID.code());
+            scenePlus.setPayStatus(0);
+            scenePlus.setCreateTime(Calendar.getInstance().getTime());
+
+            ScenePlusExt oldSceneExt = scenePlusExtService.getScenePlusExtByPlusId(oldScene.getId());
+            scenePlusExt.setSpace(oldSceneExt.getSpace());
+            scenePlusExt.setEcs(oldSceneExt.getEcs());
+            scenePlusExt.setViewCount(oldSceneExt.getViewCount());
+            if(sceneName!=null) {
+                scenePlus.setTitle(sceneName);
+            }
+            if(sceneType!=null) {
+                scenePlus.setSceneType(sceneType);
+            }
+            scenePlusService.updateById(scenePlus);
+            scenePlusExtService.updateById(scenePlusExt);
+
+            SceneEditInfo oldSceneEditInfo = sceneEditInfoService.getByScenePlusId(oldScene.getId());
+            SceneEditInfoExt oldSceneEditeIinfoExt = sceneEditInfoExtService.getByEditInfoId(oldSceneEditInfo.getId());
+            if(StrUtil.isNotBlank(sceneKey)) {
+                sceneEditInfo.setScenePassword(sceneKey);
+                sceneEditControls.setShowLock((int) CommonStatus.YES.code());
+            }else{
+                sceneEditInfo.setScenePassword("");
+                sceneEditControls.setShowLock((int)CommonStatus.NO.code());
+            }
+
+            sceneEditInfo.setId(oldSceneEditInfo.getId());
+            sceneEditInfo.setScenePlusId(scenePlus.getId());
+            sceneEditInfo.setFloorLogoSize(100);
+            sceneEditInfo.setTbStatus(TbStatus.VALID.code());
+            sceneEditInfo.setFloorPublishVer(oldSceneEditInfo.getFloorEditVer() + 1);
+            sceneEditInfo.setFloorEditVer(oldSceneEditInfo.getFloorEditVer() + 1);
+            sceneEditInfo.setVersion(oldSceneEditInfo.getVersion() + 1);
+            sceneEditInfoService.updateById(sceneEditInfo);
+
+            sceneEditInfoExt.setId(oldSceneEditeIinfoExt.getId());
+            sceneEditInfoExt.setEditInfoId(sceneEditInfo.getId());
+            sceneEditInfoExt.setScenePlusId(scenePlus.getId());
+            sceneEditInfoExtService.updateById(sceneEditInfoExt);
+
+        }
+
+        BuildSceneMqMessage buildSceneMqMessage =this.getBuildSceneMqMessage(
+            projectNum, cameraName, unicode, cameraType, fileId, prefix, imgsName, isModel,
+            userName, algorithm, resolution, buildType, path, scenePlus.getId(), scenePlus.getTitle(),
+            scenePlusExt.getWebSite(), scenePlus.getCreateTime(), scenePlus.getUserId(),
+            scenePlusExt.getDataSource(), scenePlus.getSceneStatus(), scenePlus.getPayStatus(), scenePlusExt.getThumb());
+
+        BeanUtil.copyProperties(scenePlusExt, scenePlusVO);
+        BeanUtil.copyProperties(scenePlus, scenePlusVO);
+
+
+        //当mq排队数大于指定数量时使用弹性升缩
+        return new Object[]{scenePlusVO, buildSceneMqMessage};
+    }
+
     public BuildSceneMqMessage getBuildSceneMqMessage(String projectNum, String cameraName, String unicode,
     public BuildSceneMqMessage getBuildSceneMqMessage(String projectNum, String cameraName, String unicode,
                                                              Long cameraType, String fileId,String prefix, String imgsName,
                                                              Long cameraType, String fileId,String prefix, String imgsName,
                                                              String isModel, String userName,String algorithm, Integer resolution,
                                                              String isModel, String userName,String algorithm, Integer resolution,
@@ -2270,7 +2549,7 @@ public class SceneFileBuildServiceImpl extends ServiceImpl<ISceneFileBuildMapper
         if(Objects.isNull(scenePlus)){
         if(Objects.isNull(scenePlus)){
             throw new BusinessException(ErrorCode.FAILURE_CODE_5005);
             throw new BusinessException(ErrorCode.FAILURE_CODE_5005);
         }
         }
-        ScenePlusExt scenePlusExt = scenePlusExtService.getSceneProExtByPlusId(scenePlus.getId());
+        ScenePlusExt scenePlusExt = scenePlusExtService.getScenePlusExtByPlusId(scenePlus.getId());
         String path = scenePlusExt.getDataSource();
         String path = scenePlusExt.getDataSource();
         Integer sceneSource = scenePlus.getSceneSource();
         Integer sceneSource = scenePlus.getSceneSource();
         String dataSource = scenePlusExt.getDataSource();
         String dataSource = scenePlusExt.getDataSource();
@@ -2372,7 +2651,10 @@ public class SceneFileBuildServiceImpl extends ServiceImpl<ISceneFileBuildMapper
                 userName = user.getUserName();
                 userName = user.getUserName();
             }
             }
             //重算的场景,先移除该场景对应的容量
             //重算的场景,先移除该场景对应的容量
+            scenePlusService.resetSpace(num);
+            // TODO: 2022/3/19 plus版本稳定后需要删除---------------start
             sceneProService.rebuildReduceSpaceBySceneNum(num);
             sceneProService.rebuildReduceSpaceBySceneNum(num);
+            // TODO: 2022/3/19 plus版本稳定后需要删除---------------end
 
 
             JSONObject statusJson = new JSONObject();
             JSONObject statusJson = new JSONObject();
             //临时将-2改成1,app还没完全更新
             //临时将-2改成1,app还没完全更新
@@ -2422,7 +2704,10 @@ public class SceneFileBuildServiceImpl extends ServiceImpl<ISceneFileBuildMapper
                 mqProducer.syncSend(topicModelingAPre, buildSceneMqMessage);
                 mqProducer.syncSend(topicModelingAPre, buildSceneMqMessage);
             }
             }
 
 
+            // TODO: plus版本稳定后删除 -------------------------------start
             sceneProService.updateStatus(num,0);
             sceneProService.updateStatus(num,0);
+            // TODO: plus版本稳定后删除 -------------------------------end
+
             scenePlusService.update(new LambdaUpdateWrapper<ScenePlus>()
             scenePlusService.update(new LambdaUpdateWrapper<ScenePlus>()
                 .set(ScenePlus::getSceneStatus, SceneStatus.wait.code())
                 .set(ScenePlus::getSceneStatus, SceneStatus.wait.code())
                 .eq(ScenePlus::getNum, num));
                 .eq(ScenePlus::getNum, num));

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

@@ -19,7 +19,7 @@ import org.springframework.stereotype.Service;
 public class ScenePlusExtServiceImpl extends ServiceImpl<IScenePlusExtMapper, ScenePlusExt> implements IScenePlusExtService {
 public class ScenePlusExtServiceImpl extends ServiceImpl<IScenePlusExtMapper, ScenePlusExt> implements IScenePlusExtService {
 
 
     @Override
     @Override
-    public ScenePlusExt getSceneProExtByPlusId(long plusId) {
+    public ScenePlusExt getScenePlusExtByPlusId(long plusId) {
         return this.getOne(new LambdaQueryWrapper<ScenePlusExt>().eq(ScenePlusExt::getPlusId, plusId));
         return this.getOne(new LambdaQueryWrapper<ScenePlusExt>().eq(ScenePlusExt::getPlusId, plusId));
     }
     }
 }
 }

+ 37 - 0
4dkankan-center-scene/src/main/java/com/fdkankan/scene/service/impl/ScenePlusServiceImpl.java

@@ -1,10 +1,21 @@
 package com.fdkankan.scene.service.impl;
 package com.fdkankan.scene.service.impl;
 
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.fdkankan.common.constant.ErrorCode;
+import com.fdkankan.common.response.ResultData;
+import com.fdkankan.platform.api.feign.PlatformGoodsClient;
 import com.fdkankan.scene.entity.ScenePlus;
 import com.fdkankan.scene.entity.ScenePlus;
+import com.fdkankan.scene.entity.ScenePlusExt;
+import com.fdkankan.scene.entity.ScenePro;
+import com.fdkankan.scene.entity.SceneProExt;
 import com.fdkankan.scene.mapper.IScenePlusMapper;
 import com.fdkankan.scene.mapper.IScenePlusMapper;
+import com.fdkankan.scene.service.IScenePlusExtService;
 import com.fdkankan.scene.service.IScenePlusService;
 import com.fdkankan.scene.service.IScenePlusService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import java.util.Calendar;
+import java.util.Objects;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
 
 
 /**
 /**
@@ -15,11 +26,37 @@ import org.springframework.stereotype.Service;
  * @author 
  * @author 
  * @since 2022-03-16
  * @since 2022-03-16
  */
  */
+@Slf4j
 @Service
 @Service
 public class ScenePlusServiceImpl extends ServiceImpl<IScenePlusMapper, ScenePlus> implements IScenePlusService {
 public class ScenePlusServiceImpl extends ServiceImpl<IScenePlusMapper, ScenePlus> implements IScenePlusService {
 
 
+    @Autowired
+    private IScenePlusExtService scenePlusExtService;
+    @Autowired
+    private PlatformGoodsClient platformGoodsClient;
+
     @Override
     @Override
     public ScenePlus getScenePlusByNum(String num) {
     public ScenePlus getScenePlusByNum(String num) {
         return this.getOne(new LambdaQueryWrapper<ScenePlus>().eq(ScenePlus::getNum, num));
         return this.getOne(new LambdaQueryWrapper<ScenePlus>().eq(ScenePlus::getNum, num));
     }
     }
+
+    @Override
+    public ResultData resetSpace(String num) throws Exception{
+        ScenePlus scenePlus = this.getScenePlusByNum(num);
+        ScenePlusExt scenePlusExt = scenePlusExtService.getScenePlusExtByPlusId(scenePlus.getId());
+        if(Objects.isNull(scenePlus)){
+            log.info("该场景不存在无法重置容量,场景码为:" + num);
+            return ResultData.error(ErrorCode.FAILURE_CODE_5058);
+        }
+        if (scenePlusExt.getSceneScheme() < 4){
+            log.info("该场景不属于八目相机无法重置容量,场景码为:" + num);
+            return ResultData.error(ErrorCode.FAILURE_CODE_5057);
+        }
+        platformGoodsClient.updateCameraDetailByCameraIdAndSpace(scenePlus.getCameraId(), -scenePlusExt.getSpace());
+
+        scenePlusExt.setSpace(Long.parseLong("0"));
+        scenePlusExtService.updateById(scenePlusExt);
+
+        return ResultData.ok();
+    }
 }
 }

+ 24 - 18
4dkankan-center-scene/src/main/java/com/fdkankan/scene/service/impl/SceneProServiceImpl.java

@@ -115,6 +115,10 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
     ISceneEditInfoService sceneEditInfoService;
     ISceneEditInfoService sceneEditInfoService;
     @Autowired
     @Autowired
     ISceneEditControlsService sceneEditControlsService;
     ISceneEditControlsService sceneEditControlsService;
+    @Autowired
+    IScenePlusService scenePlusService;
+    @Autowired
+    IScenePlusExtService scenePlusExtService;
 
 
     @Override
     @Override
     public List<SceneVO> convert(List<ScenePro> list){
     public List<SceneVO> convert(List<ScenePro> list){
@@ -849,20 +853,22 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
     @Override
     @Override
     public ResultData saveInitialPage(FileNameAndDataParamVO param) throws Exception{
     public ResultData saveInitialPage(FileNameAndDataParamVO param) throws Exception{
 
 
-        ScenePro scenePro = this.findBySceneNum(param.getNum());
-        if(scenePro == null){
+//        ScenePro scenePro = this.findBySceneNum(param.getNum());
+        ScenePlus scenePlus = scenePlusService.getScenePlusByNum(param.getNum());
+        if(scenePlus == null){
             throw new BusinessException(ErrorCode.FAILURE_CODE_5005);
             throw new BusinessException(ErrorCode.FAILURE_CODE_5005);
         }
         }
+        ScenePlusExt scenePlusExt = scenePlusExtService.getScenePlusExtByPlusId(scenePlus.getId());
 
 
         //更新缩略图url
         //更新缩略图url
         String thumbUrl = this.ossUrlPrefix + String.format(UploadFilePath.USER_EDIT_PATH, param.getNum()) + param.getFileName();
         String thumbUrl = this.ossUrlPrefix + String.format(UploadFilePath.USER_EDIT_PATH, param.getNum()) + param.getFileName();
-        scenePro.setThumb(thumbUrl);
-        this.updateById(scenePro);
+        scenePlusExt.setThumb(thumbUrl);
+        scenePlusExtService.updateById(scenePlusExt);
 
 
-        SceneEditInfo sceneEditInfo = sceneEditInfoService.getBySceneProId(scenePro.getId());
+        SceneEditInfo sceneEditInfo = sceneEditInfoService.getByScenePlusId(scenePlus.getId());
         if(sceneEditInfo == null){
         if(sceneEditInfo == null){
             sceneEditInfo = new SceneEditInfo();
             sceneEditInfo = new SceneEditInfo();
-            sceneEditInfo.setSceneProId(scenePro.getId());
+            sceneEditInfo.setScenePlusId(scenePlus.getId());
             sceneEditInfo.setEntry(param.getData());
             sceneEditInfo.setEntry(param.getData());
             sceneEditInfoService.save(sceneEditInfo);
             sceneEditInfoService.save(sceneEditInfo);
         }else{
         }else{
@@ -871,8 +877,6 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
                     .set(SceneEditInfo::getEntry, param.getData())
                     .set(SceneEditInfo::getEntry, param.getData())
                     .setSql("version = version + 1")
                     .setSql("version = version + 1")
                     .eq(SceneEditInfo::getId, sceneEditInfo.getId()));
                     .eq(SceneEditInfo::getId, sceneEditInfo.getId()));
-
-
         }
         }
 
 
         return ResultData.ok();
         return ResultData.ok();
@@ -2290,9 +2294,9 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
     @Override
     @Override
     public ResultData deleteIcons(DeleteHotIconParamVO param) throws Exception {
     public ResultData deleteIcons(DeleteHotIconParamVO param) throws Exception {
 
 
-        ScenePro scenePro = this.findBySceneNum(param.getNum());
-        if (scenePro == null)
-            return ResultData.error(ErrorCode.FAILURE_CODE_5005);
+        ScenePlus scenePlus = scenePlusService.getScenePlusByNum(param.getNum());
+        if (scenePlus == null)
+            throw new BusinessException(ErrorCode.FAILURE_CODE_5005);
 
 
         List<String> fileNameList = param.getFileNameList();
         List<String> fileNameList = param.getFileNameList();
 
 
@@ -2883,8 +2887,9 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
 //    @SystemServiceLog(description = "保存热点可见性的数据")
 //    @SystemServiceLog(description = "保存热点可见性的数据")
     public ResultData saveTagsVisible(SaveTagsVisibleParamVO param) throws Exception {
     public ResultData saveTagsVisible(SaveTagsVisibleParamVO param) throws Exception {
 
 
-        ScenePro scenePro = findBySceneNum(param.getNum());
-        if (scenePro == null ) {
+//        ScenePro scenePro = findBySceneNum(param.getNum());
+        ScenePlus scenePlus = scenePlusService.getScenePlusByNum(param.getNum());
+        if (scenePlus == null ) {
             return ResultData.error(ErrorCode.FAILURE_CODE_5005);
             return ResultData.error(ErrorCode.FAILURE_CODE_5005);
         }
         }
         JSONArray visiblePanos = JSONArray.parseArray(param.getData());
         JSONArray visiblePanos = JSONArray.parseArray(param.getData());
@@ -2914,7 +2919,7 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
         });
         });
 
 
         //更新版本号
         //更新版本号
-        SceneEditInfo editInfo = sceneEditInfoService.getBySceneProId(scenePro.getId());
+        SceneEditInfo editInfo = sceneEditInfoService.getByScenePlusId(scenePlus.getId());
         sceneEditInfoService.upgradeVersionById(editInfo.getId());
         sceneEditInfoService.upgradeVersionById(editInfo.getId());
 
 
         //放入缓存
         //放入缓存
@@ -2933,8 +2938,9 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
 //    @SystemServiceLog(description = "漫游可行")
 //    @SystemServiceLog(description = "漫游可行")
     public ResultData saveRoam(BaseDataParamVO param) throws Exception {
     public ResultData saveRoam(BaseDataParamVO param) throws Exception {
 
 
-        ScenePro scenePro = this.findBySceneNum(param.getNum());
-        if (scenePro == null ) {
+//        ScenePro scenePro = this.findBySceneNum(param.getNum());
+        ScenePlus scenePlus = scenePlusService.getScenePlusByNum(param.getNum());
+        if (scenePlus == null ) {
             return ResultData.error(ErrorCode.FAILURE_CODE_5005);
             return ResultData.error(ErrorCode.FAILURE_CODE_5005);
         }
         }
 
 
@@ -2984,10 +2990,10 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
         uploadToOssUtil.upload(localDataPath + "vision.modeldata", editImagesPath + "vision.modeldata");
         uploadToOssUtil.upload(localDataPath + "vision.modeldata", editImagesPath + "vision.modeldata");
 
 
         //更新版本号
         //更新版本号
-        SceneEditInfo editInfo = sceneEditInfoService.getBySceneProId(scenePro.getId());
+        SceneEditInfo editInfo = sceneEditInfoService.getByScenePlusId(scenePlus.getId());
         if(Objects.isNull(editInfo)){
         if(Objects.isNull(editInfo)){
             editInfo = new SceneEditInfo();
             editInfo = new SceneEditInfo();
-            editInfo.setSceneProId(scenePro.getId());
+            editInfo.setScenePlusId(scenePlus.getId());
             sceneEditInfoService.save(editInfo);
             sceneEditInfoService.save(editInfo);
         }else{
         }else{
             sceneEditInfoService.upgradeVersionById(editInfo.getId());
             sceneEditInfoService.upgradeVersionById(editInfo.getId());

+ 10 - 6
4dkankan-center-scene/src/main/java/com/fdkankan/scene/service/impl/SceneUploadServiceImpl.java

@@ -1,9 +1,12 @@
 package com.fdkankan.scene.service.impl;
 package com.fdkankan.scene.service.impl;
 
 
+import cn.hutool.core.collection.CollUtil;
+import cn.hutool.core.util.StrUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.fdkankan.common.constant.ErrorCode;
 import com.fdkankan.common.constant.ErrorCode;
+import com.fdkankan.common.constant.ServerCode;
 import com.fdkankan.common.constant.TbStatus;
 import com.fdkankan.common.constant.TbStatus;
 import com.fdkankan.common.constant.UploadFilePath;
 import com.fdkankan.common.constant.UploadFilePath;
 import com.fdkankan.common.exception.BusinessException;
 import com.fdkankan.common.exception.BusinessException;
@@ -63,9 +66,6 @@ public class SceneUploadServiceImpl extends ServiceImpl<ISceneUploadMapper, Scen
     @Override
     @Override
     public String uploads(String imgData,String fileName,String blzType,MultipartFile[] files,String sceneCode,Integer type,String token) throws Exception{
     public String uploads(String imgData,String fileName,String blzType,MultipartFile[] files,String sceneCode,Integer type,String token) throws Exception{
         SSOUser ssoUser = ssoLoginHelper.loginCheck(token);
         SSOUser ssoUser = ssoLoginHelper.loginCheck(token);
-//        if(ssoUser == null ){
-//            throw new BusinessException(ErrorCode.USER_NOT_LOGIN);
-//        }
         Long userId = ssoUser == null ? null :ssoUser.getId();
         Long userId = ssoUser == null ? null :ssoUser.getId();
 
 
         List<MultipartFile> multipartFiles = new ArrayList<>();
         List<MultipartFile> multipartFiles = new ArrayList<>();
@@ -96,9 +96,13 @@ public class SceneUploadServiceImpl extends ServiceImpl<ISceneUploadMapper, Scen
     }
     }
 
 
     public String uploadFiles(String sendFileName,String bizType,List<MultipartFile> files, String sceneCode, Integer type,Long userId) throws Exception{
     public String uploadFiles(String sendFileName,String bizType,List<MultipartFile> files, String sceneCode, Integer type,Long userId) throws Exception{
-        if (StringUtils.isEmpty(sceneCode) || files == null || files.size() <= 0 || StringUtils.isEmpty(bizType)) {
-            throw new BusinessException(ErrorCode.MISSING_REQUIRED_PARAMETERS);
-        }
+        if (StrUtil.isEmpty(sceneCode))
+            throw new BusinessException(ServerCode.PARAM_REQUIRED, "num");
+        if(CollUtil.isEmpty(files))
+            throw new BusinessException(ServerCode.PARAM_REQUIRED, "files");
+        if(StrUtil.isEmpty(bizType))
+            throw new BusinessException(ServerCode.PARAM_REQUIRED, "bizType");
+
         List<String> urlList = new ArrayList<>();
         List<String> urlList = new ArrayList<>();
         if(type != null && 1 == type){
         if(type != null && 1 == type){
             this.updateFileByPreFix(sceneCode,bizType);
             this.updateFileByPreFix(sceneCode,bizType);

+ 1 - 10
4dkankan-center-scene/src/main/java/com/fdkankan/scene/vo/SceneEditInfoParamVO.java

@@ -12,20 +12,11 @@ import javax.validation.constraints.NotBlank;
 @Builder
 @Builder
 @NoArgsConstructor
 @NoArgsConstructor
 @AllArgsConstructor
 @AllArgsConstructor
-public class SceneEditInfoParamVO {
+public class SceneEditInfoParamVO extends BaseSceneParamVO{
 
 
 
 
-    /**
-     * 逐渐
-     */
     private Long id;
     private Long id;
 
 
-    /**
-     * 场景吗
-     */
-    @NotBlank(message = "场景码不能为空")
-    private String num;
-
     private Long sceneProId;
     private Long sceneProId;
 
 
     /**
     /**