Browse Source

saveupload接口增加初始点信息业务

dengsixing 3 years ago
parent
commit
1f440abdff

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

@@ -7,6 +7,7 @@ import lombok.Data;
 import lombok.NoArgsConstructor;
 
 import java.util.Date;
+import java.util.List;
 
 /**
  * <p>
@@ -84,4 +85,31 @@ public class SceneJsonBean {
      */
     private Integer videoCount;
 
+    /**
+     * 初始点信息
+     */
+    private String initialPoint;
+
+    /**
+     * 缩略图是否存在(0-否,1-是)
+     */
+    private Byte thumbStatus;
+
+    /**
+     * 版本
+     */
+    private Integer version;
+
+    /**
+     * 户型图文件路径集合
+     */
+    private String[] floorPlanPaths;
+
+    /**
+     * 是否上传了户型图(0-否,1-是)
+     */
+    private Byte floorPlanStatus;
+
+    private String cadInfo;
+
 }

+ 1 - 1
4dkankan-center-scene/src/main/java/com/fdkankan/scene/controller/TestController.java

@@ -78,7 +78,7 @@ public class TestController {
 //        String test = null;
 //        test.equals("123");
 //        String ruleDir = System.getProperty("user.dir");
-        ResultData<String> test = platformGoodsClient.test();
+//        ResultData<String> test = platformGoodsClient.test();
 
         System.out.println("gghhjjkkllll");
         return "123";

+ 14 - 2
4dkankan-center-scene/src/main/java/com/fdkankan/scene/entity/SceneEditInfo.java

@@ -70,16 +70,28 @@ public class SceneEditInfo implements Serializable {
     /**
      * 户型图路径
      */
-    @TableField("floorPlan_path")
+    @TableField("floor_plan_path")
     private String floorPlanPath;
 
     /**
      *
      */
-    @TableField("cadInfo")
+    @TableField("cad_info")
     private String cadInfo;
 
     /**
+     * 初始点信息
+     */
+    @TableField("initial_point")
+    private String initialPoint;
+
+    /**
+     * 缩略图是否存在(0-否,1-是)
+     */
+    @TableField("thumb_status")
+    private Byte thumbStatus;
+
+    /**
      * 版本
      */
     @TableField("version")

+ 22 - 0
4dkankan-center-scene/src/main/java/com/fdkankan/scene/factory/ScreenshotHandlerFactory.java

@@ -0,0 +1,22 @@
+package com.fdkankan.scene.factory;
+
+import cn.hutool.extra.spring.SpringUtil;
+import com.fdkankan.scene.factory.handler.ISaveUploadHandler;
+import com.fdkankan.scene.factory.handler.MusicHandler;
+import com.fdkankan.scene.factory.handler.ScreenshotHandler;
+
+/**
+ * <p>
+ * 背景音乐保存业务处理器工厂
+ * </p>
+ *
+ * @author dengsixing
+ * @since 2022/1/20
+ **/
+public class ScreenshotHandlerFactory implements ISaveUploadHandlerFactory {
+
+    @Override
+    public ISaveUploadHandler getHandler() {
+        return SpringUtil.getBean(ScreenshotHandler.class);
+    }
+}

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

@@ -0,0 +1,64 @@
+package com.fdkankan.scene.factory.handler;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.fdkankan.common.constant.CommonStatus;
+import com.fdkankan.common.constant.ErrorCode;
+import com.fdkankan.common.exception.BusinessException;
+import com.fdkankan.common.response.ResultData;
+import com.fdkankan.scene.entity.SceneEditInfo;
+import com.fdkankan.scene.entity.ScenePro;
+import com.fdkankan.scene.service.ISceneEditInfoService;
+import com.fdkankan.scene.service.ISceneProService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.util.Objects;
+
+/**
+ * <p>
+ * 背景音乐保存业务处理器
+ * </p>
+ *
+ * @author dengsixing
+ * @since 2022/1/20
+ **/
+@Component
+public class ScreenshotHandler implements ISaveUploadHandler {
+
+    @Autowired
+    private ISceneEditInfoService sceneEditInfoService;
+    @Autowired
+    private ISceneProService sceneProService;
+
+    @Override
+    public ResultData save(String num, String fileInfo) {
+
+        ScenePro scenePro = sceneProService.findBySceneNum(num);
+        if(Objects.isNull(scenePro))
+            throw new BusinessException(ErrorCode.FAILURE_CODE_5005);
+
+        JSONObject fileInfoJson = JSON.parseObject(fileInfo);
+        String initialPoint = fileInfoJson.getString("initialPoint");
+
+        // TODO: 2022/1/28旧代码中根据thumbBigImg.jpg生成thumbSmallImg.jpg,这里暂时不知道要不要,先留着
+
+        SceneEditInfo sceneEditInfoDb = sceneEditInfoService.getBySceneProId(scenePro.getId());
+        if(Objects.nonNull(sceneEditInfoDb)){
+            sceneEditInfoService.update(new LambdaUpdateWrapper<SceneEditInfo>()
+                    .setSql("version=version+" + 1)
+                    .set(SceneEditInfo::getInitialPoint, initialPoint)
+                    .set(SceneEditInfo::getThumbStatus, CommonStatus.YES.code())
+                    .eq(SceneEditInfo::getId, sceneEditInfoDb.getId()));
+        }else{
+            sceneEditInfoDb = new SceneEditInfo();
+            sceneEditInfoDb.setSceneProId(scenePro.getId());
+            sceneEditInfoDb.setInitialPoint(initialPoint);
+            sceneEditInfoDb.setThumbStatus(CommonStatus.YES.code());
+            sceneEditInfoService.save(sceneEditInfoDb);
+        }
+
+        return ResultData.ok();
+    }
+}

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

@@ -18,6 +18,7 @@ import com.fdkankan.scene.entity.ScenePro;
 import com.fdkankan.scene.factory.FloorLogoHandlerFactory;
 import com.fdkankan.scene.factory.FloorPlanHandlerFactory;
 import com.fdkankan.scene.factory.MusicHandlerFactory;
+import com.fdkankan.scene.factory.ScreenshotHandlerFactory;
 import com.fdkankan.scene.mapper.ISceneEditInfoMapper;
 import com.fdkankan.scene.service.ISceneEditControlsService;
 import com.fdkankan.scene.service.ISceneEditInfoService;
@@ -26,6 +27,7 @@ import com.fdkankan.scene.vo.*;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
 import java.io.BufferedReader;
 import java.io.IOException;
@@ -122,6 +124,10 @@ public class SceneEditInfoServiceImpl extends ServiceImpl<ISceneEditInfoMapper,
         SceneEditControlsVO sceneEditControlsVO = BeanUtil.copyProperties(sceneEditControls, SceneEditControlsVO.class);
         sceneJson.setControls(sceneEditControlsVO);
         sceneJson.setNum(sceneNum);
+        if(StrUtil.isNotEmpty(sceneEditInfo.getFloorPlanPath())){
+            sceneJson.setFloorPlanPaths(sceneEditInfo.getFloorPlanPath().split(","));
+            sceneJson.setFloorPlanStatus(CommonStatus.YES.code());
+        }
 
         //上传sceneJson文件
         String sceneJsonPath = String.format(ConstantFilePath.SCENE_VIEW_DATA_DATA_SCENEJSON, sceneNum);
@@ -175,6 +181,11 @@ public class SceneEditInfoServiceImpl extends ServiceImpl<ISceneEditInfoMapper,
         SceneInfoVO sceneInfoVO = BeanUtil.copyProperties(sceneEditInfo, SceneInfoVO.class);
         sceneInfoVO.setControls(BeanUtil.copyProperties(sceneEditControls, SceneEditControlsVO.class));
         sceneInfoVO.setNum(num);
+        //生成sceneJson
+        if(StrUtil.isNotEmpty(sceneEditInfo.getFloorPlanPath())){
+            sceneInfoVO.setFloorPlanPaths(sceneEditInfo.getFloorPlanPath().split(","));
+            sceneInfoVO.setFloorPlanStatus(CommonStatus.YES.code());
+        }
 
         return sceneInfoVO;
     }
@@ -208,18 +219,24 @@ public class SceneEditInfoServiceImpl extends ServiceImpl<ISceneEditInfoMapper,
     }
 
     @Override
