Files
break 3c371ab88a
All checks were successful
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 8m51s
修复已用完套餐展示
2026-09-08 17:19:30 +08:00

28 lines
1.5 KiB
Markdown

## Context
现有资产信息组装只查询 `status=1` 的主套餐。套餐达到有效业务阈值会变为 `status=2`,但仍未到期;此时 C 端资产信息把套餐摘要投影为无套餐零值。
## Goals / Non-Goals
**Goals:**
- 让 C 端资产信息对 `status IN (1,2)` 的当前主套餐使用同一套摘要投影。
- 维持既有主套餐选择顺序与空套餐响应形状。
**Non-Goals:**
- 不改变虚流量耗尽阈值或任何套餐状态流转。
- 不改变待生效、已过期、已失效套餐的展示规则。
- 不修改套餐历史接口、价格、续费资格、Schema 或迁移。
## Decisions
- 将资产信息使用的主套餐查询语义扩展为 `status IN (1,2)`,并仅限 `master_usage_id IS NULL`。两种状态都是当前生命周期内占位的主套餐;已有生命周期与到期扫描也以这两个状态共同处理。
- 保留既有 `priority ASC, activated_at ASC` 排序,避免多记录异常时改变当前选择结果。
- 套餐摘要继续直接使用选中的 `PackageUsage` 快照及统一流量指标计算,避免针对已用完状态复制或重算数据。
## Risks / Trade-offs
- B1 的 `current_package_*` 字段会从零值变为已用完套餐数据;这是用户要求的兼容性行为修正,前端需按已用完状态展示而非将有使用记录视为可继续使用。
- 若存量数据同时存在多条 `status IN (1,2)` 主套餐,接口沿用既有排序选第一条;本变更不修复该数据不变量问题。