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

第十五章 驳回与二次结算

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

数据错误处理入口(2026-04-23 定稿):数据错误的实际修正全部走各自独立入口(不走赛事异常处理弹窗内的业务动作):开盘中赔率错 → 操盘详情页调赔率;关盘未结算赔率错 → 本章盘口卡片「取消盘口」按钮(void);开盘中 / 关盘未结算赛果字段错 → 赛果录入页修正;已结算 / 已取消盘口错 → 本章盘口二次结算(第 15.2 节前置条件盘口=已结算/已取消)。第 16.5 节赛事异常处理 → 数据错误弹窗仅做审计标记(不下架、不关盘、不改赛事态、不动订单),不替代以上实际修正动作。

15.1 两类操作

操作作用对象触发入口状态变化时效对下级的影响
赛事驳回赛事赛事信息头「赛事驳回」按钮(见第 4 章已结算 / 已取消 / 异常 → 待结算距最新结算时间 ≤ 24 小时不影响任何盘口 / 注单 / 母单状态
盘口二次结算单个盘口(或盘口线)盘口卡片「二次结算」按钮(见第 7 章已结算 / 已取消 → 关盘该盘口下注单回退待结算,关联母单回退待结算

操作顺序约束:盘口二次结算要求赛事状态 = 待结算。若赛事非待结算状态(已结算 / 已取消 / 异常),必须先执行赛事驳回(→待结算),再进入盘口二次结算。

24 小时驳回窗口:所有赛事驳回操作须在赛事最新结算时间起 24 小时内发起。多次"驳回 → 重选 → 再结算"循环时,窗口以最新一次结算时间向后滚动。超窗后按钮永久禁用,赛事终态不可恢复;如需修正须走业务事故流程由运营人工介入。

时区基准:24 小时窗口按 UTC 时间戳计算(赛事结算时间以 UTC 存储,对应数据源的 UTC 时间标准)。展示时按用户浏览器本地时区转换展示(菲律宾运营团队看到 UTC+8)。跨时区团队基准一致,避免歧义。


15.2 赛事驳回

规则说明
前置条件赛事状态 = 已结算、已取消或异常(三种状态均可执行赛事驳回)
时效约束距赛事最新结算时间 ≤ 24 小时;超窗按钮永久禁用
操作入口结算详情页赛事信息头「赛事驳回」按钮
操作权限结算人员
确认弹窗第 9 章 9.2b
状态变化赛事 已结算 / 已取消 / 异常 → 待结算
对盘口的影响无。所有盘口保持原状态(已结算 / 已取消等)
对注单的影响
对串关母单的影响
对操盘列表的影响赛事重新出现在操盘列表中
赛事驳回的目的解除盘口二次结算的赛事级前置限制,使结算人员可以对具体盘口执行二次结算
驳回次数不设上限;24 小时窗口以最新结算时间滚动

15.3 盘口二次结算

15.3.1 前置条件(首次结算 vs 二次结算区分)

盘口操作分两类,异常态下的行为不同:

操作类型赛事状态要求说明
盘口首次结算(关盘 → 已结算)待结算 异常态行业做法:异常态下有明确赛果的盘口(如腰斩时上半场类)允许正常首次结算;赛事状态和盘口状态两层独立
盘口二次结算(已结算 → 关盘)待结算赛事非待结算时按钮禁用,提示「请先执行赛事驳回」。确保已结算盘口的修改走完整 [赛事驳回→二次结算] 路径
盘口取消(待结算 → 已取消)待结算 异常态异常态下可发起盘口级取消
条件说明
盘口状态 = 已结算仅已结算盘口可发起二次结算

15.3.2 盘口二次结算流程

结算人员点击盘口卡片「二次结算」按钮

弹出二次结算弹窗(展示影响范围:注单数/已派彩/关联串关数)

点击「确认二次结算」

盘口结算结果撤销,盘口状态回退为「关盘」(不是开盘,不接受投注)

该盘口下所有注单回退为待结算

盘口卡片恢复为关盘状态,可重新选择结算结果

结算人员重新选择结算结果并确认 → 系统执行差额处理

15.4 派彩回收机制

一期不做派彩冻结。盘口二次结算时,系统直接从用户余额扣回差额:

规则说明
扣回方式二次结算后系统自动计算新旧派彩差额,直接从用户余额扣回
余额充足差额全额扣回,正常完成
余额不足能扣多少扣多少,不足部分记为坏账
新派彩 > 旧派彩补发差额给用户
坏账记录每笔坏账记录:注单 ID + 用户 ID + 应扣金额 + 实扣金额 + 坏账金额

差额处理触发时机:差额处理在新结算结果确定后自动触发。

风险说明:二次结算期间用户可能已提现导致余额不足。一期接受此风险,坏账由运营跟进处理。

15.4.1 统一差额公式

设 W = 注单投注额(本金),D = 注单投注时的 Decimal 赔率(= HK + 1)。

变量口径
旧派彩二次结算前注单对应的账面已支出金额(参见 15.4.2 派彩口径表
新派彩二次结算后按新结算结果计算的应支出金额(同口径)
差额新派彩 - 旧派彩
差额系统动作
差额 > 0从平台向用户余额补发差额绝对值
差额 < 0从用户余额扣回差额绝对值;余额不足时按剩余余额扣回,不足部分记为坏账
差额 = 0不触发任何余额操作,仅记录盘口二次结算状态变更日志

15.4.2 各结算结果的派彩口径(核心规则)

结算结果派彩金额推导适用渲染器
W × D全额派彩(含本金 + 净赢利,即 W + W × HK)全部
0平台收入本金,用户无支付全部
赢半W × (D+1) / 2半注赢 + 半注走水:0.5W × D + 0.5W仅 MultiLineTable
输半0.5W半注输 + 半注走水:0 + 0.5W仅 MultiLineTable
走水W全退本金仅 MultiLineTable
取消W全退本金全部
退款W全退本金全部

等价提示:走水 / 取消 / 退款三种结果在账面上完全等价(均为"全退本金 W"),三者之间互转时差额恒为 0。

已取消赛事场景:赛事已取消导致盘口进入已取消状态(注单已退款 W)。赛事驳回后执行盘口二次结算时,旧派彩 = W(视同"取消"结果),按矩阵末行计算差额。

15.4.3 差额处理矩阵(全量)

下表横轴为新结算结果,纵轴为旧结算结果。单元格值 = 差额 = 新派彩 − 旧派彩(正 = 补发,负 = 追回,0 = 不动)。走水/取消/退款合并为一列。

旧 ↓ \ 新 →赢 (W·D)输 (0)赢半 (W·(D+1)/2)输半 (0.5W)走水/取消/退款 (W)
赢 (W·D)0−W·D−W·(D−1)/2W·(0.5−D)W·(1−D)
输 (0)+W·D0 ⭐+W·(D+1)/2+0.5W+W
赢半 (W·(D+1)/2)+W·(D−1)/2−W·(D+1)/20−W·D/2+W·(1−D)/2
输半 (0.5W)+W·(D−0.5)−0.5W+W·D/20+0.5W
走水/取消/退款 (W)+W·(D−1)−W+W·(D−1)/2−0.5W0

特殊约束:旧 = 输 & 新 = 输——差额 = 0,无余额操作、无需触发差额日志条目;盘口状态仍完成"已结算 → 关盘 → 已结算"的回退流程,但对该注单本身的差额处理链路被跳过(仅保留盘口状态变更日志,不生成注单级差额日志)。

15.4.4 多组基准分场景下的差额基线(组级独立口径)

15.4.4.1 背景与适用范围

当盘口内存在多组基准分时(见 第 7.3.6 节),同一盘口的不同组独立结算,各组可能呈现不同结算结果。本小节规定此类盘口发生二次结算时,差额基线按组独立维护,不与同盘口其他组串扰。

适用范围:仅适用于第 7.3.6 节定义的多组基准分盘口的二次结算场景(常规赛事滚球让球 / 大小类;本地结算路径 L2 / L3 / L4)。单组场景退化为现有盘口级基线(无改动)。冠军赛事不适用(冠军盘口不存在"下注时比分"概念,无多组基准分)。

15.4.4.2 核心原则:组级独立基线

层级记录单元口径
组级原派彩基线每个基准分组在首次结算时固化一份"该组全部注单的原派彩总额"作为该组未来二次结算的差额计算基数
组级新派彩二次结算选定新结果后,按该组全部注单重算派彩总额
组级差额组新派彩 − 组原派彩基线第 15.4.3 节 差额处理矩阵 落位到资金动作

关键不变式

  • 不同组的基线互相隔离,任一组二次结算不影响其他组的基线快照
  • 其他组未发生赛果变化时,其他组的差额 = 0,不触发资金操作
  • 日志落位以组为单位

15.4.4.3 二次结算触发粒度

场景差额处理粒度联动范围
单组盘口(1 组)盘口级 = 组级(退化一致)盘口全部注单
多组盘口,某 1 组二次结算仅该组基线 + 该组注单重算仅该组注单;其他组不动
多组盘口,多组同时二次结算各组独立执行本节规则各组互不串扰

15.4.4.4 循环计数粒度(对第 15.6 节的扩展)

赛果变更计数在多组场景下按"盘口线级 + 基准分组"粒度维护:

  • 每组独立累计计数
  • 某组第 N 次二次结算时,其他组计数不变
  • 不同组可能经历不同次数的修正(例如组 1 赛果无争议保持 0 次;组 2 因数据源修正经历 2 次)

落位:第 15.6 节"计数粒度"行追加一条"多组基准分场景按组独立维护计数"。

15.4.4.5 基准分组与首次结算的协作

多组场景首次结算弹窗(见第 7.3.6.4 节 / 第 7.3.6.3a 节)提交时,系统对每组分别记录以下字段作为基线快照:

字段口径
基准分组标识下注时比分
组内注单数该组聚合的注单笔数
组原派彩总额该组全部注单按首次结算结果计算的派彩合计

该快照作为后续二次结算差额计算的基数。

15.4.4.6 盘口级回滚场景与组级基线的协作(对第 15.6d.5 节的澄清)

第 15.6d.5 节已约定"多组基准分盘口的回滚对盘口内所有组统一执行(全部回退到待结算);差额处理按组独立计算"。本小节具体化该规则:

  • 回滚动作对"所有组注单一并回退到待结算"是盘口级统一执行
  • 但"差额处理"仍以各组基线快照为基数,逐组按第 15.4.3 节矩阵计算
  • 重新结算后,每组独立产生新的基线快照(覆盖原快照)

15.4.4.7 日志落位(对第 21 章的补充)

每次多组盘口二次结算,每组独立生成一条结算日志,字段含:

  • 盘口标识 + 组标识(下注时比分)
  • 组内注单数 / 组投注额
  • 组原结果 + 组新结果
  • 组原派彩总额 + 组新派彩总额 + 组差额
  • 关联母单数(该组子单涉及的母单)

15.4.4.8 边界场景

场景处理
某组二次结算后触发数据源开盘回滚(见第 15.6d 节)回滚粒度盘口级(全部组回退);差额基数仍按各组首次结算时的基线快照
某组二次结算时,其他组尚未首次结算其他组无基线;首次结算时按组生成基线,不参与本次差额计算
组数变化(二次结算前后新增 / 减少组)业务不可能——基准分组由"下注时比分"静态决定,结算动作不改变注单字段
多组全部组被同时二次结算(整盘口修正)各组按本节规则并发执行;全部组的差额日志合集呈现
L4 多组手动结算的二次结算本节规则同样适用(L4 首次结算时每组独立选结果 → 写入各自基线 → 二次结算按组独立重算)

15.4.4.9 与现有规则的一致性校验

既有规则本节兼容性
第 7.3.6.5 节 跨组不联动差额基线组级独立等价于"跨组不联动"在资金维度的延伸
第 15.4.1 节 统一差额公式公式不变,仅基数由"盘口原派彩"改为"组原派彩"
第 15.4.3 节 差额矩阵矩阵不变,作用单元由"盘口"改为"组"
第 15.5 节 二次结算对串关的影响子单系数仍派生自引用盘口该组的结算结果,母单按各组新系数重算
第 15.6 节 赛果变更计数粒度扩展为"盘口线级 + 基准分组"

15.4.5 渲染器可用结算结果范围

不同渲染器支持的结算结果子集不同,矩阵的适用范围按渲染器裁剪:

渲染器可选结算结果矩阵适用范围
MultiLineTable赢 / 输 / 赢半 / 输半 / 走水 / 取消 / 退款完整 5×5 矩阵
SingleLineTable赢 / 输 / 取消 / 退款仅"赢 / 输 / 走水-取消-退款" 三行三列子集
Matrix赢 / 输 / 取消 / 退款同上
LongList赢 / 输 / 取消 / 退款同上

SingleLineTable / Matrix / LongList 三种渲染器不支持"赢半 / 输半 / 走水"结果,矩阵中涉及"赢半 / 输半"的单元格不适用于这三类渲染器;"取消"与"退款"在账面等价,互转差额为 0。

15.4.6 基准示例

以下用例均基于 W = 1,000(投注额),D = 1.88(HK 0.88):

#旧结果旧派彩新结果新派彩差额系统动作
11,8800−1,880追回 1,880(不足记坏账)
2000不处理 ⭐(用户约束:输→输跳过差额处理)
31,8801,8800不处理
4赢半1,4401,880+440补发 440(另半注净赢利)
51,880赢半1,440−440追回 440
6输半5001,880+1,380补发 1,380
7走水1,0001,880+880补发 880(净赢利)
8走水1,0000−1,000追回本金 1,000
9已取消赛事驳回 → 判赢1,000(视同取消)1,880+880补发 880
10已取消赛事驳回 → 判输1,0000−1,000追回本金 1,000
11已取消赛事驳回 → 维持取消1,000取消1,0000不处理
12已取消赛事驳回 → 走水1,000走水1,0000不处理

验证方法:用户账面最终净变化(投注时 −W + 中间状态发放 ± 差额操作)应等于"按新结算结果从一开始就结算"的净变化。所有用例代入后恒等(开发/测试可交叉验证)。


15.5 盘口二次结算对串关的影响

场景行为
被二次结算盘口有串关母单关联母单状态回退为待结算
母单已派彩母单派彩待二次结算后按 15.4.1 差额公式处理(差额 > 0 补发;< 0 扣回,不足记坏账;= 0 不动)
母单中其他子单不受影响,保持原结果
子单二次结算后母单自动按新系数乘积重新计算派彩,执行差额处理

差额 = 0 的串关场景:若子单新旧结算结果都导致子单系数相同(如旧输→新输系数都为 0;旧走水→新走水系数都为 1.00),母单派彩无变化,差额 = 0,不触发余额操作(与 15.4.3 矩阵⭐规则一致)。


15.6 赛果变更计数

规则说明
计数事件仅当盘口赛果发生实质改变时(新结算结果 ≠ 原结算结果)+ 1
不计数首次结算(赛果从无到有)、数据源推送开盘自动回滚、二次结算但重选相同结果
计数粒度盘口线级(MLT 渲染器)/ 玩法级(其他渲染器);多组基准分场景按组独立维护(详见 第 15.4.4.4 节
记录位置结算日志的"赛果变化触发自动重算"条目,字段:累计次数 N
用途仅作统计追溯,不做告警或阈值禁止

15.6b 数据源推送开盘后的新旧注单混合处理

盘口经历"关盘 → 已结算 → 数据源推送开盘(自动回滚)→ 再次关盘 → 结算"路径时,同一盘口下会同时存在两批注单:

注单类型下注时比分字段结算逻辑
旧注单(第一次开盘期间投注)记录第一次投注瞬间的比分按该字段计算"下注后比分"结算(赛前注单 = 终场比分;滚球注单 = 终场比分 − 下注时比分,详见 12.0.2 基准分定义)
新注单(数据源推送开盘后投注)记录开盘恢复后投注瞬间的比分同上逻辑,但"下注时比分"是开盘恢复后的当前比分

关键规则

  • 系统按注单的"下注时比分"字段逐笔独立判定,新旧注单互不干扰
  • 同一盘口下可能出现"旧注单判输 / 新注单判赢"等不同结果(视下注时比分而定,符合业务预期)
  • 派彩计算独立,盘口卡片汇总展示时按注单维度分别统计
  • 盘口分母口径:分母为已关盘盘口数(不含数据源推送开盘后再次回到开盘态的盘口计数)

15.6c 并发操作控制(操作版本校验 + 请求去重窗口)

多结算人员同时操作同一赛事 / 盘口时,系统按两层机制处理:

第一层:操作版本校验(冲突控制主机制)

规则说明
实现机制盘口 / 赛事各自维护递增版本号,每次状态变更 +1;用户端提交操作时携带当前版本号
冲突判定系统校验版本号:匹配则执行(执行后版本号 +1),不匹配则拒绝
优势无时间窗口,先到先得,已在处理的操作永远保护,避免永久锁死
适用范围盘口级结算 / 二次结算 / 取消;赛事级结算 / 驳回 / 异常处理
UX 反馈冲突时弹窗提示"该盘口 / 赛事已被他人操作,请刷新后重试",不自动重试

第二层:请求去重窗口(防重复提交)

规则说明
触发场景网络抖动导致用户端自动重试、用户双击按钮等导致同一操作重复提交
防重复机制每次操作生成唯一操作标识;系统在 500ms 内识别到相同操作标识只执行 1 次
默认值500ms(行业常见范围 100-500ms,取上限以容纳典型网络抖动)
配置归属系统级写死,修改需发版

并发场景处理示例

场景行为
两人同时结算同一盘口先到的请求更新版本号成功;后到的版本号不匹配,返回"该盘口已被他人操作,请刷新后重试"
两人同时操作同一赛事不同盘口允许并行(不同盘口独立版本号)
同一用户网络抖动双发请求同一操作标识在 500ms 内被识别,只执行 1 次(防重复保护)
赛事级操作与盘口级操作并发赛事级和盘口级各自版本号独立;有依赖关系时按前置校验拒绝(如"结算赛事"要求所有盘口已结算)

15.6d 数据源推送开盘信号的自动回滚流程

关盘 = 绝对终态,无人工开盘入口;但数据源作为权威数据源,其推送的开盘信号对本地是硬约束,必须自动响应。本节定义数据源推送开盘信号时的完整回滚流程。受 24 小时窗口限制——超过 24 小时窗口的赛事不再执行回滚,数据源推送被拒收。

15.6d.1 触发条件与数据源事实

数据源事实:数据源无独立的"开盘/关盘切换"业务指令。数据源仅通过 MarketlineStatusId(增量推送)推送盘口状态值:

MarketlineStatusId含义
1开盘
2关盘

状态变化语义:本地基于数据源推送 MarketlineStatusId: 2→1 的状态变化,识别出"盘口由关盘变为开盘"。数据源本身不区分"首次开盘"和"再次开盘",只关心当前应有状态值。

触发条件:仅由数据源推送 MarketlineStatusId = 1 且本地盘口当前状态非开盘触发。人工无任何触发入口

15.6d.2 按本地状态分支处理

系统接收 IM 开盘信号后,按本地盘口当前状态执行不同操作:

本地状态盘口级操作注单级操作串关母单级操作资金处理日志类型
开盘中忽略冗余推送信息日志(可选记录)
关盘(待结算)关盘 → 开盘保持待结算保持待结算F9 IM 推送开盘(关盘态恢复)
已结算⭐(赛事 = 待结算 或 赛事终态但 ≤ 24h)已结算 → 开盘已结算 → 待结算已结算 → 待结算(短路解除)已派彩按 15.4 差额矩阵延迟处理F10 IM 推送开盘 + 自动回滚
已结算(赛事终态且 > 24h)拒收 IM 推送(本地状态保持已结算)无变化无变化无变化F12 IM 推送被 24h 超窗拒收
已取消(赛事 = 待结算 或 赛事终态但 ≤ 24h)已取消 → 开盘已取消 → 待结算已取消 → 待结算已退款金额撤销(从余额扣回,不足记坏账)F11 IM 推送开盘(取消撤销)
已取消(赛事终态且 > 24h)拒收 IM 推送(本地状态保持已取消)无变化无变化无变化F12 IM 推送被 24h 超窗拒收

15.6d.3 已结算自动回滚详细流程

数据源推送开盘信号到已结算盘口

系统自动执行

① 盘口状态:已结算 → 开盘
② 该盘口下所有子注单:已结算 → 待结算
③ 关联串关母单:已结算 → 待结算
    · 若母单因该子单判输触发过短路结算(派彩=0)→ 自动解除短路,母单恢复待结算;母单原派彩为 0 不涉及资金撤销
    · 母单其他子单状态保持不变(赢/输/走水各自保留);母单恢复待结算后等所有子单重新确定
    · 该盘口"再次关盘 + 完成结算"时,母单按新子单结果重新评估:
        - 该子单再次判输 → 母单再次短路判负(派彩 0,零差额,无资金变动)
        - 该子单判赢 / 走水 → 母单按 14.3 子单系数表重新计算派彩(可能产生补发差额)
        - 该子单判取消/退款(系数=1.00)→ 母单按其他子单重新评估
④ 原派彩按 15.4 差额矩阵延迟处理:
    · 系统记录"原派彩总额"作为差额计算基数(**不立即扣回**)
    · **多组基准分盘口**:按组独立记录各组原派彩总额(对齐 [§15.4.4.2 组级独立基线](#_15-4-4-2-核心原则-组级独立基线)),再次结算时各组分别计算差额,跨组互不串扰
    · 具体差额 = 新派彩 − 原派彩,**需等盘口再次关盘并完成结算后才能计算**
    · 差额处理时机:盘口"再次关盘 + 完成新一轮结算"触发,按 15.4.3 矩阵执行:
        - 补发场景:新派彩 > 原派彩 → 差额补发给用户
        - 扣回场景:新派彩 < 原派彩 → 从余额扣回(不足记坏账)
        - 零差额:不触发资金变动,仅记日志
⑤ 赛事级状态联动判断(24h 超窗拒收)
    · 赛事 = 待结算 → 盘口直接回滚,赛事状态不改变
    · 赛事 = 已结算 / 已取消 / 异常态(腰斩暂缓 / 延期暂缓):
        - 距最新结算时间 **≤ 24h** → 自动驳回赛事至待结算 + 执行盘口回滚流程(步骤 ①-④)
            * **业务合理性**:24 小时窗口内赛事结算仍可调整,IM 推送开盘等效于"数据源恢复正常"业务信号,解除赛事异常/终态合理
        - 距最新结算时间 **> 24h** → **拒收本次 IM 推送**,盘口保持已结算态,赛事保持原状态
            * **业务合理性**:超过 24 小时后赛事已完成结算流程,IM 推送回滚不再执行;以稳定结算结果优先
            * 结果:本地与 IM 状态永久不一致,但超窗后盘口无活跃注单(均已派彩/已结算),业务影响可控
            * 记录 F12 拒收日志供审计追溯;**不自动重试**,后续 IM 推送同一盘口开盘也持续拒收(直到人工干预或赛事重建)
⑥ 记录系统日志:
    · 24h 内回滚 → F10 IM 推送开盘 + 自动回滚(绿色系统级)
    · 超窗拒收 → F12 IM 推送开盘被 24h 超窗拒收(红色警告级)
⑦ 对正在操作该盘口的结算人员推送提示:"盘口状态已由数据源更新,请刷新"(仅 24h 内回滚场景;超窗拒收不触发提示,因为本地状态未变)

15.6d.4 自动回滚机制要点

维度2026-04-21 数据源推送自动回滚
触发方仅数据源推送(MarketlineStatusId: 2→1);人工无触发入口
前置条件无前置;按本地状态自动分支
赛事级联动赛事 = 待结算:直接回滚;终态 24h 内:自动驳回回滚;终态超窗:拒收数据源推送
24h 窗口约束约束数据源推送的回滚(按 24 小时窗口约束)
并发处理24h 内回滚:数据源优先,结算人员被提示刷新;超窗拒收:本地状态不变,无提示
差额处理按 15.4 矩阵延迟到再次关盘结算
串关短路解除自动解除
日志类型F 类:F9(恢复)/ F10(回滚)/ F11(撤销退款)/ F12(超窗拒收,红色警告)

15.6d.5 边界场景

场景处理
数据源反复推送(关→开→关)每次推送独立处理(本节仅作用于盘口状态变化;已结算盘口的赛果变化第 11.7 节 5 分钟聚合窗口);若 1 分钟内频繁切换,二期评估引入状态切换聚合窗口
同一推送同时包含新状态 + 新赛果状态变化先处理(按本节规则触发盘口回滚);赛果变化随后触发(盘口处于已结算且赛果发生改变 → 按 11.7 节自动重新结算 + 5 分钟聚合窗口)
IM 推送开盘但本地查询到盘口不存在忽略 + 记录异常日志
结算人员正在操作该盘口时收到 IM 推送(24h 内回滚场景)IM 优先;结算人员未提交的操作被取消,页面提示"盘口状态已由数据源更新,请刷新"
数据源盘口进入本地锁定态后 IM 推送开盘拒收(本地锁定态设计初衷就是避免 IM 后续推送覆盖本地手动结算,详见 第 18 章 18.2.4)+ 记录 F7 拒收日志;IM 推送回滚规则仅作用于可操盘盘口和非本地锁定态的数据源盘口
多组基准分盘口(第 7.3.6 节)回滚盘口已结算 → 待结算的回退动作对盘口内所有基准分组统一执行(所有组注单一并回退到待结算);差额处理按组独立计算(每组记录各自的原派彩总额作为差额基数)
盘口下注单已部分派彩到用户钱包(有提现)(24h 内回滚场景)已派彩金额仍按 15.4 矩阵延迟处理;若再次结算需扣回但余额不足 → 记坏账
24h 超窗拒收后 IM 持续推送开盘每次推送均拒收,均记 F12 日志;不自动重试;结算人员可通过审计日志查看所有拒收记录
本地与数据源状态因超窗拒收永久不一致可接受(超窗赛事结算已完成,无活跃注单;数据源侧持续认为盘口开盘不影响本地业务流程)。持续不一致且影响业务时,由操盘手联系数据源方排查推送来源并要求纠正,本地不做自动重试

15.7 操作记录

本章涉及的 3 类操作的日志字段完整定义见 第 21 章 21.2 日志记录范围

操作类型对应 21 章定义
赛事驳回21.2.1:赛事 ID + 赛事名 + 原状态(已结算 / 已取消 / 异常态)→ 待结算 + 距最新结算时间剩余窗口(小时)
盘口二次结算21.2.1:盘口 ID + 盘口名 + 原结算结果 + 新结算结果(如已重选)+ 影响注单数 + 已派彩金额 + 差额金额 + 关联串关母单数
赛果变化触发自动重算21.2.3:盘口 ID + 盘口名 + 原结算结果 + 新结算结果 + 差额金额 + 影响单关数 + 影响母单数 + 该盘口累计赛果变更次数 N

体育操盘系统产品文档