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 |   28 ++++++++++++++++++++++++++++
 1 files changed, 28 insertions(+), 0 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 880148c..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 {
 
@@ -39,4 +44,27 @@
                 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