From 792a2a20e87e760699cabe9c21bc4925d6ab2d60 Mon Sep 17 00:00:00 2001
From: xiangpei <xiangpei@timesnew.cn>
Date: 星期一, 17 二月 2025 10:33:11 +0800
Subject: [PATCH] 独立删除逻辑
---
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/sync/deleteSync.java | 59 ++++++++++++-----------------
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, 37 insertions(+), 36 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..ed03a20 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(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 f1ca2a9..6d3a5ee 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
@@ -8,6 +8,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;
@@ -21,50 +22,38 @@
@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 {
+// System.out.println("鍚屾鍒犻櫎......");
+// List<Long> ids = baseMapper.getWillDeleted(LocalDateTime.now().minusDays(1));
+//
+// if (ids.size() == 0) {
+// return;
+// }
+// for (Long ossId : ids) {
+// baseMapper.deleteById(ossId);
+// HttpUtils.sendDeleteRequest(boundary.getVideo() + "/resource/synchronization/delete",
+// String.valueOf(ossId));
+// }
+// }
-// @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) {
- baseMapper.deleteById(ossId);
- HttpUtils.sendDeleteRequest(boundary.getVideo() + "/resource/synchronization/delete",
- 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);
+ ossService.deleteByIds(ids);
}
}
--
Gitblit v1.8.0