From e1a6e20d22fbcb862247fac0a671a2a2722e7755 Mon Sep 17 00:00:00 2001
From: maven <2163098428@qq.com>
Date: 星期五, 29 八月 2025 14:07:53 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/pim-jlmy' into pim-jlmy

---
 ruoyi-common/src/main/java/com/ruoyi/basic/service/impl/StorageBlobServiceImpl.java |   38 +++++++++++++++++++++++++++++++++-----
 1 files changed, 33 insertions(+), 5 deletions(-)

diff --git a/ruoyi-common/src/main/java/com/ruoyi/basic/service/impl/StorageBlobServiceImpl.java b/ruoyi-common/src/main/java/com/ruoyi/basic/service/impl/StorageBlobServiceImpl.java
index 1939119..c42d317 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/basic/service/impl/StorageBlobServiceImpl.java
+++ b/ruoyi-common/src/main/java/com/ruoyi/basic/service/impl/StorageBlobServiceImpl.java
@@ -3,6 +3,7 @@
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.google.common.collect.Iterables;
 import com.ruoyi.basic.entity.StorageAttachment;
 import com.ruoyi.basic.entity.StorageBlob;
 import com.ruoyi.basic.entity.dto.SimpleStorageDto;
@@ -16,15 +17,16 @@
 import com.ruoyi.common.utils.StringUtils;
 import com.ruoyi.common.utils.file.MinioUtils;
 import com.ruoyi.common.utils.uuid.IdUtils;
+import jakarta.annotation.Resource;
+import lombok.Getter;
 import lombok.RequiredArgsConstructor;
 import org.apache.commons.io.FilenameUtils;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
 import org.springframework.web.multipart.MultipartFile;
 
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
+import java.util.*;
 import java.util.stream.Collectors;
 
 /**
@@ -46,6 +48,10 @@
 
     @Autowired
     private MinioUtils minioUtils;
+
+    @Getter
+    @Value("${minio.default-bucket}")
+    private String defaultBucket;
 
     @Override
     public List<StorageBlobDTO> updateStorageBlobs(List<MultipartFile> files, String bucketName, Long type) {
@@ -167,9 +173,31 @@
         }
         return storageBlobMapper.selectByIds(ids).parallelStream().map(it -> {
             SimpleStorageDto dto = new SimpleStorageDto(it.getId(), it.getContentType(), it.getOriginalFilename(), it.getCreateTime());
-            dto.setDownloadUrl(minioUtils.getDownloadUrls(it.getBucketFilename(), bucketName, it.getOriginalFilename(), true));
-            dto.setUrl(minioUtils.getPreviewUrl(it.getBucketFilename(), bucketName, true));
+            dto.setUrl(minioUtils.getDownloadUrls(it.getBucketFilename(), bucketName, it.getOriginalFilename(), true));
+            dto.setPreviewUrl(minioUtils.getPreviewUrl(it.getBucketFilename(), bucketName, true));
             return dto;
         }).toList();
     }
+
+    @Override
+    public Map<Long, List<SimpleStorageDto>> conver(Map<Long, List<Long>> attachMap) {
+        if (attachMap == null || attachMap.isEmpty()) {
+            return Map.of();
+        }
+        List<Long> storageBlobIds = attachMap.values().stream().flatMap(Collection::stream).toList();
+
+        if(Iterables.isEmpty(storageBlobIds)){
+            return Map.of();
+        }
+
+        Map<Long,SimpleStorageDto> storageMap = this.findStorageByIds(storageBlobIds, defaultBucket).stream().collect(Collectors.toMap(SimpleStorageDto::getId,it->it));;
+
+
+        Map<Long, List<SimpleStorageDto>> finalMap = new HashMap<>();
+        attachMap.forEach((k,v)->{
+            finalMap.put(k, v.stream().map(storageMap::get).toList());
+        });
+
+        return finalMap;
+    }
 }

--
Gitblit v1.9.3