瀏覽代碼

场景编辑增加字段:floor_plan_angle、floor_plan_compass

dengsixing 3 年之前
父節點
當前提交
c880735e7f

+ 11 - 0
4dkankan-center-scene/src/main/java/com/fdkankan/scene/bean/SceneJsonBean.java

@@ -158,4 +158,15 @@ public class SceneJsonBean {
      */
     private String loadingLogoFile;
 
+    /**
+     * 户型角度
+     */
+    private Integer floorPlanAngle;
+
+    /**
+     * 指南针角度
+     */
+    private Integer floorPlanCompass;
+
+
 }

+ 31 - 1
4dkankan-center-scene/src/main/java/com/fdkankan/scene/entity/SceneEditInfoExt.java

@@ -3,8 +3,10 @@ package com.fdkankan.scene.entity;
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableLogic;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.fdkankan.db.base.BaseEntity;
+import java.util.Date;
 import lombok.Getter;
 import lombok.Setter;
 
@@ -19,7 +21,7 @@ import lombok.Setter;
 @Getter
 @Setter
 @TableName("t_scene_edit_info_ext")
-public class SceneEditInfoExt extends BaseEntity {
+public class SceneEditInfoExt {
 
     private static final long serialVersionUID = 1L;
 
@@ -29,14 +31,42 @@ public class SceneEditInfoExt extends BaseEntity {
     @TableField("scene_pro_id")
     private Long sceneProId;
 
+    @TableField("scene_plus_id")
+    private Long scenePlusId;
+
     @TableField("edit_info_id")
     private Long editInfoId;
 
+    @TableField("floor_plan_angle")
+    private Integer floorPlanAngle;
+
+    @TableField("floor_plan_compass")
+    private Integer floorPlanCompass;
+
     /**
      * 大场景序号(随心装场景码)  原pro_edit表中的字段
      */
     @TableField("vr_num")
     private String vrNum;
 
+    /**
+     * 创建时间
+     */
+    @TableField("create_time")
+    private Date createTime;
+
+    /**
+     * 更新时间
+     */
+    @TableField("update_time")
+    private Date updateTime;
+
+    /**
+     * 0-有效,1-删除
+     */
+    @TableField("tb_status")
+    @TableLogic
+    private Integer tbStatus;
+
 
 }

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

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

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

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

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

@@ -35,6 +35,7 @@ import com.fdkankan.scene.bean.SceneJsonBean;
 import com.fdkankan.scene.entity.SceneDataDownload;
 import com.fdkankan.scene.entity.SceneEditControls;
 import com.fdkankan.scene.entity.SceneEditInfo;
+import com.fdkankan.scene.entity.SceneEditInfoExt;
 import com.fdkankan.scene.entity.ScenePro;
 import com.fdkankan.scene.entity.SceneProExt;
 import com.fdkankan.scene.factory.FloorLogoHandlerFactory;
@@ -43,6 +44,7 @@ import com.fdkankan.scene.factory.ScreenshotHandlerFactory;
 import com.fdkankan.scene.mapper.ISceneEditInfoMapper;
 import com.fdkankan.scene.service.ISceneDataDownloadService;
 import com.fdkankan.scene.service.ISceneEditControlsService;
+import com.fdkankan.scene.service.ISceneEditInfoExtService;
 import com.fdkankan.scene.service.ISceneEditInfoService;
 import com.fdkankan.scene.service.ISceneProExtService;
 import com.fdkankan.scene.service.ISceneProService;
@@ -108,6 +110,8 @@ public class SceneEditInfoServiceImpl extends ServiceImpl<ISceneEditInfoMapper,
     PlatformGoodsClient platformGoodsClient;
     @Autowired
     PlatformUserClient platformUserClient;
+    @Autowired
+    private ISceneEditInfoExtService sceneEditInfoExtService;
 
 
     @Transactional
@@ -170,12 +174,19 @@ public class SceneEditInfoServiceImpl extends ServiceImpl<ISceneEditInfoMapper,
         ScenePro scenePro = sceneProService.findBySceneNum(sceneNum);
         SceneProExt sceneProExt = sceneProExtService.findBySceneProId(scenePro.getId());
         SceneEditInfo sceneEditInfo = this.getBySceneProId(scenePro.getId());
-        SceneEditControls sceneEditControls = null;
+        SceneEditInfoExt sceneEditInfoExt = null;
+            SceneEditControls sceneEditControls = null;
         if(sceneEditInfo == null){
             sceneEditInfo = new SceneEditInfo();
             sceneEditInfo.setSceneProId(scenePro.getId());
         }else{
             sceneEditControls = sceneEditControlsService.getBySceneEditId(sceneEditInfo.getId());
+            sceneEditInfoExt = sceneEditInfoExtService.getByEditInfoId(sceneEditInfo.getId());
+        }
+        if(sceneEditInfoExt == null){
+            sceneEditInfoExt = new SceneEditInfoExt();
+            sceneEditInfoExt.setFloorPlanAngle(0);
+            sceneEditInfoExt.setFloorPlanCompass(0);
         }
 
 //        if(sceneEditControls == null){
@@ -183,7 +194,9 @@ public class SceneEditInfoServiceImpl extends ServiceImpl<ISceneEditInfoMapper,
 //        }
 
         //生成sceneJson
-        SceneJsonBean sceneJson = BeanUtil.copyProperties(sceneEditInfo, SceneJsonBean.class);
+        SceneJsonBean sceneJson = new SceneJsonBean();
+        BeanUtil.copyProperties(sceneEditInfoExt, sceneJson);
+        BeanUtil.copyProperties(sceneEditInfo, sceneJson);
         SceneEditControlsVO sceneEditControlsVO = BeanUtil.copyProperties(sceneEditControls, SceneEditControlsVO.class);
         sceneJson.setControls(sceneEditControlsVO);
         sceneJson.setNum(sceneNum);
@@ -232,6 +245,9 @@ public class SceneEditInfoServiceImpl extends ServiceImpl<ISceneEditInfoMapper,
         }else{
             this.updateById(sceneEditInfo);
         }
+        sceneEditInfoExt.setSceneProId(scenePro.getId());
+        sceneEditInfoExt.setEditInfoId(sceneEditInfo.getId());
+        sceneEditInfoExtService.saveOrUpdate(sceneEditInfoExt);
 
 //        sceneEditControls.setEditInfoId(sceneEditInfo.getId());
 //        if(sceneEditControls.getId() == null){
@@ -339,8 +355,11 @@ public class SceneEditInfoServiceImpl extends ServiceImpl<ISceneEditInfoMapper,
         if(Objects.isNull(sceneEditInfo)){
             throw new BusinessException(ErrorCode.FAILURE_CODE_5005);
         }
+        SceneEditInfoExt sceneEditInfoExt = sceneEditInfoExtService.getByEditInfoId(sceneEditInfo.getId());
         SceneEditControls sceneEditControls = sceneEditControlsService.getBySceneEditId(sceneEditInfo.getId());
-        SceneInfoVO sceneInfoVO = BeanUtil.copyProperties(sceneEditInfo, SceneInfoVO.class);
+        SceneInfoVO sceneInfoVO = new SceneInfoVO();
+        BeanUtil.copyProperties(sceneEditInfoExt, sceneInfoVO);
+        BeanUtil.copyProperties(sceneEditInfo, sceneInfoVO);
         sceneInfoVO.setControls(BeanUtil.copyProperties(sceneEditControls, SceneEditControlsVO.class));
         sceneInfoVO.setNum(num);
         //生成sceneJson
@@ -469,8 +488,16 @@ public class SceneEditInfoServiceImpl extends ServiceImpl<ISceneEditInfoMapper,
         String filePathStr = null;
 
         String floors = fileInfoJson.getString("floors");
-        String cadInfo = fileInfoJson.getString("cadInfo");
+        String cadInfo = null;
+        Integer angel = null;
+        Integer compass = null;
         String floorJsonData = fileInfoJson.getString("floorJsonData");
+        if(StrUtil.isNotBlank(floorJsonData)){
+            JSONObject jsonObject = JSON.parseObject(floorJsonData);
+            cadInfo = jsonObject.getString("cadInfo");
+            angel = jsonObject.getInteger("angle");
+            compass = jsonObject.getInteger("compass");
+        }
 //        String filePaths = fileInfoJson.getString("filePaths");
 //        Byte reSet = fileInfoJson.getByte("reset");
 
@@ -486,6 +513,7 @@ public class SceneEditInfoServiceImpl extends ServiceImpl<ISceneEditInfoMapper,
 //        }
 
         //处理户型图数据
+        JSONObject floorUserJson = null;
         if(StrUtil.isNotEmpty(floors)) {
             //如果入参是空,则加载服务器的
             if(StrUtil.isEmpty(floorJsonData)){
@@ -498,7 +526,7 @@ public class SceneEditInfoServiceImpl extends ServiceImpl<ISceneEditInfoMapper,
 
             //如果floors不为空,需要根据对应楼层id修改楼层名称
             if (StrUtil.isNotEmpty(floorJsonData)) {
-                JSONObject floorUserJson = this.updateFloorName(floors, floorJsonData);
+                floorUserJson = this.updateFloorName(floors, floorJsonData);
                 floorJsonData = floorUserJson.toJSONString();
             }
         }
@@ -555,6 +583,20 @@ public class SceneEditInfoServiceImpl extends ServiceImpl<ISceneEditInfoMapper,
             this.save(sceneEditInfoDb);
         }
 
+        SceneEditInfoExt sceneEditInfoExt = sceneEditInfoExtService.getByEditInfoId(sceneEditInfoDb.getId());
+        if(Objects.isNull(sceneEditInfoExt)){
+            sceneEditInfoExt = new SceneEditInfoExt();
+            sceneEditInfoExt.setEditInfoId(sceneEditInfoDb.getId());
+        }
+        if(Objects.nonNull(angel)){
+            sceneEditInfoExt.setFloorPlanAngle(angel);
+        }
+        if(Objects.nonNull(compass)){
+            sceneEditInfoExt.setFloorPlanCompass(compass);
+        }
+        sceneEditInfoExtService.saveOrUpdate(sceneEditInfoExt);
+
+
         return ResultData.ok();
 
     }

+ 12 - 0
4dkankan-center-scene/src/main/java/com/fdkankan/scene/vo/SceneInfoVO.java

@@ -147,5 +147,17 @@ public class SceneInfoVO {
      */
     private String dataSync;
 
+    /**
+     * 户型角度
+     */
+    private Integer floorPlanAngle;
+
+    /**
+     * 指南针角度
+     */
+    private Integer floorPlanCompass;
+
+
+
 
 }