Browse Source

上传户型图业务接口

dengsixing 3 năm trước cách đây
mục cha
commit
dee681723e
14 tập tin đã thay đổi với 189 bổ sung30 xóa
  1. 18 0
      4dkankan-center-scene/src/main/java/com/fdkankan/scene/entity/SceneEditInfo.java
  2. 22 0
      4dkankan-center-scene/src/main/java/com/fdkankan/scene/factory/FloorPlanHandlerFactory.java
  3. 14 4
      4dkankan-center-scene/src/main/java/com/fdkankan/scene/factory/handler/FloorLogoHandler.java
  4. 110 0
      4dkankan-center-scene/src/main/java/com/fdkankan/scene/factory/handler/FloorPlanHandler.java
  5. 1 1
      4dkankan-center-scene/src/main/java/com/fdkankan/scene/factory/handler/ISaveUploadHandler.java
  6. 11 3
      4dkankan-center-scene/src/main/java/com/fdkankan/scene/factory/handler/MusicHandler.java
  7. 1 1
      4dkankan-center-scene/src/main/java/com/fdkankan/scene/service/ISceneEditInfoService.java
  8. 0 3
      4dkankan-center-scene/src/main/java/com/fdkankan/scene/service/impl/FolderServiceImpl.java
  9. 0 1
      4dkankan-center-scene/src/main/java/com/fdkankan/scene/service/impl/SceneCooperationServiceImpl.java
  10. 1 2
      4dkankan-center-scene/src/main/java/com/fdkankan/scene/service/impl/SceneDownloadLogServiceImpl.java
  11. 4 1
      4dkankan-center-scene/src/main/java/com/fdkankan/scene/service/impl/SceneEditInfoServiceImpl.java
  12. 0 1
      4dkankan-center-scene/src/main/java/com/fdkankan/scene/service/impl/SceneFileBuildServiceImpl.java
  13. 6 7
      4dkankan-center-scene/src/main/java/com/fdkankan/scene/service/impl/SceneProAppServiceImpl.java
  14. 1 6
      4dkankan-center-scene/src/main/java/com/fdkankan/scene/service/impl/SceneProServiceImpl.java

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

