From 54007fa3b5f4a280b0228c87387a0a65ee677b74 Mon Sep 17 00:00:00 2001
From: chenhj <1263187585@qq.com>
Date: 星期五, 24 四月 2026 13:15:41 +0800
Subject: [PATCH] 文件工具类变更

---
 src/main/java/com/ruoyi/basic/utils/FileUtil.java |  151 ++++++++++++++++++++++++++++++++++----------------
 1 files changed, 102 insertions(+), 49 deletions(-)

diff --git a/src/main/java/com/ruoyi/basic/utils/FileUtil.java b/src/main/java/com/ruoyi/basic/utils/FileUtil.java
index 19ac77c..bf0b9b2 100644
--- a/src/main/java/com/ruoyi/basic/utils/FileUtil.java
+++ b/src/main/java/com/ruoyi/basic/utils/FileUtil.java
@@ -2,7 +2,8 @@
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
-import com.ruoyi.basic.dto.StorageAttachmentDTO;
+import com.ruoyi.basic.dto.StorageAttachmentVO;
+import com.ruoyi.basic.dto.StorageBlobDTO;
 import com.ruoyi.basic.dto.StorageBlobVO;
 import com.ruoyi.basic.enums.ApplicationTypeEnum;
 import com.ruoyi.basic.enums.RecordTypeEnum;
@@ -48,10 +49,10 @@
      * @param application     鏂囦欢鐢ㄩ��
      * @param recordType      鍏宠仈璁板綍绫诲瀷
      * @param recordId        鍏宠仈璁板綍id
-     * @param storageBlobVOS 鏂囦欢淇℃伅
+     * @param storageBlobDTOS 鏂囦欢淇℃伅
      */
