From 51df6e262c2d625e700a8194cbe0ec1e40b80843 Mon Sep 17 00:00:00 2001
From: xin <1099200748@qq.com>
Date: Tue, 03 Jun 2025 19:23:31 +0800
Subject: [PATCH] 存储桶

---
 oying-tools/src/main/java/com/oying/service/impl/BucketStorageServiceImpl.java |   50 ++++++++++++-------------
 oying-tools/src/main/java/com/oying/domain/BucketStorage.java                  |    9 ++++
 oying-tools/src/main/java/com/oying/rest/BucketStorageController.java          |   24 +++++++-----
 3 files changed, 47 insertions(+), 36 deletions(-)

diff --git a/oying-tools/src/main/java/com/oying/domain/BucketStorage.java b/oying-tools/src/main/java/com/oying/domain/BucketStorage.java
index 9baedd1..e9a4a35 100644
--- a/oying-tools/src/main/java/com/oying/domain/BucketStorage.java
+++ b/oying-tools/src/main/java/com/oying/domain/BucketStorage.java
@@ -46,4 +46,13 @@
     public void copy(BucketStorage source){
         BeanUtil.copyProperties(source,this, CopyOptions.create().setIgnoreNullValue(true));
     }
+
+    public BucketStorage(String realName,String name, String suffix, String path, String type, String size) {
+        this.realName = realName;
+        this.name = name;
+        this.suffix = suffix;
+        this.path = path;
+        this.type = type;
+        this.size = size;
+    }
 }
diff --git a/oying-tools/src/main/java/com/oying/rest/BucketStorageController.java b/oying-tools/src/main/java/com/oying/rest/BucketStorageController.java
index c0873e0..1c81b58 100644
--- a/oying-tools/src/main/java/com/oying/rest/BucketStorageController.java
+++ b/oying-tools/src/main/java/com/oying/rest/BucketStorageController.java
@@ -6,26 +6,30 @@
 import com.oying.service.BucketStorageService;
 import com.oying.domain.dto.BucketStorageQueryCriteria;
 import com.oying.utils.FileUtil;
+import com.oying.utils.R;
 import lombok.RequiredArgsConstructor;
+
 import java.util.List;
+
 import org.springframework.http.HttpStatus;
 import org.springframework.http.ResponseEntity;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.*;
 import io.swagger.annotations.*;
+
 import java.io.IOException;
 import javax.servlet.http.HttpServletResponse;
+
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.oying.utils.PageResult;
 import org.springframework.web.multipart.MultipartFile;
 
 /**
-* @author lixin
-* @date 2025-06-03
-**/
+ * @author lixin
+ * @date 2025-06-03
+ **/
 @RestController
 @RequiredArgsConstructor
-@Api(tags = "存储桶")
+@Api(tags = "工具:存储桶")
 @RequestMapping("/api/bucketStorage")
 public class BucketStorageController {
 
@@ -41,9 +45,9 @@
     @GetMapping
     @ApiOperation("查询存储桶")
     @PreAuthorize("@el.check('bucketStorage:list')")
-    public ResponseEntity<PageResult<BucketStorage>> queryBucketStorage(BucketStorageQueryCriteria criteria){
+    public ResponseEntity<Object> queryBucketStorage(BucketStorageQueryCriteria criteria) {
         Page<Object> page = new Page<>(criteria.getPage(), criteria.getSize());
-        return new ResponseEntity<>(bucketStorageService.queryAll(criteria,page),HttpStatus.OK);
+        return new ResponseEntity<>(R.success(bucketStorageService.queryAll(criteria, page)), HttpStatus.OK);
     }
 
     @PostMapping
@@ -51,7 +55,7 @@
     @ApiOperation("上传存储桶文件")
     @PreAuthorize("@el.check('bucketStorage:add')")
     public ResponseEntity<Object> create(@RequestParam String name, @RequestParam("file") MultipartFile file) {
-        return new ResponseEntity<>(bucketStorageService.create(name, file), HttpStatus.CREATED);
+        return new ResponseEntity<>(R.success(bucketStorageService.create(name, file)), HttpStatus.CREATED);
     }
 
     @PostMapping("/pictures")
@@ -64,7 +68,7 @@
             throw new BadRequestException("只能上传图片");
         }
         BucketStorage bucketStorage = bucketStorageService.create(null, file);
-        return new ResponseEntity<>(bucketStorage, HttpStatus.OK);
+        return new ResponseEntity<>(R.success(bucketStorage), HttpStatus.OK);
     }
 
     @DeleteMapping
@@ -73,6 +77,6 @@
     @PreAuthorize("@el.check('bucketStorage:del')")
     public ResponseEntity<Object> deleteBucketStorage(@ApiParam(value = "传ID数组[]") @RequestBody List<Long> ids) {
         bucketStorageService.deleteAll(ids);
-        return new ResponseEntity<>(HttpStatus.OK);
+        return new ResponseEntity<>(R.success(), HttpStatus.OK);
     }
 }
diff --git a/oying-tools/src/main/java/com/oying/service/impl/BucketStorageServiceImpl.java b/oying-tools/src/main/java/com/oying/service/impl/BucketStorageServiceImpl.java
index 6d60979..8e652c7 100644
--- a/oying-tools/src/main/java/com/oying/service/impl/BucketStorageServiceImpl.java
+++ b/oying-tools/src/main/java/com/oying/service/impl/BucketStorageServiceImpl.java
@@ -1,11 +1,12 @@
 package com.oying.service.impl;
 
 import cn.hutool.core.util.ObjectUtil;
