From 0a9dbf381791653ab21adfeb666faf074d57833a Mon Sep 17 00:00:00 2001
From: xiangpei <xiangpei@timesnew.cn>
Date: 星期一, 30 十二月 2024 10:52:01 +0800
Subject: [PATCH] 同步删除调整

---
 ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysOssMapper.xml         |    5 +++++
 ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/sync/deleteSync.java     |   28 +++++++++++++++++++++++-----
 ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/sync/VideoPulSync.java   |   24 +++++++++++++-----------
 ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/mapper/SysOssMapper.java |    2 ++
 4 files changed, 43 insertions(+), 16 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/VideoPulSync.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/sync/VideoPulSync.java
index c5a32aa..2172790 100644
--- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/sync/VideoPulSync.java
+++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/sync/VideoPulSync.java
@@ -23,6 +23,7 @@
 import org.springframework.mock.web.MockMultipartFile;
 import org.springframework.scheduling.annotation.Scheduled;
 import org.springframework.stereotype.Component;
+import org.springframework.util.CollectionUtils;
 import org.springframework.web.multipart.MultipartFile;
 
 import java.io.IOException;
@@ -31,6 +32,7 @@
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
+import java.util.Objects;
 
 @Slf4j
 @Component
@@ -48,26 +50,26 @@
 
     @Scheduled(cron = "0 0/1 * * * ?")
     public void get() throws IOException {
-        System.out.println("鍚屾涓婁紶......");
-        log.info("鍚屾涓婁紶");
+        log.error("鍚屾涓婁紶");
         List<String> list = FtpApche.downloadList(ftpConfig);
 
-        if(list.size() == 0){
+        if(CollectionUtils.isEmpty(list)){
             log.error("no files in ftp");
-            System.out.println("ftp get 0 fileinfo");
             return;
         }
-        System.out.println("ftp get all fileinfo锛�" + list.get(0));
+        log.info("ftp get all fileinfo锛�" + list.get(0));
         for (String str : list) {
             String password = str.substring(0, 6);
             String fileName = str.substring(6, str.length());
             InputStream input = FtpApche.downloadFileFromDailyDir(str);
-            byte[] fileBytesByName = FtpApche.getFileBytesByName(input);
-            OssClient storage = OssFactory.instance();
-            MockMultipartFile mockMultipartFile = new MockMultipartFile(fileName, fileName, fileName.substring(14, fileName.length()), input);
-            UploadResult uploadResult = storage.uploadSuffix2(fileBytesByName, getPath(fileName), "multipart/form-data; charset=ISO-8859-1");
-            FtpApche.deleteFile(str);
-            buildResultEntity(fileName, fileName.substring(14, fileName.length()), "minio", uploadResult, (MultipartFile)mockMultipartFile, password, fileBytesByName);
+            if (Objects.nonNull(input)) {
+                byte[] fileBytesByName = FtpApche.getFileBytesByName(input);
+                OssClient storage = OssFactory.instance();
+                MockMultipartFile mockMultipartFile = new MockMultipartFile(fileName, fileName, fileName.substring(14, fileName.length()), input);
+                UploadResult uploadResult = storage.uploadSuffix2(fileBytesByName, getPath(fileName), "multipart/form-data; charset=ISO-8859-1");
+                buildResultEntity(fileName, fileName.substring(14, fileName.length()), "minio", uploadResult, (MultipartFile)mockMultipartFile, password, fileBytesByName);
+                FtpApche.deleteFile(str);
+            }
         }
 
     }
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 98334b1..fb42703 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 {
 
@@ -27,30 +32,43 @@
 
     @Scheduled(cron = "0 */10 * * * ?")
     public void remove() throws IOException {
-        System.out.println("鍚屾鍒犻櫎......");
+        log.error("鍚屾鍒犻櫎......");
         List<Long> ids = baseMapper.getWillDeleted(LocalDateTime.now().minusDays(1));
 
         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());
+            }
             HttpUtils.sendDeleteRequest(boundary.getVideo() + "/resource/synchronization/delete",
                 String.valueOf(ossId));
         }
     }
 
     /**
-     * 姣忓皬鏃跺垹闄�30澶╀箣鍓嶇殑鏂囦欢淇℃伅锛岀‘淇濅笂闈㈢殑瀹氭椂浠诲姟涓嶄細鍥犱负鍋滅數鍏虫満绛夊師鍥犲鑷存枃浠舵湭琚垹闄�
+     * 姣忓皬鏃跺垹闄�2澶╀箣鍓嶇殑鏂囦欢淇℃伅锛屽洜涓轰笂闈㈢殑鍚屾鍒犻櫎骞朵笉鑳戒繚璇佷簨鍔�
      *
      * @throws IOException
      */
     @Scheduled(cron = "0 0 * * * ?")
     public void removeOssTable() throws IOException {
-        System.out.println("姣忓皬鏃跺畾鏃跺垹闄よ秴杩�30澶╃殑鏁版嵁搴撴枃浠朵俊鎭�......");
-        List<Long> ids = baseMapper.getWillDeleted(LocalDateTime.now().minusDays(30));
+        log.error("姣忓皬鏃跺畾鏃跺垹闄よ秴杩�2澶╃殑鏁版嵁搴撴枃浠朵俊鎭�......");
+        List<Long> ids = baseMapper.getWillDeleted(LocalDateTime.now().minusDays(2));
         if (ids.size() == 0) {
             return;
         }
-        baseMapper.deleteBatchIds(ids);
+        // 鍒犻櫎瀵瑰簲鏂囦欢
+        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..61d020f 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,9 @@
         SELECT oss_id from sys_oss WHERE create_time &lt;= #{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