185 lines
8.3 KiB
Markdown
185 lines
8.3 KiB
Markdown
---
|
||
name: 拆分风控基础需求
|
||
overview: 将 [game_gateway_risk_prd_v_2.md](docs/requirements/game_gateway_risk_prd_v_2.md) 中 3.1 第 1–4 项拆成 4 份可独立评审/开发的子需求文档,放在 `docs/requirements/game_gateway/` 下,并精简主文档为索引 + 交叉引用。
|
||
todos:
|
||
- id: create-subdir-readme
|
||
content: 新建 docs/requirements/game_gateway/ 与 README.md(索引 + 依赖图 + 实施顺序)
|
||
status: completed
|
||
- id: doc-01-launch
|
||
content: 编写 01_launch_session.md:迁移 §4.1/4.2、§8.1、3.1-12、相关验收
|
||
status: completed
|
||
- id: doc-02-callback
|
||
content: 编写 02_provider_callback_log.md:迁移 §8.2、§5.1 相关行、callback 主链路步骤、§15.4-1
|
||
status: completed
|
||
- id: doc-03-tx
|
||
content: 编写 03_provider_tx.md:迁移 §8.4、§7.2、§10、tx 流程片段、§15.1
|
||
status: completed
|
||
- id: doc-04-round
|
||
content: 编写 04_game_round.md:迁移 §2.3、§4.4.1、§7.1、§8.3、round 流程、§15.2
|
||
status: completed
|
||
- id: slim-master-prd
|
||
content: 精简 game_gateway_risk_prd_v_2.md:§3.1 改链接、删重复 DDL/章节、更新 §14/§15/§16
|
||
status: completed
|
||
isProject: false
|
||
---
|
||
|
||
# 拆分 Game Gateway 风控 PRD(3.1 项 1–4)
|
||
|
||
## 背景
|
||
|
||
主文档 [`docs/requirements/game_gateway_risk_prd_v_2.md`](docs/requirements/game_gateway_risk_prd_v_2.md) 第 3.1 节「第一期必须实现」前 4 项为**基础数据与链路能力**,彼此有依赖但可分期交付:
|
||
|
||
| 3.1 序号 | 能力 | 核心表 | 主文档现有章节 |
|
||
|---------|------|--------|----------------|
|
||
| 1 | 游戏启动 Session 记录 | `game_launch_session` | 4.1、4.2、8.1;3.1-12 |
|
||
| 2 | Provider 原始回调日志 | `game_provider_callback_log_01` | 5.1(原始回调落库)、8.2 |
|
||
| 3 | Provider Tx 幂等交易表 | `game_provider_tx_01` | 4.3/4.4(tx 部分)、7.2、8.4、10、15.1 |
|
||
| 4 | Round 聚合状态表 | `game_round_01` | 2.3、4.3/4.4(round 部分)、4.4.1、7.1、8.3、15.2 |
|
||
|
||
当前 `docs/requirements/` 仅有这一份 PRD,需新建子目录承载拆分结果。
|
||
|
||
## 目标目录结构
|
||
|
||
```text
|
||
docs/requirements/
|
||
├── game_gateway_risk_prd_v_2.md # 总览 PRD(保留全局原则、5–16 章)
|
||
└── game_gateway/
|
||
├── README.md # 子需求索引与依赖关系
|
||
├── 01_launch_session.md
|
||
├── 02_provider_callback_log.md
|
||
├── 03_provider_tx.md
|
||
└── 04_game_round.md
|
||
```
|
||
|
||
命名约定:`{序号}_{英文表名/能力}.md`,便于与建表、代码模块对齐。
|
||
|
||
## 子文档统一模板(每份独立可交付)
|
||
|
||
每份子需求包含以下固定章节(从主文档**迁移**而非重写业务含义):
|
||
|
||
1. **文档信息**:标题、版本、父文档链接、依赖子文档
|
||
2. **目标与范围**:对应 3.1 单项 + In/Out of scope
|
||
3. **依赖与边界**:slot-pwa / wallet / risk 职责(摘录主文档 §2 相关原则)
|
||
4. **业务流程**:该能力专属流程图/步骤
|
||
5. **状态定义**:仅该表相关状态(如 Round §7.1、Provider Tx §7.2)
|
||
6. **数据表设计**:完整 DDL + 字段说明 + 索引/幂等约束
|
||
7. **与主链路衔接**:在 BET/WIN 中的写入时机(引用主文档 §4,不重复全文)
|
||
8. **验收标准**:从 §15 拆出与本能力相关的条目
|
||
9. **第一期 Out of scope**:明确不属于本子需求的表/能力(交叉引用主文档 §3.2)
|
||
|
||
## 各子文档内容映射
|
||
|
||
### [`01_launch_session.md`](docs/requirements/game_gateway/01_launch_session.md)
|
||
|
||
**迁入内容:**
|
||
|
||
- §4.1 游戏启动 Launch 流程(含 `game_gateway_control` / `game_user_risk_profile_01` 检查表)
|
||
- §4.2 用户退出流程 + 过期 SQL
|
||
- §8.1 `game_launch_session` 完整 DDL
|
||
- 3.1 第 12 条:退出只关 Session、不触发资金结算
|
||
- 验收:§15.2 第 4 条(退出不触发 Round Final)
|
||
|
||
**接口提示(文档级,非实现):**
|
||
|
||
- Launch 创建 Session、`POST /slot-game/session/close`
|
||
- Redis 短窗口防重复 Launch(`uid + provider_code + game_code + 5~10s`)
|
||
|
||
**依赖说明:** 不依赖 callback_log / provider_tx / round;可被后续回调通过 `session_id` 关联(若主链路需要,在子文档中写「可选关联字段」占位,不扩表)。
|
||
|
||
---
|
||
|
||
### [`02_provider_callback_log.md`](docs/requirements/game_gateway/02_provider_callback_log.md)
|
||
|
||
**迁入内容:**
|
||
|
||
- §8.2 `game_provider_callback_log_01` 完整 DDL + 「不加唯一键、幂等由 provider_tx 负责」说明
|
||
- §5.1 表中「原始回调落库」「验签 / IP 校验」「参数解析」三行及原因
|
||
- 主链路第一步:`Provider * callback → 同步写 callback_log`(从 §4.3、§4.4 摘取,各类型回调通用)
|
||
- BALANCE 只记 callback_log、不进 provider_tx(§8.4 说明)
|
||
- 验收:§15.4 第 1 条(资金交易可追溯到原始回调)
|
||
|
||
**依赖:** 被 `03_provider_tx` 通过 `callback_log_id` 引用。
|
||
|
||
---
|
||
|
||
### [`03_provider_tx.md`](docs/requirements/game_gateway/03_provider_tx.md)
|
||
|
||
**迁入内容:**
|
||
|
||
- §8.4 `game_provider_tx_01` 完整 DDL + 幂等键 `provider_code + provider_tx_id + tx_type`
|
||
- §7.2 Provider Tx 状态
|
||
- §4.3 / §4.4 中与 `game_provider_tx_01` 相关的步骤(创建/查询、状态更新、BET 成功后 status)
|
||
- §10 wallet 超时与补偿(全文;与 tx 强绑定)
|
||
- §3.2 不建 `game_wallet_call_log_01` 的原因(wallet 结果记在 provider_tx)
|
||
- 验收:§15.1 全部 + §15.4 第 2 条
|
||
|
||
**依赖:** 必须先有 `02`(`callback_log_id`);与 `04` 并行更新 round。
|
||
|
||
---
|
||
|
||
### [`04_game_round.md`](docs/requirements/game_gateway/04_game_round.md)
|
||
|
||
**迁入内容:**
|
||
|
||
- §2.3 Round Final 才能做最终任务结算(原则)
|
||
- §4.4.1 Round 结算模式(`AGGREGATE_FINAL` / `TX_REALTIME_FINALIZE` + wallet 调用类型)
|
||
- §7.1 Round 状态
|
||
- §8.3 `game_round_01` 完整 DDL
|
||
- §4.3 BET 成功后 round 字段更新;§4.4 WIN/FINAL 后 round 更新(摘取)
|
||
- §9 中 `game_round_final_settled_event` 事件说明(仅 round final 相关段落)
|
||
- 验收:§15.2 全部
|
||
|
||
**依赖:** 与 `03` 在回调主链路中协同;不重复写 wallet 补偿细节(链接 `03`)。
|
||
|
||
---
|
||
|
||
### [`README.md`](docs/requirements/game_gateway/README.md)
|
||
|
||
简短索引 + 依赖图:
|
||
|
||
```mermaid
|
||
flowchart LR
|
||
launch[01_launch_session]
|
||
callback[02_provider_callback_log]
|
||
tx[03_provider_tx]
|
||
round[04_game_round]
|
||
callback --> tx
|
||
tx --> round
|
||
launch -.->|Launch准入| callback
|
||
```
|
||
|
||
建议实施顺序:`02 → 03 → 04` 可同迭代;`01` 可与 `02` 并行。
|
||
|
||
## 主文档 [`game_gateway_risk_prd_v_2.md`](docs/requirements/game_gateway_risk_prd_v_2.md) 调整
|
||
|
||
1. **§3.1 第 1–4 条**改为链接列表,例如:
|
||
- `1. [游戏启动 Session](game_gateway/01_launch_session.md)`
|
||
- …
|
||
2. **删除或收缩**已迁入子文档的重复正文:
|
||
- §4.1、§4.2 → 保留 1 段摘要 + 链接
|
||
- §8.1–§8.4 → 改为表名清单 + 链接(DDL 只在子文档保留一份)
|
||
- §7.1、§7.2 → 移至子文档;主文档 §7 仅保留 §7.3 熔断状态(属 3.1-5)
|
||
- §10 → 移至 `03`;主文档保留一句「见 provider_tx 子需求」
|
||
- §15.1、§15.2 部分条目 → 子文档各持一份;主文档 §15 保留汇总 checklist 并链接子文档
|
||
3. **§4.3、§4.4** 保留端到端主链路(便于理解全局),但表字段/SQL/状态机细节改为「详见子需求」引用,避免双份维护。
|
||
4. **§14 建表清单**:前 4 张表标注对应子文档路径。
|
||
5. **§16 总结**:保留一句话架构;补充子需求目录说明。
|
||
|
||
**不拆分范围(仍留主文档):** 3.1 第 5–12 项及 §8.5 以后、§11–§13、熔断/RTP/风险画像/MQ 等。
|
||
|
||
## 交叉引用规范
|
||
|
||
- 子文档文首:`> 父文档:[Game Gateway 游戏风控需求 V1.0](../game_gateway_risk_prd_v_2.md)`
|
||
- 主文档与子文档互相使用相对路径 Markdown 链接
|
||
- 涉及 wallet/risk 的段落写「行为以父文档 §2 为准」,不在 4 份子文档重复整章原则
|
||
|
||
## 质量检查
|
||
|
||
- 4 份子文档均含完整 DDL,与当前主文档 §8 SQL **逐字一致**(仅拆位置,不改语义)
|
||
- 主文档通读无断链;§3.1 1–4 在子文档有对应验收标准
|
||
- `README.md` 列出推荐开发顺序与表依赖
|
||
|
||
## 工作量说明
|
||
|
||
纯文档重构,不涉及代码与迁移脚本;预计 4 份子文档 + 1 索引 + 主文档瘦身,约 1 次集中编辑即可完成。
|