فهرست منبع

计算完成时间

lyhzzz 5 ماه پیش
والد
کامیت
868c6d85ba

+ 14 - 0
src/main/java/com/fdkankan/fusion/common/util/LocalToOssUtil.java

@@ -10,6 +10,8 @@ import org.springframework.stereotype.Component;
 
 import java.io.File;
 import java.nio.charset.Charset;
+import java.nio.file.Path;
+import java.nio.file.Paths;
 import java.util.List;
 import java.util.Map;
 import java.util.stream.Collectors;
@@ -23,11 +25,19 @@ public class LocalToOssUtil {
 
 
     private String getOssPath(String bucket, String filePath) {
+        Path p = Paths.get(filePath);
+        if(p.isAbsolute()){
+            return filePath;
+        }
         return CacheUtil.basePath.concat(bucket).concat(File.separator).concat(filePath);
 
     }
 
     public String getOssPath( String filePath) {
+        Path p = Paths.get(filePath);
+        if(p.isAbsolute()){
+            return filePath;
+        }
         return CacheUtil.basePath.concat(bucket).concat(File.separator).concat(filePath);
 
     }
@@ -35,6 +45,9 @@ public class LocalToOssUtil {
     public boolean existKey(String objectName) {
         return FileUtil.exist(getOssPath(bucket, objectName));
     }
+    public boolean existKeyAbs(String objectName) {
+        return FileUtil.exist( objectName);
+    }
 
 
     public boolean downFormRel(String objectName, String localPath) {
@@ -141,4 +154,5 @@ public class LocalToOssUtil {
     public String getObjectContent(String s) {
         return FileUtil.readUtf8String(new File(getOssPath(s)));
     }
+
 }

+ 1 - 0
src/main/java/com/fdkankan/fusion/service/ISceneService.java

@@ -13,4 +13,5 @@ import com.baomidou.mybatisplus.extension.service.IService;
  */
 public interface ISceneService extends IService<Scene> {
 
+    Scene getByNum(String num);
 }

+ 13 - 12
src/main/java/com/fdkankan/fusion/service/impl/CaseNumServiceImpl.java

@@ -8,10 +8,7 @@ import com.fdkankan.fusion.common.FilePath;
 import com.fdkankan.fusion.common.ResultCode;
 import com.fdkankan.fusion.common.ResultData;
 import com.fdkankan.fusion.common.util.*;
-import com.fdkankan.fusion.entity.CaseEntity;
-import com.fdkankan.fusion.entity.CaseNumEntity;
-import com.fdkankan.fusion.entity.FusionNum;
-import com.fdkankan.fusion.entity.Model;
+import com.fdkankan.fusion.entity.*;
 import com.fdkankan.fusion.exception.BusinessException;
 import com.fdkankan.fusion.httpClient.client.FdKKClient;
 import com.fdkankan.fusion.mapper.ICaseNumMapper;
@@ -64,6 +61,8 @@ public class CaseNumServiceImpl extends ServiceImpl<ICaseNumMapper, CaseNumEntit
     ICaseTagPointService caseTagPointService;
     @Autowired
     ThreadService threadService;
+    @Autowired
+    ISceneService sceneService;
 
     @Override
     public List<CaseNumEntity> getByCaseId(Integer caseId) {
@@ -119,25 +118,27 @@ public class CaseNumServiceImpl extends ServiceImpl<ICaseNumMapper, CaseNumEntit
                 model.setType(type);
                 model.setModelType("pointcloud");    //深时点云类型
                 model.setCreateStatus(1);
+                Scene scene = sceneService.getByNum(num);
                 if(type == 0 || type == 1 || type == 4 || type == 6 || type == 7){           //看看,看见
-                    String mesh3DtilesPath  = String.format(FilePath.OBJ_OSS_PATH,num) + "/images/3dtiles/tileset.json";
-                    String sizePath = String.format(FilePath.OBJ_OSS_PATH,num) + "/images/3dtiles";
-                    if(localToOssUtil.existKey(mesh3DtilesPath)){
+                    String mesh3DtilesPath  = scene.getWebPath() + String.format(FilePath.OBJ_OSS_PATH,num) + "/images/3dtiles/tileset.json";
+
+                    String sizePath = scene.getWebPath() + String.format(FilePath.OBJ_OSS_PATH,num) + "/images/3dtiles";
+                    if(localToOssUtil.existKeyAbs(mesh3DtilesPath)){
                         model.setModelDateType("b3dm");
                         model.setModelType("b3dm");
                         model.setModelGlbUrl(JSONArray.toJSONString(Arrays.asList(queryPath +mesh3DtilesPath)));
-                        model.setModelSize(FileWriterUtil.setFileSize(localToOssUtil.getSize( sizePath)));
+                        model.setModelSize(FileWriterUtil.setFileSize(localToOssUtil.getSizeCount( sizePath)));
                     }else {
                         //model.setModelObjUrl(String.format(FilePath.OBJ_LOCAL_PATH,environment ,num) +"/mesh.obj");
                         //model.setModelGlbUrl(getGlbUrl(param.getType(),num,model));
-                        String meshPath = String.format(FilePath.OBJ_OSS_PATH, num)+"/data/mesh";
-                        if(localToOssUtil.existKey(meshPath +"/mesh.obj")){
-                            Long size = localToOssUtil.getSize(meshPath);
+                        String meshPath = scene.getWebPath() + String.format(FilePath.OBJ_OSS_PATH, num)+"/data/mesh";
+                        if(localToOssUtil.existKeyAbs(meshPath +"/mesh.obj")){
+                            Long size = localToOssUtil.getSizeCount(meshPath);
                             model.setModelSize(FileWriterUtil.setFileSize(size));
                             model.setModelGlbUrl(JSONArray.toJSONString(Arrays.asList(queryPath + meshPath+"/mesh.obj")));
                         }else {
                             List<String> objPaths = new ArrayList<>();
-                            String meshPathjs = String.format(FilePath.OBJ_OSS_PATH, num)+"/data/";
+                            String meshPathjs = scene.getWebPath() + String.format(FilePath.OBJ_OSS_PATH, num)+"/data/";
 
                             String jsonPath = meshPath + "/floors.json";
                             if(!localToOssUtil.existKey(jsonPath)){

+ 13 - 0
src/main/java/com/fdkankan/fusion/service/impl/SceneServiceImpl.java

@@ -1,11 +1,14 @@
 package com.fdkankan.fusion.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.fdkankan.fusion.entity.Scene;
 import com.fdkankan.fusion.mapper.ISceneMapper;
 import com.fdkankan.fusion.service.ISceneService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springframework.stereotype.Service;
 
+import java.util.List;
+
 /**
  * <p>
  * 初始化信息表 服务实现类
@@ -17,4 +20,14 @@ import org.springframework.stereotype.Service;
 @Service
 public class SceneServiceImpl extends ServiceImpl<ISceneMapper, Scene> implements ISceneService {
 
+    @Override
+    public Scene getByNum(String num) {
+        LambdaQueryWrapper<Scene> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(Scene::getSceneCode,num);
+        List<Scene> list = this.list(wrapper);
+        if(list == null || list.isEmpty()){
+            return null;
+        }
+        return list.get(0);
+    }
 }