# 1.0 精简优化 — 测试重点说明

> 面向测试同学：本次优化以**性能收敛**为主，产品规则与对外 API 契约原则上不变。  
> 请重点回归「行为是否与优化前一致」，并额外覆盖下列变更点。

---

## 一、测试优先级总览

| 优先级 | 模块 | 说明 |
|--------|------|------|
| P0 | 支持等级升/降级 | 改回同步计算 + 新增增量 cron 兜底，实时性要求高 |
| P0 | 短剧支持 / 购机器人 / 支付后等级 | 主路径必须立刻反映等级变化 |
| P1 | 每日任务列表与完成 | ListTask / 支持类任务判定逻辑有改 |
| P1 | 机器人列表（ListRobotTips） | 列表统计缓存、buy_limit 持仓逻辑 |
| P1 | 机器人结算（中午 12 点） | 改为并发分片结算 |
| P2 | 排行榜 / 日统计 cron | 执行频率与错峰调整，结果应对齐 |
| P2 | 用户表字段迁移 | 无用列 DROP，相关后台展示/写入 |
| P3 | 启动回填 / 帮扶补贴开关 | 默认关闭，确认不影响现网业务 |

---

## 二、P0：支持等级（必测）

### 2.1 改动摘要

- **主路径**：支持短剧、购买机器人、购买支持等级机器人、支付返佣处理完成后，**同步**重算本人及最多 5 级上级支持等级（不再走异步队列）。
- **增量兜底**：每分钟扫描近 **2 分钟**内有 `tips_ledgers` / `active_value_ledgers` 变动的用户，每轮最多约 **50** 人串行重算。
- **次级兜底**：原 `checkLv2Upgrade`（每小时 :53）仍保留，需配置 `tips.refresh_support_level=true`。

### 2.2 建议用例

| 编号 | 场景 | 预期 |
|------|------|------|
| SL-01 | 新用户首次短剧支持，达到 VIP/L2 条件 | 接口返回后查用户 `tips_level` 已更新，无需等待 cron |
| SL-02 | 购买机器人后活跃值/份额达标 | 本人等级立即升级；邀请链上级（1–5 级）等级按规则变化 |
| SL-03 | 购买支持等级机器人 `BuyTipsLeveRobot` | 等级同步更新 |
| SL-04 | VIP 订阅等支付完成走 `ProcessRebates` | 相关用户等级同步正确 |
| SL-05 | 下级升级导致上级应升 LV3+ | 下级操作完成后，上级等级在短时间内正确（同步主路径或 ≤2 分钟兜底） |
| SL-06 | 降级场景（份额清零 / 活跃值不足等业务允许的降级） | 等级及时回落，不长期卡住高档 |
| SL-07 | 连续快速多次支持 | 无等级错乱、无重复异常发升级补贴（对照优化前规则） |
| SL-08 | 人为制造「主路径未触发」的漏算（如仅有活跃值流水） | 约 1–2 分钟内增量兜底补上 |

### 2.3 观察点

- 接口耗时：同步算等级后，支持/购机接口是否仍可接受（对比优化前）。
- 日志关键字：`checkSupportLevelIncremental done`、`check tips level` / `set tips level`。
- 配置（可选）：
  - `tips.support_level_incremental.enabled`（默认开，显式 `false` 关闭）
  - `tips.support_level_incremental.window`（默认 2m）
  - `tips.support_level_incremental.limit`（默认 50）
  - `tips.refresh_support_level`（L2 次级兜底，默认看环境）

---

## 三、P1：每日任务

### 3.1 改动摘要

- 启用任务列表增加缓存（约 60s）。
- `ListTask`：支持用户判定优先用 `first_tips_at`，否则轻量 `EXISTS` 兼容未回填老数据。
- 支持类任务完成判定收敛为按 `TYPE_TIPS` 统计；去掉部分旧 v1 逻辑/任务包版权包写路径。
- 管理端「是否支持任务」改为按 `task.type = TYPE_TIPS` 过滤。

### 3.2 建议用例

| 编号 | 场景 | 预期 |
|------|------|------|
| TK-01 | 从未支持过的用户看每日任务 | 支持类任务展示/锁定规则与产品一致 |
| TK-02 | 已有支持记录但 `first_tips_at` 为空的老用户 | 仍能识别为支持用户（EXISTS 回退） |
| TK-03 | 完成一次支持后任务进度 | 进度/完成态正确，可领奖 |
| TK-04 | 连续刷新 ListTask（1 分钟内） | 结果稳定，无错乱任务；可接受约 60s 内任务配置缓存延迟 |
| TK-05 | 管理端筛选支持类任务 | 列表过滤正确 |

