xin
2025-10-11 4548c5045b3a5522ad14df7c939f0303c1e17587
oying-tools/src/main/java/com/oying/service/impl/BucketStorageServiceImpl.java
@@ -1,5 +1,6 @@
package com.oying.service.impl;
import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.ObjectUtil;
import com.obs.services.model.AccessControlList;
import com.obs.services.model.PutObjectResult;
@@ -13,6 +14,7 @@
import com.oying.service.BucketStorageService;
import com.oying.domain.dto.BucketStorageQueryCriteria;
import com.oying.mapper.BucketStorageMapper;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -38,6 +40,8 @@
    private final BucketStorageMapper bucketStorageMapper;
    private final ObsProperties properties;
    private final FileProperties fileProperties;
    @Value("${oying.enabled}")
    private Boolean oyingEnabled;
    @Override
    public PageResult<BucketStorage> queryAll(BucketStorageQueryCriteria criteria, Page<Object> page) {
@@ -57,6 +61,9 @@
        String type = FileUtil.getFileType(suffix);
        String reaName = System.currentTimeMillis() + "." + suffix;
        String objectKey = type + "/" + reaName;
        if (oyingEnabled) {
            objectKey = "test/" +objectKey;
        }
        PutObjectResult result = ObsUtils.putObject(properties, file, objectKey, AccessControlList.REST_CANNED_PUBLIC_READ);
        if (ObjectUtil.isNull(result)) {
            throw new BadRequestException("上传失败");
@@ -80,8 +87,11 @@
        FileUtil.checkSize(fileProperties.getMaxSize(), file.getSize());
        String suffix = FileUtil.getExtensionName(file.getOriginalFilename());
        String type = FileUtil.getFileType(suffix);
        String reaName = System.currentTimeMillis() + "." + suffix;
        String reaName = IdUtil.getSnowflake(1, 1).nextId() + "." + suffix;
        String objectKey = type + "/" + reaName;
        if (oyingEnabled) {
            objectKey = "test/" +objectKey;
        }
        PutObjectResult result = ObsUtils.putObject(properties, FileUtil.toFile(file), objectKey, AccessControlList.REST_CANNED_PUBLIC_READ);
        if (ObjectUtil.isNull(result)) {
            throw new BadRequestException("上传失败");
@@ -102,7 +112,7 @@
    @Override
    @Transactional(rollbackFor = Exception.class)
    public void deleteAll(List<Long> ids) {
        for(Long id : ids) {
        for (Long id : ids) {
            BucketStorage storage = bucketStorageMapper.selectById(id);
            ObsUtils.deleteObject(properties, storage.getPath());
        }
@@ -110,20 +120,26 @@
    }
    @Override
    @Transactional(rollbackFor = Exception.class)
    public void deleteById(String path) {
        BucketStorage storage = bucketStorageMapper.findByPath(path);
        ObsUtils.deleteObject(properties, storage.getPath());
        bucketStorageMapper.deleteById(storage.getBucketId());
    }
    @Override
    public void download(List<BucketStorage> all, HttpServletResponse response) throws IOException {
        List<Map<String, Object>> list = new ArrayList<>();
        for (BucketStorage bucketStorage : all) {
            Map<String, Object> map = new LinkedHashMap<>();
            map.put("文件真实的名称", bucketStorage.getRealName());
            map.put("文件名", bucketStorage.getName());
            map.put("后缀", bucketStorage.getSuffix());
            map.put("路径", bucketStorage.getPath());
            map.put("类型", bucketStorage.getType());
            map.put("大小", bucketStorage.getSize());
            map.put("文件名称", bucketStorage.getRealName());
            map.put("备注名称", bucketStorage.getName());
            map.put("文件类型", bucketStorage.getSuffix());
            map.put("文件路径", bucketStorage.getPath());
            map.put("文件分类", bucketStorage.getType());
            map.put("文件大小", bucketStorage.getSize());
            map.put("创建人", bucketStorage.getCreateBy());
            map.put("创建时间", bucketStorage.getCreateTime());
            map.put("修改者", bucketStorage.getUpdateBy());
            map.put("修改时间", bucketStorage.getUpdateTime());
            list.add(map);
        }
        FileUtil.downloadExcel(list, response);