buhuazhen
8 天以前 d1c296f59ea0ac750763ccaaa6c2132ce9166085
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;
    }
}