From 6d935760458892927a550e5483e6ed55a46fc9fe Mon Sep 17 00:00:00 2001
From: 13693261870 <252740454@qq.com>
Date: 星期五, 03 二月 2023 14:04:34 +0800
Subject: [PATCH] 1

---
 src/main/java/com/lf/server/service/data/UploadService.java |   57 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 56 insertions(+), 1 deletions(-)

diff --git a/src/main/java/com/lf/server/service/data/UploadService.java b/src/main/java/com/lf/server/service/data/UploadService.java
index 49710c1..f9c9a34 100644
--- a/src/main/java/com/lf/server/service/data/UploadService.java
+++ b/src/main/java/com/lf/server/service/data/UploadService.java
@@ -62,6 +62,7 @@
         excelLoader(list, req);
         loadData(list);
         copyFiles(list);
+        publishFiles(list);
         insertMetas(list);
     }
 
@@ -368,7 +369,6 @@
      */
     private void copyMultiFile(MetaFileEntity mf, List<String> extList) {
         String path = mf.getPath();
-
         int status = copySingleFile(mf);
         if (status < 1) {
             for (int i = 0, c = extList.size(); i < c; i++) {
@@ -454,6 +454,61 @@
     }
 
     /**
+     * 鍙戝竷鏂囦欢
+     */
+    private void publishFiles(List<MetaFileEntity> list) {
+        for (MetaFileEntity mf : list) {
+            if (null != mf.getMsg()) {
+                continue;
+            }
+            switch (mf.getExtName()) {
+                case StaticData.MPT:
+                    linkFiles(mf, StaticData.MPT_EXT, pathHelper.getConfig().getPublishMptPath());
+                    break;
+                case StaticData.D3DML:
+                    linkFiles(mf, null, pathHelper.getConfig().getPublish3dmlPath());
+                    break;
+                default:
+                    break;
+            }
+        }
+    }
+
+    /**
+     * 閾炬帴鏂囦欢
+     */
+    private void linkFiles(MetaFileEntity mf, List<String> exts, String publishPath) {
+        String uploadPath = pathHelper.getConfig().getUploadPath();
+        String source = uploadPath + File.separator + mf.getPath();
+        String target = publishPath + File.separator + mf.getName();
+
+        File sourceFile = new File(source);
+        if (!sourceFile.exists() || sourceFile.isDirectory()) {
+            return;
+        }
+
+        createFileLink(source, target);
+        if (null == exts) {
+            return;
+        }
+
+        for (String ext : exts) {
+            File f=new File(source.replace(mf.getExtName(), ext));
+            if (f.exists()&&!f.isDirectory()) {
+                createFileLink(source.replace(mf.getExtName(), ext), target.replace(mf.getExtName(), ext));
+            }
+        }
+    }
+
+    /**
+     * 鍒涘缓鏂囦欢閾炬帴
+     */
+    private void createFileLink(String source, String target) {
+        String cmd = String.format("cmd /c mklink \"%s\" \"%s\"", target, source);
+        WebHelper.exec(cmd);
+    }
+
+    /**
      * 鎻掑叆鍏冩暟鎹�
      */
     private void insertMetas(List<MetaFileEntity> list) {

--
Gitblit v1.9.3