优化备份相关

This commit is contained in:
chenxudong 2025-02-28 09:56:47 +08:00
parent 347ae33c71
commit dd85e18e76
5 changed files with 28 additions and 18 deletions

View File

@ -26,13 +26,13 @@ public class FileRecycleController {
}
@RequestMapping("remove")
@UserOperation(value = "查看回收站", modelName = UserOperationModuleEnum.DATABASE)
@UserOperation(value = "物理删除", modelName = UserOperationModuleEnum.DATABASE)
public ElectromagneticResult<?> remove(@RequestParam String fileId) {
return fileRecycleService.remove(fileId);
}
@RequestMapping("list")
@UserOperation(value = "查看回收站", modelName = UserOperationModuleEnum.DATABASE)
@UserOperation(value = "文件恢复", modelName = UserOperationModuleEnum.DATABASE)
public ElectromagneticResult<?> recover(@RequestParam String fileId) {
return fileRecycleService.recover(fileId);
}

View File

@ -1,14 +1,12 @@
package com.electromagnetic.industry.software.manage.pojo.models;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Builder;
import lombok.Data;
import lombok.experimental.Accessors;
import java.util.Date;
@TableName("file_backup_log")
@Builder
@Data
@Accessors(chain = true)
public class FileBackupLog {
@ -17,6 +15,8 @@ public class FileBackupLog {
private String fileId;
private String fileCode;
private boolean backupSuccess;
private Date createTime;

View File

@ -422,4 +422,11 @@ public class CommonService {
return "";
}
public String getFileCode(String path) {
int index = path.lastIndexOf(".");
return path.substring(index + 1);
}
}

View File

@ -132,22 +132,22 @@ public class FileRecycleServiceImpl implements FileRecycleService {
String saveFileName = edFileInfo.getFileName() + "." + edFileInfo.getFileType() + "." + edFileInfo.getFileCode();
// 表示从没有备份过该文件
if (fileBackupLog != null) {
if (fileBackupLog == null) {
long startTime = System.currentTimeMillis();
BackupFileResLog backup = backupTask.backup(fileSysPath);
long endTime = System.currentTimeMillis();
FileBackupLog backupLog = FileBackupLog.builder()
.id(IdWorker.getSnowFlakeIdString())
.fileId(edFileInfo.getId())
.startTime(startTime)
.endTime(endTime)
.duration(endTime - startTime)
.fileTime(FileUtil.lastModifiedTime(fileSysPath).getTime())
.createTime(new Date())
.fileName(saveFileName)
.source(FileBackupSource.SYS_BACKUP.code)
.build();
FileBackupLog backupLog = new FileBackupLog()
.setId(IdWorker.getSnowFlakeIdString())
.setFileId(edFileInfo.getId())
.setStartTime(startTime)
.setEndTime(endTime)
.setDuration(endTime - startTime)
.setFileTime(FileUtil.lastModifiedTime(fileSysPath).getTime())
.setCreateTime(new Date())
.setFileName(saveFileName)
.setFileCode(commonService.getFileCode(fileSysPath))
.setSource(FileBackupSource.SYS_BACKUP.code);
if (backup.getBackupSuccess()) {
backupLog.setBackupSuccess(true);
@ -168,6 +168,7 @@ public class FileRecycleServiceImpl implements FileRecycleService {
.setDuration(endTime - startTime)
.setFileTime(FileUtil.lastModifiedTime(fileSysPath).getTime())
.setCreateTime(new Date())
.setFileCode(commonService.getFileCode(fileSysPath))
.setFileName(saveFileName);
if (backup.getBackupSuccess()) {
fileBackupLog.setBackupSuccess(true);

View File

@ -1,5 +1,6 @@
package com.electromagnetic.industry.software.manage.tasks;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.io.FileUtil;
@ -18,6 +19,7 @@ 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.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
@ -52,7 +54,7 @@ public class BackupTask extends ServiceImpl<FileBackupLogMapper, FileBackupLog>
}
}
// @Scheduled(cron = "0 0 3 * * ?")
@Scheduled(cron = "0 0 3 * * ?")
public void deleteTmpFile() {
DateTime backDaysTime = DateUtil.offsetDay(new Date(), elePropertyConfig.getTmpFileStoreDays());
FileFilter filter = file -> file.lastModified() < backDaysTime.getTime();
@ -98,7 +100,7 @@ public class BackupTask extends ServiceImpl<FileBackupLogMapper, FileBackupLog>
.select(FileBackupLog::getFileTime)
.orderByDesc(FileBackupLog::getFileTime)
.last("limit 1"));
if (eleFileBackupLogs.isEmpty()) {
if (CollUtil.isEmpty(eleFileBackupLogs)) {
return 0L;
}
return eleFileBackupLogs.get(0).getFileTime();