feat(notify): 添加微信订阅消息去重功能

- 在 WechatSubscribeTemplateConfigEntity 中新增 dedupSeconds 字段用于配置去重窗口
- 将去重配置从事件模板映射复制到通知配置实体中
- 集成 RedisTemplate 实现基于时间窗口的消息去重机制
- 支持三种去重模式:永久去重(0)、不设去重(负数)、窗口期去重(正数)
- 实现基于 Redis 分布式锁的重复消息过滤逻辑
- 为非永久去重场景生成唯一数据库幂等键以避免冲突
This commit is contained in:
2026-01-20 20:19:44 +08:00
parent c3fcfdd633
commit 82e844a779
3 changed files with 43 additions and 3 deletions

View File

@@ -1,5 +1,6 @@
package com.ycwl.basic.model.pc.notify.entity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
@@ -64,6 +65,13 @@ public class WechatSubscribeTemplateConfigEntity {
*/
private String description;
/**
* 去重窗口(秒),0表示永久去重,小于0表示不去重,大于0表示窗口期去重
* 来自 wechat_subscribe_event_template 表,仅在事件触发时有效
*/
@TableField(exist = false)
private Integer dedupSeconds;
private Date createTime;
private Date updateTime;