Jelajahi Sumber

修正场景版本号,由于查看和编辑的版本号有误差,重算时取最大值再+1,避免缓存问题

dsx 2 tahun lalu
induk
melakukan
8c3fd47310

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

@@ -113,6 +113,12 @@ public class SceneEditInfo implements Serializable {
     private Integer imgVersion;
 
     /**
+     * 场景关联版本
+     */
+    @TableField("link_version")
+    private Integer linkVersion;
+
+    /**
      * 是否上传模型
      */
     @TableField("is_upload_obj")

+ 27 - 3
src/main/java/com/fdkankan/contro/mq/service/impl/BuildSceneServiceImpl.java

@@ -43,6 +43,7 @@ import com.fdkankan.rabbitmq.bean.BuildSceneResultMqMessage;
 import com.fdkankan.rabbitmq.util.RabbitMqProducer;
 import com.fdkankan.redis.constant.RedisKey;
 import com.fdkankan.redis.util.RedisUtil;
+import com.sun.org.apache.xpath.internal.operations.Plus;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.ObjectUtils;
 import org.apache.commons.lang3.StringUtils;
@@ -865,12 +866,35 @@ public class BuildSceneServiceImpl implements IBuildSceneService {
             sceneEditInfo.setDescription(scenePlus.getDescription());
             sceneEditInfo.setTitle(scenePlus.getTitle());
             sceneEditInfoService.save(sceneEditInfo);
-
         }else{
+
+            int version = 0;
+            int imgVersion = 0;
+            int linkVersion = 0;
+            //获取展示页的版本号
+            String sceneJsonStr = fYunFileService.getFileContent(String.format(UploadFilePath.DATA_VIEW_PATH, scenePlus.getNum()) + "scene.json");
+            if(StrUtil.isNotEmpty(sceneJsonStr)){
+                JSONObject sceneJson = JSON.parseObject(sceneJsonStr);
+                version = sceneJson.getIntValue("version");
+                imgVersion = sceneJson.getIntValue("imgVersion");
+//                linkVersion =  sceneJson.getIntValue("linkVersion");
+            }
+
+            if(version < sceneEditInfo.getVersion()){
+                version = sceneEditInfo.getVersion();
+            }
+            if(imgVersion < sceneEditInfo.getImgVersion()){
+                imgVersion = sceneEditInfo.getImgVersion();
+            }
+            if(linkVersion < sceneEditInfo.getLinkVersion()){
+                linkVersion = sceneEditInfo.getLinkVersion();
+            }
+
             sceneEditControls = sceneEditControlsService.getBySceneEditId(sceneEditInfo.getId());
             sceneEditInfoExt = sceneEditInfoExtService.getByEditInfoId(sceneEditInfo.getId());
-            sceneEditInfo.setVersion(sceneEditInfo.getVersion() + 1);
-            sceneEditInfo.setImgVersion(sceneEditInfo.getImgVersion() + 1);
+            sceneEditInfo.setVersion(version + 1);
+            sceneEditInfo.setImgVersion(imgVersion + 1);
+            sceneEditInfo.setLinkVersion(linkVersion + 1);
             sceneEditInfo.setIsUploadObj(CommonStatus.NO.code());
             sceneEditInfoService.updateById(sceneEditInfo);
         }