From 31e6b01b4eca6e006ce9359f7e780db2b74a1314 Mon Sep 17 00:00:00 2001 From: thinkgem Date: Thu, 26 Oct 2023 11:27:50 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E4=B8=80=E4=B8=AA=E6=97=A5?= =?UTF-8?q?=E5=BF=97=E6=B8=85=E7=90=86=E6=8E=A5=E5=8F=A3=EF=BC=8C=E5=8F=AF?= =?UTF-8?q?=E6=A0=B9=E6=8D=AE=E9=9C=80=E8=A6=81=E5=88=9B=E5=BB=BAjob?= =?UTF-8?q?=E8=B0=83=E7=94=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/jeesite/modules/sys/dao/LogDao.java | 6 ++++ .../modules/sys/service/LogService.java | 10 ++++++- .../service/support/LogServiceSupport.java | 29 +++++++++++++++++++ .../resources/mappings/modules/sys/LogDao.xml | 6 ++++ 4 files changed, 50 insertions(+), 1 deletion(-) diff --git a/modules/core/src/main/java/com/jeesite/modules/sys/dao/LogDao.java b/modules/core/src/main/java/com/jeesite/modules/sys/dao/LogDao.java index 7b35d041..df8fa1cf 100644 --- a/modules/core/src/main/java/com/jeesite/modules/sys/dao/LogDao.java +++ b/modules/core/src/main/java/com/jeesite/modules/sys/dao/LogDao.java @@ -18,4 +18,10 @@ import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; @ConditionalOnProperty(name="user.enabled", havingValue="true", matchIfMissing=true) public interface LogDao extends CrudDao { + /** + * 删除某个日期之前创建的日志 + * @param log .createDate + */ + int deleteLogBefore(Log log); + } diff --git a/modules/core/src/main/java/com/jeesite/modules/sys/service/LogService.java b/modules/core/src/main/java/com/jeesite/modules/sys/service/LogService.java index 986e2c49..2509ae87 100644 --- a/modules/core/src/main/java/com/jeesite/modules/sys/service/LogService.java +++ b/modules/core/src/main/java/com/jeesite/modules/sys/service/LogService.java @@ -25,5 +25,13 @@ public interface LogService extends CrudServiceApi { * 不使用数据库事务,执行插入日志 */ void insertLog(Log entity); - + + /** + * 清理指定日期之前的日志(可新建job定时调用) + * 1、清理1年前的所有日志:logService.deleteLogBefore(1, 0, 0); + * 2、清理6个月前的所有日志:logService.deleteLogBefore(0, 6, 0); + * 3、清理7天前的所有日志:logService.deleteLogBefore(0, 0, 7); + * 4、清理1年6个月前的所有日志:logService.deleteLogBefore(1, 6, 0); + */ + void deleteLogBefore(Integer year, Integer months, Integer days); } diff --git a/modules/core/src/main/java/com/jeesite/modules/sys/service/support/LogServiceSupport.java b/modules/core/src/main/java/com/jeesite/modules/sys/service/support/LogServiceSupport.java index 862ce037..f80eecfb 100644 --- a/modules/core/src/main/java/com/jeesite/modules/sys/service/support/LogServiceSupport.java +++ b/modules/core/src/main/java/com/jeesite/modules/sys/service/support/LogServiceSupport.java @@ -4,10 +4,13 @@ */ package com.jeesite.modules.sys.service.support; +import java.util.Date; + import org.springframework.transaction.annotation.Transactional; import com.jeesite.common.datasource.DataSourceHolder; import com.jeesite.common.entity.Page; +import com.jeesite.common.lang.DateUtils; import com.jeesite.common.service.CrudService; import com.jeesite.modules.sys.dao.LogDao; import com.jeesite.modules.sys.entity.Log; @@ -50,4 +53,30 @@ public class LogServiceSupport extends CrudService dao.insert(entity); } + /** + * 清理指定日期之前的日志(可新建job定时调用) + * 1、清理1年前的所有日志:logService.deleteLogBefore(1, 0, 0); + * 2、清理6个月前的所有日志:logService.deleteLogBefore(0, 6, 0); + * 3、清理7天前的所有日志:logService.deleteLogBefore(0, 0, 7); + * 4、清理1年6个月前的所有日志:logService.deleteLogBefore(1, 6, 0); + */ + @Override + @Transactional + public void deleteLogBefore(Integer year, Integer months, Integer days) { + Date date = DateUtils.getOfDayLast(new Date()); + if (year != null && year != 0) { + date = DateUtils.addYears(date, -year); + } + if (months != null && months != 0) { + date = DateUtils.addMonths(date, -months); + } + if (days != null && days != 0) { + date = DateUtils.addDays(date, -days); + } + Log log = new Log(); + log.setCreateDate(date); + dao.deleteLogBefore(log); + } + + } diff --git a/modules/core/src/main/resources/mappings/modules/sys/LogDao.xml b/modules/core/src/main/resources/mappings/modules/sys/LogDao.xml index 0c113b69..68c6e2c4 100644 --- a/modules/core/src/main/resources/mappings/modules/sys/LogDao.xml +++ b/modules/core/src/main/resources/mappings/modules/sys/LogDao.xml @@ -20,4 +20,10 @@ --> + + + DELETE FROM ${_prefix}sys_log + WHERE create_date < #{createDate} + + \ No newline at end of file