@@ -68,6 +68,24 @@ public class SceneEditInfo implements Serializable {
     private String description;
 
     /**
+     * 户型图路径
+     */
+    @TableField("floorPlan_path")
+    private String floorPlanPath;
+
+    /**
+     *
+     */
+    @TableField("cadInfo")
+    private String cadInfo;
+
+    /**
+     * 版本
+     */
+    @TableField("version")
+    private Integer version;
+
+    /**
      * 创建时间
      */
     @TableField("create_time")

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

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

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

@@ -45,10 +45,20 @@ public class FloorLogoHandler implements ISaveUploadHandler {
         //如果传过来的文件路径是空,则置为系统默认
         floorLogo = StrUtil.isBlank(floorLogo) ? "0" : floorLogo;
         Integer floorLogoSize = fileInfoJson.getInteger("floorLogoSize");
-        sceneEditInfoService.update(new LambdaUpdateWrapper<SceneEditInfo>()
-                .eq(SceneEditInfo::getSceneProId, scenePro.getId())
-                .set(SceneEditInfo::getFloorLogo, floorLogo)
-                .set(SceneEditInfo::getFloorLogoSize, floorLogoSize));
+
+        SceneEditInfo sceneEditInfoDb = sceneEditInfoService.getBySceneProId(scenePro.getId());
+        if(Objects.nonNull(sceneEditInfoDb)){
+            sceneEditInfoService.update(new LambdaUpdateWrapper<SceneEditInfo>()
+                    .set(SceneEditInfo::getFloorLogo, floorLogo)
+                    .set(SceneEditInfo::getFloorLogoSize, floorLogoSize)
+                    .eq(SceneEditInfo::getId, sceneEditInfoDb.getId()));
+        }else{
+            sceneEditInfoDb = new SceneEditInfo();
+            sceneEditInfoDb.setSceneProId(scenePro.getId());
+            sceneEditInfoDb.setFloorLogo(floorLogo);
+            sceneEditInfoDb.setFloorLogoSize(floorLogoSize);
+            sceneEditInfoService.save(sceneEditInfoDb);
+        }
 
 
         return ResultData.ok();

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

@@ -0,0 +1,110 @@
+package com.fdkankan.scene.factory.handler;
+
+import cn.hutool.core.util.StrUtil;
+import cn.hutool.json.JSONUtil;
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.fdkankan.common.constant.ConstantFilePath;
+import com.fdkankan.common.constant.ErrorCode;
+import com.fdkankan.common.constant.UploadFilePath;
+import com.fdkankan.common.exception.BusinessException;
+import com.fdkankan.common.response.ResultData;
+import com.fdkankan.common.util.FileUtils;
+import com.fdkankan.fyun.oss.UploadToOssUtil;
+import com.fdkankan.scene.entity.SceneEditInfo;
+import com.fdkankan.scene.entity.ScenePro;
+import com.fdkankan.scene.entity.SceneProExt;
+import com.fdkankan.scene.service.ISceneEditInfoService;
+import com.fdkankan.scene.service.ISceneProExtService;
+import com.fdkankan.scene.service.ISceneProService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.io.File;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+
+/**
+ * <p>
+ * logo图片保存业务处理器
+ * </p>
+ *
+ * @author dengsixing
+ * @since 2022/1/20
+ **/
+@Component
+public class FloorPlanHandler implements ISaveUploadHandler {
+
+    @Autowired
+    private ISceneEditInfoService sceneEditInfoService;
+    @Autowired
+    private ISceneProService sceneProService;
+    @Autowired
+    private ISceneProExtService sceneProExtService;
+    @Autowired
+    UploadToOssUtil uploadToOssUtil;
+
+    @Override
+    public ResultData save(String num, String fileInfo) throws Exception {
+
+        ScenePro scenePro = sceneProService.findBySceneNum(num);
+        if(Objects.isNull(scenePro))
+            throw new BusinessException(ErrorCode.FAILURE_CODE_5005);
+        JSONObject fileInfoJson = JSON.parseObject(fileInfo);
+        //户型图文件路径
+        String filePaths = fileInfoJson.getString("filePaths");
+        String cadInfo = fileInfoJson.getString("cadInfo");
+        String floorJsonData = fileInfoJson.getString("floorJsonData");
+
+        //写入数据库
+        SceneEditInfo sceneEditInfoDb = sceneEditInfoService.getBySceneProId(scenePro.getId());
+        if(Objects.nonNull(sceneEditInfoDb)){
+            sceneEditInfoService.update(new LambdaUpdateWrapper<SceneEditInfo>()
+                    .setSql("version=version+"+1)
+                    .set(SceneEditInfo::getFloorPlanPath, filePaths)
+                    .set(SceneEditInfo::getCadInfo, cadInfo)
+                    .eq(SceneEditInfo::getId, sceneEditInfoDb.getId()));
+        }else{
+            sceneEditInfoDb = new SceneEditInfo();
+            sceneEditInfoDb.setSceneProId(scenePro.getId());
+            sceneEditInfoDb.setFloorPlanPath(filePaths);
+            sceneEditInfoDb.setCadInfo(cadInfo);
+            sceneEditInfoService.save(sceneEditInfoDb);
+        }
+
+        //上传houst_floor.json文件
+        String localDataPath = String.format(ConstantFilePath.DATABUFFER_FORMAT, num);
+        String dataPath = String.format(UploadFilePath.DATA_VIEW_PATH, num);
+
+        // TODO: 2022/1/27 旧版本目录,待删除
+        String oldDataPath = String.format(ConstantFilePath.DATA_PATH_FORMAT, num);
+
+        if(StrUtil.isEmpty(floorJsonData)){
+            if(scenePro == null){
+                throw new BusinessException(ErrorCode.FAILURE_CODE_5005);
+            }
+            SceneProExt sceneProExt = sceneProExtService.findBySceneProId(scenePro.getId());
+            // TODO: 2022/1/27 老版本数据目录挂在nas,新版本目前流程尚不清楚,先暂时按照老版本写,以后再调整
+            FileUtils.copyFile(sceneProExt.getDataSource() + "/results/floor.json", localDataPath + "houst_floor.json", true);
+            uploadToOssUtil.upload(localDataPath + "houst_floor.json", dataPath + "houst_floor.json");
+
+            // TODO: 2022/1/27 老版本上传目录 待删除
+            uploadToOssUtil.upload(localDataPath + "houst_floor.json", oldDataPath + "houst_floor.json");
+
+            String result = FileUtils.readFile(localDataPath + "houst_floor.json");
+            return ResultData.ok(result);
+        }
+
+        FileUtils.writeFile(localDataPath + "houst_floor.json", floorJsonData);
+        uploadToOssUtil.upload(localDataPath + "houst_floor.json", dataPath + "houst_floor.json");
+
+        // TODO: 2022/1/27 老版本上传目录 待删除
+        uploadToOssUtil.upload(localDataPath + "houst_floor.json", oldDataPath + "houst_floor.json");
+
+        return ResultData.ok();
+    }
+
+}

+ 1 - 1
4dkankan-center-scene/src/main/java/com/fdkankan/scene/factory/handler/ISaveUploadHandler.java

@@ -14,6 +14,6 @@ import java.util.List;
  **/
 public interface ISaveUploadHandler {
 
-    ResultData save(String num, String fileInfo);
+    ResultData save(String num, String fileInfo) throws Exception;
 
 }

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

@@ -41,10 +41,18 @@ public class MusicHandler implements ISaveUploadHandler {
 
         JSONObject fileInfoJson = JSON.parseObject(fileInfo);
         String music = fileInfoJson.getString("music");
-        sceneEditInfoService.update(new LambdaUpdateWrapper<SceneEditInfo>()
-                .eq(SceneEditInfo::getSceneProId, scenePro.getId())
-                .set(SceneEditInfo::getMusic, music));
 
+        SceneEditInfo sceneEditInfoDb = sceneEditInfoService.getBySceneProId(scenePro.getId());
+        if(Objects.nonNull(sceneEditInfoDb)){
+            sceneEditInfoService.update(new LambdaUpdateWrapper<SceneEditInfo>()
+                    .set(SceneEditInfo::getMusic, music)
+                    .eq(SceneEditInfo::getId, sceneEditInfoDb.getId()));
+        }else{
+            sceneEditInfoDb = new SceneEditInfo();
+            sceneEditInfoDb.setSceneProId(scenePro.getId());
+            sceneEditInfoDb.setMusic(music);
+            sceneEditInfoService.save(sceneEditInfoDb);
+        }
 
         return ResultData.ok();
     }

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

@@ -24,6 +24,6 @@ public interface ISceneEditInfoService extends IService<SceneEditInfo> {
 
     SceneInfoVO getSceneInfo(SceneInfoParamVO param);
 
-    ResultData saveUpload(SaveUploadParamVO param);
+    ResultData saveUpload(SaveUploadParamVO param) throws Exception;
 
 }

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

@@ -178,7 +178,6 @@ public class FolderServiceImpl extends ServiceImpl<IFolderMapper, Folder> implem
             List<FolderScene> folderSceneList =
                     folderSceneService.list(
                             new QueryWrapper<FolderScene>()
-                                    .eq("recStatus", RecStatus.VALID.code())
                                     .eq("tbStatus", TbStatus.VALID.code())
                                     .eq("folderId", folder.getId())
                                     .orderByDesc("id"));
@@ -197,7 +196,6 @@ public class FolderServiceImpl extends ServiceImpl<IFolderMapper, Folder> implem
                 ScenePro scenePro = sceneProService.getOne(
                             new QueryWrapper<ScenePro>()
                                 .eq("tbStatus", TbStatus.VALID.code())
-                                .eq("resStatus", RecStatus.VALID.code())
                                 .eq("id",folderSceneList.get(0).getSceneId()));
                 folderVO.setImg(scenePro == null? "" : scenePro.getThumb());
             }
@@ -217,7 +215,6 @@ public class FolderServiceImpl extends ServiceImpl<IFolderMapper, Folder> implem
                 List<FolderScene> folderSceneList =
                         folderSceneService.list(
                                 new QueryWrapper<FolderScene>()
-                                        .eq("recStatus", RecStatus.VALID.code())
                                         .eq("tbStatus", TbStatus.VALID.code())
                                         .eq("folderId", folder.getId())
                                         .orderByDesc("id"));

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

@@ -66,7 +66,6 @@ public class SceneCooperationServiceImpl extends ServiceImpl<ISceneCooperationMa
     public SceneCooperation findBySceneNum(String sceneNum) {
         List<SceneCooperation> list = this.list(new QueryWrapper<SceneCooperation>()
                 .eq("tb_status", TbStatus.VALID.code())
-                .eq("rec_status", RecStatus.VALID.code())
                 .eq("scene_code", sceneNum)
                 .orderByDesc("id"));
         if(CollUtil.isEmpty(list)){

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

@@ -54,8 +54,7 @@ public class SceneDownloadLogServiceImpl extends ServiceImpl<ISceneDownloadLogMa
 
         List<SceneDownloadLog> list = this.list(new QueryWrapper<SceneDownloadLog>()
                 .eq("tb_status", TbStatus.VALID.code())
-                .eq("rec_status", RecStatus.VALID.code())
-                .eq("scene_code", sceneNum)
+                .eq("num", sceneNum)
                 .eq("download_status", status)
                 .orderByDesc("id"));
         if(CollUtil.isEmpty(list)){

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

@@ -16,6 +16,7 @@ import com.fdkankan.scene.entity.SceneEditControls;
 import com.fdkankan.scene.entity.SceneEditInfo;
 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.mapper.ISceneEditInfoMapper;
 import com.fdkankan.scene.service.ISceneEditControlsService;
@@ -207,7 +208,7 @@ public class SceneEditInfoServiceImpl extends ServiceImpl<ISceneEditInfoMapper,
     }
 
     @Override
-    public ResultData saveUpload(SaveUploadParamVO param) {
+    public ResultData saveUpload(SaveUploadParamVO param) throws Exception {
         FileBizType fileBizType = FileBizType.get(param.getType());
         if(Objects.isNull(fileBizType)){
             throw new BusinessException(ErrorCode.FAILURE_CODE_7003);
@@ -217,6 +218,8 @@ public class SceneEditInfoServiceImpl extends ServiceImpl<ISceneEditInfoMapper,
                 return new MusicHandlerFactory().getHandler().save(param.getNum(), param.getFileInfo());
             case FLOOR_LOGO:
                 return new FloorLogoHandlerFactory().getHandler().save(param.getNum(), param.getFileInfo());
+            case FLOOR_PLAN:
+                return new FloorPlanHandlerFactory().getHandler().save(param.getNum(), param.getFileInfo());
         }
 
 

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

@@ -173,7 +173,6 @@ public class SceneFileBuildServiceImpl extends ServiceImpl<ISceneFileBuildMapper
     public SceneFileBuild findByUnicode(String unicode) {
         List<SceneFileBuild> list = this.list(new QueryWrapper<SceneFileBuild>()
                 .eq("tb_status", TbStatus.VALID.code())
-                .eq("rec_status", RecStatus.VALID.code())
                 .eq("unicode", unicode)
                 .orderByDesc("id"));
         if(CollUtil.isEmpty(list))

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

@@ -90,6 +90,12 @@ public class SceneProAppServiceImpl extends ServiceImpl<ISceneProMapper, ScenePr
     private PlatformUserClient platformUserClient;
     @Autowired
     private ISceneCooperationService sceneCooperationService;
+    @Autowired
+    ISceneService sceneService;
+    @Autowired
+    ISceneProExtService sceneProExtService;
+    @Autowired
+    IFolderSceneService folderSceneService;
 
     @Override
     public ResultData saveInitialPage(SceneEditParamVO base) throws Exception {
@@ -2168,13 +2174,6 @@ public class SceneProAppServiceImpl extends ServiceImpl<ISceneProMapper, ScenePr
         return map;
     }
 
-    @Autowired
-    ISceneService sceneService;
-    @Autowired
-    ISceneProExtService sceneProExtService;
-    @Autowired
-    IFolderSceneService folderSceneService;
-
     @Override
     public ResultData deleteForCameraName(@RequestBody UserParamVO user) throws Exception {
         if (user.getCameraId() == null || StrUtil.isEmpty(user.getNum())) {

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

@@ -165,13 +165,9 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
 
     @Override
     public ScenePro findBySceneNum(String sceneNum) {
-        List<ScenePro> list = this.list(new LambdaQueryWrapper<ScenePro>()
+        return this.getOne(new LambdaQueryWrapper<ScenePro>()
                 .eq(ScenePro::getTbStatus, TbStatus.VALID.code())
                 .eq(ScenePro::getNum, sceneNum));
-        if(CollUtil.isEmpty(list)){
-            return null;
-        }
-        return list.get(0);
     }
 
     @Override
@@ -3095,7 +3091,6 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
         this.update(new LambdaUpdateWrapper<ScenePro>()
                 .eq(ScenePro::getCameraId, oldCameraId)
                 .set(ScenePro::getCameraId, cameraId)
-                .set(ScenePro::getPayStatus, PayStatus.NO_CAPACITY.code())
                 .set(ScenePro::getPayStatus, PayStatus.NO_CAPACITY.code()));
     }