From 15e8b9f998c99dc19a07fffac91a7982e724aeff Mon Sep 17 00:00:00 2001
From: xiangpei <xiangpei@timesnew.cn>
Date: 星期一, 17 二月 2025 10:23:00 +0800
Subject: [PATCH] 独立删除逻辑

---
 ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/sync/deleteSync.java                |   37 ++++++++++---------------------------
 ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysOssServiceImpl.java |   12 +++++++++++-
 ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/ISysOssService.java         |    2 ++
 3 files changed, 23 insertions(+), 28 deletions(-)

diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/ISysOssService.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/ISysOssService.java
index dc42f01..bfabfac 100644
--- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/ISysOssService.java
+++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/ISysOssService.java
@@ -43,6 +43,8 @@
 
     Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid, String password) throws Exception;
 
+    void deleteByIds(Collection<Long> ids);
+
     R viewPasswordById(Long ossId);
 
 }
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysOssServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysOssServiceImpl.java
index 1c3594e..5170845 100644
--- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysOssServiceImpl.java
+++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysOssServiceImpl.java
@@ -45,6 +45,7 @@
 import org.springframework.cache.annotation.Cacheable;
 import org.springframework.http.MediaType;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.multipart.MultipartFile;
 
 import java.io.*;
@@ -315,7 +316,16 @@
         return true;
     }
 
-
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public void deleteByIds(Collection<Long> ids) {
+        List<SysOss> list = baseMapper.selectBatchIds(ids);
+        for (SysOss sysOss : list) {
+            OssClient storage = OssFactory.instance(sysOss.getService());
+            storage.delete(sysOss.getUrl());
+            baseMapper.deleteById(sysOss.getOssId());
+        }
+    }
 
     @Override
     public R viewPasswordById(Long ossId) {
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/sync/deleteSync.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/sync/deleteSync.java
index 331d790..fdf4bf2 100644
--- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/sync/deleteSync.java
+++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/sync/deleteSync.java
@@ -5,6 +5,7 @@
 import org.dromara.system.domain.properties.Boundary;
 import org.dromara.system.domain.vo.SysOssVo;
 import org.dromara.system.mapper.SysOssMapper;
+import org.dromara.system.service.ISysOssService;
 import org.dromara.system.uitil.HttpUtils;
 import org.springframework.scheduling.annotation.Scheduled;
 import org.springframework.stereotype.Component;
@@ -16,42 +17,24 @@
 @Component
 public class deleteSync {
 
-    private final SysOssMapper baseMapper;
+    private final ISysOssService ossService;
+    private final SysOssMapper ossMapper;
     private final Boundary boundary;
 
-    public deleteSync(SysOssMapper baseMapper, Boundary boundary) {
-        this.baseMapper = baseMapper;
+    public deleteSync(ISysOssService ossService, SysOssMapper ossMapper, Boundary boundary) {
+        this.ossService = ossService;
+        this.ossMapper = ossMapper;
         this.boundary = boundary;
     }
 
-
-//    @Scheduled(cron = "0 */10 * * * ?")
+    @Scheduled(cron = "0 */10 * * * ?")
     public void remove() throws IOException {
-        System.out.println("鍚屾鍒犻櫎......");
-        List<Long> ids = baseMapper.getWillDeleted(LocalDateTime.now().minusDays(1));
-
+        System.out.println("self delete......");
+        List<Long> ids = ossMapper.getWillDeleted(LocalDateTime.now().minusDays(1));
         if (ids.size() == 0) {
             return;
         }
-        for (Long ossId : ids) {
-            HttpUtils.sendDeleteRequest(boundary.getVideo() + "/resource/synchronization/delete",
-                String.valueOf(ossId));
-        }
+        ossService.deleteByIds(ids);
     }
 
-
-    /**
-     * 姣忓皬鏃跺垹闄�30澶╀箣鍓嶇殑鏂囦欢淇℃伅锛岀‘淇濅笂闈㈢殑瀹氭椂浠诲姟涓嶄細鍥犱负鍋滅數鍏虫満绛夊師鍥犲鑷存枃浠舵湭琚垹闄�
-     *
-     * @throws IOException
-     */
-//    @Scheduled(cron = "0 0 * * * ?")
-    public void removeOssTable() throws IOException {
-        System.out.println("姣忓皬鏃跺畾鏃跺垹闄よ秴杩�30澶╃殑鏁版嵁搴撴枃浠朵俊鎭�......");
-        List<Long> ids = baseMapper.getWillDeleted(LocalDateTime.now().minusDays(30));
-        if (ids.size() == 0) {
-            return;
-        }
-        baseMapper.deleteBatchIds(ids);
-    }
 }

--
Gitblit v1.8.0