Appearance
附录:结算场景手册
关盘口径(2026-04-21 生效):关盘来源统一为数据源推送(唯一来源);关盘 = 绝对终态,操盘页与结算详情页均不提供人工开盘入口。
本文档面向结算人员和开发团队,按正常场景和异常场景分类,覆盖结算管理的完整业务链路。每个场景包含:触发条件、操作步骤、系统行为、预期结果。
一、正常场景
N1. 赛事正常结算(全自动 L1)
触发条件:数据源盘口 + IM 有结算结果
前置假设:本场景假设赛事下所有盘口均为数据源盘口,且 IM 正常推送比分数据 + 盘口终态状态字段,本地系统依 IM 状态直接触发派彩。实际生产中多为混合场景,可操盘盘口部分走 N2(L2 预填)/ N3(L3/L4 人工),不同类型盘口按各自判定时机独立推进(详见 E11)。
比赛终场
→ IM 同步关盘信号 → 数据源盘口自动关盘
→ IM 推送比分数据 + 盘口终态状态字段 → 本地依 IM 状态自动执行派彩(L1 全自动)
→ 串关母单按本地结算引擎自动结算
→ 结算详情页:所有盘口卡片显示「已结算」
→ 结算人员点击「结算赛事」→ 赛事确认完成
→ 赛事从操盘列表移除结算列表展示:盘口进度 22/22 → 状态「已结算」(绿色)→ 操作「查看」
N2. 赛事半自动结算(L2 预填 + 人工确认)
触发条件:可操盘盘口 + IM 有赛果
IM 推送比分数据 → 本地按 BT 级判定规则预填结算结果到盘口卡片
→ 结算人员逐盘口检查预填结果
→ 确认无误 → 点击「结算」按钮
→ 系统执行结算 + 派彩
→ 所有盘口结算完成 → 串关母单自动结算
→ 结算人员点击「结算赛事」结算人员注意:预填结果可能有误,需逐盘口确认。确认后结果不可撤销(需二次结算才能修改)。
N3. 赛事人工结算(L3 IM 未推送比分 / L4 IM 无法覆盖)
触发条件:盘口已关盘且该盘口所需比分可得,但 IM 未推送盘口终态(L3),或该 BT 为 IM 无法覆盖的玩法(L4,40 种)
方式 A:通过结算详情页(完整操作)
结算人员打开结算详情页
→ 确认该盘口已关盘且所需赛果可得
→ 点击「赛果录入」→ 补录/修正比分和扩展数据
→ 系统根据赛果计算各盘口结算结果
→ 结算人员逐盘口确认
→ 结算完成 → 点击「结算赛事」方式 B:通过结算列表注单视图(快捷通道)
结算人员切换到注单视图
→ 找到待结算注单 → 点击「人工结算」
→ 直接选择结算结果(赢/输/赢半/输半/走水/取消/退款)
→ 结果应用到对应盘口两种方式产出相同结果。详情页优先——若两边同时操作同一盘口,以详情页为准。
N4. 数据源 IM 关盘(自动)
触发条件:IM 推送盘口关盘信号(如比赛即将结束、阶段结束、IM 判定投注截止)
IM 推送 MarketlineStatusId=2(关盘信号)
→ 系统自动将盘口状态置为关盘
→ 盘口在操盘页显示"已关盘"
→ 结算详情页该盘口变为可结算说明:关盘来源仅数据源推送一种;操盘页不提供关盘按钮,结算页面也不提供关盘入口。关盘 = 绝对终态,如数据源误推送关盘,依赖数据源再次推送开盘信号自动恢复;持续未恢复时由操盘手联系数据源方排查。
N5. 串关母单自动结算
触发条件:母单所有子单均已结算
最后一个子单结算完成
→ 系统自动计算母单派彩 = 投注额 × 各子单系数乘积
→ 派彩向下取整至2位小数
→ 母单状态变为已结算 → 派彩自动发放无需结算人员确认。子单系数见第14章。
N6. BT6 波胆赛中结算
触发条件:赛中比分变化
比分变化(如 0:0 → 1:0)
→ 系统自动扫描波胆选项
→ 当前主队进球 > 选项主队进球 → 该选项标记为输
→ 当前客队进球 > 选项客队进球 → 该选项标记为输
→ 不提前判赢(判赢需等基准分确定后关盘)
→ "其他比分"选项赛中不判定特殊:BT6 不需要关盘即可赛中判输。
二、二次结算场景
R1. 赛事待结算时发现盘口结算错误(直接二次结算盘口)
触发条件:赛事尚未确认结算(待结算),发现某盘口结算结果有误
结算人员在详情页发现 BT1 让球结算结果有误
→ 赛事状态 = 待结算 → 可直接二次结算盘口(无需赛事驳回)
→ 点击 BT1 卡片「二次结算」按钮 → 确认弹窗
→ BT1 盘口:已结算 → 关盘
→ BT1 下注单:已结算 → 待结算
→ 关联串关母单:已结算 → 待结算
→ 结算人员重新选择结算结果 → 确认
→ 差额处理(多扣少补,不足记坏账)
→ 所有盘口已结算 → 结算人员点击「结算赛事」R2. 赛事已确认结算后发现盘口结算错误(两步操作)
触发条件:赛事已确认结算(已结算),事后发现某盘口结算结果有误,且距赛事最新结算时间不超过 24 小时
第一步:赛事驳回(须在 24 小时窗口内)
结算人员在详情页点击「赛事驳回」→ 弹窗显示剩余窗口 → 确认
→ 赛事:已结算 → 待结算
→ 所有盘口/注单/母单状态不变(仍是已结算)
→ 赛事重新出现在操盘列表
→ 结算列表中赛事行:状态变为「待结算」
第二步:盘口二次结算
→ 赛事现在是待结算,盘口「二次结算」按钮启用
→ 结算人员点击 BT1 卡片「二次结算」→ 同 R1 后续流程
→ 若重选赛果与原赛果不同 → 触发注单级联,计入该盘口循环次数
→ 若重选赛果与原赛果一致 → 不触发级联,注单保持原结算结果
第三步:重新确认
→ 所有盘口再次已结算
→ 结算人员点击「结算赛事」→ 赛事已结算
→ 赛事从操盘列表移除
若超过 24 小时窗口:赛事驳回按钮永久禁用,需走业务事故流程由运营人工介入。R3. 二次结算涉及串关
触发条件:被二次结算盘口有串关母单关联
BT1 被二次结算
→ BT1 下注单回退待结算
→ 包含 BT1 子单的母单A:已结算 → 待结算
→ 母单A 中其他子单不受影响
→ 结算人员二次结算 BT1 → BT1 子单系数更新
→ 母单A 自动重新计算派彩
→ 新旧派彩差额处理(直接扣回 + 坏账)三、赛事取消场景
C1. 赛事取消(赛前 / 赛中,结算人员主动发起)
触发条件:赛事尚未结算,结算人员判断需要取消
结算人员在详情页点击「赛事异常处理」→ 赛事异常处理弹窗(仅赛事待结算时按钮启用)
→ 选择异常原因(4 选 1:赛事取消 / 赛事延期 / 赛事腰斩 / 数据错误)
→ 确认取消
→ 系统对所有未结算盘口执行级联取消:
• 可操盘盘口:走本地取消流程,注单全额退款
• 数据源盘口正常态:等数据源同步取消信号
• 数据源盘口超时:走本地兜底取消,进入本地锁定态(数据源后续指示不再覆盖)
→ 所有注单 → 已取消,投注额全额退款
→ 赛事 → 已取消
→ 如需修正:距最新结算时间 24 小时内可通过赛事驳回回退到待结算;超窗不可恢复C2. 赛事腰斩
触发条件:比赛中途腰斩
结算人员在详情页点击「赛事异常处理」→ 弹窗 → 选择「赛事腰斩」
→ 选择处理方式:
├── 按当前比分结算:已完成时段正常结算,未完成时段退款
├── 全额退款:所有注单退还
└── 暂缓处理:保持待结算(可反复选择直到最终决定)串关影响:退款子单系数 = 1.00(降级,等同于移除该场)。
C3. 赛事延期(结算人员主动发起)
触发条件:赛事延期未恢复,由结算人员主动判断并发起
结算人员在详情页点击「赛事异常处理」按钮 → 弹窗 → 选择「赛事延期」
子方案一:延期暂缓
→ 赛事 → 异常态,注单保持待结算(不退款、不结算)
→ 赛事恢复:结算人员执行「赛事驳回」→ 待结算 → 恢复正常流程
→ 无法恢复:结算人员再次打开「赛事异常处理」弹窗
→ 选择「赛事延期 + 延期超时退款」→ 赛事 → 已取消
子方案二:延期超时退款
→ 直接全额退款 → 赛事 → 已取消
→ 距最新结算时间 ≤ 24h 内可通过「赛事驳回」回滚
系统不做任何自动处理(无定时提醒、无超时自动标记)四、异常场景
E1. 两人同时结算同一盘口
触发条件:两位结算人员同时操作同一盘口
结算人员 A 和结算人员 B 同时打开同一赛事详情页
→ A 先点击「结算」→ 成功
→ B 后点击「结算」→ 提示「该盘口已被结算,请刷新」
→ B 刷新页面后看到盘口已是已结算状态E2. 结算列表和详情页同时操作同一盘口
触发条件:一个在注单视图结算,另一个在详情页结算
结算人员 A 在结算列表注单视图选择结算结果
结算人员 B 在结算详情页操作同一盘口
→ 详情页优先
→ 注单视图提示「该盘口正在详情页处理中」E3. 结算提交失败
触发条件:网络异常或系统错误
结算人员点击「结算」→ 请求发送
→ 失败 → 盘口卡片显示红色提示「结算失败:{原因}」+ 重试按钮
→ 盘口状态不变(仍是关盘)
→ 结算人员点击重试 或 刷新页面E4. 二次结算提交失败
结算人员点击「确认二次结算」→ 请求发送
→ 失败 → 弹窗保留,展示错误原因
→ 盘口状态不变(仍是已结算)
→ 结算人员重试 或 关闭弹窗E5. 赛事驳回后操盘列表展示
触发条件:赛事从已结算驳回为待结算(须在距最新结算时间 24 小时内)
赛事驳回完成
→ 结算列表:赛事行状态变为「待结算」,显示距最新结算时间的 24 小时驳回窗口剩余时间
→ 操盘列表:赛事重新出现
→ 盘口进度仍显示 22/22(所有盘口仍是已结算,等待结算人员对具体盘口执行二次结算)注意:进度 22/22 + 状态「待结算」是正常表现——赛事驳回只改赛事状态,盘口状态不变,需要结算人员逐盘口二次结算后进度才会变化。 超过 24 小时:驳回按钮永久禁用;如需修正须走业务事故流程由运营人工介入。
E6. 赛事驳回时赛事已被取消
触发条件:赛事状态 = 已取消,结算人员需要回滚处理(须在距最新结算时间 24 小时内)
赛事已取消
→ 距最新结算时间 ≤ 24h:「赛事驳回」按钮可用
→ 结算人员点击「赛事驳回」→ 弹窗显示剩余窗口 → 确认
→ 赛事状态:已取消 → 待结算(盘口/注单状态不变)
→ 结算人员逐盘口执行盘口二次结算 → 重选赛果 → 按 15.4.3 矩阵末行计算差额
→ 若需追回已退款:按差额矩阵从用户余额扣回;不足部分记为坏账(独立模块处理)
→ 距最新结算时间超过 24h:驳回按钮永久禁用,须走业务事故流程E7. 数据源比分有误
触发条件:IM 推送的比分数据错误
IM 推送错误比分 → L1 盘口自动结算(结果错误)
→ 结算人员发现后:
若赛事待结算 → 直接二次结算相关盘口
若赛事已结算且距最新结算时间 ≤ 24h → 先赛事驳回 → 再盘口二次结算
→ 重新录入正确赛果 → 系统重新计算 → 确认
→ 若新赛果与错误赛果不同 → 触发注单级联,按 15.4 差额矩阵处理差额
→ 若赛事已超 24h 驳回窗口 → 走业务事故流程E8. 数据源离线
触发条件:IM 数据源断连
结算详情页顶部出现红色提示条「数据源离线」
→ L1 数据源盘口:自动结算路径中断,等数据源恢复或超时触发本地接管
→ L2 可操盘盘口:预填赛果延迟,但结算人员仍可直接录入赛果走 L3 路径人工结算
→ 数据源恢复后:数据源开关=开时自动同步 IM 推送的新比分;已进入本地锁定态的盘口不再接受覆盖E9. 派彩回收余额不足(坏账)
触发条件:盘口二次结算后新派彩 < 旧派彩,用户余额不足
BT1 原派彩 ¥10,000 → 二次结算 → 新派彩 ¥0(输)
→ 系统尝试从用户余额扣回 ¥10,000
→ 用户余额仅 ¥3,000
→ 扣回 ¥3,000,坏账 ¥7,000
→ 坏账记录:注单ID + 用户ID + 应扣10,000 + 实扣3,000 + 坏账7,000
→ 坏账由运营跟进处理E10. 各判定时机盘口独立结算(半场 / 分段 / 事件触发 / 终场)
触发条件:同一赛事有不同判定时机的玩法(参考第 7 章 7.8.1)
上半场结束(45 分钟)
→ 1H 类盘口关盘(数据源同步 或 结算人员手动)
→ 录入半场比分(数据源同步 或 人工补录)
→ 1H 类盘口(BT1-1H / BT2-1H / BT6-1H / BT9 半全场)进入可结算状态
→ 结算人员确认后逐盘口结算
各 15 分钟段结束
→ 段类盘口关盘 → 录入段内比分 → BT48 / BT179 / BT180 可结算
事件发生(每粒进球 / 每次角球)
→ 事件触发类盘口(BT37 第 X 粒进球队伍 / BT159 角球第 X 粒)
→ 数据源返回事件明细 → 对应盘口关盘并结算(可能远早于终场)
比赛终场
→ FT 类盘口关盘 → 录入终场比分 + 补齐扩展统计
→ FT 类盘口进入可结算状态
→ 结算人员确认所有盘口 → 点击「结算赛事」注意:
- 各盘口按自身判定时机独立推进,不等整场终场
- 某盘口所需赛果未到位时,该盘口跳过结算(不阻塞其他盘口),不报错
- 仅"结算赛事"这一赛事级操作须等所有盘口完成结算或已取消
N7. 滚球让球多组基准分场景(单关)
触发条件:同一盘口内存在多笔"下注时比分"不同的注单。
前提说明:
- 大部分滚球盘口内只有 1 组基准分(所有注单下注时比分相同),走单组 UX 流程,与现有结算 UX 完全一致(场景 A)
- **少数场景下(IM 模式 1:同盘口暂停-恢复)**同盘口内出现 2 组及以上基准分,走自适应多组 UX(场景 B)
- 系统自动按注单"下注时比分"聚合分组,结算人员无需手动识别
- 完整自适应规则见第 7.3.6 节 自适应基准分组结算 核心规则
场景 A:单组基准分(~90% 情况)
盘口:BT1 全场让球 -0.5(滚球盘口),开盘期间比分持续 0:0,100 笔注单全部在 0:0 下注。
盘口内基准分组:1 组(全部下注时比分 = 0:0)
终场比分 2:1 → 基准分 = 2:1 → 净差值 = 0.5 > 0 → 主队赢
100 笔注单统一结算为主队赢弹窗:按现有 UX 选一个结果,全部注单联动(不变)。
场景 B:多组基准分(~10% 情况,IM 模式 1 触发)
盘口:BT1 全场让球 -0.5(滚球盘口)
时间线:
- 10:00 开盘时比分 0:0 → 10:00-10:30 用户 A1-A100 下注 100 笔(下注时比分 = 0:0)
- 10:30 主队进球 → 比分 1:0 → IM 推送该盘口暂停
- 10:32 IM 推送恢复(同一个盘口 ID,新赔率)
- 10:32-11:00 用户 B1-B30 下注 30 笔(下注时比分 = 1:0)
- 11:00 终场比分 2:1
结算判定:
盘口内基准分组:2 组
组 1:下注时比分 0:0(100 笔)
基准分 = 终场 2:1
净差值 = 2 - 1 + (-0.5) = 0.5 > 0
→ 组 1 全部主队赢
组 2:下注时比分 1:0(30 笔)
基准分 = 2:1 - 1:0 = 1:1
净差值 = 1 - 1 + (-0.5) = -0.5 < 0
→ 组 2 全部主队输
同一盘口、同一盘口线,两组结果完全相反——都是正确行为。弹窗:按组分区展示,结算人员为每组分别选择结果;同组内联动、跨组独立(配对联动作用域亦限定同一基准分组内)。
关键点:
- 结算人员只需录入终场比分一次,系统自动按组推导结果
- 结算粒度 = 同盘口线 + 同基准分组
- 详细 UX 对照见第 7.3.6 节
N7b. 串关混合赛前 + 滚球子单(3 子单 3 串 1)
触发条件:母单包含赛前子单 + 滚球子单的混合串关(行业常见场景)
母单信息:
- 投注额 ¥1,000,3 串 1
- 子单 1:赛前 — BT1 全场让球 -0.5 主队,HK 0.92(终场 2:1)
- 子单 2:滚球 — BT3 全场独赢 主胜,HK 0.85(下注时 1:0,终场 2:1)
- 子单 3:赛前 — BT5 全场单双 双,HK 0.90(终场 2:1 → 总进球 3 单)
结算过程(每子单按自身阶段独立计算基准分):
子单 1(赛前让球):
基准分 = 终场 2:1
净差值 = 2 − 1 + (−0.5) = 0.5 > 0 → 主队赢
子单系数 = Decimal = 0.92 + 1 = 1.92
子单 2(滚球独赢):
基准分 = 下注后比分 = 2:1 − 1:0 = 1:1
1 = 1 → 平局 → 主胜输
子单系数 = 0
⚠️ 子单 2 输 → 母单短路触发 → 母单派彩 = 0
母单派彩:
触发短路规则(14.2)→ 无需计算子单 3
派彩 = 0若子单 2 改为"和局"(即使是滚球也赢的情况):
子单 2(滚球独赢·和局,下注时 1:0):
基准分 = 1:1 → 平局 → 和局赢
子单系数 = 1.85 + 1 = 2.85
子单 3(赛前单双·双):
基准分 = 终场总进球 3 → 单 → 双输
子单系数 = 0
母单派彩 = 0(子单 3 短路)更复杂场景(全赢):
- 子单 1 赛前让球主队 → 赢(系数 1.92)
- 子单 2 滚球让球 + 0.5(下注时 1:0)→ 基准分 1:1,主队 +0.5 净差值 1.5 > 0 → 赢(系数 2.85)
- 子单 3 赛前双 → 总进球 3 单 → 输(系数 0)→ 母单短路 0
结论:
- 每子单按自身阶段(赛前/滚球)独立计算基准分,互不影响
- 系统按下注时比分逐子单推导
- 串关展开面板应展示每个子单的阶段标签、下注时比分、基准分推导
- 任一子单输即短路(14.2),不必等所有子单结算
串关展开面板应展示(对应 settlement 07.2 增加的列):
| 子单 | 赛事 | 盘口 | 阶段 | 下注时比分 | 基准分 | 系数 | 结果 |
|---|---|---|---|---|---|---|---|
| 1 | 曼联 vs 利物浦 | BT1 -0.5 主 | 赛前 | 0:0 | 2:1 | 1.92 | 赢 |
| 2 | 曼联 vs 利物浦 | BT3 主胜 | 滚球 | 1:0 | 1:1 | 0 | 输 |
| 3 | 曼联 vs 利物浦 | BT5 双 | 赛前 | 0:0 | 2:1(总 3 单) | 0 | 输 |
跨赛事串关(更常见):若 3 子单来自 3 场不同赛事,各赛事结束时间不同,子单按各自赛事结束 + 赛果录入时间独立结算,母单等最晚子单结算完成后统一计算派彩。
E11. VAR 改判
触发条件:赛中或赛后 VAR 回看导致比分修正
场景A:结算前 VAR 改判
→ 数据源同步修正后比分(如 2:1 改为 1:1,进球被取消)
→ 赛果录入页数据自动更新
→ 结算人员确认修正后的比分 → 正常结算
场景B:结算后 VAR 改判
→ 数据源返回修正后比分
→ 结算人员在赛果录入页修改比分并应用
→ 系统检测到盘口赛果发生改变 → 自动执行二次结算(见[第 11 章 11.7](./11-赛果数据录入规则#_11-7-录入后的系统行为))
→ 按 15.4 差额矩阵自动处理(补发 / 扣回 / 不动)
→ 每次赛果变更按盘口粒度累计循环次数注意:VAR 改判不改变赛事状态(不标记异常),仅触发赛果修正流程。
五、操作速查表
| 我想要... | 操作步骤 |
|---|---|
| 快速结算一笔注单 | 结算列表 → 注单视图 → 找到注单 → 选择结算结果 |
| 完整处理一场赛事 | 结算列表 → 点击赛事行 → 进入详情页 → 等待完赛并拉到赛果 → 录入赛果 → 逐盘口确认 → 结算赛事 |
| 修改已结算盘口的结果(赛事未确认) | 详情页 → 盘口卡片「二次结算」→ 重新选择结果 → 确认 |
| 修改已确认赛事的盘口结果(24h 内) | 详情页 → 「赛事驳回」→ 盘口卡片「二次结算」→ 重新选择结果 → 确认 → 「结算赛事」 |
| 让盘口重新接受投注 | 不支持人工开盘。关盘 = 绝对终态;需等待数据源推送新的开盘信号自动恢复 |
| 修正数据源盘口错误结算(本地锁定态) | 详情页 → 数据源 Tab → 找到盘口 → 「二次结算」→ 重选赛果 → 确认 |
| 取消赛事 | 详情页 → 「赛事异常处理」→ 选择「赛事取消」→ 确认 |
| 处理腰斩 | 详情页 → 「赛事异常处理」→ 选择「赛事腰斩」→ 选择处理方式 |
| 处理延期 | 详情页 → 「赛事异常处理」→ 选择「赛事延期」→ 选择延期暂缓(异常态,立即批量关盘所有开盘中盘口)或延期超时退款(已取消) |
| 处理数据错误 / 赔率错误 | 实际修正走各自入口:开盘中赔率错 → 操盘详情页调赔率;关盘未结算赔率错 → 盘口卡片取消盘口 void;开盘中 / 关盘未结算赛果字段错 → 赛果录入页修正;已结算 / 已取消盘口错 → 盘口二次结算(第 15 章)。详情页「赛事异常处理 → 数据错误」弹窗仅做审计标记(不下架、不关盘、不改赛事态、不动订单) |
| 盘口关盘 | 仅由数据源 IM 推送自动触发(操盘页 / 结算页面均无人工关盘入口) |