From a61cf0deb3e42fb1fdc249be2f81b26c8662b0db Mon Sep 17 00:00:00 2001
From: 13693261870 <252740454@qq.com>
Date: 星期日, 05 二月 2023 17:26:07 +0800
Subject: [PATCH] 1

---
 src/main/java/com/lf/server/mapper/sys/AttachMapper.java         |   10 +++++
 src/main/java/com/lf/server/service/sys/AttachService.java       |    5 ++
 src/main/java/com/lf/server/service/all/UploadAttachService.java |   51 ++++++++++++++++++-------
 src/main/resources/mapper/sys/AttachMapper.xml                   |    4 ++
 4 files changed, 55 insertions(+), 15 deletions(-)

diff --git a/src/main/java/com/lf/server/mapper/sys/AttachMapper.java b/src/main/java/com/lf/server/mapper/sys/AttachMapper.java
index 778cd7a..68abab6 100644
--- a/src/main/java/com/lf/server/mapper/sys/AttachMapper.java
+++ b/src/main/java/com/lf/server/mapper/sys/AttachMapper.java
@@ -55,6 +55,16 @@
     public AttachEntity selectByGuid(String guid);
 
     /**
+     * 鏍规嵁琛ㄥ悕鍜孏UID鏌ヨ
+     *
+     * @param tab
+     * @param tabGuid
+     * @param guid
+     * @return
+     */
+    public AttachEntity selectByTabAndGuid(String tab, String tabGuid, String guid);
+
+    /**
      * 鏍规嵁琛ㄥ拰GUID鏌ヨ
      *
      * @param tab
diff --git a/src/main/java/com/lf/server/service/all/UploadAttachService.java b/src/main/java/com/lf/server/service/all/UploadAttachService.java
index 2c67214..7d6cc80 100644
--- a/src/main/java/com/lf/server/service/all/UploadAttachService.java
+++ b/src/main/java/com/lf/server/service/all/UploadAttachService.java
@@ -275,7 +275,8 @@
             }
 
             BaseEntity be = (BaseEntity) obj;
-            rows += insertXlsAnnex(ue, be, files, file);
+            rows += insertXlsAnnex(ue, meta, be, file);
+            files.remove(file);
         }
 
         return rows;
@@ -356,26 +357,46 @@
     /**
      * 鎻掑叆Excel闄勪欢
      */
-    private int insertXlsAnnex(UserEntity ue, BaseEntity be, List<String> files, String file) {
+    private int insertXlsAnnex(UserEntity ue, MetaEntity meta, BaseEntity be, String file) {
+        File f = new File(file);
+        if (!f.exists() || f.isDirectory()) {
+            return 0;
+        }
 
+        String md5 = FileHelper.getFileMd5(file);
+        AttachEntity old = attachService.selectByTabAndGuid(meta.getTab(), be.getEventid(), md5);
+        if (null != old) {
+            f.delete();
+            return 0;
+        }
 
-        files.remove(file);
+        String fileName = FileHelper.getFileName(file);
+        double sizes = FileHelper.sizeToMb(f.length());
 
-        return 1;
+        AttachEntity ae = getAttachEntity(ue, meta.getTab(), be.getEventid(), fileName, md5, sizes);
+        String targetPath = pathHelper.getConfig().getUploadPath() + File.separator + ae.getPath();
+
+        f.renameTo(new File(targetPath));
+        int rows = attachService.insert(ae);
+
+        return rows > 0 ? 1 : 0;
     }
 
-    private AttachEntity getAttachEntity(UserEntity ue, String file) {
+    /**
+     * 鑾峰彇闄勪欢瀹炰綋绫�
+     */
+    protected AttachEntity getAttachEntity(UserEntity ue, String tabName, String eventid, String fileName, String md5, double sizes) {
         AttachEntity entity = new AttachEntity();
-//        entity.setTab(tabName);
-//        entity.setTabGuid(eventid);
-//        entity.setName(fileName);
-//        entity.setGuid(md5);
-//        String subPath = PathHelper.getUploadPath() + File.separator + md5+ FileHelper.getExtension(fileName);
-//        entity.setPath(subPath);
-//        entity.setSizes(sizes);
-//        if (ue != null) {
-//            entity.setCreateUser(ue.getId());
-//        }
+        entity.setTab(tabName);
+        entity.setTabGuid(eventid);
+        entity.setName(fileName);
+        entity.setGuid(md5);
+        String subPath = PathHelper.getUploadPath() + File.separator + md5 + FileHelper.getExtension(fileName);
+        entity.setPath(subPath);
+        entity.setSizes(sizes);
+        if (ue != null) {
+            entity.setCreateUser(ue.getId());
+        }
 
         return entity;
     }
diff --git a/src/main/java/com/lf/server/service/sys/AttachService.java b/src/main/java/com/lf/server/service/sys/AttachService.java
index 4115841..870540b 100644
--- a/src/main/java/com/lf/server/service/sys/AttachService.java
+++ b/src/main/java/com/lf/server/service/sys/AttachService.java
@@ -47,6 +47,11 @@
     }
 
     @Override
+    public AttachEntity selectByTabAndGuid(String tab, String tabGuid, String guid) {
+        return attachMapper.selectByTabAndGuid(tab, tabGuid, guid);
+    }
+
+    @Override
     public List<AttachEntity> selectByTab(String tab, String guid) {
         return attachMapper.selectByTab(tab, guid);
     }
diff --git a/src/main/resources/mapper/sys/AttachMapper.xml b/src/main/resources/mapper/sys/AttachMapper.xml
index 1dd6348..41a0e3d 100644
--- a/src/main/resources/mapper/sys/AttachMapper.xml
+++ b/src/main/resources/mapper/sys/AttachMapper.xml
@@ -33,6 +33,10 @@
         select * from lf.sys_attach where guid = #{guid} limit 1
     </select>
 
+    <select id="selectByTabAndGuid" resultType="com.lf.server.entity.sys.AttachEntity">
+        select * from lf.sys_attach where tab = #{tab} and tab_guid = #{tabGuid} and guid = #{guid} limit 1
+    </select>
+
     <select id="selectByTab" resultType="com.lf.server.entity.sys.AttachEntity">
         select * from lf.sys_attach where tab = #{tab} and tab_guid = #{guid}
     </select>

--
Gitblit v1.9.3