feat(退款): AUG26-006 补充当前退款套餐已用量与总量
All checks were successful
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 8m33s
All checks were successful
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 8m33s
补齐 PRD §2.3.1「退款管理补充字段」:退款列表、详情与导出新增 「当前退款套餐已用量」与「当前退款套餐总量」两个纯展示字段。 - 套餐定位口径与退款套餐失效保持一致,按优先级取唯一一条: 冻结的 package_usage_id(且属于该订单)→ 订单主套餐 → 订单任一套餐, 同级按标识升序。不按当前世代或当前生效套餐推断;不按套餐状态过滤, 使退款后套餐转已失效时仍能回看用量。 - 列表与详情用固定两次查询批量解析(按标识、按订单),查询次数不随条数增长; 详情复用同一函数。解析不到套餐或记录已物理删除时返回 0,不阻断读取。 - 导出新增两列并改用同一优先级的 LATERAL 取法,不再依赖只按 r.package_usage_id 的 join——生产库 1296 条退款仅 157 条带该字段,旧取法会让多数行显示零值。 - 不改变退款金额校验、冻结实收、套餐失效、接续、停机与佣金回溯任何规则。 验证:测试库 junhong_cmp_test 实测冻结记录、订单主套餐回退、记录缺失返回 0 三项 解析场景与「4 条退款固定 2 次查询」;并以同批 43 条退款对拍 Go 解析器与导出 SQL, 口径不一致 0 条;导出 43 行列数与表头一致。无迁移、无接口路径变化。
This commit is contained in:
@@ -235,6 +235,44 @@
|
||||
- **WHEN** 渠道退款调用或恢复完成后写入审计
|
||||
- **THEN** 审计只记录业务标识、金额、状态与脱敏摘要,不记录商户密钥或凭证原文
|
||||
|
||||
### Requirement: 退款展示当前退款套餐用量
|
||||
|
||||
退款管理列表、详情与导出 SHALL 返回「当前退款套餐已用量」与「当前退款套餐总量」两个字段,取值为该套餐使用记录当前可取得的真实已用量与真实总量(单位 MB)。两个字段 MUST 仅用于展示、查询与导出,MUST NOT 参与或改变退款金额校验、冻结实收金额、套餐失效、接续下一套餐、停机评估、佣金回溯或渠道退款任何规则。
|
||||
|
||||
「当前退款套餐」MUST 按与退款套餐失效一致的口径解析,且 MUST 按下列优先级取唯一一条:退款申请冻结的套餐使用记录(其 `package_usage_id`);该退款关联订单下 `master_usage_id` 为空的主套餐使用记录;该退款关联订单下任一套餐使用记录。同一优先级内按使用记录标识升序取第一条,保证同一退款每次返回相同结果。解析 MUST NOT 按当前生效套餐或当前世代推断,也 MUST NOT 跨订单取套餐。
|
||||
|
||||
套餐使用记录不存在、已被物理删除或字段为空时,两个字段 SHALL 返回 0,且 MUST NOT 因此阻断列表、详情或导出。列表返回 MUST NOT 因逐条查询套餐使用记录而放大查询次数。
|
||||
|
||||
#### Scenario: 退款申请已冻结套餐使用记录
|
||||
|
||||
- **GIVEN** 退款申请记录了套餐使用记录标识,且该记录属于其关联订单
|
||||
- **WHEN** 查询退款列表、详情或导出
|
||||
- **THEN** 两个字段返回该套餐使用记录的真实已用量与真实总量
|
||||
|
||||
#### Scenario: 退款申请未冻结套餐使用记录
|
||||
|
||||
- **GIVEN** 退款申请的套餐使用记录为空,且其关联订单存在主套餐使用记录
|
||||
- **WHEN** 查询退款列表、详情或导出
|
||||
- **THEN** 两个字段返回该订单主套餐使用记录的已用量与总量,不返回零值
|
||||
|
||||
#### Scenario: 套餐使用记录已不存在
|
||||
|
||||
- **GIVEN** 退款申请冻结的套餐使用记录已被物理删除,且解析结果为空
|
||||
- **WHEN** 查询退款列表、详情或导出
|
||||
- **THEN** 两个字段返回 0,且列表、详情与导出仍正常返回该退款申请
|
||||
|
||||
#### Scenario: 列表不因套餐字段放大查询
|
||||
|
||||
- **GIVEN** 退款列表一页返回多条退款申请
|
||||
- **WHEN** 查询该页列表
|
||||
- **THEN** 系统以批量方式读取套餐使用记录,查询次数不随该页退款申请条数线性增长
|
||||
|
||||
#### Scenario: 展示字段不影响资金与权益规则
|
||||
|
||||
- **GIVEN** 任一退款申请
|
||||
- **WHEN** 系统解析并返回这两个展示字段
|
||||
- **THEN** 退款金额校验、冻结实收金额、套餐失效、接续下一套餐、停机评估与佣金回溯行为均不发生变化
|
||||
|
||||
## 可达操作索引
|
||||
|
||||
本节只用于入口导航,不是行为 Requirement;业务义务以上述 Requirements 为准。
|
||||
|
||||
Reference in New Issue
Block a user