Browse Source

修改重算之后全景图未恢复的情况

tianboguang 2 years ago
parent
commit
cef7054ee1

+ 5 - 0
src/main/java/com/fdkankan/contro/bean/SceneJsonBean.java

@@ -147,6 +147,11 @@ public class SceneJsonBean {
     private String boxPhotos;
 
     /**
+     * 空间模型数据
+     */
+    private String boxModels;
+
+    /**
      *点位视频
      */
     private String videos;

+ 6 - 0
src/main/java/com/fdkankan/contro/entity/SceneEditInfo.java

@@ -143,6 +143,12 @@ public class SceneEditInfo implements Serializable {
     private String boxPhotos;
 
     /**
+     * 空间模型数据
+     */
+    @TableField("box_models")
+    private String boxModels;
+
+    /**
      * 是否需要处理球幕视频
      */
     @TableField("build_video_status")

+ 17 - 8
src/main/java/com/fdkankan/contro/mq/service/impl/BuildV3SceneServiceImpl.java

@@ -224,9 +224,7 @@ public class BuildV3SceneServiceImpl implements IBuildSceneService {
             uploadFiles.entrySet().stream().filter(entry-> FileNameUtil.getName(entry.getKey()).equals("floorplan_cad.json"))
                     .forEach(entry-> uploadHouseTypeJson(sceneCode,entry.getKey()));
 
-            //写scene.json
-            log.info("生成scene.json上传oss并设置缓存,num:{}", sceneCode);
-            this.writeSceneJson(sceneCode, videosJson,scenePro);
+
 
             //计算成功,通知APP
             Integer pushChannel = fdageData.getInteger("pushChannel");
@@ -236,16 +234,21 @@ public class BuildV3SceneServiceImpl implements IBuildSceneService {
             SceneProEdit sceneProEdit = sceneProEditService.getByProId(scenePro.getId());
             sceneProEdit.setVersion(ObjectUtils.isEmpty(sceneProEdit.getVersion()) ? 0 : sceneProEdit.getVersion() + 1);
             sceneProEdit.setImagesVersion(ObjectUtils.isEmpty(sceneProEdit.getImagesVersion()) ? 0 : sceneProEdit.getImagesVersion() + 1);
+            sceneProEdit.setFloorEditVer(ObjectUtils.isEmpty(sceneProEdit.getFloorEditVer()) ? 0 : sceneProEdit.getFloorEditVer() + 1);
+            sceneProEdit.setFloorPublishVer(ObjectUtils.isEmpty(sceneProEdit.getFloorPublishVer()) ? 0 : sceneProEdit.getFloorPublishVer() + 1);
             if (cameraType == 14) {
                 //计算成功  激光转台相机 同步 请求
                 fdkkLaserService.syncBuildResult(scenePro.getNum(), scenePro.getDataSource(),scenePro.getCreateTime());
                 sceneProEdit.setMapVisi(0);
             }
             sceneProEditService.updateById(sceneProEdit);
-            CreateObjUtil.deleteFile(path.replace(ConstantFilePath.BUILD_MODEL_PATH, "/") + "/capture");
 
-            log.info("场景计算结果处理结束,场景码:{}", sceneCode);
+            //写scene.json
+            log.info("生成scene.json上传oss并设置缓存,num:{}", sceneCode);
+            this.writeSceneJson(videosJson,scenePro,sceneProEdit);
 
+            CreateObjUtil.deleteFile(path.replace(ConstantFilePath.BUILD_MODEL_PATH, "/") + "/capture");
+            log.info("场景计算结果处理结束,场景码:{}", sceneCode);
             // 判断是否升级V4
             if(fdageData.containsKey("updateV4") && fdageData.getIntValue("updateV4") == 1){
                 fdkkV4Service.upgradeToV4(sceneCode);
@@ -365,14 +368,20 @@ public class BuildV3SceneServiceImpl implements IBuildSceneService {
         return dataJson;
     }
 
-    private void writeSceneJson(String num, JSONObject videosJson, ScenePro scenePro)  throws Exception{
+    private void writeSceneJson(JSONObject videosJson, ScenePro scenePro,SceneProEdit sceneProEdit)  throws Exception{
+        String num = scenePro.getNum();
         String dataViewPath = String.format(ConstantFilePath.DATA_PATH_FORMAT, num);
         //如果云端没有scene.json文件,生成一份
 
         JSONObject sceneJson = JSONObject.parseObject(JSONObject.toJSONString(scenePro));
-        sceneJson.put("videos",videosJson);
-        sceneJson.put("payStatus",scenePro.getPayStatus());
+        sceneJson.put("videos",videosJson.toJSONString());
+        sceneJson.put("version",sceneProEdit.getVersion());
+        sceneJson.put("imagesVersion",sceneProEdit.getImagesVersion());
+        sceneJson.put("floorEditVer",sceneProEdit.getFloorEditVer());
+        sceneJson.put("floorPublishVer",sceneProEdit.getFloorPublishVer());
         String sceneJsonStr = JSON.toJSONString(sceneJson);
+
+        FileUtils.writeFile(ConstantFilePath.SCENE_PATH + "data/data" + num + File.separator + "scene.json", sceneJsonStr);
         //上传sceneJson文件
         fYunFileService.uploadFile(sceneJsonStr.getBytes(), dataViewPath + "scene.json");