-import com.obs.services.internal.ObsProperties;
 import com.obs.services.model.AccessControlList;
 import com.obs.services.model.PutObjectResult;
+import com.oying.config.properties.FileProperties;
 import com.oying.domain.BucketStorage;
-import com.oying.utils.FileUtil;
+import com.oying.exception.BadRequestException;
+import com.oying.utils.*;
 import lombok.RequiredArgsConstructor;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -14,7 +15,6 @@
 import com.oying.mapper.BucketStorageMapper;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
-import com.oying.utils.PageUtil;
 
 import java.io.File;
 import java.util.List;
@@ -23,41 +23,41 @@
 import javax.servlet.http.HttpServletResponse;
 import java.util.ArrayList;
 import java.util.LinkedHashMap;
-import com.oying.utils.PageResult;
+
 import org.springframework.web.multipart.MultipartFile;
 
 /**
-* @description 服务实现
-* @author lixin
-* @date 2025-06-03
-**/
+ * @author lixin
+ * @description 服务实现
+ * @date 2025-06-03
+ **/
 @Service
 @RequiredArgsConstructor
 public class BucketStorageServiceImpl extends ServiceImpl<BucketStorageMapper, BucketStorage> implements BucketStorageService {
 
     private final BucketStorageMapper bucketStorageMapper;
-    private final ObsProperties
+    private final ObsProperties properties;
+    private final FileProperties fileProperties;
 
     @Override
-    public PageResult<BucketStorage> queryAll(BucketStorageQueryCriteria criteria, Page<Object> page){
+    public PageResult<BucketStorage> queryAll(BucketStorageQueryCriteria criteria, Page<Object> page) {
         return PageUtil.toPage(bucketStorageMapper.findAll(criteria, page));
     }
 
     @Override
-    public List<BucketStorage> queryAll(BucketStorageQueryCriteria criteria){
+    public List<BucketStorage> queryAll(BucketStorageQueryCriteria criteria) {
         return bucketStorageMapper.findAll(criteria);
     }
 
     @Override
     @Transactional(rollbackFor = Exception.class)
     public BucketStorage createFile(String name, File file) {
-        ObsConfig config = obsConfigService.findById(1L);
-        FileUtil.checkSize(properties.getMaxSize(), file.length());
+        FileUtil.checkSize(fileProperties.getMaxSize(), file.length());
         String suffix = FileUtil.getExtensionName(file.getName());
         String type = FileUtil.getFileType(suffix);
         String reaName = System.currentTimeMillis() + "." + suffix;
         String objectKey = type + "/" + reaName;
-        PutObjectResult result = ObsUtils.putObject(config, file, objectKey, AccessControlList.REST_CANNED_PUBLIC_READ);
+        PutObjectResult result = ObsUtils.putObject(properties, file, objectKey, AccessControlList.REST_CANNED_PUBLIC_READ);
         if (ObjectUtil.isNull(result)) {
             throw new BadRequestException("上传失败");
         }
@@ -70,18 +70,19 @@
                 type,
                 FileUtil.getSize(file.length())
         );
-        return bucketStorageRepository.save(bucketStorage);
+        bucketStorageMapper.insert(bucketStorage);
+        return bucketStorage;
     }
 
     @Override
     @Transactional(rollbackFor = Exception.class)
     public BucketStorage create(String name, MultipartFile file) {
-        FileUtil.checkSize(properties.getMaxSize(), file.getSize());
+        FileUtil.checkSize(fileProperties.getMaxSize(), file.getSize());
         String suffix = FileUtil.getExtensionName(file.getOriginalFilename());
         String type = FileUtil.getFileType(suffix);
         String reaName = System.currentTimeMillis() + "." + suffix;
         String objectKey = type + "/" + reaName;
-        PutObjectResult result = ObsUtils.putObject(config, FileUtil.toFile(file), objectKey,AccessControlList.REST_CANNED_PUBLIC_READ);
+        PutObjectResult result = ObsUtils.putObject(properties, FileUtil.toFile(file), objectKey, AccessControlList.REST_CANNED_PUBLIC_READ);
         if (ObjectUtil.isNull(result)) {
             throw new BadRequestException("上传失败");
         }
@@ -94,20 +95,17 @@
                 type,
                 FileUtil.getSize(file.getSize())
         );
-        return bucketStorageRepository.save(bucketStorage);
-    }
-
-    @Override
-    @Transactional(rollbackFor = Exception.class)
-    public void update(BucketStorage resources) {
-        BucketStorage bucketStorage = getById(resources.getBucketId());
-        bucketStorage.copy(resources);
-        bucketStorageMapper.updateById(bucketStorage);
+        bucketStorageMapper.insert(bucketStorage);
+        return bucketStorage;
     }
 
     @Override
     @Transactional(rollbackFor = Exception.class)
     public void deleteAll(List<Long> ids) {
+        for(Long id : ids) {
+            BucketStorage storage = bucketStorageMapper.selectById(id);
+            ObsUtils.deleteObject(properties, storage.getPath());
+        }
         bucketStorageMapper.deleteBatchIds(ids);
     }
 

--
Gitblit v1.9.3