From 1953daf321492dfc18b7a266282d5cd0b568dc68 Mon Sep 17 00:00:00 2001
From: Xiajijian <1176061145@qq.com>
Date: Wed, 29 Oct 2025 08:47:15 +0800
Subject: [PATCH] 1.增加minio文件删除-指定桶,接口。

---
 ard-oss/src/main/java/com/ard/oss/service/impl/MinIOServiceImpl.java                   |   25 ++++++++++++++++++++-----
 ard-admin/src/main/java/com/ard/web/controller/storage/FileUploadController.java       |   18 ++++++++++++++++++
 ard-route/src/main/java/com/ard/route/service/impl/ArdRouteInformationServiceImpl.java |    9 +++++++++
 3 files changed, 47 insertions(+), 5 deletions(-)

diff --git a/ard-admin/src/main/java/com/ard/web/controller/storage/FileUploadController.java b/ard-admin/src/main/java/com/ard/web/controller/storage/FileUploadController.java
index c1abb0a..208e64b 100644
--- a/ard-admin/src/main/java/com/ard/web/controller/storage/FileUploadController.java
+++ b/ard-admin/src/main/java/com/ard/web/controller/storage/FileUploadController.java
@@ -66,4 +66,22 @@
         }
     }
 
+    /**
+     * minio文件删除-指定桶
+     */
+    @ApiOperation("minio文件删除-指定桶")
+    @DeleteMapping("/deleteMinio/{bucketName}")
+    public AjaxResult deleteKmzFile(@PathVariable String bucketName,
+                                    @RequestParam String filePath) {
+        try {
+            boolean result = ossService.deleteObject(bucketName, filePath);
+            if (result) {
+                return AjaxResult.success("文件删除成功");
+            } else {
+                return AjaxResult.error("文件删除失败");
+            }
+        } catch (Exception e) {
+            return AjaxResult.error("删除文件失败: " + e.getMessage());
+        }
+    }
 }
diff --git a/ard-oss/src/main/java/com/ard/oss/service/impl/MinIOServiceImpl.java b/ard-oss/src/main/java/com/ard/oss/service/impl/MinIOServiceImpl.java
index 5097bce..e38cfb0 100644
--- a/ard-oss/src/main/java/com/ard/oss/service/impl/MinIOServiceImpl.java
+++ b/ard-oss/src/main/java/com/ard/oss/service/impl/MinIOServiceImpl.java
@@ -127,13 +127,28 @@
     @Override
     public Boolean deleteObject(String bucket, String objectKey) {
         try {
-            client.removeObject(RemoveObjectArgs.builder().bucket(bucket).object(objectKey).build());
-        } catch (MinioException | NoSuchAlgorithmException | IOException | InvalidKeyException e) {
-            log.error("Failed to delete file.");
-            e.printStackTrace();
+            // 检查文件是否存在
+            client.statObject(StatObjectArgs.builder()
+                    .bucket(bucket)
+                    .object(objectKey)
+                    .build());
+
+            // 文件存在,执行删除
+            client.removeObject(RemoveObjectArgs.builder()
+                    .bucket(bucket)
+                    .object(objectKey)
+                    .build());
+
+            log.info("成功删除文件: {}/{}", bucket, objectKey);
+            return true;
+        } catch (ErrorResponseException e) {
+            // 文件不存在的情况
+            log.warn("文件不存在: {}/{}", bucket, objectKey);
             return false;
+        } catch (Exception e) {
+            log.error("删除文件失败: {}/{}", bucket, objectKey, e);
+            throw new RuntimeException("删除文件失败: " + e.getMessage(), e);
         }
-        return true;
     }
 
     @Override
diff --git a/ard-route/src/main/java/com/ard/route/service/impl/ArdRouteInformationServiceImpl.java b/ard-route/src/main/java/com/ard/route/service/impl/ArdRouteInformationServiceImpl.java
index a05968e..fcb9d7d 100644
--- a/ard-route/src/main/java/com/ard/route/service/impl/ArdRouteInformationServiceImpl.java
+++ b/ard-route/src/main/java/com/ard/route/service/impl/ArdRouteInformationServiceImpl.java
@@ -3,6 +3,7 @@
 import java.util.List;
 import com.ard.common.utils.DateUtils;
 import com.ard.common.utils.uuid.IdUtils;
+import com.ard.oss.service.impl.OssServiceContext;
 import com.ard.route.domain.route.ArdRouteInformation;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -20,6 +21,9 @@
 
     @Autowired
     private ArdRouteInformationMapper ardRouteInformationMapper;
+
+    @Autowired
+    private OssServiceContext ossService;
 
     /**
      * 查询航线(kmz)
@@ -76,6 +80,11 @@
      */
     @Override
     public int deleteArdRouteInformationByIds(String[] ids) {
+        // 删除航线(kmz)文件
+        for (String id : ids) {
+            ArdRouteInformation information = ardRouteInformationMapper.selectArdRouteInformationById(id);
+            ossService.deleteObject("kmz", information.getUpPath());
+        }
         return ardRouteInformationMapper.deleteArdRouteInformationByIds(ids);
     }
 

--
Gitblit v1.9.3