From 3804a77bf599e619426255cbaff100e2d4cf4e73 Mon Sep 17 00:00:00 2001
From: huminmin <mac@MacBook-Pro.local>
Date: 星期六, 25 四月 2026 15:12:13 +0800
Subject: [PATCH] 增加文件相关接口
---
src/main/java/com/ruoyi/basic/utils/FileUtil.java | 89 +++++++++++++++++++++++++++++++++++++++++++-
1 files changed, 86 insertions(+), 3 deletions(-)
diff --git a/src/main/java/com/ruoyi/basic/utils/FileUtil.java b/src/main/java/com/ruoyi/basic/utils/FileUtil.java
index 9d202f1..6f1d5cf 100644
--- a/src/main/java/com/ruoyi/basic/utils/FileUtil.java
+++ b/src/main/java/com/ruoyi/basic/utils/FileUtil.java
@@ -55,9 +55,6 @@
* @param storageBlobDTOS 鏂囦欢淇℃伅
*/
public void saveStorageAttachment(ApplicationTypeEnum application, RecordTypeEnum recordType, Long recordId, List<StorageBlobDTO> storageBlobDTOS) {
- if (CollectionUtils.isEmpty(storageBlobDTOS)) {
- throw new RuntimeException("鏂囦欢淇℃伅涓嶈兘涓虹┖");
- }
if (application == null) {
throw new RuntimeException("鏂囦欢鐢ㄩ�斾笉鑳戒负绌�");
}
@@ -69,10 +66,54 @@
}
// 鍒犻櫎鏃ч檮浠朵俊鎭�
deleteStorageAttachmentsByApplicationAndRecordTypeAndRecordId(application, recordType, recordId);
+ if (CollectionUtils.isEmpty(storageBlobDTOS)) {
+ return;
+ }
List<StorageAttachment> storageAttachments = new ArrayList<>();
for (StorageBlobDTO storageBlobDTO : storageBlobDTOS) {
StorageAttachment storageAttachment = new StorageAttachment();
storageAttachment.setApplication(application.getType());
+ storageAttachment.setRecordType(recordType.getType());
+ storageAttachment.setRecordId(recordId);
+ storageAttachment.setStorageBlobId(storageBlobDTO.getId());
+ storageAttachment.setDeleted(0L);
+ storageAttachments.add(storageAttachment);
+ }
+ storageAttachmentMapper.insert(storageAttachments);
+ }
+
+ /**
+ * 淇濆瓨闄勪欢淇℃伅
+ *
+ * @param recordType 鍏宠仈璁板綍绫诲瀷
+ * @param recordId 鍏宠仈璁板綍id
+ * @param storageBlobDTOS 鏂囦欢淇℃伅
+ */
+ public void saveStorageAttachmentByRecordTypeAndRecordId(String application,RecordTypeEnum recordType, Long recordId, List<StorageBlobDTO> storageBlobDTOS) {
+ if (recordType == null) {
+ throw new RuntimeException("鍏宠仈璁板綍绫诲瀷涓嶈兘涓虹┖");
+ }
+ if (recordId == null) {
+ throw new RuntimeException("鍏宠仈璁板綍id涓嶈兘涓虹┖");
+ }
+
+ // 鍒犻櫎鏃ч檮浠朵俊鎭�
+ if (application == null) {
+ for (StorageBlobDTO storageBlobDTO : storageBlobDTOS) {
+ deleteStorageAttachmentsByApplicationAndRecordTypeAndRecordId(ApplicationTypeEnum.getByType(storageBlobDTO.getApplication()), recordType, recordId);
+ }
+ } else {
+ deleteStorageAttachmentsByApplicationAndRecordTypeAndRecordId(ApplicationTypeEnum.getByType(application), recordType, recordId);
+ }
+
+ if (CollectionUtils.isEmpty(storageBlobDTOS)) {
+ deleteStorageAttachmentsByRecordTypeAndRecordId(recordType, recordId);
+ }
+
+ List<StorageAttachment> storageAttachments = new ArrayList<>();
+ for (StorageBlobDTO storageBlobDTO : storageBlobDTOS) {
+ StorageAttachment storageAttachment = new StorageAttachment();
+ storageAttachment.setApplication(Objects.requireNonNullElseGet(application, () -> ApplicationTypeEnum.getByType(storageBlobDTO.getApplication()).getType()));
storageAttachment.setRecordType(recordType.getType());
storageAttachment.setRecordId(recordId);
storageAttachment.setStorageBlobId(storageBlobDTO.getId());
@@ -131,6 +172,29 @@
}
/**
+ * 閫氳繃鍏宠仈璁板綍绫诲瀷銆佸叧鑱旇褰昳d鍒犻櫎鏂囦欢淇℃伅
+ *
+ * @param recordType 鍏宠仈璁板綍绫诲瀷
+ * @param recordId 鍏宠仈璁板綍id
+ */
+ public void deleteStorageBlobsByRecordTypeAndRecordId(RecordTypeEnum recordType, Long recordId) {
+ if (recordId == null || recordId <= 0) {
+ throw new RuntimeException("鍏宠仈璁板綍id涓嶈兘涓虹┖");
+ }
+ if (recordType == null) {
+ throw new RuntimeException("鍏宠仈璁板綍绫诲瀷涓嶈兘涓虹┖");
+ }
+ List<StorageAttachment> storageAttachments = storageAttachmentMapper.selectList(new LambdaQueryWrapper<StorageAttachment>()
+ .eq(StorageAttachment::getRecordType, recordType.getType())
+ .eq(StorageAttachment::getRecordId, recordId));
+ if (CollectionUtils.isNotEmpty(storageAttachments)) {
+ List<Long> storageAttachmentIds = storageAttachments.stream().map(StorageAttachment::getStorageBlobId)
+ .collect(Collectors.toList());
+ deleteStorageBlobsByStorageAttachmentIds(storageAttachmentIds);
+ }
+ }
+
+ /**
* 鍒犻櫎鏂囦欢鍏宠仈淇℃伅
*
* @param storageAttachmentIds 鏂囦欢鍏宠仈id
@@ -165,6 +229,25 @@
}
/**
+ * 鍒犻櫎鏂囦欢鍏宠仈淇℃伅
+ *
+ * @param recordType 鍏宠仈璁板綍绫诲瀷
+ * @param recordId 鍏宠仈璁板綍id
+ */
+ public void deleteStorageAttachmentsByRecordTypeAndRecordId(RecordTypeEnum recordType, Long recordId) {
+ if (recordId == null || recordId <= 0) {
+ throw new RuntimeException("鍏宠仈璁板綍id涓嶈兘涓虹┖");
+ }
+ if (recordType == null) {
+ throw new RuntimeException("鍏宠仈璁板綍绫诲瀷涓嶈兘涓虹┖");
+ }
+ deleteStorageBlobsByRecordTypeAndRecordId(recordType, recordId);
+ storageAttachmentMapper.delete(new LambdaQueryWrapper<StorageAttachment>()
+ .eq(StorageAttachment::getRecordType, recordType.getType())
+ .eq(StorageAttachment::getRecordId, recordId));
+ }
+
+ /**
* 鎵归噺鍒犻櫎鏂囦欢鍏宠仈淇℃伅 attachment
*
* @param application 鏂囦欢鐢ㄩ��
--
Gitblit v1.9.3