You've already forked FrameTour-BE
feat(notification): 添加微信订阅消息配置管理及幂等授权功能
- 新增微信订阅消息配置管理控制器,支持模板、场景、事件映射配置 - 实现用户通知授权服务的幂等控制,避免前端重试导致授权次数虚增 - 添加微信订阅消息发送日志记录,用于幂等与排障 - 新增视频生成完成时的订阅消息触发功能 - 实现场景模板查询接口,返回用户授权余额信息 - 添加模板V2相关数据表映射器和实体类 - 集成微信订阅消息触发服务到任务完成流程中
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user