| | |
| | | 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; |
| | |
| | | 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; |
| | | |
| | | /** |
| | |
| | | |
| | | @Autowired |
| | | private MinioUtils minioUtils; |
| | | |
| | | @Getter |
| | | @Value("${minio.default-bucket}") |
| | | private String defaultBucket; |
| | | |
| | | @Override |
| | | public List<StorageBlobDTO> updateStorageBlobs(List<MultipartFile> files, String bucketName, Long type) { |
| | |
| | | } |
| | | 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; |
| | | } |
| | | } |