feat(notification): 添加微信订阅消息配置管理及幂等授权功能

- 新增微信订阅消息配置管理控制器,支持模板、场景、事件映射配置
- 实现用户通知授权服务的幂等控制,避免前端重试导致授权次数虚增
- 添加微信订阅消息发送日志记录,用于幂等与排障
- 新增视频生成完成时的订阅消息触发功能
- 实现场景模板查询接口,返回用户授权余额信息
- 添加模板V2相关数据表映射器和实体类
- 集成微信订阅消息触发服务到任务完成流程中
This commit is contained in:
2026-01-01 17:53:59 +08:00
parent 81dc2f1b86
commit f1a2958251
61 changed files with 3655 additions and 9 deletions

View File

@@ -14,16 +14,25 @@ import java.util.List;
*/
@Data
public class NotificationAuthRecordReq {
/**
* 通知模板ID列表 - 支持批量授权
*/
@NotEmpty(message = "模板ID列表不能为空")
private List<String> templateIds;
/**
* 景区ID
*/
@NotNull(message = "景区ID不能为空")
private Long scenicId;
}
/**
* 前端幂等ID(可选)
* <p>
* 目的:避免前端重试导致授权次数虚增。
* 同一次用户授权动作(一次 requestSubscribeMessage)建议复用同一个 requestId。
* </p>
*/
private String requestId;
}

View File

@@ -0,0 +1,55 @@
package com.ycwl.basic.model.mobile.notify.resp;
import lombok.Data;
import java.util.List;
/**
* 场景可申请的订阅消息模板列表(含用户授权余额)
*
* @Author: System
* @Date: 2025/12/31
*/
@Data
public class WechatSubscribeSceneTemplatesResp {
private Long scenicId;
private String sceneKey;
private List<TemplateInfo> templates;
@Data
public static class TemplateInfo {
/**
* 逻辑模板键(业务固定)
*/
private String templateKey;
/**
* 微信订阅消息模板ID(tmplId)
*/
private String wechatTemplateId;
/**
* 前端展示标题
*/
private String title;
/**
* 前端展示描述
*/
private String description;
/**
* 用户剩余授权次数
*/
private Integer remainingCount;
/**
* 是否有授权(remainingCount > 0)
*/
private Boolean hasAuthorization;
}
}