From 5be9313e0b2b6f4114acce0eae9bc5805158a798 Mon Sep 17 00:00:00 2001
From: xiangpei <xiangpei@timesnew.cn>
Date: 星期一, 30 十二月 2024 11:22:15 +0800
Subject: [PATCH] 子删除过期文件

---
 ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/sync/deleteSync.java |   39 +++++++++++++++++++++++++++++++++------
 1 files changed, 33 insertions(+), 6 deletions(-)

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 a7a9066..f1ca2a9 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
@@ -1,6 +1,9 @@
 package org.dromara.system.sync;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import lombok.extern.slf4j.Slf4j;
+import org.dromara.common.oss.core.OssClient;
+import org.dromara.common.oss.factory.OssFactory;
 import org.dromara.system.domain.SysOss;
 import org.dromara.system.domain.properties.Boundary;
 import org.dromara.system.domain.vo.SysOssVo;
@@ -12,7 +15,9 @@
 import java.io.IOException;
 import java.time.LocalDateTime;
 import java.util.List;
+import java.util.Objects;
 
+@Slf4j
 @Component
 public class deleteSync {
 
@@ -28,16 +33,38 @@
 //    @Scheduled(cron = "0 */10 * * * ?")
     public void remove() throws IOException {
         System.out.println("鍚屾鍒犻櫎......");
-        List<SysOssVo> list = baseMapper.selectVoList(new LambdaQueryWrapper<SysOss>()
-            .le(SysOss::getCreateTime, LocalDateTime.now().minusDays(1)));
+        List<Long> ids = baseMapper.getWillDeleted(LocalDateTime.now().minusDays(1));
 
-        if (list.size() == 0) {
+        if (ids.size() == 0) {
             return;
         }
-        for (SysOssVo vo : list) {
-            baseMapper.deleteById(vo.getOssId());
+        for (Long ossId : ids) {
+            baseMapper.deleteById(ossId);
             HttpUtils.sendDeleteRequest(boundary.getVideo() + "/resource/synchronization/delete",
-                String.valueOf(vo.getOssId()));
+                String.valueOf(ossId));
         }
     }
+
+    /**
+     * 姣忓皬鏃跺垹闄�2澶╀箣鍓嶇殑鏂囦欢淇℃伅锛屽洜涓轰笂闈㈢殑鍚屾鍒犻櫎骞朵笉鑳戒繚璇佷簨鍔�
+     *
+     * @throws IOException
+     */
+    @Scheduled(cron = "0 0 * * * ?")
+    public void removeOssTable() throws IOException {
+        log.error("姣忓皬鏃跺畾鏃跺垹闄よ秴杩�2澶╃殑鏁版嵁搴撴枃浠朵俊鎭�......");
+        List<Long> ids = baseMapper.getWillDeleted(LocalDateTime.now().minusDays(2));
+        if (ids.size() == 0) {
+            return;
+        }
+        // 鍒犻櫎瀵瑰簲鏂囦欢
+        OssClient ossClient = OssFactory.instance();
+        for (Long ossId : ids) {
+            SysOss sysOss = baseMapper.selectById(ossId);
+            if (Objects.nonNull(sysOss)) {
+                ossClient.delete(sysOss.getFileName());
+            }
+        }
+        baseMapper.deleteIds(ids);
+    }
 }

--
Gitblit v1.8.0