From 8bebd7becead5b3d8cdbaa25b891645ea4faf7ce Mon Sep 17 00:00:00 2001
From: 13693261870 <252740454@qq.com>
Date: 星期一, 28 十一月 2022 14:23:22 +0800
Subject: [PATCH] 1

---
 src/main/java/com/lf/server/service/data/DownloadService.java |   42 ++++++++++++++++++++++++++++++++----------
 1 files changed, 32 insertions(+), 10 deletions(-)

diff --git a/src/main/java/com/lf/server/service/data/DownloadService.java b/src/main/java/com/lf/server/service/data/DownloadService.java
index 5a4741b..5fbf35f 100644
--- a/src/main/java/com/lf/server/service/data/DownloadService.java
+++ b/src/main/java/com/lf/server/service/data/DownloadService.java
@@ -7,6 +7,7 @@
 import com.lf.server.helper.*;
 import com.lf.server.mapper.data.DownloadMapper;
 import net.lingala.zip4j.ZipFile;
+import net.lingala.zip4j.model.FileHeader;
 import net.lingala.zip4j.model.ZipParameters;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
@@ -160,7 +161,7 @@
      * @param pwd  瀵嗙爜
      * @return 涓嬭浇鏂囦欢GUID
      */
-    public String zipFiles(UserEntity ue, List<MetaFileEntity> list, String pwd) {
+    public String zipFiles(UserEntity ue, List<MetaFileEntity> list, String pwd) throws Exception {
         rmRepeatMetaFiles(list);
 
         String downloadPath = pathHelper.getDownloadFullPath();
@@ -169,8 +170,9 @@
 
         ZipFile zip = Zip4jHelper.createZipFile(zipFile, pwd);
         ZipParameters params = Zip4jHelper.getZipParams();
-
         addMetaFiles(zip, params, list);
+
+        DownloadEntity downloadEntity = getDownloadEntity(ue, zipFile, pwd);
 
         return null;
     }
@@ -200,18 +202,38 @@
     private void addMetaFiles(ZipFile zip, ZipParameters params, List<MetaFileEntity> list) {
         String uploadPath = pathHelper.getConfig().getUploadPath();
         for (MetaFileEntity entity : list) {
-            String filePath = uploadPath + File.separator + entity.getPath();
-            File file = new File(filePath);
-            File newFile = new File(filePath.replace(entity.getGuid(), entity.getName()));
-
             try {
-                file.renameTo(newFile);
-                zip.addFile(newFile, params);
+                File file = new File(uploadPath + File.separator + entity.getPath());
+                zip.addFile(file, params);
+
+                FileHeader header = zip.getFileHeader(entity.getGuid());
+                if (null != header) {
+                    zip.renameFile(header, entity.getName());
+                }
             } catch (Exception ex) {
                 log.error(ex.getMessage(), ex);
-            } finally {
-                newFile.renameTo(file);
             }
         }
     }
+
+    /**
+     * 鑾峰彇涓嬭浇瀹炰綋绫�
+     */
+    private DownloadEntity getDownloadEntity(UserEntity ue, String file, String pwd) throws Exception {
+        DownloadEntity de = new DownloadEntity();
+        de.setName(FileHelper.getFileName(file));
+        // 1-Shp鏂囦欢锛�2-涓撻鍥撅紝3-鍏冩暟鎹�
+        de.setType(3);
+        de.setSizes(FileHelper.sizeToMb(new File(file).length()));
+        de.setDepid(ue.getDepid());
+        de.setDcount(0);
+        // de.setPwd(null)
+        de.setUrl(FileHelper.getRelativePath(file));
+        de.setDescr("鍏冩暟鎹枃浠�");
+        de.setGuid(FileHelper.getFileMd5(file));
+        de.setCreateUser(ue.getId());
+        // de.setGeom(null)
+
+        return de;
+    }
 }

--
Gitblit v1.9.3