Appearance
第十七章 排序规则
本章定义操盘列表的排序规则,包括默认排序、可选排序方式、置顶规则等。
17.1 设计原则
操盘列表的排序设计遵循以下原则:
| 原则 | 说明 |
|---|---|
| 稳定可预测 | 列表顺序稳定,操盘手能形成空间记忆,快速定位赛事 |
| 符合工作习惯 | 按联赛分组符合操盘手按联赛操盘的工作方式 |
| 紧急优先 | 需要紧急处理的赛事通过置顶方式突出显示 |
| 简单直观 | 避免复杂算法导致的不可预测性 |
17.2 默认排序:联赛分组
默认排序方式为「联赛分组」,规则如下:
联赛分组排序规则
| 层级 | 排序规则 |
|---|---|
| 第一层:联赛组 | 按联赛等级排序(等级1在前,依次等级2至等级10,默认档排最后),同等级按联赛编号排序 |
| 第二层:组内赛事 | 按开赛时间升序排序(早开赛的在前) |
联赛分组显示效果
联赛分组时,同一联赛的赛事显示在一起,联赛之间用分组标题栏分隔:
| 显示元素 | 说明 |
|---|---|
| 分组标题栏 | 显示国旗、联赛名称、赛事数量、折叠按钮 |
| 折叠功能 | 点击可折叠或展开该联赛的赛事 |
| 折叠状态保存 | 折叠状态保存到本地存储,下次访问时恢复 |
联赛等级排序权重
| 等级 | 排序权重 | 说明 |
|---|---|---|
| 等级1 | 1 | 顶级联赛(英超、西甲等),排在最前 |
| 等级2 | 2 | 重要联赛 |
| 等级3 | 3 | 次要联赛 |
| 等级4 | 4 | |
| 等级5 | 5 | |
| 等级6 | 6 | |
| 等级7 | 7 | |
| 等级8 | 8 | |
| 等级9 | 9 | |
| 等级10 | 10 | 低级联赛,排在最后 |
| 默认 | 11 | 未分配等级的联赛,排在所有等级之后 |
联赛等级定义:联赛等级在联赛管理页面配置(默认+等级1-10共11档),侧边栏联赛树同样按此等级排序(详见第3章3.3节「联赛树排序规则」)。
17.3 可选排序方式
用户可以在筛选区切换排序方式,可选项包括:
| 排序方式 | 排序规则 | 适用场景 |
|---|---|---|
| 联赛分组 | 按联赛分组,组内按开赛时间 | 默认,日常操盘 |
| 开赛时间 | 纯粹按开赛时间从早到晚 | 关注即将开赛的赛事 |
| 投注额 | 按投注额从高到低 | 关注高投注额赛事 |
| 风险程度 | 按单边比例从高到低 | 关注高风险赛事 |
排序方式切换
切换排序方式后,系统立即重新排序列表。排序方式选择保存到本地存储,下次访问时恢复用户偏好。
切换到非联赛分组的排序方式时,联赛分组标题栏不显示,所有赛事平铺展示。
快照排序说明:「投注额」「风险程度」等动态数据排序为快照排序——仅在切换排序方式、筛选变更、手动刷新时按当时数值排序,之后数值变化不触发重排,以保持列表稳定性。如需按最新数值排序,请手动刷新列表。
17.4 置顶规则
置顶区位于列表最上方,用于突出显示需要紧急处理的赛事。置顶规则与排序方式无关,任何排序方式下置顶赛事都显示在最上方。
17.4.1 置顶条件
以下条件的赛事自动置顶:
| 置顶条件 | 优先级 | 背景颜色 | 说明 |
|---|---|---|---|
| 待上架且滚球 | 1 | 红色10% | 最紧急,比赛已开始但未上架 |
| 待上架且10分钟内开赛 | 2 | 红色10% | 紧急,即将开赛但未上架 |
| 单边超限(超过告警阈值) | 3 | 橙色10% | 触发风控规则配置的单边告警阈值,需要关注 |
| 大额投注告警 | 4 | 橙色10% | 异常投注,需要关注 |
| 延期超时(150%+) | 5 | 红色10% | 延期时长超过阈值150%,需紧急处理 |
17.4.1.1 置顶条件与告警类型的对应关系
与第9章告警类型的对应:系统定义11种告警类型(详见第9章9.11节),其中以下5种触发置顶:
| 置顶条件 | 对应告警类型(9.11.1) | 告警优先级 | 是否触发置顶 |
|---|---|---|---|
| 待上架且滚球 | MOST_URGENT | 1 | ✅ 触发 |
| 待上架且10分钟内开赛 | URGENT | 2 | ✅ 触发 |
| 单边超限 | ONE_SIDE_EXCEED | 3 | ✅ 触发 |
| 大额投注告警 | LARGE_BET | 4 | ✅ 触发 |
| 延期超时(150%+) | POSTPONE_TIMEOUT | 5 | ✅ 触发 |
| — | MATCH_PAUSED | 6 | ❌ 不触发 |
| — | SOURCE_PAUSED | 7 | ❌ 不触发 |
| — | SOURCE_MAINT | 8 | ❌ 不触发 |
| — | DATA_DELAY | 9 | ❌ 不触发 |
| — | UNASSIGNED | 10 | ❌ 不触发 |
| — | NEUTRAL_GROUND | 11 | ❌ 不触发 |
设计说明:置顶仅针对需要操盘手立即处理的紧急情况。数据源暂停、比赛暂停等告警虽需关注,但不要求立即处理,通过告警列提示即可。
阈值说明:单边超限的阈值由风控规则配置决定,非固定值。具体配置参见风控规则管理模块。
已下架赛事不触发置顶:
已下架赛事即使处于滚球或即将开赛状态,也不会触发置顶规则。原因如下:
- 下架是操盘手主动执行的操作,系统假定操盘手已知晓该赛事状态
- 下架操作会强制隐藏所有盘口(客户端不可见),不存在紧急开盘的需求
- 如需关注已下架的滚球赛事,可通过「全部」Tab + 「滚球」进程筛选组合查看
如果已下架赛事需要重新上架,操盘手应主动在筛选条件中查找并处理。
17.4.2 置顶区显示
| 显示元素 | 说明 |
|---|---|
| 分隔线 | 置顶区与普通区之间用红色分隔线分隔 |
| 置顶标识 | 置顶赛事行首显示红色置顶图标 |
| 置顶原因 | 鼠标悬停置顶图标显示置顶原因 |
17.4.3 置顶区内排序
置顶区内的赛事按优先级排序,优先级相同时按开赛时间排序。
17.4.4 置顶解除与升级
当赛事不再满足置顶条件时,自动移出置顶区,回到普通排序位置。解除条件包括:
| 置顶条件 | 解除/变更条件 |
|---|---|
| 待上架且滚球 | 完成上架 |
| 待上架且10分钟内开赛 | ① 完成上架;或 ② 比赛开始进入滚球阶段 → 升级为「待上架且滚球」(见下方说明) |
| 单边超限 | 单边比例降到告警阈值以下(参见风控规则配置) |
| 大额投注告警 | 告警被确认处理 |
升级机制:「待上架且10分钟内开赛」的赛事如果进入滚球阶段仍未上架,其置顶条件自动升级为「待上架且滚球」,优先级从2升至1,不会从置顶区移出。这确保了未上架的滚球赛事始终保持最高紧急程度。
17.5 排序稳定性
为保证列表稳定,减少视觉干扰,排序遵循以下稳定性规则:
| 规则 | 说明 |
|---|---|
| 相同排序键保持原顺序 | 排序键相同的赛事保持相对顺序不变 |
| 数据更新不触发重排 | 投注额、单边比例等数据更新不触发列表重排 |
| 仅特定事件触发重排 | 筛选条件变更、排序方式切换、手动刷新时才重排 |
| 置顶进出有动画 | 赛事进入或退出置顶区时有平滑动画 |
重排触发条件
以下情况会触发列表重新排序:
| 触发条件 | 说明 |
|---|---|
| 页面首次加载 | 初始化排序 |
| 筛选条件变更 | 重新查询并排序 |
| 排序方式切换 | 按新方式重排 |
| 手动刷新 | 点击刷新按钮 |
| 新赛事进入列表 | 插入到正确位置 |
| 赛事退出列表 | 从列表移除 |
| 置顶状态变化 | 进入或退出置顶区 |
不触发重排的情况
以下数据更新不触发重排,仅更新显示内容:
| 数据更新 | 处理方式 |
|---|---|
| 比分变化 | 原地更新显示 |
| 比赛分钟变化 | 原地更新显示 |
| 投注额变化 | 原地更新显示 |
| 单边比例变化 | 原地更新显示,但会触发置顶状态变化 |
| 盘口状态变化 | 原地更新显示 |
17.6 筛选与排序的组合
不同筛选条件下的排序处理:
| 筛选条件 | 排序处理 |
|---|---|
| 比赛进程=滚球 | 正常按选定方式排序,置顶规则生效 |
| 比赛进程=即将 | 正常按选定方式排序,置顶规则生效 |
| 比赛进程=赛前 | 正常按选定方式排序,无置顶(赛前定义为开赛时间大于30分钟,不存在紧急待上架情况) |
| 赛事状态=延期 | 按开赛时间排序,无联赛分组,无置顶 |
| 告警状态=有告警 | 正常按选定方式排序,置顶规则生效 |
赛前无置顶说明:根据第9章定义,「赛前」阶段为开赛时间大于30分钟,「即将」阶段为开赛时间≤30分钟。「待上架且10分钟内开赛」的赛事∈「即将」阶段,因此「赛前」筛选结果中不会出现需要紧急置顶的情况。
修订记录
| 版本 | 日期 | 修订内容 |
|---|---|---|
| v1.0 | 2026-01-15 | 初稿 |
| v1.1 | 2026-01-20 | 修正动态排序快照说明、置顶阈值引用配置、置顶升级机制、赛前无置顶澄清 |
| v1.2 | 2026-01-20 | 补充已下架赛事不触发置顶的说明 |