diff --git a/mallinkSchedule/src/main/java/com/iformall/schedule/WxMsgRecordSchedule.java b/mallinkSchedule/src/main/java/com/iformall/schedule/WxMsgRecordSchedule.java new file mode 100644 index 000000000..7c365a211 --- /dev/null +++ b/mallinkSchedule/src/main/java/com/iformall/schedule/WxMsgRecordSchedule.java @@ -0,0 +1,23 @@ +package com.iformall.schedule; + +import com.iformall.service.WxMsgRecordService; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.scheduling.annotation.Scheduled; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; + +@Component +public class WxMsgRecordSchedule { + + @Resource + private WxMsgRecordService msgRecordService; + + @Value("${fm.clear_data_before_msg_record}") + private int monthBefore; + + @Scheduled(cron = "0 0 1 1 * ?") // 每月1日凌晨01:00清理过期的wx_msg_record表 + public void clearOldData() { + msgRecordService.clearOldData(monthBefore); + } +} diff --git a/mallinkSchedule/src/main/resources/application-dev.yml b/mallinkSchedule/src/main/resources/application-dev.yml index 4111bc3f4..33a5e72f7 100644 --- a/mallinkSchedule/src/main/resources/application-dev.yml +++ b/mallinkSchedule/src/main/resources/application-dev.yml @@ -111,6 +111,7 @@ fm: upload_dir: /home/test/server/uploads/ monitor_emails: houtaikaifa@iformall.com,xiaochengxufabu@iformall.com monitor_enable: true + clear_data_before_msg_record: 1 logging: level: diff --git a/mallinkSchedule/src/main/resources/application-prod.yml b/mallinkSchedule/src/main/resources/application-prod.yml index d6de6a6fe..e2076b714 100644 --- a/mallinkSchedule/src/main/resources/application-prod.yml +++ b/mallinkSchedule/src/main/resources/application-prod.yml @@ -96,6 +96,7 @@ fm: upload_dir: /home/ec2-user/server/uploads/ monitor_emails: houtaikaifa@iformall.com,xiaochengxufabu@iformall.com monitor_enable: false + clear_data_before_msg_record: 1 logging: level: diff --git a/mallinkSchedule/src/main/resources/application-test.yml b/mallinkSchedule/src/main/resources/application-test.yml index a106e74b8..95e2555e5 100644 --- a/mallinkSchedule/src/main/resources/application-test.yml +++ b/mallinkSchedule/src/main/resources/application-test.yml @@ -96,6 +96,7 @@ fm: upload_dir: /home/ec2-user/server/uploads/ monitor_emails: houtaikaifa@iformall.com,xiaochengxufabu@iformall.com monitor_enable: false + clear_data_before_msg_record: 1 logging: level: diff --git a/mallinkService/src/main/java/com/iformall/service/WxMsgRecordService.java b/mallinkService/src/main/java/com/iformall/service/WxMsgRecordService.java index 14b4fb542..c9e186d9b 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxMsgRecordService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxMsgRecordService.java @@ -10,4 +10,10 @@ public interface WxMsgRecordService { List findList(WxMsgRecord record); void update(WxMsgRecord record); + + /** + * + * @param monthBefore 距离当前月份数 + */ + void clearOldData(int monthBefore) ; } diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxMsgRecordServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxMsgRecordServiceImpl.java index 45d22ab59..2a18a7f11 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxMsgRecordServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxMsgRecordServiceImpl.java @@ -1,5 +1,7 @@ package com.iformall.service.impl; +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.iformall.common.IdWorker; import com.iformall.domain.po.msg.*; import com.iformall.enums.EnumMsgRecordStatus; @@ -8,6 +10,11 @@ import com.iformall.service.WxMsgRecordService; import com.iformall.utils.JsonUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; + +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; +import java.util.Arrays; import java.util.List; /** @@ -59,4 +66,15 @@ public class WxMsgRecordServiceImpl implements WxMsgRecordService { public void update(WxMsgRecord record) { wxMsgRecordMapper.updateByBaseMsg(record); } + + @Override + public void clearOldData(int monthBefore) { + if (monthBefore == 0) { + monthBefore = 1; + } + LocalDate ld = LocalDate.now().minusMonths(monthBefore); + wxMsgRecordMapper.delete(new QueryWrapper(). + in("msg_status", Arrays.asList(EnumMsgRecordStatus.CONSUME_SUCC.getCode())) + .le("createtime", DateTimeFormatter.ofPattern("yyyy-MM-dd").format(ld))); + } }