Browse Source

增加 户型图重命名接口

dengsixing 3 years ago
parent
commit
5103b030f9

+ 15 - 0
4dkankan-center-scene/src/main/java/com/fdkankan/scene/controller/SceneEditController.java

@@ -10,6 +10,7 @@ import com.fdkankan.scene.service.ISceneProService;
 import com.fdkankan.scene.service.ISceneUploadService;
 import com.fdkankan.scene.service.ISceneUploadService;
 import com.fdkankan.scene.vo.*;
 import com.fdkankan.scene.vo.*;
 import com.fdkankan.common.response.ResultData;
 import com.fdkankan.common.response.ResultData;
+import java.io.IOException;
 import lombok.extern.log4j.Log4j2;
 import lombok.extern.log4j.Log4j2;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.beans.factory.annotation.Value;
@@ -692,6 +693,20 @@ public class SceneEditController extends BaseController {
     }
     }
 
 
     /**
     /**
+     * <p>
+     楼层户型重命名
+     * </p>
+     * @author dengsixing
+     * @date 2022/2/16
+     * @param num
+     * @return
+     **/
+    @PostMapping(value = "/cad/rename")
+    public ResultData renameCad(@RequestBody @Validated RenameCadParamVO param) throws IOException {
+        return sceneEditInfoService.renameCad(param);
+    }
+
+    /**
      * 获取场景详情
      * 获取场景详情
      */
      */
     @GetMapping(value = "/getInfo")
     @GetMapping(value = "/getInfo")

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

@@ -5,6 +5,7 @@ import com.fdkankan.scene.api.dto.SceneInfoDTO;
 import com.fdkankan.scene.entity.SceneEditInfo;
 import com.fdkankan.scene.entity.SceneEditInfo;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.fdkankan.scene.vo.*;
 import com.fdkankan.scene.vo.*;
+import java.io.IOException;
 import org.springframework.web.multipart.MultipartFile;
 import org.springframework.web.multipart.MultipartFile;
 
 
 /**
 /**
@@ -35,6 +36,8 @@ public interface ISceneEditInfoService extends IService<SceneEditInfo> {
 
 
     ResultData resetCad(String num);
     ResultData resetCad(String num);
 
 
+    ResultData renameCad(RenameCadParamVO param) throws IOException;
+
     void upgradeVersionById(Long id);
     void upgradeVersionById(Long id);
 
 
     ResultData uploadPanorama(String num, MultipartFile file) throws Exception;
     ResultData uploadPanorama(String num, MultipartFile file) throws Exception;

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

@@ -2,6 +2,7 @@ package com.fdkankan.scene.service.impl;
 
 
 import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.collection.CollUtil;
+import cn.hutool.core.net.multipart.UploadFile;
 import cn.hutool.core.util.StrUtil;
 import cn.hutool.core.util.StrUtil;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONArray;
@@ -663,6 +664,39 @@ public class SceneEditInfoServiceImpl extends ServiceImpl<ISceneEditInfoMapper,
 
 
     }
     }
 
 
+    @Override
+    public ResultData renameCad(RenameCadParamVO param) throws IOException {
+
+        String key = String.format(UploadFilePath.DATA_VIEW_PATH, param.getNum()) + "floorplan_cad.json";
+        String floorplanCadJson = uploadToOssUtil.getObjectContent(this.bucket, key);
+        if(StrUtil.isEmpty(floorplanCadJson)){
+            return ResultData.ok();
+        }
+        Map<Integer, String> renameMap = new HashMap<>();
+        param.getFloors().stream().forEach(floor->{
+            renameMap.put(floor.getSubgroup(), floor.getName());
+        });
+        JSONObject jsonObject = JSON.parseObject(floorplanCadJson);
+        if(Objects.isNull(jsonObject)){
+            return ResultData.ok();
+        }
+        JSONArray floorArr = jsonObject.getJSONArray("floors");
+        if(CollUtil.isEmpty(floorArr)){
+            return ResultData.ok();
+        }
+        for (Object o : floorArr) {
+            JSONObject item = (JSONObject)o;
+            int subgroup = item.getIntValue("subgroup");
+            String name = renameMap.get(subgroup);
+            if(StrUtil.isEmpty(name)){
+                continue;
+            }
+            item.put("name", name);
+        }
+        uploadToOssUtil.upload(jsonObject.toJSONString().getBytes(), key);
+        return ResultData.ok();
+    }
+
     private JSONObject updateFloorName(String sourceFloors, String targeFloors){
     private JSONObject updateFloorName(String sourceFloors, String targeFloors){
         JSONArray sourceFloorsJson = JSON.parseArray(sourceFloors);
         JSONArray sourceFloorsJson = JSON.parseArray(sourceFloors);
         JSONObject targeFloorsJson = JSONObject.parseObject(targeFloors);
         JSONObject targeFloorsJson = JSONObject.parseObject(targeFloors);

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

@@ -0,0 +1,12 @@
+package com.fdkankan.scene.vo;
+
+import javax.validation.constraints.NotNull;
+import lombok.Data;
+
+@Data
+public class FloorParamVO {
+    @NotNull(message = "subgroup不能为空")
+    private Integer subgroup;
+    @NotNull(message = "name不能为空")
+    private String name;
+}

+ 27 - 0
4dkankan-center-scene/src/main/java/com/fdkankan/scene/vo/RenameCadParamVO.java

@@ -0,0 +1,27 @@
+package com.fdkankan.scene.vo;
+
+import java.util.List;
+import javax.validation.Valid;
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotEmpty;
+import lombok.Data;
+
+/**
+ * <p>
+ * TODO
+ * </p>
+ *
+ * @author dengsixing
+ * @since 2022/4/27
+ **/
+@Data
+public class RenameCadParamVO {
+
+    @NotBlank(message = "场景码不能为空")
+    private String num;
+
+    @Valid
+    @NotEmpty(message = "floors不能为空")
+    private List<FloorParamVO> floors;
+
+}