-    public void saveStorageAttachment(ApplicationTypeEnum application, RecordTypeEnum recordType, Long recordId, List<StorageBlobVO> storageBlobVOS) {
-        if (CollectionUtils.isEmpty(storageBlobVOS)) {
+    public void saveStorageAttachment(ApplicationTypeEnum application, RecordTypeEnum recordType, Long recordId, List<StorageBlobDTO> storageBlobDTOS) {
+        if (CollectionUtils.isEmpty(storageBlobDTOS)) {
             throw new RuntimeException("鏂囦欢淇℃伅涓嶈兘涓虹┖");
         }
         if (application == null) {
@@ -66,13 +67,14 @@
         // 鍒犻櫎鏃ч檮浠朵俊鎭�
         deleteStorageAttachmentsByApplicationAndRecordTypeAndRecordId(application, recordType, recordId);
         List<StorageAttachment> storageAttachments = new ArrayList<>();
-        for (StorageBlobVO storageBlobVO : storageBlobVOS) {
+        for (StorageBlobDTO storageBlobDTO : storageBlobDTOS) {
             StorageAttachment storageAttachment = new StorageAttachment();
             storageAttachment.setApplication(application.getType());
             storageAttachment.setRecordType(recordType.getType());
             storageAttachment.setRecordId(recordId);
-            storageAttachment.setStorageBlobId(storageBlobVO.getId());
+            storageAttachment.setStorageBlobId(storageBlobDTO.getId());
             storageAttachment.setDeleted(0L);
+            storageAttachments.add(storageAttachment);
         }
         storageAttachmentMapper.insert(storageAttachments);
     }
@@ -153,7 +155,7 @@
     }
 
     /**
-     * 閫氳繃鏂囦欢鍏宠仈id鑾峰彇鏂囦欢淇℃伅
+     * 閫氳繃鏂囦欢鍏宠仈id鑾峰彇鏂囦欢淇℃伅 attachment
      *
      * @param storageAttachmentIds 鏂囦欢id
      */
@@ -165,7 +167,7 @@
     }
 
     /**
-     * 閫氳繃鏂囦欢鐢ㄩ�斻�佸叧鑱旇褰曠被鍨嬨�佸叧鑱旇褰昳d鑾峰彇鏂囦欢鍏宠仈淇℃伅
+     * 閫氳繃鏂囦欢鐢ㄩ�斻�佸叧鑱旇褰曠被鍨嬨�佸叧鑱旇褰昳d鑾峰彇鏂囦欢鍏宠仈淇℃伅 attachment
      *
      * @param application 鏂囦欢鐢ㄩ��
      * @param recordType  鍏宠仈璁板綍绫诲瀷
@@ -187,7 +189,7 @@
     }
 
     /**
-     * 閫氳繃鏂囦欢鍏宠仈id鑾峰彇鏂囦欢淇℃伅
+     * 閫氳繃鏂囦欢鍏宠仈id鑾峰彇鏂囦欢淇℃伅 blob
      *
      * @param storageAttachmentIds 鏂囦欢id
      */
@@ -210,7 +212,58 @@
     }
 
     /**
-     * 閫氳繃鏂囦欢鍏宠仈id鑾峰彇鏂囦欢淇℃伅瀛樺湪杩囨湡鏃堕棿
+     * 閫氳繃鏂囦欢鐢ㄩ�斻�佸叧鑱旇褰曠被鍨嬨�佸叧鑱旇褰昳d鑾峰彇鏂囦欢淇℃伅 blob
+     *
+     * @param application 鏂囦欢鐢ㄩ��
+     * @param recordType  鍏宠仈璁板綍绫诲瀷
+     * @param recordId    鍏宠仈璁板綍id
+     */
+    public List<StorageBlobVO> getStorageBlobDTOsByApplicationAndRecordTypeAndRecordId(ApplicationTypeEnum application, RecordTypeEnum recordType, Long recordId) {
+        List<StorageAttachment> storageAttachments = getStorageAttachmentsByApplicationAndRecordTypeAndRecordId(application, recordType, recordId);
+        if (CollectionUtils.isEmpty(storageAttachments)) {
+            return null;
+        }
+        List<Long> storageBlobIds = storageAttachments.stream().map(StorageAttachment::getStorageBlobId).collect(Collectors.toList());
+        List<StorageBlob> storageBlobs = storageBlobMapper.selectByIds(storageBlobIds);
+        List<StorageBlobVO> storageBlobDTOS = new ArrayList<>();
+        for (StorageBlob storageBlob : storageBlobs) {
+            StorageBlobVO storageBlobVO = new StorageBlobVO();
+            BeanUtils.copyProperties(storageBlob, storageBlobVO);
+            storageBlobVO.setPreviewURL(buildSignedPreviewUrl(storageBlobVO));
+            storageBlobVO.setDownloadURL(buildSignedDownloadUrl(storageBlobVO));
+            storageBlobDTOS.add(storageBlobVO);
+        }
+        return storageBlobDTOS;
+    }
+
+    /**
+     * 閫氳繃鏂囦欢鐢ㄩ�斻�佸叧鑱旇褰曠被鍨嬨�佸叧鑱旇褰昳d鑾峰彇鏂囦欢淇℃伅 鑷畾涔夎繃鏈熸椂闂达紙鍒嗛挓锛� blob
+     *
+     * @param application 鏂囦欢鐢ㄩ��
+     * @param recordType  鍏宠仈璁板綍绫诲瀷
+     * @param recordId    鍏宠仈璁板綍id
+     * @param expired     杩囨湡鏃堕棿
+     */
+    public List<StorageBlobVO> getStorageBlobDTOsByApplicationAndRecordTypeAndRecordId(ApplicationTypeEnum application, RecordTypeEnum recordType, Long recordId, BigDecimal expired) {
+        List<StorageAttachment> storageAttachments = getStorageAttachmentsByApplicationAndRecordTypeAndRecordId(application, recordType, recordId);
+        if (CollectionUtils.isEmpty(storageAttachments)) {
+            return null;
+        }
+        List<Long> storageBlobIds = storageAttachments.stream().map(StorageAttachment::getStorageBlobId).collect(Collectors.toList());
+        List<StorageBlob> storageBlobs = storageBlobMapper.selectByIds(storageBlobIds);
+        List<StorageBlobVO> storageBlobDTOS = new ArrayList<>();
+        for (StorageBlob storageBlob : storageBlobs) {
+            StorageBlobVO storageBlobVO = new StorageBlobVO();
+            BeanUtils.copyProperties(storageBlob, storageBlobVO);
+            storageBlobVO.setPreviewURL(buildSignedUrl(storageBlobVO, "/preview/", expired));
+            storageBlobVO.setDownloadURL(buildSignedUrl(storageBlobVO, "/download/", expired));
+            storageBlobDTOS.add(storageBlobVO);
+        }
+        return storageBlobDTOS;
+    }
+
+    /**
+     * 閫氳繃鏂囦欢鍏宠仈id鑾峰彇鏂囦欢淇℃伅瀛樺湪杩囨湡鏃堕棿 鑷畾涔夎繃鏈熸椂闂达紙鍒嗛挓锛� blob
      *
      * @param storageAttachmentIds 鏂囦欢id
      * @param expired              杩囨湡鏃堕棿
@@ -234,109 +287,109 @@
     }
 
     /**
-     * 閫氳繃鏂囦欢鍏宠仈id鑾峰彇鏂囦欢淇℃伅
+     * 閫氳繃鏂囦欢鍏宠仈id鑾峰彇鏂囦欢淇℃伅 attachment
      *
      * @param storageAttachmentIds 鏂囦欢id
      */
-    public List<StorageAttachmentDTO> getStorageAttachmentDTOsByStorageAttachmentIds(List<Long> storageAttachmentIds) {
+    public List<StorageAttachmentVO> getStorageAttachmentVOSByStorageAttachmentIds(List<Long> storageAttachmentIds) {
         List<StorageAttachment> storageAttachments = getStorageAttachmentsByStorageAttachmentIds(storageAttachmentIds);
         if (CollectionUtils.isEmpty(storageAttachments)) {
             return new ArrayList<>();
         }
-        List<StorageAttachmentDTO> storageAttachmentDTOS = new ArrayList<>();
+        List<StorageAttachmentVO> storageAttachmentVOS = new ArrayList<>();
         for (StorageAttachment storageAttachment : storageAttachments) {
-            StorageAttachmentDTO storageAttachmentDTO = new StorageAttachmentDTO();
-            BeanUtils.copyProperties(storageAttachment, storageAttachmentDTO);
+            StorageAttachmentVO storageAttachmentVO = new StorageAttachmentVO();
+            BeanUtils.copyProperties(storageAttachment, storageAttachmentVO);
             List<StorageBlobVO> storageBlobVOS = getStorageBlobDTOsByStorageAttachmentIds(Collections.singletonList(storageAttachment.getId()));
             if (CollectionUtils.isEmpty(storageBlobVOS)) {
-                storageAttachmentDTO.setStorageBlobVOS(new ArrayList<>());
+                storageAttachmentVO.setStorageBlobVOS(new ArrayList<>());
             } else {
-                storageAttachmentDTO.setStorageBlobVOS(storageBlobVOS);
+                storageAttachmentVO.setStorageBlobVOS(storageBlobVOS);
             }
-            storageAttachmentDTOS.add(storageAttachmentDTO);
+            storageAttachmentVOS.add(storageAttachmentVO);
         }
-        return storageAttachmentDTOS;
+        return storageAttachmentVOS;
     }
 
     /**
-     * 閫氳繃鏂囦欢鍏宠仈id鑾峰彇鏂囦欢淇℃伅瀛樺湪杩囨湡鏃堕棿
+     * 閫氳繃鏂囦欢鍏宠仈id鑾峰彇鏂囦欢淇℃伅瀛樺湪杩囨湡鏃堕棿 鑷畾涔夎繃鏈熸椂闂达紙鍒嗛挓锛� attachment
      *
      * @param storageAttachmentIds 鏂囦欢id
      * @param expired              杩囨湡鏃堕棿
      */
-    public List<StorageAttachmentDTO> getStorageAttachmentDTOsByStorageAttachmentIds(List<Long> storageAttachmentIds, BigDecimal expired) {
+    public List<StorageAttachmentVO> getStorageAttachmentVOSByStorageAttachmentIds(List<Long> storageAttachmentIds, BigDecimal expired) {
         List<StorageAttachment> storageAttachments = getStorageAttachmentsByStorageAttachmentIds(storageAttachmentIds);
         if (CollectionUtils.isEmpty(storageAttachments)) {
             return new ArrayList<>();
         }
-        List<StorageAttachmentDTO> storageAttachmentDTOS = new ArrayList<>();
+        List<StorageAttachmentVO> storageAttachmentVOS = new ArrayList<>();
         for (StorageAttachment storageAttachment : storageAttachments) {
-            StorageAttachmentDTO storageAttachmentDTO = new StorageAttachmentDTO();
-            BeanUtils.copyProperties(storageAttachment, storageAttachmentDTO);
+            StorageAttachmentVO storageAttachmentVO = new StorageAttachmentVO();
+            BeanUtils.copyProperties(storageAttachment, storageAttachmentVO);
             List<StorageBlobVO> storageBlobVOS = getStorageBlobDTOsByStorageAttachmentIds(Collections.singletonList(storageAttachment.getId()), expired);
             if (CollectionUtils.isEmpty(storageBlobVOS)) {
-                storageAttachmentDTO.setStorageBlobVOS(new ArrayList<>());
+                storageAttachmentVO.setStorageBlobVOS(new ArrayList<>());
             } else {
-                storageAttachmentDTO.setStorageBlobVOS(storageBlobVOS);
+                storageAttachmentVO.setStorageBlobVOS(storageBlobVOS);
             }
-            storageAttachmentDTOS.add(storageAttachmentDTO);
+            storageAttachmentVOS.add(storageAttachmentVO);
         }
-        return storageAttachmentDTOS;
+        return storageAttachmentVOS;
     }
 
     /**
-     * 閫氳繃鏂囦欢鍏宠仈id鑾峰彇鏂囦欢淇℃伅
+     * 閫氳繃鏂囦欢鍏宠仈id鑾峰彇鏂囦欢淇℃伅 attachment
      *
      * @param application 搴旂敤
      * @param recordType  璁板綍绫诲瀷
      * @param recordId    璁板綍id
      */
-    public List<StorageAttachmentDTO> getStorageAttachmentDTOsByApplicationAndRecordTypeAndRecordId(ApplicationTypeEnum application, RecordTypeEnum recordType, Long recordId) {
+    public List<StorageAttachmentVO> getStorageAttachmentVOSByApplicationAndRecordTypeAndRecordId(ApplicationTypeEnum application, RecordTypeEnum recordType, Long recordId) {
         List<StorageAttachment> storageAttachments = getStorageAttachmentsByApplicationAndRecordTypeAndRecordId(application, recordType, recordId);
         if (CollectionUtils.isEmpty(storageAttachments)) {
             return new ArrayList<>();
         }
-        List<StorageAttachmentDTO> storageAttachmentDTOS = new ArrayList<>();
+        List<StorageAttachmentVO> storageAttachmentVOS = new ArrayList<>();
         for (StorageAttachment storageAttachment : storageAttachments) {
-            StorageAttachmentDTO storageAttachmentDTO = new StorageAttachmentDTO();
-            BeanUtils.copyProperties(storageAttachment, storageAttachmentDTO);
+            StorageAttachmentVO storageAttachmentVO = new StorageAttachmentVO();
+            BeanUtils.copyProperties(storageAttachment, storageAttachmentVO);
             List<StorageBlobVO> storageBlobVOS = getStorageBlobDTOsByStorageAttachmentIds(Collections.singletonList(storageAttachment.getId()));
             if (CollectionUtils.isEmpty(storageBlobVOS)) {
-                storageAttachmentDTO.setStorageBlobVOS(new ArrayList<>());
+                storageAttachmentVO.setStorageBlobVOS(new ArrayList<>());
             } else {
-                storageAttachmentDTO.setStorageBlobVOS(storageBlobVOS);
+                storageAttachmentVO.setStorageBlobVOS(storageBlobVOS);
             }
-            storageAttachmentDTOS.add(storageAttachmentDTO);
+            storageAttachmentVOS.add(storageAttachmentVO);
         }
-        return storageAttachmentDTOS;
+        return storageAttachmentVOS;
     }
 
     /**
-     * 閫氳繃鏂囦欢鍏宠仈id鑾峰彇鏂囦欢淇℃伅瀛樺湪杩囨湡鏃堕棿
+     * 閫氳繃鏂囦欢鍏宠仈id鑾峰彇鏂囦欢淇℃伅瀛樺湪杩囨湡鏃堕棿 鑷畾涔夎繃鏈熸椂闂达紙鍒嗛挓锛� attachment
      *
      * @param application 搴旂敤
      * @param recordType  璁板綍绫诲瀷
      * @param recordId    璁板綍id
      * @param expired     杩囨湡鏃堕棿
      */
-    public List<StorageAttachmentDTO> getStorageAttachmentDTOsByApplicationAndRecordTypeAndRecordId(ApplicationTypeEnum application, RecordTypeEnum recordType, Long recordId, BigDecimal expired) {
+    public List<StorageAttachmentVO> getStorageAttachmentVOSByApplicationAndRecordTypeAndRecordId(ApplicationTypeEnum application, RecordTypeEnum recordType, Long recordId, BigDecimal expired) {
         List<StorageAttachment> storageAttachments = getStorageAttachmentsByApplicationAndRecordTypeAndRecordId(application, recordType, recordId);
         if (CollectionUtils.isEmpty(storageAttachments)) {
             return new ArrayList<>();
         }
-        List<StorageAttachmentDTO> storageAttachmentDTOS = new ArrayList<>();
+        List<StorageAttachmentVO> storageAttachmentVOS = new ArrayList<>();
         for (StorageAttachment storageAttachment : storageAttachments) {
-            StorageAttachmentDTO storageAttachmentDTO = new StorageAttachmentDTO();
-            BeanUtils.copyProperties(storageAttachment, storageAttachmentDTO);
+            StorageAttachmentVO storageAttachmentVO = new StorageAttachmentVO();
+            BeanUtils.copyProperties(storageAttachment, storageAttachmentVO);
             List<StorageBlobVO> storageBlobVOS = getStorageBlobDTOsByStorageAttachmentIds(Collections.singletonList(storageAttachment.getId()), expired);
             if (CollectionUtils.isEmpty(storageBlobVOS)) {
-                storageAttachmentDTO.setStorageBlobVOS(new ArrayList<>());
+                storageAttachmentVO.setStorageBlobVOS(new ArrayList<>());
             } else {
-                storageAttachmentDTO.setStorageBlobVOS(storageBlobVOS);
+                storageAttachmentVO.setStorageBlobVOS(storageBlobVOS);
             }
-            storageAttachmentDTOS.add(storageAttachmentDTO);
+            storageAttachmentVOS.add(storageAttachmentVO);
         }
-        return storageAttachmentDTOS;
+        return storageAttachmentVOS;
     }
 
     /**
@@ -354,7 +407,7 @@
     }
 
     /**
-     * 閫氳繃鏂囦欢鍏宠仈id鑾峰彇鏂囦欢棰勮鍦板潃瀛樺湪杩囨湡鏃堕棿
+     * 閫氳繃鏂囦欢鍏宠仈id鑾峰彇鏂囦欢棰勮鍦板潃瀛樺湪杩囨湡鏃堕棿 鑷畾涔夎繃鏈熸椂闂达紙鍒嗛挓锛�
      *
      * @param storageAttachmentIds 鏂囦欢鍏宠仈id
      * @param expired              杩囨湡鏃堕棿
@@ -383,7 +436,7 @@
     }
 
     /**
-     * 閫氳繃鏂囦欢鍏宠仈id鑾峰彇鏂囦欢涓嬭浇鍦板潃瀛樺湪杩囨湡鏃堕棿
+     * 閫氳繃鏂囦欢鍏宠仈id鑾峰彇鏂囦欢涓嬭浇鍦板潃瀛樺湪杩囨湡鏃堕棿 鑷畾涔夎繃鏈熸椂闂达紙鍒嗛挓锛�
      *
      * @param storageAttachmentIds 鏂囦欢鍏宠仈id
      * @param expired              杩囨湡鏃堕棿
@@ -489,7 +542,7 @@
     }
 
     /**
-     * 鍘嬬缉鏂囦欢
+     * 鍘嬬缉鏂囦欢 鍥剧墖
      *
      * @param file 鏂囦欢
      * @return 鍘嬬缉鍚庣殑鏂囦欢

--
Gitblit v1.9.3