Browse Source

初始化

lyhzzz 3 years ago
parent
commit
457b5e4511

+ 2 - 0
src/main/java/com/fdkankan/fusion/common/FilePath.java

@@ -5,6 +5,8 @@ public class FilePath {
     public final static String hotPath = "scene_view_data/%s/user/hot.json";
     public final static String hotIconDefaultPath = "fusion/default/tag_icon_default.svg";
 
+    public final static String OBJ_OSS_PATH = "scene_view_data/%s/data/mesh/";
+
     public final static  String OBJ_PATH = "D:\\model\\obj";
     public final static String GLB_PATH = "D:\\model\\glb";
     public final static String GLB_OSS_PATH = "fusion/model/glb";

+ 6 - 2
src/main/java/com/fdkankan/fusion/common/util/OBJToGLBUtil.java

@@ -13,6 +13,7 @@ import java.util.LinkedHashSet;
 public class OBJToGLBUtil {
 
     public static void objToGlb(String objPath, String glbPath)  {
+        checkObj(objPath);
         log.info("obj转换glb开始");
         String command = "obj2gltf " + objPath + " " + glbPath;
         log.info("执行obj转换glb命令路径-{}", command);
@@ -58,7 +59,7 @@ public class OBJToGLBUtil {
             return false;
         }
         for (File listFile : files) {
-            String modelName = listFile.getName().substring(0,listFile.getName().lastIndexOf("."));
+            String modelName = listFile.getName();
             imgName.add(modelName);
         }
         LinkedHashSet<String> imgMtl = readMtlFile(file.getPath());
@@ -80,7 +81,10 @@ public class OBJToGLBUtil {
             String line = null;
             while ((line = br.readLine()) != null) {
                 String[] tempsa = line.split("[ ]+");
-                if (tempsa[0].trim().equals("newmtl")) {
+                if (tempsa[0].trim().equals("map_Ka")) {
+                    imgName.add(tempsa[1]);
+                }
+                if (tempsa[0].trim().equals("map_Kd")) {
                     imgName.add(tempsa[1]);
                 }
             }

+ 2 - 1
src/main/java/com/fdkankan/fusion/entity/CaseNumEntity.java

@@ -35,6 +35,7 @@ public class CaseNumEntity implements Serializable {
     @TableField("num")
     private String num;
 
-
+    @TableField("glb_url")
+    private String glbUrl;
 
 }

+ 22 - 0
src/main/java/com/fdkankan/fusion/service/impl/CaseNumServiceImpl.java

@@ -1,11 +1,15 @@
 package com.fdkankan.fusion.service.impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.fdkankan.fusion.common.FilePath;
+import com.fdkankan.fusion.common.util.OBJToGLBUtil;
 import com.fdkankan.fusion.entity.CaseNumEntity;
 import com.fdkankan.fusion.mapper.ICaseNumMapper;
 import com.fdkankan.fusion.request.SceneNumParam;
 import com.fdkankan.fusion.service.ICaseNumService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.fdkankan.fyun.oss.UploadToOssUtil;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import java.util.ArrayList;
@@ -24,6 +28,9 @@ import java.util.stream.Collectors;
 @Service
 public class CaseNumServiceImpl extends ServiceImpl<ICaseNumMapper, CaseNumEntity> implements ICaseNumService {
 
+    @Autowired
+    UploadToOssUtil uploadToOssUtil;
+
     @Override
     public List<CaseNumEntity> getByCaseId(Integer caseId) {
         LambdaQueryWrapper<CaseNumEntity> wrapper = new LambdaQueryWrapper<>();
@@ -48,6 +55,7 @@ public class CaseNumServiceImpl extends ServiceImpl<ICaseNumMapper, CaseNumEntit
             caseNumEntity.setCaseId(caseId);
             caseNumEntity.setNumType(sceneNumParam.getType());
             caseNumEntity.setNum(num);
+            caseNumEntity.setGlbUrl(getGlbUrl(sceneNumParam.getType(),num));
             newCaseNums.add(caseNumEntity);
         }
         if(newCaseNums.size() >0){
@@ -55,6 +63,20 @@ public class CaseNumServiceImpl extends ServiceImpl<ICaseNumMapper, CaseNumEntit
         }
     }
 
+    private String getGlbUrl(Integer type, String num) {
+        if(type == 0 || type == 1){ //看看,看见
+            String objPath = FilePath.OBJ_PATH+"/"+num;
+            String glbPath = FilePath.GLB_PATH+"/"+num;
+            String glbOssPath = FilePath.GLB_OSS_PATH +"/" + num;
+            uploadToOssUtil.downFormAli(String.format(FilePath.OBJ_OSS_PATH,num),objPath);
+
+            OBJToGLBUtil.objToGlb(FilePath.OBJ_PATH+"/"+num,glbPath);
+            uploadToOssUtil.upload(glbPath,glbOssPath);
+            return glbOssPath;
+        }
+        return null;
+    }
+
     @Override
     public void deleteByCaseId(Integer caseId) {
         LambdaQueryWrapper<CaseNumEntity> wrapper = new LambdaQueryWrapper<>();

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

@@ -94,7 +94,6 @@ public class ModelServiceImpl extends ServiceImpl<IModelMapper, Model> implement
             if(fileName.toLowerCase().contains("rar")){
                 CreateObjUtil.unRar(newObjFile.getPath(),objPath);
             }
-            OBJToGLBUtil.checkObj(objPath);
 
             OBJToGLBUtil.objToGlb(objPath,glbPath);
             uploadToOssUtil.upload(glbPath,glbOssPath);