+//    @Transactional
     public ResultData saveUpload(SaveUploadParamVO param) throws Exception {
         FileBizType fileBizType = FileBizType.get(param.getBizType());
+        String num = param.getNum();
+        String fileInfo = param.getFileInfo();
         if(Objects.isNull(fileBizType)){
             throw new BusinessException(ErrorCode.FAILURE_CODE_7003);
         }
         switch (fileBizType){
             case MUSIC:
-                return new MusicHandlerFactory().getHandler().save(param.getNum(), param.getFileInfo());
+                return new MusicHandlerFactory().getHandler().save(num, fileInfo);
             case FLOOR_LOGO:
-                return new FloorLogoHandlerFactory().getHandler().save(param.getNum(), param.getFileInfo());
+                return new FloorLogoHandlerFactory().getHandler().save(num, fileInfo);
             case FLOOR_PLAN:
-                return new FloorPlanHandlerFactory().getHandler().save(param.getNum(), param.getFileInfo());
+                return new FloorPlanHandlerFactory().getHandler().save(num, fileInfo);
+            case SCREENSHOT:
+                return new ScreenshotHandlerFactory().getHandler().save(num, fileInfo);
+
         }
 
 

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

@@ -98,7 +98,8 @@ public class SceneProAppServiceImpl extends ServiceImpl<ISceneProMapper, ScenePr
     IFolderSceneService folderSceneService;
 
     @Override
-    public ResultData saveInitialPage(SceneEditParamVO base) throws Exception {
+    public ResultData
+    saveInitialPage(SceneEditParamVO base) throws Exception {
         if(StringUtils.isEmpty(base.getNum()) || StringUtils.isEmpty(base.getInitialPoint())){
             throw new BusinessException(ErrorCode.FAILURE_CODE_3001);
         }

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

@@ -84,4 +84,33 @@ public class SceneInfoVO {
      */
     private Integer videoCount;
 
+    /**
+     * 初始点信息
+     */
+    private String initialPoint;
+
+    /**
+     * 缩略图是否存在(0-否,1-是)
+     */
+    private Byte thumbStatus;
+
+    /**
+     * 版本
+     */
+    private Integer version;
+
+    /**
+     * 户型图文件路径集合
+     */
+    private String[] floorPlanPaths;
+
+    /**
+     * 是否上传了户型图(0-否,1-是)
+     */
+    private Byte floorPlanStatus;
+
+    private String cadInfo;
+
+
+
 }