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_orderpriority_use_consume_pointissue_test_copyright_packtotal_level1total_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 |
关 | 启动全量历史统计 |
八、建议回归清单(未大改但易受牵连)
- [ ] 短剧支持下单、收益结算、返佣
- [ ] 各类型机器人购买、持仓、收益明细
- [ ] 升级补贴 / 活动奖励(若环境开启)是否与等级变更一致、无重复发放
- [ ] 提现、积分流水
- [ ] 管理端:用户、任务、机器人、分销查询
九、部署检查(测试环境)
- 已执行迁移
20260826120000_drop_unused_user_columns。 - 确认上述配置与测试目标一致(尤其等级兜底、帮扶、启动回填)。
- 发布后观察:支持接口耗时、DB CPU/连接、cron 日志是否正常。
十、问题反馈时请附带
- 用户 ID、操作时间、操作类型(短剧支持 / 购机 / 支付)
- 操作前后
tips_level、active_value、上级链用户 ID - 相关接口耗时或错误码
- 是否关闭了增量兜底配置