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 <= #{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