lyhzzz пре 3 година
родитељ
комит
2efd39022c

+ 18 - 4
src/main/java/com/fdkankan/fusion/common/util/FileWriterUtil.java

@@ -1,9 +1,10 @@
 package com.fdkankan.fusion.common.util;
 
-import java.io.BufferedReader;
-import java.io.File;
-import java.io.FileReader;
-import java.io.FileWriter;
+import java.io.*;
+import java.nio.file.Paths;
+import java.nio.file.StandardCopyOption;
+
+import static cn.hutool.core.util.ClassUtil.getClassLoader;
 
 public class FileWriterUtil {
 
@@ -36,4 +37,17 @@ public class FileWriterUtil {
             reader.close();
         }
     }
+
+    public static void streamToFile(String fileName,String newFilePath){
+        InputStream stream = getClassLoader().getResourceAsStream(fileName);
+        try {
+            assert stream != null;
+            java.nio.file.Files.copy(
+                    stream,
+                    Paths.get(newFilePath),
+                    new StandardCopyOption[]{StandardCopyOption.REPLACE_EXISTING});
+        }catch (Exception e){
+            e.printStackTrace();
+        }
+    }
 }

+ 14 - 5
src/main/java/com/fdkankan/fusion/common/util/OBJToGLBUtil.java

@@ -1,5 +1,6 @@
 package com.fdkankan.fusion.common.util;
 
+import cn.hutool.core.io.FileUtil;
 import com.alibaba.fastjson.JSONObject;
 import com.fdkankan.fusion.common.ResultCode;
 import com.fdkankan.fusion.exception.BusinessException;
@@ -109,14 +110,22 @@ public class OBJToGLBUtil {
         return imgName;
     }
 
-    public static void lasOrPlyToBin(File srcFile) throws IOException {
+    public static File lasOrPlyToBin(File srcFile) throws IOException {
+        String mntPath = srcFile.getPath().replace("home","mnt");
+        String mntPathEmt = srcFile.getParent().replace("home","mnt")+"/res";
+        File file = new File(mntPathEmt);
+        if(!file.exists()){
+            file.mkdirs();
+        }
+        FileUtil.copy(srcFile.getPath(),srcFile.getPath().replace("home","mnt"),true);
         String cmd = ShellUtil.LAS_TO_BIN;
-        cmd =  cmd.replace("@inPath",srcFile.getPath());
-        cmd = cmd.replace("@outPath",srcFile.getParent());
+        cmd =  cmd.replace("@inPath",mntPath);
+        cmd = cmd.replace("@outPath",mntPathEmt);
         ShellUtil.execCmd(cmd);
-        String cloudJs = srcFile.getParent() +"/"+ "cloud.js";
+        String cloudJs = mntPathEmt +"/"+ "cloud.js";
         JSONObject jsonObject = ShellUtil.fixCloud(cloudJs);
-        FileWriterUtil.writerJson(srcFile.getParent(),"cloud.js",jsonObject.toJSONString());
+        FileWriterUtil.writerJson(mntPathEmt,"cloud.js",jsonObject.toJSONString());
+        return file;
     }
 
 }

+ 6 - 5
src/main/java/com/fdkankan/fusion/service/impl/ModelServiceImpl.java

@@ -87,8 +87,8 @@ public class ModelServiceImpl extends ServiceImpl<IModelMapper, Model> implement
         model.setUserName(username);
         this.save(model);
         File newObjFile = null;
+        String objPath = String.format(OBJ_PATH , "modelId_"+model.getModelId()) ;
         try {
-            String objPath = String.format(OBJ_PATH , "modelId_"+model.getModelId()) ;
             String glbOssPath = String.format(FilePath.GLB_OSS_PATH, model.getModelId());
 
             newObjFile = new File(objPath +"/" + fileName);
@@ -121,15 +121,15 @@ public class ModelServiceImpl extends ServiceImpl<IModelMapper, Model> implement
                     glbOssPath = glbOssPath.replace("mesh.glb","webcloud");
                     model.setModelDateType("ply");
                     model.setModelType("ply");
-                    OBJToGLBUtil.lasOrPlyToBin(file1);
-                    uploadToOssUtil.uploadFileOss(file1 ,glbOssPath);
+                    File mntFile = OBJToGLBUtil.lasOrPlyToBin(file1);
+                    uploadToOssUtil.uploadFileOss(mntFile ,glbOssPath);
                 }
                 if(name.contains(".las")){
                     glbOssPath = glbOssPath.replace("mesh.glb","webcloud");
                     model.setModelDateType("las");
                     model.setModelType("las");
-                    OBJToGLBUtil.lasOrPlyToBin(file1);
-                    uploadToOssUtil.uploadFileOss(file1 ,glbOssPath);
+                    File mntFile =  OBJToGLBUtil.lasOrPlyToBin(file1);
+                    uploadToOssUtil.uploadFileOss(mntFile ,glbOssPath);
 
                 }
             }
@@ -145,6 +145,7 @@ public class ModelServiceImpl extends ServiceImpl<IModelMapper, Model> implement
             if(newObjFile!=null){
                 newObjFile.delete();
             }
+            new File(objPath).delete();
         }
 
     }