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

---
 ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/sync/deleteSync.java                |   46 ++++++++++++++--------
 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         |    3 +
 3 files changed, 43 insertions(+), 18 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 ad0b1d8..261413a 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,9 @@
 
     Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid, String password) throws Exception;
 
+    void deleteByIds(List<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 345b542..0e99f74 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(List<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 7068fbf..1c7da6c 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
@@ -12,6 +12,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;
@@ -25,33 +26,44 @@
 @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 * * * ?")
+//    public void remove() throws IOException {
+//        log.error("鍚屾鍒犻櫎......");
+//        List<SysOss> list = new LambdaQueryChainWrapper<>(baseMapper)
+//            .le(SysOss::getCreateTime, LocalDateTime.now().minusDays(1L))
+//            .list();
+//        if (list.size() == 0)
+//            return;
+//
+//        for (SysOss vo : list) {
+//            OssClient storage = OssFactory.instance(vo.getService());
+//            storage.delete(vo.getUrl());
+//            HttpResponse httpResponse = HttpUtils.sendDeleteRequest(this.boundary.getVideo() + "/resource/synchronization/delete",
+//                String.valueOf(vo.getOssId()));
+//            if (httpResponse.getStatusLine().getStatusCode() == 200) {
+//                baseMapper.deleteId(vo.getOssId());
+//            }
+//        }
+//    }
 
     @Scheduled(cron = "0 */10 * * * ?")
     public void remove() throws IOException {
-        log.error("鍚屾鍒犻櫎......");
-        List<SysOss> list = new LambdaQueryChainWrapper<>(baseMapper)
-            .le(SysOss::getCreateTime, LocalDateTime.now().minusDays(1L))
-            .list();
-        if (list.size() == 0)
+        System.out.println("self delete......");
+        List<Long> ids = ossMapper.getWillDeleted(LocalDateTime.now().minusDays(1));
+        if (ids.size() == 0) {
             return;
-
-        for (SysOss vo : list) {
-            OssClient storage = OssFactory.instance(vo.getService());
-            storage.delete(vo.getUrl());
-            HttpResponse httpResponse = HttpUtils.sendDeleteRequest(this.boundary.getVideo() + "/resource/synchronization/delete",
-                String.valueOf(vo.getOssId()));
-            if (httpResponse.getStatusLine().getStatusCode() == 200) {
-                baseMapper.deleteId(vo.getOssId());
-            }
         }
+        ossService.deleteByIds(ids);
     }
 
 }

--
Gitblit v1.8.0