金刚体育(KingKong Sport)
世界杯专题功能需求文档 v2.0 简化版
v2.0 · 2026-06 · 产品需求说明文档
一、背景
金刚体育当前足球赛事列表按联赛维度展示,世界杯赛事分散在普通联赛列表中,无法被快速识别和聚合。2026 FIFA 世界杯是四年一届的顶级赛事,预计带来显著流量峰值,用户有强烈的快速找到世界杯赛事的需求。
由于本期开发时间有限,世界杯专题功能采用简化方案:后台不再提供针对具体比赛的人工挑选与排序能力,改为运营配置一个关键词,系统按赛事名称模糊匹配自动识别世界杯赛事;C 端同时新增 P2P 快捷筛选能力,方便用户快速找到有庄家挂单的比赛。
二、目标
- C 端:用户在足球 Tab 下可一键筛选出世界杯赛事;用户在任意运动类型下都可一键筛选出有 P2P 庄单的赛事。
- B 端:运营通过全局配置维护两个参数,控制世界杯专题的展示开关与匹配规则,不需要逐场维护具体比赛。
- 不做什么:本期不提供针对具体比赛的人工挑选、排序或置顶能力;不新增独立的世界杯专题页面;不改动 PC 端;不涉及营销活动(返水、竞猜)。
三、用户角色
| 角色 | 端 | 核心诉求 |
| 会员(玩家) | C 端 H5 | 快速找到世界杯赛事和 P2P 庄单赛事 |
| 超级管理员/运营 | B 端全局配置 | 维护世界杯展示开关与匹配关键词 |
四、业务流程
4.1 整体流程
运营在全局配置中设置 worldcup_enabled 为开,并设置 worldcup_match_keyword 为匹配关键词 → 系统按该关键词对赛事名称做模糊匹配,命中的赛事在 C 端被判定为世界杯赛事 → 用户在足球 Tab 下点击世界杯筛选胶囊,列表过滤为命中的赛事 → 用户在任意球类下点击 P2P 筛选胶囊,列表过滤为含 P2P 庄单的赛事;两种筛选可叠加。
4.2 正常流程(C 端)
- 用户进入 H5 首页,默认在足球 Tab,工具行展示「联赛」「时间」「筛选」三个常规按钮,以及「P2P」「世界杯」两个筛选胶囊;「联赛」按钮默认选中。
- 用户点击「世界杯」胶囊:胶囊变为橙底白字选中态,「联赛」按钮选中态取消,列表过滤为命中关键词的世界杯赛事。
- 用户点击「P2P」胶囊:胶囊变为橙底白字选中态,「联赛」按钮选中态取消,列表过滤为含 P2P 庄单的赛事。
- 用户在「世界杯」已选中的基础上再点击「P2P」:两个胶囊同时保持选中态,列表展示二者交集,即「命中世界杯关键词且含 P2P 庄单」的赛事。
- 用户点击「联赛」按钮:无论该按钮原本是否选中,点击后「联赛」恢复选中态,「P2P」与「世界杯」的选中态被同时取消,列表恢复默认展示。
- 用户切换至非足球运动类型(篮球、电竞等):「世界杯」胶囊隐藏且其选中状态被清除;「P2P」胶囊保持显示,选中状态不受切换球类影响。
4.3 正常流程(B 端)
- 运营进入「配置管理 → 全局配置」页面,找到 worldcup_enabled 与 worldcup_match_keyword 两条配置。
- 运营点击 worldcup_enabled 所在行「编辑」,将值改为 1(开启)或 0(关闭),保存后立即生效,控制 C 端是否展示世界杯筛选胶囊。
- 运营点击 worldcup_match_keyword 所在行「编辑」,输入匹配关键词(如「世界杯」),保存后系统按新关键词重新判定哪些赛事命中。
4.4 异常流程
- worldcup_enabled 为 0(关闭):C 端任意球类下「世界杯」胶囊均不显示;「P2P」胶囊不受影响,正常显示。
- worldcup_match_keyword 为空:运营保存时校验拦截,提示「关键词不能为空」,不允许保存空值。
- 世界杯筛选下当前没有命中关键词的赛事:列表展示「暂无符合条件的世界杯赛事」空状态,胶囊本身不隐藏。
- P2P 筛选下当前球类没有含庄单的赛事:列表展示「暂无 P2P 庄单赛事」空状态,胶囊本身不隐藏。
- 世界杯与 P2P 同时选中但交集为空:列表展示「暂无符合条件的世界杯赛事」空状态。
五、功能需求
5.1 C 端 — 筛选区域
5.1.1 筛选项组成与互斥规则
工具行筛选项由「联赛」「时间」「筛选」三个常规按钮与「P2P」「世界杯」两个胶囊组成。其中「联赛」「P2P」「世界杯」三者为互斥关系,但互斥的方向不对等,具体规则如下:
| 操作 | 对「联赛」的影响 | 对「P2P」的影响 | 对「世界杯」的影响 |
| 点击「联赛」 | 强制选中 | 强制取消选中 | 强制取消选中 |
| 点击「P2P」(原未选中) | 取消选中 | 选中 | 不受影响(维持原状态) |
| 点击「世界杯」(原未选中) | 取消选中 | 不受影响(维持原状态) | 选中 |
「P2P」与「世界杯」之间不互斥,可同时选中,此时列表展示两者交集结果。
5.1.2 P2P 胶囊
- 位置:工具行内,「筛选」按钮右侧。
- 展示范围:所有运动类型下均展示,不受当前 Tab 切换影响。
- 未选中态:白底,浅灰边框,灰色文字「P2P」。
- 选中态:橙底(#FF8C00),白色文字,与「联赛」按钮选中态视觉一致。
- 点击行为:选中后列表过滤为该球类下含 P2P 庄单的赛事;再次点击取消选中,列表恢复默认展示。
5.1.3 世界杯胶囊
- 位置:工具行内,紧跟「P2P」胶囊右侧。
- 展示范围:仅足球 Tab 下展示;切换至其他运动类型时胶囊隐藏,且选中状态被清除(再次切回足球时恢复未选中态,需用户重新点击)。
- 未选中态:白底,浅灰边框,灰色文字「世界杯」。
- 选中态:橙底(#FF8C00),白色文字,与「P2P」胶囊选中态视觉一致。
- 点击行为:选中后列表过滤为赛事名称命中 worldcup_match_keyword 关键词的赛事;再次点击取消选中。
5.1.4 列表展示规则
- 默认态(联赛选中,P2P 与世界杯均未选中):足球 Tab 下,世界杯赛事置顶展示,下方以「其他联赛」分隔展示其余联赛;非足球 Tab 下仅展示该运动类型的赛事,不做世界杯置顶。
- 世界杯筛选选中:仅展示命中关键词的赛事,按赛事原有联赛分组展示,不额外增加专属的标题提示条。
- P2P 筛选选中:仅展示含 P2P 庄单的赛事,按赛事原有联赛分组展示,不额外增加专属的标题提示条。
- 含 P2P 庄单的联赛分组,分组标题右侧展示橙色「P2P」角标;不含庄单的分组不展示角标。
图 5-1 C 端默认态:足球 Tab,世界杯赛事置顶 + 其他联赛
图 5-2 C 端切换至篮球 Tab:世界杯胶囊隐藏,P2P 胶囊保留
C 端 H5 可交互原型:https://voluble-concha-47ea22.netlify.app/
5.2 B 端 — 全局配置新增参数
5.2.1 参数位置
- 路径:配置管理 → 全局配置,与平台现有全局参数共用同一张列表,不新增独立菜单。
5.2.2 参数字段说明
| 配置 key | 类型 | 默认值 | 说明 |
| worldcup_enabled | 0 / 1 | 1 | 世界杯专题展示开关。0 = 关闭,C 端任意球类下「世界杯」胶囊均不展示;1 = 开启,足球 Tab 下展示「世界杯」胶囊。 |
| worldcup_match_keyword | 文本 | 世界杯 | 赛事名称模糊匹配关键词。赛事名称只要包含该字符串即判定为世界杯赛事,不要求同时满足年份等其他条件。 |
5.2.3 编辑交互
- 两条参数均支持点击操作列「编辑」,弹出弹窗展示配置 key(只读)、当前值(可编辑输入框)、字段说明。
- worldcup_enabled 校验:只允许输入 0 或 1,其他输入保存时拦截并提示「请输入 0 或 1」。
- worldcup_match_keyword 校验:不允许保存空值,保存时拦截并提示「关键词不能为空」;不限制字符类型,支持中英文。
- 保存成功后,列表对应行「值」「修改人」「修改时间」同步更新,弹窗关闭并提示「保存成功」。
图 5-3 B 端全局配置列表:worldcup_enabled 与 worldcup_match_keyword 两行参数
图 5-4 B 端编辑配置弹窗:修改 worldcup_match_keyword
B 端后台可交互原型:https://subtle-travesseiro-c42702.netlify.app/
六、状态变化
| 对象 | 状态 | 触发条件 | 效果 |
| 世界杯开关 | 开启 | 运营将 worldcup_enabled 改为 1 | 足球 Tab 下「世界杯」胶囊展示 |
| 世界杯开关 | 关闭 | 运营将 worldcup_enabled 改为 0 | 任意球类下「世界杯」胶囊均隐藏,选中状态清除 |
| 匹配关键词 | 变更 | 运营修改 worldcup_match_keyword 并保存 | C 端世界杯筛选结果按新关键词重新匹配 |
| 联赛按钮 | 选中 → 未选中 | 用户点击「P2P」或「世界杯」 | 「联赛」取消选中 |
| P2P / 世界杯胶囊 | 未选中 → 选中 | 用户点击对应胶囊 | 「联赛」取消选中,列表按对应规则过滤 |
| P2P / 世界杯胶囊 | 选中 → 未选中 | 用户点击「联赛」 | P2P 与世界杯同时取消选中,列表恢复默认 |
| 世界杯胶囊 | 选中 → 隐藏并清除选中 | 用户切换至非足球运动类型 | 再次切回足球时恢复为未选中态 |
七、配置项
本期新增的配置项即第 5.2.2 节所述两项,此处不重复列出。配置变更后实时生效,无需重启服务或发布前端版本。
八、权限矩阵
| 功能 | 超级管理员 | 运营人员 | 普通账号 |
| 查看全局配置列表 | 可见 | 可见 | 不可见 |
| 编辑 worldcup_enabled | 可操作 | 可操作 | 不可操作 |
| 编辑 worldcup_match_keyword | 可操作 | 可操作 | 不可操作 |
九、操作日志口径
| 操作类型 | 触发时机 | 变更类别示例 | 原始值 / 变更值 |
| 修改世界杯开关 | 运营保存 worldcup_enabled | 全局配置【worldcup_enabled 更新】 | 原始值:旧值 / 变更值:新值 |
| 修改匹配关键词 | 运营保存 worldcup_match_keyword | 全局配置【worldcup_match_keyword 更新】 | 原始值:旧关键词 / 变更值:新关键词 |
十、边界场景
- 用户在世界杯与 P2P 均选中的状态下切换今日/早盘/滚球等时间 Tab:两个胶囊选中状态保持,列表在新的时间范围内重新计算交集结果。
- 运营将 worldcup_match_keyword 改为一个会大量命中非世界杯赛事的常见词(如「联赛」):系统按字面值正常匹配,不做语义校验,可能导致筛选结果包含非预期赛事,风险由运营在配置时自行把控。
- 运营将 worldcup_enabled 改为 0 期间,用户当前正处于世界杯筛选选中状态:胶囊与筛选结果保持现状直到用户下一次操作或刷新页面,下一次进入页面时胶囊不再显示。
- 用户在 P2P 筛选选中状态下切换运动类型:选中状态保持,列表在新球类下重新计算含庄单的赛事;若新球类下没有任何含庄单赛事,展示空状态。
- 两个配置同时被多个管理员并发编辑:以最后一次保存覆盖为准,无锁机制,保存后列表刷新展示最新值。
十一、验收标准
11.1 C 端
Given 用户在足球 Tab,「联赛」按钮选中,「P2P」「世界杯」均未选中
When 用户点击「世界杯」胶囊
Then 「世界杯」变为橙底白字选中态,「联赛」取消选中,列表仅展示命中关键词的赛事
Given 「世界杯」已选中
When 用户点击「P2P」胶囊
Then 两个胶囊同时保持选中态,列表展示交集:命中关键词且含 P2P 庄单的赛事
Given 「P2P」与「世界杯」均已选中
When 用户点击「联赛」按钮
Then 「联赛」恢复选中态,「P2P」与「世界杯」同时取消选中,列表恢复默认展示
Given 用户在足球 Tab,「世界杯」已选中
When 用户切换至篮球 Tab
Then 「世界杯」胶囊隐藏且选中状态清除,「P2P」胶囊保持原选中状态不变
Given worldcup_enabled 当前为 1
When 超级管理员将其改为 0 并保存
Then C 端任意球类下「世界杯」胶囊不再展示
11.2 B 端
Given 运营进入全局配置页面
When 点击 worldcup_match_keyword 行「编辑」,将值改为「FIFA」并保存
Then 弹窗关闭,列表该行「值」更新为「FIFA」,「修改人」「修改时间」同步更新,提示「保存成功」
Given 运营打开 worldcup_match_keyword 编辑弹窗
When 将输入框清空后点击「保存」
Then 保存被拦截,提示「关键词不能为空」,弹窗不关闭
Given 运营打开 worldcup_enabled 编辑弹窗
When 输入「2」后点击「保存」
Then 保存被拦截,提示「请输入 0 或 1」,弹窗不关闭
十二、本期不做
- 不提供针对具体比赛的人工挑选、添加、移除、排序或置顶能力,世界杯赛事的识别完全依赖关键词模糊匹配。
- 不支持多关键词或正则表达式匹配,worldcup_match_keyword 仅支持单一字符串的包含匹配。
- 不做年份等附加校验,匹配规则可能命中往届世界杯相关的历史赛事,风险由运营在设置关键词时自行规避。
- 不新增独立的世界杯专题页面。
- 不改动 PC 端任何页面。
- 不提供赛事自动从专题中移除的机制(如赛事结束后的自动清理),列表展示完全由当前赛事数据与关键词匹配结果实时决定。