Files
thebet365/docs/UAT_CHECKLIST.md
Mars 2a8b8415e7 feat: 赛事管理操作日志与审计页体验优化
- API 为赛事/联赛/盘口/赔率/冠军盘写操作写入 CATALOG 审计日志,并新增 catalog-audit-logs 接口

- 管理端将赛事日志独立至赛事管理子页,通用操作日志排除 CATALOG 模块

- 统一赛事子页 list-chrome 布局与面包屑;修复操作日志页表格滚动与分页不可见问题

- 补充中英文/马来语文案及 UAT 验收项 SEC013/SEC014

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-16 10:00:24 +08:00

71 lines
4.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# UAT 测试与上线准备
## 测试账号
| 角色 | 用户名 | 密码 | 说明 |
|------|--------|------|------|
| 超级管理员 | admin | Admin@123 | 平台后台 |
| 赛事管理员 | matchadmin | MatchAdmin@123 | 赛事/结算/内容,无账务权限 |
| 财务管理员 | financeadmin | FinanceAdmin@123 | 上分/下分/额度/返水/充值 |
| 客服查询员 | support1 | Support@123 | 只读查询 + 重置玩家密码 |
| 一级代理 | agent1 | Agent@123 | 管理后台 :5174 登录,授信 100000 |
| 二级代理 | agent2 | Agent@123 | 隶属 agent1无独立前端 |
| 测试玩家 | player1 | Player@123 | 初始余额 1000 |
## MVP 验收清单18 项)
玩法与串关规则参考:[投注玩法说明.md](./投注玩法说明.md)。
- [ ] 玩家可登录、改密码、切换语言
- [ ] 代理可创建直属玩家
- [ ] 代理可给直属玩家上分/下分
- [ ] 代理额度正确扣减和释放
- [ ] 后台可创建比赛和盘口
- [ ] 后台可批量录入波胆赔率
- [ ] 前台可展示赛事和盘口
- [ ] 玩家可单关下注
- [ ] 玩家可 2-5 串 1
- [ ] ~~同场串关被禁止~~v1 产品决定:允许同场串关,跳过)
- [ ] 四分之一盘口不能进入串关
- [ ] 开赛自动封盘
- [ ] 后台可录入比分并生成预览
- [ ] 确认结算后钱包正确变化
- [ ] 玩家可查看注单和账变
- [ ] 玩家可查看返水明细,且与账单「反水」入账金额一致
- [ ] 后台可生成并发放返水
- [ ] Banner/公告/走马灯可配置
- [ ] 所有关键操作有日志
- [ ] 平台后台「自动化测试」运行所选套件,全部通过(约 50 条用例,含逐步 input/expected/actual 明细)
## 回归测试流程
1. 运行单元测试:`pnpm --filter @thebet365/api test`(规则类用例,不含 DB 全链路)
2. 或平台后台 → **自动化测试** → 选择套件(含「下注结算链路」)→ **运行测试**
3. 代理上分 → 玩家下注 → 封盘 → 录入比分 → 预览 → 确认结算
4. 验证钱包余额与代理额度变化
5. 测试串关限制(四分之一球、冠军竞猜;同场串关按 v1 允许)
6. 测试返水批次生成与确认
7. 返水对账:后台发放后,玩家「账单-反水」入账金额 =「返水明细」对应批次金额;账变详情可跳转返水明细
## 三角色 RBACSEC010SEC012
- [ ] **SEC010** 使用 `support1` 登录:菜单仅显示查询相关项;玩家页可查看/重置密码,无上分/下分/创建按钮;调用 `POST /admin/wallet/deposit` 返回 403
- [ ] **SEC011** 使用 `financeadmin` 登录:无赛事/结算/内容菜单;可对玩家上分、调整代理额度;调用 `POST /admin/matches` 等赛事写接口返回 403
- [ ] **SEC012** 使用 `matchadmin` 登录:有赛事/结算/内容;无上分/额度/返水确认;调用 `POST /admin/wallet/deposit` 返回 403
- [ ] **SEC013** 使用 `matchadmin` 创建/发布赛事后,在 **赛事管理 → 赛事日志**`/matches/audit-logs`)可见记录(如 `CREATE_MATCH``PUBLISH_MATCH`),操作人为 `matchadmin`;侧栏「操作日志」不显示赛事类记录
- [ ] **SEC014** 使用 `financeadmin` 打开「操作日志」:**不应**看到 `matchadmin` 的记录(同角色隔离);`financeadmin` 无赛事管理菜单;使用 `admin` 登录可在赛事日志与操作日志分别查看全部
- [ ] 自动化:`pnpm --filter @thebet365/api exec jest admin-rbac.spec.ts --runInBand` 通过
## 备份与回滚
- PostgreSQL每日 `pg_dump` 备份(脚本:`scripts/backup-db.ps1`
- 回滚:恢复备份 + 回退部署版本
- 结算错误:使用重结算冲正流程,禁止直接改余额
## 后台操作培训要点
1. 赛事创建:联赛 → 球队 → 比赛 → 生成盘口模板 → 录入赔率 → 发布
2. 结算:录入半场/全场比分 → 生成预览 → 核对派彩 → 确认
3. 代理管理:授信额度 → 监控占用 → 负数时禁止继续放款
4. 返水:选择周期 → 预览 → 财务确认 → 发放