---

## 四、P1：机器人

### 4.1 改动摘要

- `ListRobotTips`：全平台汇总类数据缓存；删除旧实现；`buy_limit` 改为按用户持仓聚合判断。
- 结算：中午 12 点改为**并发分片**结算；上级返佣批量查 fans_code。
- `checkRobotStatus`：由每分钟改为**每 5 分钟**。

### 4.2 建议用例

| 编号 | 场景 | 预期 |
|------|------|------|
| RB-01 | 机器人列表展示（复购/智投/订阅等各类型） | 数量、收益展示、假数据涨幅等与产品一致 |
| RB-02 | 有 `buy_limit` 的机器人 | 未达上限可买；达上限后列表过滤/不可再买 |
| RB-03 | 多用户并发刷列表 | 数据正确，服务稳定（缓存命中） |
| RB-04 | 中午 12 点结算（或测试环境触发等价逻辑） | 收益入账正确、上级返佣正确、无漏结/重结 |
| RB-05 | 机器人到期上下架 | 状态在约 5 分钟内更新（可接受比原先稍慢） |

---

## 五、P2：排行榜 / 统计 cron

### 5.1 改动摘要

- 收入榜 / 积分榜 / 粉丝榜 / 活跃值榜：改为**每小时错开**执行（不再半小时扎堆）。
- 管理端 `RefreshTodayUserStats`：约每小时 + 日切 00:10。
- 启动时全量历史统计 / rollup 回填：**默认关闭**。

### 5.2 建议用例

| 编号 | 场景 | 预期 |
|------|------|------|
| RK-01 | 日/周/总收入榜、积分榜 | 与优化前抽样对比，排名与金额合理 |
| RK-02 | 粉丝新增榜、团队活跃值榜 | 同上 |
| RK-03 | 管理端今日用户统计 | 小时级刷新后数据可用；日切后正确 |
| RK-04 | 新环境冷启动 | 未开配置时不因回填拖垮 DB；需要时再开：`man.backfill_rollups_on_start` / `man.refresh_history_user_stats_on_start` |

---

## 六、P2：用户表与后台

### 6.1 迁移

执行迁移 `20260826120000_drop_unused_user_columns`，DROP 字段：

- `is_pending_order`
- `priority_use_consume_point`
- `issue_test_copyright_pack`
- `total_level1`
- `total_level2`

**注意**：`level` 字段保留。

### 6.2 建议用例

| 编号 | 场景 | 预期 |
|------|------|------|
| US-01 | 迁移后服务正常启动 | 无因缺列导致的 SQL 报错 |
| US-02 | 用户资料 / 管理端用户列表 | 核心字段正常；上述废弃字段不再依赖 |
| US-03 | CPS 达人相关展示 | Proto 可能仍返回字段，但写入已停，值为 0/空属预期 |
| US-04 | 版权包 / 任务包相关入口 | 按产品：业务已收敛，确认无错误写库、无崩溃（若入口仍在需确认只读/下线行为） |

---

## 七、P3：配置开关清单

| 配置项 | 默认倾向 | 测试关注 |
|--------|----------|----------|
| `tips.support_level_incremental.enabled` | 开 | 关闭后仅靠主路径同步 |
| `tips.support_level_incremental.window` | 2m | — |
| `tips.support_level_incremental.limit` | 50 | — |
| `tips.refresh_support_level` | 视环境 | 控制 `checkLv2Upgrade` |
| `tips.help_subsidies_enabled` | 关 | 帮扶月结默认不跑 |
| `man.backfill_rollups_on_start` | 关 | 启动回填 |
| `man.refresh_history_user_stats_on_start` | 关 | 启动全量历史统计 |

---

## 八、建议回归清单（未大改但易受牵连）

- [ ] 短剧支持下单、收益结算、返佣
- [ ] 各类型机器人购买、持仓、收益明细
- [ ] 升级补贴 / 活动奖励（若环境开启）是否与等级变更一致、无重复发放
- [ ] 提现、积分流水
- [ ] 管理端：用户、任务、机器人、分销查询

---

## 九、部署检查（测试环境）

1. 已执行迁移 `20260826120000_drop_unused_user_columns`。
2. 确认上述配置与测试目标一致（尤其等级兜底、帮扶、启动回填）。
3. 发布后观察：支持接口耗时、DB CPU/连接、cron 日志是否正常。

---

## 十、问题反馈时请附带

- 用户 ID、操作时间、操作类型（短剧支持 / 购机 / 支付）
- 操作前后 `tips_level`、`active_value`、上级链用户 ID
- 相关接口耗时或错误码
- 是否关闭了增量兜底配置
