Skip to content
🚫 本页面不支持以下人工操作开盘 / 重新开盘 / 关盘 —— 统一由数据源推送触发(唯一来源)。关盘 = 绝对终态,无人工回退路径。
⚠️ 一期范围调整(2026-04-23) 已结算盘口赛果变化、VAR 改判等场景,一期不做自动重结算,系统仅在受影响的已结算盘口上标记提示"⚠️ 结算比分已发生变化,请检查盘口赛果",由结算人员主动发起「盘口二次结算」处理。正文相关章节规则保留作为二期设计参考。

第十九章 异常与边界处理

关盘口径(2026-04-21 生效):关盘来源统一为数据源推送(唯一来源);关盘 = 绝对终态,操盘页与结算详情页均不提供人工开盘入口。

一期调整(2026-04-23 生效):第 19.3.3 节"已结算(赛事待结算)+ 赛果发生变化 → 按 11.7 自动重新计算并执行二次结算"一期不实装。已结算盘口赛果变化(无论赛事处于待结算还是终态),系统仅标记提示"⚠️ 结算比分已发生变化,请检查盘口赛果",由结算人员主动发起「盘口二次结算」处理;标记仅在执行完盘口二次结算后自动清除(不支持手动关闭)。正文规则保留作为二期设计参考。

19.1 页面级异常

场景页面表现提示文案
页面加载失败全页错误 + 重试按钮「加载失败,请重试」
数据源离线顶部红色提示条「数据源离线,部分数据暂未更新」
网络超时全页错误 + 重试按钮「请求超时,请检查网络连接」

19.2 结算操作异常

场景行为
结算提交失败盘口卡片展示错误提示 + 重试按钮
二次结算提交失败弹窗保留 + 错误原因
该盘口所需赛果未到位该盘口跳过结算,不阻塞其他盘口;赛果录入弹窗中未到位的字段允许留空,不强制校验、不报错
比分拉取中 / 拉取失败赛果录入按钮灰置 + 提示等待同步(数据源异常边界,与盘口结算前置无关)
赛果录入校验失败弹窗内字段红色高亮 + 提示文案
赛事级确认失败弹窗保留 + 错误原因

19.3 并发与竞态

19.3.1 并发控制策略(操作版本校验 + 500ms 请求去重窗口)

两层机制

  • 操作版本校验(版本号):冲突控制主机制,版本号不匹配直接拒绝(无时间窗口,先到先得)
  • 请求去重窗口:500ms 内同一 操作标识 只执行 1 次(防网络抖动 / 用户双击重复请求)

完整定义见第 15 章 15.6c

场景行为
两人同时结算同一盘口版本号比对:先到的成功,后到的版本号不匹配 → 返回「该盘口已被他人操作,请刷新后重试」
两人同时操作同一赛事不同盘口允许并行(不同盘口独立版本号)
赛事级操作与盘口级操作并发赛事级和盘口级各自版本号独立;有依赖关系时按前置校验拒绝(如"结算赛事"要求所有盘口已结算)
同一用户网络抖动双发请求500ms 内同一 操作标识 仅执行 1 次(防重复保护,避免重复扣款 / 重复派彩)
结算人员结算时盘口被二次结算提示「该盘口状态已变更,请刷新」
注单视图和详情页同时操作同一盘口详情页优先。注单视图提示「该盘口正在详情页处理中」
数据源开关=开 且 IM 推送新比分时结算人员正在录入IM 推送的比分覆盖本地录入
数据源开关=关不自动同步,保留本地录入
IM 推送的比分有误结算人员在详情页对相关盘口执行二次结算 → 重新录入正确比分 → 执行结算

19.3.2 系统一致性保障

机制说明
操作版本号(操作版本校验)每次盘口 / 赛事状态变更递增版本号。提交时携带版本号,不匹配则拒绝并返回「数据已变更,请刷新」。无时间窗口,已执行的操作永久保护
请求去重窗口500ms 内同一 操作标识 只执行 1 次(行业常见 100-500ms,取上限容纳典型网络抖动)
状态前置校验结算操作提交时校验盘口当前状态是否为「关盘」,非关盘状态拒绝
赛事级前置校验二次结算 / 赛事异常处理等操作提交时校验赛事状态是否为「待结算」,不满足则拒绝

19.3.3 数据源恢复后赛果同步

盘口状态数据源开关IM 推送新比分处理
待结算有变化赛果自动填入覆盖本地录入,盘口预填结果刷新,结算人员确认后结算
待结算任何不自动同步,保留本地录入
已结算赛果与当前一致不触发任何动作
已结算(赛事待结算赛果发生变化按 11.7 自动重新计算并执行二次结算,按 15.4 差额矩阵处理派彩差额
已结算(赛事已结算/已取消/异常赛果发生变化不自动触发二次结算,仅在赛果录入弹窗提示"比分已更新,如需修正请先执行赛事驳回"。结算人员手动:1) 赛事驳回 → 2) 盘口二次结算 → 3) 重录赛果 → 4) 重新确认
已结算任何不自动同步;如需修正由结算人员手动执行盘口二次结算
本地锁定态开 / 关任何一律不同步;数据源后续赛果仅作告警记录,由结算人员判断是否走盘口二次结算

前置条件:该赛事"数据源开关"的状态决定系统是否主动同步 IM 推送的比分数据。开关由赛事创建时配置,赛事进行中可通过操盘页调整。


19.4 数据校验边界

场景行为
比分输入负数字段红色 + 「比分不能为负数」
半场比分 > 全场比分字段红色 + 「半场比分不能大于全场比分」
进球详情行数 ≠ 总进球红色提示 + 「应用赛果」按钮禁用
盘口无注单盘口卡片正常展示,可结算(派彩 = 0)

19.5 赛事切换边界

场景行为
切换赛事时有弹窗打开弹窗关闭,切换到新赛事
从结算详情页返回结算列表回到离开时的视图和筛选状态

19.6 延期/腰斩暂缓期间的盘口处理(行业通用做法)

赛事进入异常态(延期暂缓 / 腰斩暂缓)时,系统按以下规则处理盘口:

规则说明
立即批量关盘异常态触发时,系统立即关盘该赛事所有开盘中盘口,停止接受新投注
对应行业做法对应数据源延期 / 腰斩时所有盘口立即关盘的行业通用做法
已有注单保持待结算延期期间注单状态不变(仍为"待结算"),不退款、不结算
恢复后重开赛事恢复(赛事驳回 → 待结算)后,等待数据源推送新的开盘信号自动恢复盘口开盘态
异常态下的结算操作屏蔽异常态期间盘口二次结算 / 人工结算入口全部禁用,须先赛事驳回

19.7 数据源推送开盘后新旧注单混合场景

盘口经历"关盘 → 已结算 → 数据源推送开盘(自动回滚)→ 再次关盘 → 结算"路径时,详见第 15 章 15.6b

规则说明
注单独立判定系统按注单的"下注时比分"字段逐笔独立判定,新旧注单互不干扰
结果可能不同同一盘口下可能出现"旧注单判输 / 新注单判赢"等不同结果(符合业务预期,因下注时的基准分不同)
派彩独立计算新旧注单派彩独立计算,盘口卡片汇总展示时按注单维度分别统计

体育操盘系统产品文档