All checks were successful
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 8m16s
5.8 KiB
5.8 KiB
流量模型统一字段替换矩阵
1. 目的
本文用于固化 refactor-traffic-model-semantics 变更前后的字段替换关系,作为后台 / C 端接口、OpenAPI 文档和手工回放的统一对照基线。
2. 统一后的核心字段
本次 contract 收口后,流量相关字段统一为:
| 字段 | 含义 |
|---|---|
current_package_usage_id |
当前主套餐对应的套餐使用记录 ID,无主套餐时为 null |
real_total_mb |
套餐真实总量,内部来源 tb_package_usage.data_limit_mb |
real_used_mb |
套餐真实已用,内部来源 tb_package_usage.data_usage_mb |
virtual_total_mb |
套餐业务停机阈值,优先来源 tb_package_usage.virtual_total_mb_snapshot |
virtual_used_mb |
展示已用量,公式 min(real_used_mb * display_gain_ratio, real_total_mb) |
reduction_pct |
展示增幅比例,公式 (real_total_mb / virtual_total_mb) - 1 |
3. 字段替换矩阵
3.1 后台 GET /api/admin/assets/resolve/:identifier
| 现状字段 | 现状来源 | 新字段 | 新语义 |
|---|---|---|---|
current_package |
主套餐名称 | current_package |
保留,语义不变 |
package_total_mb |
data_limit_mb / virtual_ratio |
real_total_mb |
真总量 |
package_used_mb |
data_usage_mb / virtual_ratio |
real_used_mb |
真已用 |
package_remain_mb |
(data_limit_mb - data_usage_mb) / virtual_ratio |
virtual_total_mb / virtual_used_mb |
不再返回 remain,改为显式真/虚语义 |
| 无 | 无 | current_package_usage_id |
当前主套餐使用记录 ID |
| 无 | 无 | reduction_pct |
展示增幅比例 |
3.2 后台 GET /api/admin/assets/:identifier/current-package
| 现状字段 | 现状来源 | 新字段 | 新语义 |
|---|---|---|---|
data_limit_mb |
tb_package_usage.data_limit_mb |
real_total_mb |
真总量 |
data_usage_mb |
tb_package_usage.data_usage_mb |
real_used_mb |
真已用 |
virtual_limit_mb |
data_limit_mb / virtual_ratio |
virtual_total_mb |
业务停机阈值 |
virtual_used_mb |
data_usage_mb / virtual_ratio |
virtual_used_mb |
改为统一公式计算 |
virtual_remain_mb |
(data_limit_mb - data_usage_mb) / virtual_ratio |
删除 | 不再返回 |
virtual_ratio |
tb_package.virtual_ratio |
reduction_pct |
只保留外部增幅比例 |
| 无 | 无 | package_usage_id |
保留既有字段 |
| 无 | tb_package_usage.enable_virtual_data_snapshot |
enable_virtual_data |
返回套餐使用记录快照,供前端区分是否启用虚流量 |
3.3 后台 GET /api/admin/assets/:identifier/packages
| 现状字段 | 现状来源 | 新字段 | 新语义 |
|---|---|---|---|
data_limit_mb |
tb_package_usage.data_limit_mb |
real_total_mb |
真总量 |
data_usage_mb |
tb_package_usage.data_usage_mb |
real_used_mb |
真已用 |
virtual_limit_mb |
data_limit_mb / virtual_ratio |
virtual_total_mb |
业务停机阈值 |
virtual_used_mb |
data_usage_mb / virtual_ratio |
virtual_used_mb |
统一公式 |
virtual_remain_mb |
(data_limit_mb - data_usage_mb) / virtual_ratio |
删除 | 不再返回 |
virtual_ratio |
tb_package.virtual_ratio |
reduction_pct |
只保留外部比例 |
package_usage_id |
tb_package_usage.id |
package_usage_id |
保留,作为记录主键 |
| 无 | tb_package_usage.enable_virtual_data_snapshot |
enable_virtual_data |
返回套餐使用记录快照,供前端区分是否启用虚流量 |
3.4 C 端 GET /api/c/v1/asset/info
| 现状字段 | 现状来源 | 新字段 | 新语义 |
|---|---|---|---|
current_package |
主套餐名称 | current_package |
保留 |
package_total_mb |
来自后台资产解析结果 | real_total_mb |
真总量 |
package_used_mb |
来自后台资产解析结果 | real_used_mb |
真已用 |
package_remain_mb |
来自后台资产解析结果 | virtual_total_mb / virtual_used_mb |
不再返回 remain |
| 无 | 无 | current_package_usage_id |
当前主套餐使用记录 ID |
| 无 | 无 | reduction_pct |
展示增幅比例 |
| 无 | tb_package_usage.enable_virtual_data_snapshot |
enable_virtual_data |
返回当前主套餐快照,供前端区分是否启用虚流量 |
3.5 C 端 GET /api/c/v1/asset/package-history
| 现状字段 | 现状来源 | 新字段 | 新语义 |
|---|---|---|---|
data_limit_mb |
tb_package_usage.data_limit_mb |
real_total_mb |
真总量 |
data_usage_mb |
tb_package_usage.data_usage_mb |
real_used_mb |
真已用 |
virtual_limit_mb |
data_limit_mb / virtual_ratio |
virtual_total_mb |
业务停机阈值 |
virtual_used_mb |
data_usage_mb / virtual_ratio |
virtual_used_mb |
统一公式 |
virtual_remain_mb |
(data_limit_mb - data_usage_mb) / virtual_ratio |
删除 | 不再返回 |
virtual_ratio |
tb_package.virtual_ratio |
reduction_pct |
只保留外部比例 |
package_usage_id |
tb_package_usage.id |
package_usage_id |
保留 |
4. OpenAPI 对齐基线
当前 docs/admin-openapi.yaml 仍存在以下待淘汰字段定义:
package_total_mbpackage_used_mbpackage_remain_mbvirtual_limit_mbvirtual_remain_mbvirtual_ratio
本次变更完成后,后台 OpenAPI 需仅保留:
current_package_usage_idreal_total_mbreal_used_mbvirtual_total_mbvirtual_used_mbreduction_pct
5. 路由基线
当前实际注册路由已经统一为 :identifier 口径:
GET /api/admin/assets/resolve/:identifierGET /api/admin/assets/:identifier/current-packageGET /api/admin/assets/:identifier/packagesGET /api/c/v1/asset/infoGET /api/c/v1/asset/package-history
因此,本次变更仅做字段契约收口,不调整上述路由路径。