From 347ae33c71d552679d903fe4832efa0303366996 Mon Sep 17 00:00:00 2001 From: chenxudong Date: Thu, 27 Feb 2025 16:25:13 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A1=A5=E5=85=85=E6=96=87=E4=BB=B6=E5=A4=87?= =?UTF-8?q?=E4=BB=BD=E7=9B=B8=E5=85=B3=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../manage/config/ElePropertyConfig.java | 9 ++++ .../software/manage/tasks/BackupTask.java | 53 +++++++++++++++---- .../src/main/resources/application.properties | 7 ++- 3 files changed, 59 insertions(+), 10 deletions(-) diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/config/ElePropertyConfig.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/config/ElePropertyConfig.java index 6d7ae33..7784ea0 100644 --- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/config/ElePropertyConfig.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/config/ElePropertyConfig.java @@ -3,6 +3,7 @@ package com.electromagnetic.industry.software.manage.config; import cn.hutool.core.io.FileUtil; import com.electromagnetic.industry.software.common.util.EleCommonUtil; import lombok.Getter; +import org.springframework.beans.factory.annotation.Value; import org.springframework.core.env.Environment; import org.springframework.stereotype.Component; @@ -24,6 +25,14 @@ public class ElePropertyConfig { private String prjDir; + @Value("${data.tmp.days:7}") + private int tmpFileStoreDays; + + @Value("${backup.remote.host}") + private String remoteHost = ""; + @Value("${backup.remote.port}") + private int remotePort; + @PostConstruct public void init() { uploadDataDir = EleCommonUtil.isWinOs() ? environment.getProperty("data.upload.windows.tmp.path") : environment.getProperty("data.upload.linux.tmp.path"); diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/tasks/BackupTask.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/tasks/BackupTask.java index b75d50c..43b792e 100644 --- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/tasks/BackupTask.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/tasks/BackupTask.java @@ -1,17 +1,23 @@ package com.electromagnetic.industry.software.manage.tasks; -import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.date.DateTime; +import cn.hutool.core.date.DateUtil; import cn.hutool.core.io.FileUtil; import cn.hutool.core.text.StrFormatter; import cn.hutool.http.HttpUtil; import cn.hutool.json.JSONUtil; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.electromagnetic.industry.software.common.enums.UserOperationModuleEnum; import com.electromagnetic.industry.software.common.pojo.BackupFileResLog; import com.electromagnetic.industry.software.common.resp.ElectromagneticResult; +import com.electromagnetic.industry.software.common.util.IdWorker; import com.electromagnetic.industry.software.manage.config.ElePropertyConfig; import com.electromagnetic.industry.software.manage.mapper.FileBackupLogMapper; +import com.electromagnetic.industry.software.manage.mapper.UserAccessLogMapper; import com.electromagnetic.industry.software.manage.pojo.models.FileBackupLog; +import com.electromagnetic.industry.software.manage.pojo.models.UserAccessLog; +import com.electromagnetic.industry.software.manage.service.FileSystemService; import org.springframework.stereotype.Component; import javax.annotation.Resource; @@ -25,13 +31,14 @@ import java.util.Map; @Component public class BackupTask extends ServiceImpl { - private String host; - private int port; - @Resource private ElePropertyConfig elePropertyConfig; + @Resource + private FileSystemService fileSystemService; + @Resource + private UserAccessLogMapper userAccessLogMapper; -// @Scheduled(cron = "0 0 1 * * ?") + // @Scheduled(cron = "0 0 1 * * ?") public void backup() { long lastFileTime = getLastFileTime(); List files = filter(lastFileTime, elePropertyConfig.getPrjDir()); @@ -45,8 +52,38 @@ public class BackupTask extends ServiceImpl } } +// @Scheduled(cron = "0 0 3 * * ?") + public void deleteTmpFile() { + DateTime backDaysTime = DateUtil.offsetDay(new Date(), elePropertyConfig.getTmpFileStoreDays()); + FileFilter filter = file -> file.lastModified() < backDaysTime.getTime(); + List files = FileUtil.loopFiles(elePropertyConfig.getTmpDir(), filter); + for (File file : files) { + fileSystemService.deleteFile(file.getAbsolutePath()); + UserAccessLog userAccessLog = UserAccessLog.builder() + .id(IdWorker.getSnowFlakeIdString()) + .userId("") + .accessStartTime(new Date()) + .accessEndTime(new Date()) + .accessDuration(0L) + .action("删除") + .requestUrl("") + .requestIp("") + .reqArgs("") + .remoteAddr("") + .accessSuccess(true) + .operationMsg("从系统中物理删除了文件" + file.getName()) + .createTime(new Date()) + .operationModule(UserOperationModuleEnum.DATABASE.key) + .dataId("") + .parentId("") + .response("") + .build(); + userAccessLogMapper.insert(userAccessLog); + } + } + private static List filter(long time, String dir) { - FileFilter filter = file -> file.lastModified() > time; + FileFilter filter = file -> file.lastModified() < time; return FileUtil.loopFiles(dir, filter); } @@ -68,11 +105,9 @@ public class BackupTask extends ServiceImpl } public BackupFileResLog backup(String filePath) { - String prjPath = ""; Map map = new HashMap<>(); map.put("file", new File(filePath)); - map.put("path", prjPath); - String url = StrFormatter.format("http://{}:{}/data/file/backup/upload", host, port); + String url = StrFormatter.format("http://{}:{}/data/file/backup/upload", elePropertyConfig.getRemoteHost(), elePropertyConfig.getRemotePort()); String res = HttpUtil.post(url, map); ElectromagneticResult resObj = JSONUtil.toBean(res, ElectromagneticResult.class); String data = JSONUtil.toJsonStr(resObj.getData()); diff --git a/electrmangnetic/src/main/resources/application.properties b/electrmangnetic/src/main/resources/application.properties index a7a910e..6af01a9 100644 --- a/electrmangnetic/src/main/resources/application.properties +++ b/electrmangnetic/src/main/resources/application.properties @@ -39,4 +39,9 @@ data.linux.user.tmp.path=/szsd/data/eleData/dev/user_tmp prj.folder.max.length=6 -spring.jackson.time-zone=GMT+8 \ No newline at end of file +spring.jackson.time-zone=GMT+8 + +tmp.file.store.days=7 + +backup.remote.host=127.0.0.1 +backup.remote.port=1111 \ No newline at end of file