feat(收口): 补齐 8 月迭代缺口并同步 Spec 与证据链
Some checks failed
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Has been cancelled

- 新增六对成对迁移 000232–000237:H5 弹窗类型、退款结算标识与申请人备注、优先轮询事实字段与两个新终态、通道阈值命中留痕、手机号最近解绑人、提现资格校验留痕
- 退款:原因必填与申请人备注、来源支付与渠道流水冻结、线下处理流水号补录审计、按订单查询可选退款方式、企微审批材料补齐且新增字段缺失映射即明确失败
- 优先轮询:人工关闭、有效期到期独立周期任务、失败与过期人工重触发、事实字段与异常重试查询、资产解析端点只读投影
- 通道阈值:命中事实同事务留痕与命中记录查询;员工账单:列表筛选与详情投影;商户池:列表投影与统计周期语义;H5:弹窗类型与类别排序
- 手机号:有效关联数量与最近解绑人、短信验证码失败次数限制;导出:佣金明细十五列与报表序号列
- 时间筛选:三处新增筛选纳入统一严格解析契约,员工账单产生时间参数改名
- 同步 12 份主 Spec 需求、两端点与异步任务证据链,门禁 context-health 与 OpenSpec 校验通过
This commit is contained in:
2026-09-18 15:34:29 +08:00
parent 5e78809b93
commit 5ed6b39deb
142 changed files with 7878 additions and 964 deletions

View File

@@ -39,7 +39,9 @@
### Requirement: 运营弹窗实时匹配
系统 SHALL 允许超级管理员和平台用户管理全局运营弹窗的标题、内容、有效期、启停、优先级、店铺/设备类型/卡类型范围、四种页面首页、资产详情、套餐购买、资产钱包充值、频率和一个可选受控操作。范围同一维度多选为任一匹配未配置范围即全量已配置范围而当前资产在该维度没有可判定值时该配置不命中。H5 请求必须携带当前页面资产标识。操作仅可为套餐购买或资产钱包充值,不得配置任意 URL。
系统 SHALL 允许超级管理员和平台用户管理全局运营弹窗的标题、内容、**弹窗类型**、有效期、启停、优先级、店铺/设备类型/卡类型范围、四种页面(首页、资产详情、套餐购买、资产钱包充值)、频率和一个可选受控操作。弹窗类型 MUST 为必填单选,取值范围为 `套餐政策推广``通用公告`;创建 MUST 提供该字段,更新按既有部分更新语义(未传时保持原值),一经传入 MUST 按同一取值域校验。类型变更而请求未显式传优先级时,该配置的显式优先级 MUST 保持不变(类型缺省优先级只在创建路径生效,类别序仍保证 `套餐政策推广` 优先于 `通用公告`)。范围同一维度多选为任一匹配未配置范围即全量已配置范围而当前资产在该维度没有可判定值时该配置不命中。H5 请求必须携带当前页面资产标识。操作仅可为套餐购买或资产钱包充值,不得配置任意 URL。
候选排序 SHALL 先按有效优先级类别再按显式优先级:风险换卡提醒高于全部运营弹窗;运营弹窗内 `套餐政策推广` MUST 高于 `通用公告`;同一类别内按显式优先级降序、相同优先级取最近更新时间最新。类别顺序 MUST 表达为显式的类别排序MUST NOT 依赖类型取值的字典序(否则「通用公告」会排在「套餐政策推广」之前,与本条相反)。显式优先级缺省时 MUST 取该类型的默认值。既有配置在本次上线时 MUST 被赋予一个确定类型(默认 `通用公告`),其显式优先级取值与同类别内相对顺序 MUST 保持不变。
运营弹窗仅在客户请求候选时实时匹配并创建或复用通知;每客户每配置支持仅一次或每天一次。候选只返回优先级最高一条,同优先级取最近更新时间最新,启停操作同样更新最近更新时间。配置修改形成新版本,既有通知保留原快照且不被改写;修改后的仅一次配置可向原命中客户重新投放。配置到期或停用停止新投放,历史通知在通知中心展示 90 天。
@@ -50,9 +52,21 @@
#### Scenario: 优先级与最近更新排序
- **WHEN** 多条运营配置同时命中且优先级相同
- **WHEN** 多条同类型运营配置同时命中且优先级相同
- **THEN** 系统只返回最近更新时间最新的一条
#### Scenario: 推广优先于公告
- **GIVEN** 一条 `套餐政策推广` 配置与一条 `通用公告` 配置同时命中,且公告配置的显式优先级更高
- **WHEN** 客户请求候选
- **THEN** 系统返回 `套餐政策推广` 配置,类型类别优先于显式优先级
#### Scenario: 既有配置类型补齐
- **GIVEN** 一条本次上线前创建的运营配置
- **WHEN** 上线迁移完成
- **THEN** 该配置具有确定类型(默认 `通用公告`)且其显式优先级与同类别内顺序不变
#### Scenario: 独立卡的设备类型维度
- **WHEN** 命中的运营配置配置了设备类型范围,但当前资产是未绑定设备的独立卡