Appearance
第十六章 数据联动规则
16.1 联动规则概述
数据联动是指上游配置或状态变更时,系统自动或半自动地将变更影响传递到下游实体的机制。操盘列表涉及的联动链路包括:联赛状态变更影响赛事、数据源状态变更影响盘口、玩法配置变更影响盘口、风控规则变更影响告警状态。
16.1.1 核心概念区分
| 概念 | 定义 | 变更影响范围 | 示例 |
|---|---|---|---|
| 联赛状态 | 联赛的运营状态(开启/暂停/关盘) | 可影响已上架赛事(但不触发终态) | 联赛暂停 → 盘口隐藏 |
| 联赛配置 | 联赛的参数配置(跟随数据源、限额模板等) | 跟随配置立即生效,其他配置仅影响未上架赛事 | 跟随配置变更 → 立即生效;其他配置变更 → 仅新上架赛事生效 |
16.1.2 设计原则
| 原则 | 说明 |
|---|---|
| 安全优先 | 当上游状态变更导致风险时,优先采取保守策略(隐藏而非继续开盘) |
| 人工意图优先 | 人工操作的状态(如人工锁盘、人工隐藏)不被系统行为自动覆盖,除非是更高优先级的强制状态 |
| 配置不穿透 | 配置变更只影响「能否上架/操作」,不直接触发已上架实体的状态变更;终态变更只能由数据源推送或人工确认触发(例外情况见下方说明) |
| 人工确认 | 重大联动变更需要人工确认后生效,避免自动化导致的批量错误 |
| 可追溯 | 所有联动操作记录日志,便于问题排查和责任追溯 |
| 即时通知 | 联动发生时通知相关操盘手,确保及时感知变化 |
| 幂等处理 | 同一状态变更指令重复执行不产生副作用 |
配置不穿透的例外情况:以下配置变更对已上架赛事立即生效:
配置项 立即生效行为 原因 是否跟随数据源盘口状态 系统立即按新配置同步已上架赛事的盘口状态 跟随配置直接影响盘口状态计算逻辑 联赛暂停/关盘 该联赛下所有已上架赛事立即隐藏/关盘 联赛级风控需立即生效 其他配置项(如阈值、默认操盘手等)仅对新上架赛事生效,不穿透已上架实体。详见16.8.7节「配置变更生效时机」。
16.1.3 联动链路
| 联动源 | 联动目标 | 触发条件 | 影响范围 | 触发频率 |
|---|---|---|---|---|
| 联赛状态变更 | 该联赛下所有赛事和盘口 | 联赛开启/暂停/关盘 | 已上架赛事(不触发终态) | 低频(人工触发) |
| 联赛配置变更 | 该联赛下未上架赛事 | 跟随配置、限额模板等变更 | 仅未上架赛事 | 低频(人工触发) |
| 数据源盘口状态 | 单个赛事的盘口 | IM 推送状态变更 | 单个盘口 | 高频(实时推送) |
| 人工操作 | 单个盘口 | 操盘手操作 | 单个盘口 | 中频 |
| 数据源开关切换 | 注单流向(IM同步↔本地承接) | 数据源开关开启/关闭 | 单个玩法 | 低频(人工触发) |
16.1.4 隐藏来源枚举定义
系统中盘口隐藏状态需记录触发来源,以便后续恢复判断和日志审计:
| 来源标识 | 名称 | 触发场景 | 恢复方式 |
|---|---|---|---|
| manual | 人工隐藏 | 操盘手手动隐藏 | 人工取消隐藏 |
| league_pause | 联赛暂停 | 联赛状态变更为暂停 | 联赛恢复后自动取消隐藏 |
| league_close | 联赛关盘 | 联赛状态变更为关盘 | 联赛恢复后人工评估 |
| risk_control | 风控隐藏 | 风控规则触发自动隐藏 | 人工确认后取消隐藏 |
| system | 系统隐藏 | 系统异常触发 | 人工取消隐藏 |
| inherit | 继承隐藏 | 上级隐藏导致下级隐藏 | 上级取消隐藏后自动恢复 |
IM 状态标记(不改变本地状态,仅影响 C 端展示)
以下 IM 推送的状态不改变本地盘口状态,仅在 C 端展示对应的投注交互效果:
| 状态标识 | 名称 | 触发场景 | C 端展示效果 |
|---|---|---|---|
| data_source | 数据源暂停 | MarketlineStatusId≠1 或进球/红牌事件推送 | 盘口灰显,显示「暂停投注」,不接受投注 |
| maintenance | 数据源维护 | IsMaintenance=true | 盘口灰显,显示「维护中」,不接受投注 |
| event_incident | 赛事事件 | 进球/红牌/VAR 等事件触发 | 盘口灰显,显示「暂停投注」,不接受投注 |
来源优先级说明:当盘口已有隐藏来源时,新的隐藏触发不覆盖原来源,除非新来源优先级更高。
16.1.5 概念对照表
| 动作 | 对象层级 | 结果:客户端可见性 | 结果:是否可投注 | 可逆性 | 典型触发 | 日志来源 |
|---|---|---|---|---|---|---|
| 锁盘 | 赛事级 | 可见(仍展示) | 不可投注(全盘停止) | 可逆(需人工解锁) | 人工意图 | manual |
| 下架 | 赛事级 | 不可见 | 不可投注 | 可逆(需重新上架) | 人工意图 | manual(delist联动) |
| 隐藏 | 玩法/线/选项 | 不可见 | 不可投注(局部) | 可逆 | 人工/风控/联赛 | 对应来源枚举 |
| 暂停投注 | 玩法/线/选项 | 可见(灰显) | 不可投注(临时) | 可逆(自动恢复) | 数据源暂停/维护/事件 | data_source/maintenance/event_incident |
| 锁定 | 玩法/线/选项 | 可见 | 不可投注(强制) | 可逆(高权限) | 仅人工意图 | manual |
| 关盘 | 玩法/线/选项 | 可见或不可见(按前端策略) | 不可投注(终态) | 不可逆 | 数据源终态 | data_source |
16.2 联赛状态变更联动
联赛状态是运营状态(开启/暂停/关盘),状态变更可影响已上架赛事,但处理方式为暂停或下架(非终态),不触发盘口关盘。
16.2.1 联赛关盘时的赛事处理
当联赛状态从「开启」变更为「关盘」时,系统对该联赛下的赛事执行以下联动操作:
| 赛事当前状态 | 联动处理 | 说明 |
|---|---|---|
| 待上架 | 保持待上架,禁止上架操作 | 上架按钮变为禁用状态,hover提示「所属联赛已关盘」 |
| 已上架且赛前 | 自动下架 | 系统自动将赛事下架,记录操作日志「联赛关盘触发自动下架」 |
| 已上架且即将开赛(≤30分钟) | 弹出确认对话框 | 提示操盘手「联赛已关盘,是否下架该赛事?」,操盘手选择下架或保持 |
| 已上架且滚球 | 保持已上架,盘口自动隐藏 | 隐藏来源=league_close,等待人工处理 |
| 已下架 | 无影响 | 保持已下架状态 |
滚球赛事特殊处理:滚球赛事不自动下架的原因是存在未结算注单,强制下架会导致结算流程中断。系统隐藏盘口后,由高级操盘手或主管决定后续处理方式。
16.2.2 联赛暂停时的赛事处理
当联赛状态从「开启」变更为「暂停」时,系统对该联赛下的赛事执行以下联动操作:
| 赛事当前状态 | 盘口当前状态 | 原隐藏来源 | 联动处理 | 隐藏来源变更 | 告警显示 |
|---|---|---|---|---|---|
| 待上架 | - | - | 保持待上架,禁止上架操作 | - | 上架按钮禁用 |
| 已上架 | 开盘 | - | 盘口状态设为隐藏 | 设为league_pause | 「联赛暂停」橙色标签 |
| 已上架 | 隐藏 | manual | 保持隐藏 | 保持manual | 保留原告警标签 |
| 已上架 | 隐藏 | risk_control | 保持隐藏 | 保持risk_control | 保留原告警标签 |
| 已上架 | 隐藏 | data_source | 保持隐藏 | 更新为league_pause | 更新为「联赛暂停」标签 |
| 已上架 | 隐藏 | maintenance | 保持隐藏 | 保持maintenance | 保留原告警标签 |
| 已上架 | 锁定 | - | 保持锁定 | - | 无变化 |
设计说明:已有高优先级隐藏来源(manual、risk_control、maintenance)的盘口保持原来源不变,确保联赛恢复时只有 league_pause 来源的盘口会自动取消隐藏,其他来源的盘口仍需按原规则处理。
延期赛事与联赛暂停的叠加处理:
当赛事处于延期状态(SettlementStatus=延期)时遇到联赛暂停/关盘,按以下规则处理:
赛事状态 联赛操作 联动处理 说明 延期+已上架 联赛暂停 盘口隐藏,隐藏来源= league_pause延期状态不影响联赛暂停的执行 延期+已上架 联赛关盘 盘口隐藏,隐藏来源= league_close等待人工评估后续处理 延期+待上架 联赛暂停/关盘 禁止上架 双重风险叠加,必须等待两个条件都恢复 恢复顺序:联赛恢复后,延期赛事需同时满足「联赛开启」和「延期状态解除」两个条件才能恢复开盘。优先级判定详见16.3.11节。
跟随配置与联赛暂停的优先级:
- 联赛暂停优先级(4)高于数据源暂停(5),因此
data_source来源会被league_pause覆盖- 联赛暂停优先级(4)低于风控暂停(3)和人工锁定(2),因此这些来源保持不变
- 跟随配置仅影响数据源暂停/恢复的自动同步,不影响联赛级操作
16.2.3 联赛恢复时的赛事处理
当联赛状态从「暂停」或「关盘」恢复为「开启」时,系统执行以下联动操作:
| 原联赛状态 | 盘口情况 | 隐藏来源 | 联动处理 | 说明 |
|---|---|---|---|---|
| 暂停 | 盘口隐藏 | league_pause | 检查数据源当前状态后决定恢复目标 | 见下方流程 |
| 暂停 | 盘口隐藏 | manual | 保持隐藏 | 人工意图优先 |
| 暂停 | 盘口隐藏 | risk_control | 保持隐藏 | 风控优先级高 |
| 暂停 | 盘口隐藏 | maintenance | 保持隐藏 | 等待维护结束 |
| 关盘 | 因联赛关盘而自动下架的赛事 | - | 不自动恢复上架 | 需人工评估后重新上架 |
| 关盘 | 滚球赛事盘口隐藏 | league_close | 检查数据源当前状态后决定恢复目标 | 见下方流程 |
| 任意 | 待上架赛事 | - | 恢复上架按钮可用 | 可正常执行上架操作 |
联赛恢复时的状态检查流程(针对 league_pause 或 league_close 来源的盘口):
查询隐藏来源=league_pause 或 league_close 的盘口
│
└── 逐个检查数据源当前状态
│
├── 数据源=开盘 → 本地恢复为开盘,清除隐藏来源
├── 数据源=暂停 → 本地保持隐藏,隐藏来源更新为 data_source
├── 数据源=维护 → 本地保持隐藏,隐藏来源更新为 maintenance
└── 数据源=关盘 → 本地设为关盘16.2.4 联赛状态变更通知
联赛状态变更时,系统向以下对象发送通知:
| 通知对象 | 通知内容 | 通知方式 |
|---|---|---|
| 该联赛分配的操盘手 | 「联赛名称」状态已变更为「新状态」,影响N场赛事 | 系统内消息通知 |
| 当前在操盘列表页的用户 | 列表数据实时刷新,受影响赛事高亮显示3秒 | 界面实时更新 |
| 主管 | 联赛状态变更汇总 | 系统内消息通知 |
16.2.5 异常处理
| 异常场景 | 处理方式 | 告警级别 |
|---|---|---|
| 联动执行超时(单个赛事处理>5秒) | 跳过该赛事,继续处理其他,记录失败日志 | 警告 |
| 联动执行失败(如数据库写入失败) | 重试3次,仍失败则记录错误日志并通知运维 | 错误 |
| 联赛状态回滚(如误操作后撤销) | 不自动逆向联动,需人工评估后处理 | 提示 |
16.3 数据源盘口状态联动
数据源(IM Sports)会推送盘口状态变更(开盘、暂停、维护、关盘),本地系统需要根据配置决定是否跟随。
16.3.1 跟随数据源盘口状态配置
「是否跟随数据源盘口状态」是联赛级别的配置项,在联赛管理页面配置,控制上架后盘口是否自动跟随IM开盘/暂停状态。
| 配置项 | 配置位置 | 选项 | 默认值 |
|---|---|---|---|
| 是否跟随数据源盘口状态 | 联赛管理页面 | 是/否 | 是 |
配置说明:配置粒度为联赛级别,同一联赛下所有赛事共享此配置。跟随数据源配置变更后立即生效,已上架赛事的盘口状态会立即与数据源当前状态同步(详见16.8.2节)。其他联赛配置(如限额模板等)变更仅对新上架赛事生效,已上架赛事保持原配置不变。操盘列表不提供配置入口,仅展示当前配置结果。
16.3.2 数据源状态定义
IM EventStatusId 字段说明
此处的
EventStatusId是 IM 数据源字段,表示盘口市场开关状态(1=开盘,2=关盘),不是赛事生命周期状态。赛事生命周期状态(未开始、滚球中、完场、延期等)由 IM 的LiveStatusId字段表示,详见第9章9.0.4节「IM关键字段速查表」和9.0.5节「IM三层状态字段关系说明」。
| 数据源状态 | IM 字段组合 | 含义 | 对应场景 |
|---|---|---|---|
| 开盘 | EventStatusId=1 且 MarketlineStatusId=1 且 IsMaintenance=false | 数据源正常推送,可接受投注 | 正常比赛进行中 |
| 暂停 | MarketlineStatusId≠1 或进球/红牌事件推送 | 数据源临时暂停推送 | 进球、红牌、VAR、比分变更 |
| 维护 | IsMaintenance=true | 数据源维护中 | 系统维护、数据修正 |
| 关盘 | EventStatusId=2 或 Delta Action=4/13 | 数据源关盘该赛事/玩法 | 玩法结算、赛事结束 |
16.3.3 跟随配置对联动的影响
跟随配置仅影响数据源「暂停」和「恢复」推送时是否自动同步本地状态,以下情况不受配置影响:
| 数据源状态 | 跟随配置=是 | 跟随配置=否 | 是否受配置影响 |
|---|---|---|---|
| 开盘(正常) | 盘口可开盘 | 盘口可开盘 | - |
| 暂停 | C端显示暂停投注(本地状态不变) | 本地保持当前状态,C端显示暂停投注,告警列显示「数据源暂停」 | 是 |
| 恢复 | C端自动恢复可投注(本地状态不变) | 本地保持当前状态,C端恢复可投注,移除告警 | 是 |
| 维护 | C端显示维护中(本地状态不变) | C端显示维护中(本地状态不变) | 否(不受配置影响) |
| 关盘 | 本地盘口关盘 | 本地盘口关盘 | 否(不受配置影响) |
16.3.4 数据源暂停时的联动处理
当数据源推送暂停状态时,本地盘口状态不变,仅 C 端展示状态变化:
| 跟随配置 | 盘口当前状态 | 本地状态 | C端展示 | 告警列显示 |
|---|---|---|---|---|
| 是 | 开盘 | 保持开盘 | 灰显,显示「暂停投注」,不接受投注 | 无(正常跟随) |
| 是 | 隐藏 | 保持隐藏 | 灰显,显示「暂停投注」 | 无 |
| 是 | 锁定 | 保持锁定 | 灰显,显示「暂停投注」 | 无 |
| 否 | 开盘 | 保持开盘 | 灰显,显示「暂停投注」,不接受投注 | 显示「数据源暂停」橙色标签 |
| 否 | 隐藏 | 保持隐藏 | 灰显,显示「暂停投注」 | 显示「数据源暂停」橙色标签 |
| 否 | 锁定 | 保持锁定 | 灰显,显示「暂停投注」 | 显示「数据源暂停」橙色标签 |
16.3.5 数据源恢复时的联动处理
当数据源从暂停恢复为开盘时,本地盘口状态不变,仅 C 端展示恢复:
| 跟随配置 | 盘口当前状态 | 隐藏来源 | 本地状态 | C端展示 | 告警变化 |
|---|---|---|---|---|---|
| 是 | 开盘 | - | 保持开盘 | 恢复正常显示,可投注 | 无 |
| 是 | 隐藏 | manual | 保持隐藏 | 保持灰显 | 无 |
| 是 | 隐藏 | risk_control | 保持隐藏 | 保持灰显 | 无 |
| 是 | 隐藏 | league_pause | 保持隐藏 | 保持灰显 | 无 |
| 是 | 隐藏 | maintenance | 保持隐藏 | 保持灰显(维护结束后同步处理) | 无 |
| 是 | 锁定 | - | 保持锁定 | 恢复正常灰显 | 无 |
| 否 | 开盘 | - | 保持开盘 | 恢复正常显示,可投注 | 移除「数据源暂停」告警 |
| 否 | 隐藏 | 任意 | 保持隐藏 | 保持灰显 | 移除「数据源暂停」告警 |
| 否 | 锁定 | - | 保持锁定 | 恢复正常灰显 | 移除「数据源暂停」告警 |
16.3.6 数据源维护时的联动处理
数据源维护状态不受跟随配置影响,本地盘口状态不变,仅 C 端展示变化:
| 盘口当前状态 | 本地状态 | C端展示 | 告警显示 |
|---|---|---|---|
| 开盘 | 保持开盘 | 灰显,显示「维护中」,不接受投注 | 「数据源维护」紫色标签 |
| 隐藏 | 保持隐藏 | 灰显,显示「维护中」 | 叠加显示「数据源维护」标签 |
| 锁定 | 保持锁定 | 灰显,显示「维护中」 | 「数据源维护」紫色标签 |
| 关盘 | 保持关盘 | 关盘 | 无 |
维护结束后的状态恢复规则:
当数据源维护结束(IsMaintenance 变为 false)时,系统对 C 端展示状态进行恢复,本地状态保持不变:
| 跟随配置 | 维护前本地状态 | 数据源当前状态 | 维护结束后处理 | 说明 |
|---|---|---|---|---|
| 是 | 开盘 | 开盘 | C端恢复正常显示,可投注 | 正常恢复 |
| 是 | 开盘 | 暂停 | C端显示暂停投注(灰显) | 跟随数据源当前暂停状态 |
| 是 | 开盘 | 关盘 | 本地变为关盘 | 强制执行 |
| 否 | 开盘 | 开盘 | C端恢复正常显示,可投注 | 维护期间C端灰显,维护后恢复 |
| 否 | 开盘 | 暂停 | C端显示暂停投注(灰显),告警列显示「数据源暂停」 | 不跟随维护,显示暂停告警 |
| 否 | 开盘 | 关盘 | 本地变为关盘 | 强制执行 |
非 IsMaintenance 触发的盘口:维护结束后,系统移除「数据源维护」告警标签,C 端展示恢复正常,本地状态和隐藏来源不变。
16.3.7 数据源关盘时的联动处理
数据源关盘不受跟随配置影响,且优先级最高:
| 盘口当前状态 | 联动处理 | 说明 |
|---|---|---|
| 开盘 | 强制变为关盘 | 不可逆,该玩法不再接受投注 |
| 隐藏 | 强制变为关盘 | 不可逆 |
| 锁定 | 强制变为关盘 | 关盘优先级高于锁定 |
| 关盘 | 保持关盘 | 无变化 |
关盘是终态,无法恢复。
16.3.8 人工锁定状态下的数据源交互
当盘口处于人工锁定状态时,数据源推送的处理规则(本地状态保持不变,C端展示会变化):
| 数据源推送 | 本地状态处理 | C端展示 | 说明 |
|---|---|---|---|
| 暂停 | 保持锁定 | 灰显「暂停投注」 | 人工锁定优先级高于数据源暂停,但C端展示暂停状态 |
| 恢复 | 保持锁定 | 恢复灰显锁盘 | 必须人工解锁 |
| 维护 | 保持锁定 | 灰显「维护中」 | 人工锁定优先级高于维护,但C端展示维护状态 |
| 关盘 | 变为关盘 | 关盘 | 关盘优先级最高,覆盖人工锁定 |
16.3.9 解锁后的状态恢复
操作位置说明:根据D1设计决策,解锁操作统一在「赛事操盘详情页」进行。
人工解锁时,根据数据源当前状态和跟随配置决定解锁后的盘口状态(C端展示同步处理):
| 数据源当前状态 | 跟随配置 | 解锁后盘口状态 | C端展示 | 说明 |
|---|---|---|---|---|
| 开盘 | 是 | 开盘 | 正常显示,可投注 | 正常恢复 |
| 开盘 | 否 | 开盘 | 正常显示,可投注 | 正常恢复 |
| 暂停 | 是 | 开盘 | 灰显「暂停投注」,不接受投注 | 跟随数据源当前暂停状态 |
| 暂停 | 否 | 弹出选择对话框 | 按选择处理 | 操盘手选择「开盘」或「隐藏」 |
| 维护 | 是 | 开盘 | 灰显「维护中」,不接受投注 | 维护期间C端灰显,解锁后开盘本地状态 |
| 维护 | 否 | 开盘 | 灰显「维护中」,不接受投注 | 维护期间C端灰显,解锁后开盘本地状态 |
| 关盘 | 任意 | 阻止解锁 | 保持关盘 | 提示「数据源已关盘,无法解锁」 |
不跟随配置下的解锁对话框:
标题:选择解锁后状态
内容:当前数据源状态为「暂停」,请选择解锁后的盘口状态:
选项:
○ 开盘(接受投注,C端显示「暂停投注」灰显,将显示「数据源暂停」告警)
○ 隐藏(等待数据源恢复后再开盘)
按钮:[确认] [取消]16.3.10 人工取消隐藏盘口的前置校验
操作位置说明:根据D1设计决策,取消隐藏盘口操作统一在「赛事操盘详情页」进行。
操盘手尝试将盘口从隐藏恢复为开盘时,系统执行以下前置校验:
| 校验项 | 校验条件 | 校验失败处理 |
|---|---|---|
| 联赛状态 | 所属联赛状态必须为「开启」 | 阻止取消隐藏,提示「所属联赛已暂停/关盘,无法取消隐藏盘口」 |
| 数据源状态(跟随=是) | 数据源当前状态必须为「开盘」 | 阻止取消隐藏,提示「数据源当前为暂停/维护状态,无法取消隐藏盘口」 |
| 数据源状态(跟随=否) | 数据源当前状态不能为「关盘」 | 阻止取消隐藏,提示「数据源已关盘,无法取消隐藏盘口」 |
| 风控状态 | 隐藏来源不能为risk_control | 阻止取消隐藏,提示「该盘口因风控规则隐藏,请先解除风控告警」 |
16.3.11 状态覆盖优先级
当多个触发源同时作用时,按以下优先级决定最终状态:
- 同级覆盖规则:
- 同一优先级内按"更保守者优先"(例如 league_close 覆盖 league_pause)。
- 若来源不同且优先级不同,低优先级不得覆盖高优先级;高优先级解除后,回落到次高优先级来源对应的状态。
7(最低)数据源暂停/恢复受跟随配置控制
| 优先级 | 状态/触发源 | 说明 |
|---|---|---|
| 1(最高) | 数据源关盘 | 数据源关盘或玩法结算后,不可逆 |
| 2 | 人工锁定 | 人工意图的强风控行为 |
| 3 | 风控自动隐藏 | 风控规则触发 |
| 4 | 联赛暂停/联赛关盘 | 联赛级联动(关盘高于暂停,同级内:close > pause) |
| 5 | 数据源恢复 | 数据源状态同步(同级内:maintenance > data_source) |
| 6(最低) | 人工隐藏/取消隐藏 | 日常操作 |
16.3.12 数据源状态变更通知
| 数据源状态 | 跟随配置 | 通知方式 |
|---|---|---|
| 暂停 | 是 | 无通知(正常跟随) |
| 暂停 | 否 | 告警列显示「数据源暂停」,同时发送消息通知(默认开启,联赛管理配置) |
| 维护 | 任意 | 告警列显示「数据源维护」,发送系统通知 |
| 关盘 | 任意 | 盘口状态变更为关盘,无额外通知 |
16.4 玩法配置变更联动
玩法配置变更属于配置层面的变更,遵循「配置不穿透」原则,仅影响未上架赛事,不影响已上架赛事。
16.4.1 玩法禁用时的处理
当某玩法在玩法管理中被禁用时:
| 影响范围 | 联动处理 | 说明 |
|---|---|---|
| 未上架赛事 | 该玩法不可上架 | 上架弹窗中不展示该玩法 |
| 已上架赛事 | 无影响 | 已开盘盘口正常运营,直到数据源关盘 |
设计原因:玩法禁用是配置层面的变更,不应影响已上架盘口的正常运营。已有投注的结算依赖数据源推送,不应因配置变更而中断。
16.4.2 玩法启用时的处理
当某玩法在玩法管理中被启用时:
| 影响范围 | 联动处理 | 说明 |
|---|---|---|
| 未上架赛事 | 该玩法可上架 | 上架弹窗中展示该玩法(若数据源有该玩法数据) |
| 已上架赛事 | 无影响 | 需人工补充上架该玩法 |
16.4.3 玩法配置变更通知
| 通知对象 | 通知内容 | 通知方式 |
|---|---|---|
| 所有在线操盘手 | 「玩法名称」已被「禁用/启用」 | 系统内消息通知 |
| 当前在操盘列表页的用户 | 列表数据实时刷新 | 界面实时更新 |
16.5 风控规则变更联动
风控规则变更属于配置层面的变更,仅影响告警计算和展示,不直接影响盘口状态。
16.5.0 风控告警阈值定义
风控规则中的告警阈值在风控规则管理模块配置,操盘列表根据这些阈值计算告警状态。
| 阈值名称 | 字段标识 | 默认值 | 允许范围 | 说明 |
|---|---|---|---|---|
| 单边超限阈值 | one_side_limit | 风控管理定义 | 风控管理定义 | 单个玩法单边投注比例超过此值触发告警,具体阈值见风控管理配置 |
| 大额投注阈值(单笔) | large_bet_single | 风控管理定义 | 风控管理定义 | 单笔投注金额超过此值触发告警,具体阈值见风控管理配置 |
| 大额投注阈值(累计) | large_bet_total | 风控管理定义 | 风控管理定义 | 单场赛事累计投注超过此值触发告警,具体阈值见风控管理配置 |
| 数据延迟阈值 | data_delay | 5秒 | 固定值 | 数据源推送延迟超过此值触发告警(固定值) |
| 延期超时阈值 | postpone_timeout | 24小时 | 1小时-72小时 | 延期赛事超过此时长触发告警 |
| 即将开赛告警阈值 | upcoming_alert | 10分钟 | 5分钟-30分钟 | 待上架赛事距开赛时间小于此值触发告警 |
阈值配置说明:
- 阈值配置支持全局级别和联赛级别,联赛级配置优先于全局配置
- 阈值变更后立即生效,系统对所有已上架赛事按新阈值重新计算告警状态
- 阈值变更记录到操盘日志,便于追溯
与第17章置顶规则的关联:
- 单边超限置顶条件使用 one_side_limit 阈值
- 大额投注告警置顶条件使用 large_bet_single 和 large_bet_total 阈值
- 待上架且10分钟内开赛中的10分钟为固定值,与 upcoming_alert 阈值独立(告警阈值控制告警显示,10分钟控制置顶触发)
16.5.1 告警阈值调整联动
当风控规则中的告警阈值被调整时,系统需要重新计算所有赛事的告警状态:
| 阈值类型 | 调整后处理 |
|---|---|
| 单边超限阈值 | 遍历所有已上架赛事,按新阈值重新判断是否触发「单边超限」告警 |
| 大额投注阈值 | 遍历所有已上架赛事的投注记录,按新阈值重新判断是否触发「大额投注」告警 |
| 数据延迟阈值 | 按新阈值重新判断所有滚球赛事是否触发「数据延迟」告警 |
说明:告警是展示层信息,阈值调整影响告警显示,但不直接改变盘口状态。触发风控隐藏需要满足风控规则中定义的自动隐藏条件。
16.5.2 阈值调整的生效时机
| 生效方式 | 说明 |
|---|---|
| 立即生效 | 保存配置后立即触发全量重算 |
| 增量生效 | 新阈值仅对保存后的新数据生效,历史数据不重算 |
系统默认采用「立即生效」方式,确保告警状态的准确性。
16.5.3 阈值调整通知
| 通知对象 | 通知内容 | 通知方式 |
|---|---|---|
| 所有操盘手 | 风控阈值已调整:「阈值名称」从A调整为B | 系统内消息通知 |
| 当前在操盘列表页的用户 | 告警列实时更新 | 界面实时更新 |
16.6 操盘手分配变更联动
操盘手分配变更仅影响分配关系和操作权限,不影响盘口状态。
16.6.1 操盘手离职或禁用
当操盘手账号被禁用或删除时,系统对其负责的赛事执行以下联动操作:
| 赛事状态 | 联动处理 |
|---|---|
| 赛前赛事 | 自动解除分配,赛事变为「未分配」状态,触发「未分配」告警 |
| 即将或滚球赛事 | 自动解除分配,触发「未分配」告警,同时通知主管紧急处理 |
说明:解除分配不影响盘口状态,已开盘的盘口继续正常运营。
16.6.2 操盘手权限变更
当操盘手权限从高级降为普通时:
| 场景 | 联动处理 |
|---|---|
| 该操盘手已执行的锁盘操作 | 保持锁盘状态,但该操盘手不再有解锁权限 |
| 该操盘手负责的赛事 | 保持分配关系,但操作权限受限 |
16.7 联动操作审计
所有联动操作记录以下审计日志:
| 字段 | 说明 | 示例 |
|---|---|---|
| 联动类型 | 触发联动的变更类型 | 数据源状态变更、联赛状态变更 |
| 触发源 | 变更的上游实体 | IM数据源、英超联赛 |
| 触发操作 | 具体的变更内容 | 数据源状态从「开盘」变更为「暂停」 |
| 影响范围 | 受影响的下游实体数量 | 影响12场赛事的盘口状态 |
| 联动动作 | 系统执行的联动操作 | 8场赛事盘口自动隐藏,4场因配置为不跟随而保持开盘 |
| 跟随配置 | 相关联赛的跟随配置 | 英超=是,西甲=否 |
| 隐藏来源 | 盘口隐藏时记录的来源 | data_source、league_pause |
| 操作人 | 触发变更的操作人(如为人工触发) | 管理员张三 |
| 操作时间 | 联动发生时间 | 2026-01-19 10:30:25 |
联动审计日志保留180天,支持按联动类型、触发源、操作人、隐藏来源筛选查询。
16.8 跟随配置粒度与优先级
16.8.1 跟随配置含义
「跟随数据源」是指本地盘口状态和 C 端展示是否自动响应 IM 数据源的开盘/暂停推送。注意:无论跟随配置如何,本地状态始终不因数据源暂停而改变,仅 C 端展示受影响。
| 配置值 | 数据源推送开盘 | 数据源推送暂停 |
|---|---|---|
| 跟随 | C端恢复正常显示,可投注 | C端自动灰显「暂停投注」,不接受投注;本地状态不变;无告警 |
| 不跟随 | C端恢复正常显示,可投注 | C端灰显「暂停投注」,不接受投注;本地状态不变;告警列显示「数据源暂停」标签 |
关键差异说明:
- 跟随配置=是:数据源暂停时,本地状态保持原样(开盘/隐藏/锁定都不变),仅 C 端灰显暂停投注,自动恢复时 C 端自动恢复显示。
- 跟随配置=否:数据源暂停时,本地状态保持原样,C 端灰显暂停投注,同时告警列提示「数据源暂停」,需人工干预。
注意:无论是否跟随,数据源关盘和维护推送始终执行,本地盘口状态相应变更。
16.8.2 跟随配置变更的立即生效规则
重要:跟随配置变更后立即生效,系统会立即同步已上架赛事的 C 端展示状态与当前数据源状态,但本地盘口状态不变。
从「不跟随」变更为「跟随」
| 当前本地状态 | 数据源状态 | 变更后本地状态 | 变更后C端展示 | 说明 |
|---|---|---|---|---|
| 开盘 | 开盘 | 开盘 | 正常显示,可投注 | 无变化 |
| 开盘 | 暂停 | 开盘 | 灰显「暂停投注」,不接受投注 | 本地状态不变,C端同步显示暂停 |
| 隐藏(人工) | 开盘 | 隐藏 | 灰显隐藏 | 人工隐藏优先,不自动恢复 |
| 隐藏(人工) | 暂停 | 隐藏 | 灰显隐藏 | 无变化 |
| 锁定 | 任意 | 锁定 | 灰显锁盘 | 锁定优先级高,不受影响 |
从「跟随」变更为「不跟随」
| 当前本地状态 | 数据源状态 | 变更后本地状态 | C端展示变化 | 说明 |
|---|---|---|---|---|
| 开盘 | 开盘 | 开盘 | 正常显示,可投注 | 无变化 |
| 开盘 | 暂停 | 开盘 | 灰显「暂停投注」,不接受投注,显示「数据源暂停」告警 | 本地状态不变,C端显示暂停并告警 |
| 隐藏(人工) | 任意 | 隐藏 | 灰显隐藏 | 人工隐藏不受影响 |
| 锁定 | 任意 | 锁定 | 灰显锁盘 | 锁定不受影响 |
不跟随时选择「开盘」的对话框
标题:确认开盘盘口
内容:当前数据源状态为「暂停」,您选择了「不跟随数据源」。
是否将盘口状态切换为「开盘」?开盘后将显示「数据源暂停」告警。
选项:
○ 开盘(接受投注)
○ 保持隐藏
按钮:[确认] [取消]16.8.3 配置层级
跟随数据源配置支持三个层级,按优先级从高到低:
| 层级 | 配置位置 | 优先级 | 默认值 | 说明 |
|---|---|---|---|---|
| 赛事级 | 赛事详情页/上架弹窗 | 最高 | - | 单个赛事的独立配置 |
| 联赛级 | 联赛管理页面 | 中 | 是 | 联赛下所有赛事的默认配置(默认值为 是) |
| 全局级 | 系统管理 | 最低 | 是 | 未配置联赛的默认值(默认值为 是) |
16.8.4 配置继承规则
| 场景 | 生效配置 |
|---|---|
| 赛事有独立配置 | 使用赛事级配置 |
| 赛事无配置,联赛有配置 | 使用联赛级配置 |
| 赛事和联赛均无配置 | 使用全局默认配置(跟随) |
16.8.5 赛事级配置入口
赛事级配置可在以下入口修改:
| 入口 | 操作方式 |
|---|---|
| 上架弹窗 | 选择「盘口初始状态」时,可选「不跟随数据源」 |
| 赛事详情页 | 在设置区域修改「跟随数据源」开关 |
| 批量操作 | 批量修改选中赛事的跟随配置 |
16.8.6 特殊赛事默认配置
以下类型赛事建议默认不跟随数据源:
| 赛事类型 | 默认配置 | 原因 |
|---|---|---|
| 热门标记赛事 | 不跟随 | 热门赛事投注量大,需人工控制节奏 |
| 等级1联赛赛事 | 不跟随 | 顶级联赛风险高,需谨慎操盘 |
| 杯赛决赛 | 不跟随 | 决赛关注度高,需特别关注 |
| 投注额超阈值赛事 | 不跟随 | 高投注额赛事风险大 |
16.8.7 配置变更生效时机
| 变更类型 | 生效时机 | 说明 |
|---|---|---|
| 联赛级跟随配置变更 | 立即生效 | 已上架赛事的盘口状态立即与数据源同步 |
| 联赛级其他配置变更 | 仅对新上架赛事生效 | 已上架赛事保持原配置不变 |
| 赛事级配置变更 | 立即生效 | 针对单个已上架赛事的人工操作 |
| 全局配置变更 | 仅对新上架赛事生效 | 已上架赛事保持原配置不变 |
16.8.8 配置展示
操盘列表中,跟随配置通过图标展示:
| 图标 | 含义 |
|---|---|
| 🔗 | 跟随数据源(继承联赛/全局配置) |
| 🔗✓ | 跟随数据源(赛事独立配置) |
| 🚫 | 不跟随数据源 |
悬停图标显示Tooltip:「跟随配置:[跟随/不跟随],来源:[赛事级/联赛级/全局]」
16.8.9 配置变更日志
跟随配置变更需记录到操盘日志,详见第18章「操盘日志页面规范」。
16.9 状态冲突处理
16.9.1 多触发源同时作用
当多个联动触发源在短时间内同时作用于同一盘口时,系统按 16.3.11 定义的优先级裁决最终状态。
时序冲突处理原则:后到的低优先级触发被忽略,后到的高优先级触发覆盖先前状态,相同优先级按时间顺序(后到的生效)。
16.9.2 本地与 IM 状态不一致处理
当检测到本地盘口状态与 IM 最新推送状态不一致时:
| 不一致类型 | 检测时机 | 处理方式 |
|---|---|---|
| 本地开盘,IM 暂停 | Delta 推送时 | 根据跟随配置决定是否同步 |
| 本地隐藏,IM 开盘 | Delta 推送时 | 根据跟随配置和隐藏来源决定 |
| 本地开盘,IM 关盘 | Delta 推送时 | 强制同步为关盘 |
| 本地关盘,IM 开盘 | Delta 推送时 | 保持关盘(关盘不可逆),记录异常日志 |
| 本地锁定,IM 开盘 | Delta 推送时 | 保持锁定,无变化 |
| 本地锁定,IM 暂停 | Delta 推送时 | 保持锁定,无变化 |
| 本地锁定,IM 关盘 | Delta 推送时 | 强制同步为关盘 |
修订记录
| 版本 | 日期 | 修订内容 |
|---|---|---|
| v1.0 | 2026-01-18 | 初稿 |
| v1.1 | 2026-01-20 | 补充风控告警阈值定义(16.5.0节) |
| v1.2 | 2026-01-21 | 【D1决策对齐】1) 16.3.2节VitePress语法转换;2) 16.3.9/16.3.10节增加操作位置说明(解锁/恢复在详情页) |
| v1.3 | 2026-01-28 | 【审计修正】16.5.0节风控告警阈值表:单边超限/大额投注阈值默认值和允许范围改为「联赛管理定义」 |
| v1.4 | 2026-01-28 | 【审计修正】16.1.2节补充「配置不穿透」原则的例外情况说明(跟随配置、联赛暂停/关盘立即生效) |
| v1.5 | 2026-01-28 | 【术语一致性修复】16.2.2节补充延期赛事与联赛暂停叠加处理规则 |
| v1.6 | 2026-01-28 | 【审计修正】1) 16.2.2节补充跟随配置与联赛暂停的优先级说明;2) 16.3.2节修正9.2.4节引用为9.0.4/9.0.5节 |
| v1.7 | 2026-01-29 | 【术语一致性】本地盘口状态"暂停"统一更名为"隐藏",与宪法v1.6保持一致;人工操作从"暂停/恢复"改为"隐藏/取消隐藏";16.1.1/16.1.2/16.3.3节示例文案对齐;数据源状态术语(IM暂停)保持不变 |
| v1.8 | 2026-02-11 | 【A1数据源暂停架构重构】16.1.4:data_source/event_incident/maintenance从隐藏来源枚举移出,改为IM状态标记(不改变本地状态,仅影响C端展示);16.1.5新增"暂停投注"行;16.3.3-16.3.9全面重写,IM暂停不再改变本地状态,改为C端灰显不接受投注;16.8.1-16.8.2更新跟随配置含义和变更规则 |