lyhzzz 3 年之前
父节点
当前提交
2dcf866706

+ 26 - 0
src/main/java/com/fdkankan/fusion/common/util/FileWriterUtil.java

@@ -51,4 +51,30 @@ public class FileWriterUtil {
             e.printStackTrace();
         }
     }
+
+    public static File getObjLasPlyFile(File objPathFile) {
+        if(objPathFile.isDirectory()){
+            File[] file = objPathFile.listFiles();
+            if(file == null || file.length <=0){
+                return null;
+            }
+            for (File file1 : file) {
+                if(file1 == null){
+                    continue;
+                }
+                if(file1.isDirectory()){
+                     getObjLasPlyFile(file1);
+                }
+                if(file1.getName().contains("obj") || file1.getName().contains("ply") || file1.getName().contains("las")){
+                    return file1;
+                }
+            }
+        }
+        return null;
+    }
+
+    public static void main(String[] args) {
+        File objLasPlyFile = getObjLasPlyFile(new File("D:\\fusion\\model"));
+        System.out.println(objLasPlyFile.getPath());
+    }
 }

+ 25 - 29
src/main/java/com/fdkankan/fusion/service/impl/ModelServiceImpl.java

@@ -9,12 +9,9 @@ import java.util.stream.Collectors;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.fdkankan.fusion.common.PageInfo;
-import com.fdkankan.fusion.common.util.JwtUtil;
+import com.fdkankan.fusion.common.util.*;
 import com.fdkankan.fusion.common.FilePath;
 import com.fdkankan.fusion.common.ResultCode;
-import com.fdkankan.fusion.common.util.OBJToGLBUtil;
-import com.fdkankan.fusion.common.util.ShellUtil;
-import com.fdkankan.fusion.common.util.UploadToOssUtil;
 import com.fdkankan.fusion.entity.CaseNumEntity;
 import com.fdkankan.fusion.entity.FusionNum;
 import com.fdkankan.fusion.entity.Model;
@@ -106,32 +103,31 @@ public class ModelServiceImpl extends ServiceImpl<IModelMapper, Model> implement
             if(!objPathFile.isDirectory()){
                 throw new BusinessException(ResultCode.UPLOAD_FILE_TYPE_ERROR);
             }
-            File[] files = objPathFile.listFiles();
-            for (File file1 : files) {
-                String name = file1.getName();
-                if(name.contains("obj") || name.contains("OBJ")){
-                    glbOssPath = glbOssPath.replace("mesh.glb",file1.getName().replace("obj","glb"));
-                    model.setModelDateType("obj");
-                    model.setModelType("glb");
-                    OBJToGLBUtil.objToGlb(objPath,name,  file1.getPath().replace("obj","glb"));
-                    uploadToOssUtil.uploadOss(file1.getPath(),glbOssPath);
-                }
-                if(name.contains(".ply")){
-                    model.setModelDateType("ply");
-                    model.setModelType("ply");
-                }
-                if(name.contains(".las")){
-                    model.setModelDateType("las");
-                    model.setModelType("las");
-                }
-                if("las".equals(model.getModelType()) || "ply".equals(model.getModelType()) ){
-                    glbOssPath = glbOssPath.replace("model","model_"+model.getModelId());
-                    glbOssPath = glbOssPath.replace("glb","res");
-                    glbOssPath = glbOssPath.replace("mesh.glb","webcloud");
-                    File mntFile =  OBJToGLBUtil.lasOrPlyToBin(file1);
-                    uploadToOssUtil.uploadFileOss(mntFile ,glbOssPath);
-                }
+            File file1 = FileWriterUtil.getObjLasPlyFile(objPathFile);
+            String name = file1.getName();
+            if(name.contains("obj") || name.contains("OBJ")){
+                glbOssPath = glbOssPath.replace("mesh.glb",file1.getName().replace("obj","glb"));
+                model.setModelDateType("obj");
+                model.setModelType("glb");
+                OBJToGLBUtil.objToGlb(objPath,name,  file1.getPath().replace("obj","glb"));
+                uploadToOssUtil.uploadOss(file1.getPath(),glbOssPath);
             }
+            if(name.contains(".ply")){
+                model.setModelDateType("ply");
+                model.setModelType("ply");
+            }
+            if(name.contains(".las")){
+                model.setModelDateType("las");
+                model.setModelType("las");
+            }
+            if("las".equals(model.getModelType()) || "ply".equals(model.getModelType()) ){
+                glbOssPath = glbOssPath.replace("model","model_"+model.getModelId());
+                glbOssPath = glbOssPath.replace("glb","res");
+                glbOssPath = glbOssPath.replace("mesh.glb","webcloud");
+                File mntFile =  OBJToGLBUtil.lasOrPlyToBin(file1);
+                uploadToOssUtil.uploadFileOss(mntFile ,glbOssPath);
+            }
+
             model.setModelObjUrl(objPath);
             model.setModelGlbUrl(queryPath + glbOssPath);
             model.setCreateStatus(1);  //上传成功