Browse Source

修改转换逻辑

tianboguang 2 năm trước cách đây
mục cha
commit
ea829b2ff0

+ 51 - 1
src/main/java/com/fdkankan/scene/common/house/JsonToHouseUtil.java

@@ -2,12 +2,14 @@ package com.fdkankan.scene.common.house;
 
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
+import lombok.extern.slf4j.Slf4j;
+
 import java.io.File;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.HashMap;
 import java.util.List;
-import lombok.extern.slf4j.Slf4j;
+import java.util.stream.Collectors;
 
 @Slf4j
 public class JsonToHouseUtil {
@@ -159,6 +161,37 @@ public class JsonToHouseUtil {
         return 0;
     }
 
+    public static Integer floorPlanToHouseJson(String srcPath){
+        HouseJson houseJson = new HouseJson();
+        List<Floor> floorList = new ArrayList<>();
+        houseJson.setFloors(floorList);
+        try {
+            String msg = FileWriterUtil.readFile(srcPath);
+            JSONObject jsonObject = JSONObject.parseObject(msg);
+            JSONArray floors = jsonObject.getJSONArray("floors");
+            for (Object o : floors) {
+                JSONObject floor = (JSONObject) o;
+                JSONObject wallObject = floor.getJSONObject("walls");
+                List<Object> walls = wallObject.values().stream().collect(Collectors.toList());
+                floor.put("walls",walls);
+
+                JSONObject pointsObject = floor.getJSONObject("points");
+                List<Object> points = pointsObject.values().stream().collect(Collectors.toList());
+                floor.put("points",points);
+            }
+
+            int i = checkPointAndWall(floorList);
+            if(i !=0){
+                return i;
+            }
+            String tag = srcPath.replace("houst_floor.json","");
+            FileWriterUtil.writerJson(tag,"house.json",JSONObject.toJSONString(houseJson));
+        }catch (Exception e){
+            e.printStackTrace();
+            return -3;
+        }
+        return 0;
+    }
 
 
     private static void setComponents(JSONObject floor, List<Component> componentList,String key, String geoType) {
@@ -325,6 +358,23 @@ public class JsonToHouseUtil {
         return bo;
     }
 
+    public static Integer ToHouseJsonV4(String src) {
+        File file = new File(src);
+        Integer bo = -4;
+        if(file.exists() && file.isDirectory()){
+            File[] files = file.listFiles();
+            List<String> fileNameList = new ArrayList<>();
+            for (File file1 : files) {
+                fileNameList.add(file1.getName());
+            }
+            if(fileNameList.contains("houst_floor.json")){
+                log.info("JsonToHouseUtil:houstFloorToHouseJson--->{}",src +File.separator + "floorplan.json");
+                bo = JsonToHouseUtil.floorPlanToHouseJson(src +File.separator + "floorplan.json");
+            }
+        }
+        return bo;
+    }
+
     public static int checkPointAndWall(List<Floor> floors){
         if(floors.size() <=0){
             return -1;

+ 2 - 2
src/main/java/com/fdkankan/scene/service/impl/Scene3dfamilyServiceImpl.java

@@ -325,12 +325,12 @@ public class Scene3dfamilyServiceImpl extends ServiceImpl<IScene3dfamilyMapper,
             // 下载用户的户型图数据
             if (fYunFileService.fileExist(String.format(UploadFilePath.USER_VIEW_PATH, sceneNum) + "floorplan.json")) {
                 fYunFileService.downloadFile(String.format(UploadFilePath.USER_VIEW_PATH, sceneNum) + "floorplan.json",
-                        path + File.separator + "scene" + File.separator + "data" + File.separator + "data" + sceneNum+"/houst_floor.json"
+                        path + File.separator + "scene" + File.separator + "data" + File.separator + "data" + sceneNum+"/floorplan.json"
                 );
             }
 
             //转换house.json
-            Integer bo = JsonToHouseUtil.ToHouseJson(path + File.separator + "scene" + File.separator + dataBuf);
+            Integer bo = JsonToHouseUtil.ToHouseJsonV4(path + File.separator + "scene" + File.separator + dataBuf);
 
             if (bo != 0) {
                 switch (bo) {