8.3 KiB
8.3 KiB
name, overview, todos, isProject
| name | overview | todos | isProject | ||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 拆分风控基础需求 | 将 [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/` 下,并精简主文档为索引 + 交叉引用。 |
|
false |
拆分 Game Gateway 风控 PRD(3.1 项 1–4)
背景
主文档 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,需新建子目录承载拆分结果。
目标目录结构
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,便于与建表、代码模块对齐。
子文档统一模板(每份独立可交付)
每份子需求包含以下固定章节(从主文档迁移而非重写业务含义):
- 文档信息:标题、版本、父文档链接、依赖子文档
- 目标与范围:对应 3.1 单项 + In/Out of scope
- 依赖与边界:slot-pwa / wallet / risk 职责(摘录主文档 §2 相关原则)
- 业务流程:该能力专属流程图/步骤
- 状态定义:仅该表相关状态(如 Round §7.1、Provider Tx §7.2)
- 数据表设计:完整 DDL + 字段说明 + 索引/幂等约束
- 与主链路衔接:在 BET/WIN 中的写入时机(引用主文档 §4,不重复全文)
- 验收标准:从 §15 拆出与本能力相关的条目
- 第一期 Out of scope:明确不属于本子需求的表/能力(交叉引用主文档 §3.2)
各子文档内容映射
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
迁入内容:
- §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
迁入内容:
- §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
迁入内容:
- §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
简短索引 + 依赖图:
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 调整
- §3.1 第 1–4 条改为链接列表,例如:
1. [游戏启动 Session](game_gateway/01_launch_session.md)- …
- 删除或收缩已迁入子文档的重复正文:
- §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 并链接子文档
- §4.3、§4.4 保留端到端主链路(便于理解全局),但表字段/SQL/状态机细节改为「详见子需求」引用,避免双份维护。
- §14 建表清单:前 4 张表标注对应子文档路径。
- §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 次集中编辑即可完成。