feat(notify): 添加批量查询用户授权余额功能

- 新增批量查询用户授权余额接口 /api/mobile/notify/auth/batch-remaining
- 实现批量检查用户对多个模板的授权记录功能
- 添加景区所有场景及模板列表查询接口并支持缓存
- 优化授权记录查询性能,使用批量查询替代逐个查询
- 新增批量查询请求对象 BatchRemainingCountReq 和响应对象 WechatSubscribeAllScenesResp
- 在数据层添加批量查询用户授权记录的 SQL 映射
- 实现缓存管理机制,支持所有场景模板配置的缓存读写与清理
This commit is contained in:
2026-01-10 17:30:48 +08:00
parent 02f1392355
commit c9cc90c842
9 changed files with 316 additions and 15 deletions

View File

@@ -0,0 +1,29 @@
package com.ycwl.basic.model.mobile.notify.req;
import lombok.Data;
import jakarta.validation.constraints.NotEmpty;
import jakarta.validation.constraints.NotNull;
import java.util.List;
/**
* 批量查询用户授权余额请求
*
* @Author: System
* @Date: 2026/01/10
*/
@Data
public class BatchRemainingCountReq {
/**
* 通知模板ID列表(微信 wechatTemplateId)
*/
@NotEmpty(message = "模板ID列表不能为空")
private List<String> templateIds;
/**
* 景区ID
*/
@NotNull(message = "景区ID不能为空")
private Long scenicId;
}

View File

@@ -0,0 +1,59 @@
package com.ycwl.basic.model.mobile.notify.resp;
import lombok.Data;
import java.util.List;
/**
* 景区所有场景及其订阅消息模板列表(静态配置,不含用户授权信息)
* 用户授权信息通过 /api/mobile/notify/auth/batch-remaining 接口获取
*
* @Author: System
* @Date: 2026/01/10
*/
@Data
public class WechatSubscribeAllScenesResp {
private Long scenicId;
private List<SceneWithTemplates> scenes;
@Data
public static class SceneWithTemplates {
/**
* 场景标识
*/
private String sceneKey;
/**
* 该场景下的模板列表
*/
private List<StaticTemplateInfo> templates;
}
/**
* 静态模板信息(不含用户授权信息,可缓存)
*/
@Data
public static class StaticTemplateInfo {
/**
* 逻辑模板键(业务固定)
*/
private String templateKey;
/**
* 微信订阅消息模板ID(tmplId)
*/
private String wechatTemplateId;
/**
* 前端展示标题
*/
private String title;
/**
* 前端展示描述
*/
private String description;
}
}