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/resources/mapper/system/SysOssMapper.xml | 4 ++++
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/sync/deleteSync.java | 28 ++++++++++++++++++++++++++++
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/mapper/SysOssMapper.java | 2 ++
3 files changed, 34 insertions(+), 0 deletions(-)
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/mapper/SysOssMapper.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/mapper/SysOssMapper.java
index 22aa07a..3907fae 100644
--- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/mapper/SysOssMapper.java
+++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/mapper/SysOssMapper.java
@@ -18,4 +18,6 @@
public interface SysOssMapper extends BaseMapperPlus<SysOss, SysOssVo> {
List<Long> getWillDeleted(@Param("maxTime") LocalDateTime maxTime);
+
+ void deleteIds(@Param("ids") List<Long> ids);
}
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);
+ }
}
diff --git a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysOssMapper.xml b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysOssMapper.xml
index cb74c1c..ef4fbf0 100644
--- a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysOssMapper.xml
+++ b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysOssMapper.xml
@@ -6,4 +6,8 @@
SELECT oss_id from sys_oss WHERE create_time <= #{maxTime}
</select>
+ <delete id="deleteIds" parameterType="integer">
+ DELETE FROM sys_oss WHERE oss_id IN <foreach collection="ids" open="(" separator="," close=")" item="id">#{id}</foreach>
+ </delete>
+
</mapper>
--
Gitblit v1.8.0