Appearance
第12章 数据字段定义
12.0 与其他章节的关系说明
本章定义操盘页涉及的所有数据字段,包括字段来源、数据类型、精度、业务含义。
| 维度 | 相关章节 | 本章职责 |
|---|---|---|
| 盘口表格 | 第6章盘口卡片模块 | 本章定义表格中各列的字段规格 |
| 赔率计算 | 第7章赔率编辑与计算 | 本章定义赔率字段精度,计算规则见第7章 |
| 状态字段 | 第8章控制层级、第9章状态流转 | 本章定义状态字段取值,流转规则见第8/9章 |
| 风险敞口 | 核心摘要5.8节 | 本章引用5.8的Exposure口径定义 |
| IM数据源 | IM体育数据接口v5.2.6/v6 | 本章引用IM原始字段定义 |
| 操盘列表 | 操盘列表页第9章数据字段定义 | 本章复用赛事级字段定义,聚焦盘口级字段 |
12.1 字段分类原则
操盘页的数据字段分为三类,命名和取值必须严格区分,禁止混用。
12.1.1 字段分类
| 分类 | 定义 | 命名规范 | 存储位置 |
|---|---|---|---|
| IM原始字段 | 由IM数据源API直接推送的字段 | 保持IM原始字段名(英文) | 仅缓存,不落库 |
| 本地落库字段 | 由本地系统存储和管理的字段 | 使用业务语义命名(中文/英文) | 落库 |
| 本地派生字段 | 由本地系统根据业务规则实时计算的字段 | 使用业务语义命名 | 不落库,实时计算 |
12.1.2 三层赔率架构对应
| 层级 | 字段类型 | 来源 | 用途 |
|---|---|---|---|
| 第一层 | IM赔率(IM原始字段) | IM数据源推送 | 只读参考,数据源同步基准 |
| 第二层 | 本地赔率(本地落库字段) | 数据源同步/手动编辑 | 交易/风控/结算,实际生效 |
| 第三层 | 显示赔率(本地派生字段) | 本地赔率四舍五入 | 界面展示 |
12.1.3 IM字段命名规范
⚠️ 声明:IM字段名大小写敏感,本PRD中所有IM字段名与接口定义保持严格一致。如出现拼写差异或大小写不一致,以IM数据字典为唯一真源并进行全局替换。
12.2 盘口表格字段定义
操盘页盘口表格共10列,以下定义各列字段规格。
12.2.1 盘口表格列结构
| 列序 | 列名 | 字段分类 | 适用渲染器 | 说明 |
|---|---|---|---|---|
| 1 | 盘口线 | 本地落库 | MultiLineTable | 仅多线玩法显示 |
| 2 | 选项 | IM原始+本地 | 全部 | 选项名称和状态 |
| 3 | 初始赔率 | 本地落库 | 全部 | 上架时锁定的赔率 |
| 4 | 本地赔率 | 本地落库 | 全部 | 当前生效赔率,可编辑 |
| 5 | IM赔率 | IM原始 | 全部 | 数据源实时推送赔率 |
| 6 | 偏离 | 本地派生 | 全部 | 本地赔率与IM赔率差值(同制式) |
| 7 | 投注额 | 本地落库 | 全部 | 该选项累计投注金额 |
| 8 | 占比 | 本地派生 | 全部 | 该选项投注占玩法总投注比例 |
| 9 | 注单 | 本地落库 | 全部 | 该选项累计注单数 |
| 10 | 风险 | 本地派生 | 全部 | 平台净亏(风险敞口)和预估盈亏 |
12.3 盘口线字段(第1列)
盘口线列仅在MultiLineTable渲染器中显示,用于区分同一玩法下的不同盘口线。
12.3.1 盘口线相关字段
| 字段名 | 数据类型 | 来源 | IM对应字段 | 精度 | 说明 |
|---|---|---|---|---|---|
| 盘口线ID | 长整型 | IM原始 | MarketlineId | - | 盘口唯一标识 |
| 盘口线值 | 浮点数 | IM原始 | Handicap | 2位小数 | 让球数或大小球线,如-0.5、2.5 |
| 盘口线级别 | 整型 | IM原始 | MarketlineLevel | - | 用于判断主力线,1为主力线 |
| 盘口线状态 | 枚举 | 本地落库 | - | - | 开盘/隐藏/锁定/关盘 |
| 盘口线投注额 | 金额 | 本地落库 | - | 2位小数 | 该线所有选项投注额合计 |
| 盘口线风险敞口 | 金额 | 本地派生 | - | 2位小数 | 该线平台净亏(Exposure) |
12.3.2 主力线判定规则
| 优先级 | 判定条件 | 说明 |
|---|---|---|
| 1 | MarketlineLevel 等于 1 | 以IM返回的主力线标记为准 |
| 2 | 该玩法下投注额最高的盘口线 | 若IM未提供MarketlineLevel字段时使用 |
主力线显示规则:
- 主力线在盘口线值左侧显示「主」标签,样式为蓝色背景
- 主力线不可隐藏
- 副线可隐藏,隐藏仅影响操盘视图,不改变市场结构
12.3.3 盘口线值显示格式
| 玩法类型 | 盘口线值格式 | 示例 |
|---|---|---|
| 让球 | 带正负号,主队视角 | -0.5、+0.5、-1、+1 |
| 大小球 | 无正负号 | 2.5、3、3.5 |
12.4 选项字段(第2列)
选项列展示投注选项的名称和状态。
12.4.1 选项相关字段
| 字段名 | 数据类型 | 来源 | IM对应字段 | 说明 |
|---|---|---|---|---|
| 选项投注ID | 长整型 | IM原始 | WagerSelectionId | 选项唯一标识 |
| 选项类型ID | 整型 | IM原始 | SelectionId | 选项类型,如1=主队、2=客队、3=大、4=小 |
| 选项名称 | 字符串 | IM原始 | SelectionName | 选项显示名称 |
| 选项盘口值 | 浮点数 | IM原始 | Handicap | 选项关联的盘口值 |
| 选项状态 | 枚举 | 本地落库 | - | 开盘/隐藏/锁定/关盘 |
| 选项状态来源 | 枚举 | 本地落库 | - | manual/data_source/league_pause/league_close/risk_control/system/inherit/maintenance/event_incident(详见第8章隐藏来源) |
12.4.2 选项状态图标
| 选项状态 | 图标 | 颜色 | 说明 |
|---|---|---|---|
| 开盘 | 开 | 绿色 | 可接受投注 |
| 隐藏 | 隐 | 橙色 | 临时隐藏 |
| 锁定 | 🔒 | 红色 | 人工锁定 |
| 关盘 | 关 | 灰色 | 已关盘 |
12.4.3 选项名称显示规则
| 玩法类型 | 显示格式 | 示例 |
|---|---|---|
| 让球 | 队名 + 盘口值 | 主队 (-0.5)、客队 (+0.5) |
| 大小球 | 大/小 + 盘口值 | 大 2.5、小 2.5 |
| 独赢 | 队名/和 | 主胜、和局、客胜 |
| 单双 | 单/双 | 单、双 |
| 波胆 | 比分 | 1:0、2:1、其他 |
12.5 赔率字段(第3-6列)
12.5.1 初始赔率字段(第3列)
| 字段名 | 数据类型 | 来源 | 精度 | 说明 |
|---|---|---|---|---|
| 初始赔率 | 浮点数 | 本地落库 | 落库3位/显示2位 | 上架时锁定的本地赔率快照(HK) |
业务规则:
- 赛事上架时,将当时的本地赔率作为初始赔率锁定
- 初始赔率在赛事生命周期内不变
- 用于计算赔率变动幅度,辅助操盘手判断
显示样式:灰色,不可编辑
12.5.2 本地赔率字段(第4列)
| 字段名 | 数据类型 | 来源 | 精度 | 说明 |
|---|---|---|---|---|
| 本地赔率 | 浮点数 | 本地落库 | 落库3位/显示2位 | 当前生效的港赔HK |
| 本地赔率趋势 | 枚举 | 本地派生 | - | up/down/unchanged |
| 本地赔率更新时间 | 时间戳 | 本地落库 | 毫秒 | 最后一次修改时间 |
| 本地赔率更新来源 | 枚举 | 本地落库 | - | ao_follow/manual/auto_jump |
业务规则:
- 本地赔率是交易/风控/结算的唯一依据
- 双击可编辑,编辑时显示输入框
- 编辑后需通过校验才能保存(见第7章)
显示样式:
- 默认白色
- 较初始赔率上涨显示↑绿色箭头
- 较初始赔率下跌显示↓红色箭头
12.5.3 IM赔率字段(第5列)
| 字段名 | 数据类型 | 来源 | IM对应字段 | 精度 | 说明 |
|---|---|---|---|---|---|
| IM赔率(HK) | 浮点数 | IM原始 | 见取值规则 | 4位小数 | 数据源推送的港赔 |
| IM赔率类型 | 整型 | IM原始 | OddsType | - | 赔率格式 |
| IM赔率更新时间 | 时间戳 | IM原始 | - | 毫秒 | Delta推送时间 |
IM赔率类型枚举(来源:IM Appendix V1.4.1):
| OddsType | 赔率格式 | 说明 |
|---|---|---|
| 1 | MY马来盘 | 马来西亚常用 |
| 2 | HK港赔 | 本地统一使用 |
| 3 | EU European Odds | 欧洲常用 |
| 4 | ID印尼盘 | 印尼常用 |
| 6 | US美式盘 | 美国常用 |
IM赔率(HK)取值规则:
| 优先级 | 取值条件 | 取值方式 |
|---|---|---|
| 1 | 响应中 OddsType=2 且 Odds 非空 | IM_HK_Odds = Odds |
| 2 | 从 OddsList 中找到 OddsType=2 的项 | IM_HK_Odds = OddsValues.A |
| 3 | 无法取到 HK(OddsType=2)或值为0/异常 | 本次推送视为异常 |
异常处理:
- 若无法取到有效的HK赔率,只更新"IM原始字段缓存"
- 不触发数据源同步与偏离计算
- 触发数据异常告警
显示样式:灰色,只读
12.5.4 偏离字段(第6列)
| 字段名 | 数据类型 | 来源 | 精度 | 计算公式 |
|---|---|---|---|---|
| 偏离值 | 浮点数 | 本地派生 | 2位小数 | 本地赔率(HK) 减去 IM赔率(HK) |
口径说明:偏离值必须是同制式比较,即本地HK减去IM的HK,IM_HK按12.5.3取值规则获取。
显示规则:
| 偏离值 | 显示格式 | 颜色 | 说明 |
|---|---|---|---|
| 大于0 | +X.XX | 绿色 | 本地高于IM |
| 等于0 | 0.00 | 灰色 | 本地等于IM |
| 小于0 | -X.XX | 红色 | 本地低于IM |
| 绝对值超过0.10 | 加粗 | 对应颜色加深 | 触发偏离告警阈值(默认0.10,风控管理配置) |
12.6 投注统计字段(第7-9列)
12.6.1 投注额字段(第7列)
| 字段名 | 数据类型 | 来源 | 精度 | 说明 |
|---|---|---|---|---|
| 选项投注额 | 金额 | 本地落库 | 2位小数 | 该选项累计投注金额(仅统计已接受未结算) |
显示规则:
| 金额范围 | 显示格式 | 示例 |
|---|---|---|
| 小于1万 | 原值 | ¥8,500 |
| 大于等于1万且小于1亿 | 万为单位 | ¥18.6万 |
| 大于等于1亿 | 亿为单位 | ¥1.2亿 |
更新频率:每笔注单确认后实时更新
12.6.2 占比字段(第8列)
| 字段名 | 数据类型 | 来源 | 精度 | 计算公式 |
|---|---|---|---|---|
| 投注占比 | 百分比 | 本地派生 | 整数% | 选项投注额 ÷ 集合总投注额 × 100% |
显示规则:
| 占比范围 | 颜色 | 说明 |
|---|---|---|
| 小于70% | 白色 | 正常 |
| 70%至85% | 橙色 | 单边警告(默认70%,风控管理配置) |
| 大于85% | 红色加粗 | 严重单边(默认85%,风控管理配置) |
更新频率:每笔注单确认后实时更新
12.6.3 注单数字段(第9列)
| 字段名 | 数据类型 | 来源 | 精度 | 说明 |
|---|---|---|---|---|
| 注单数 | 整数 | 本地落库 | 整数 | 该选项累计注单数量(仅统计已接受未结算) |
显示规则:直接显示数字
更新频率:每笔注单确认后实时更新
12.7 风险字段(第10列)
12.7.1 风险敞口计算
集合定义:
| 渲染器类型 | 集合粒度 | 说明 |
|---|---|---|
| MultiLineTable | 按"盘口线"作为集合 | 让球、大小球等多线玩法 |
| 其他渲染器 | 按"玩法盘口"作为集合 | 独赢、单双、波胆等 |
统计范围:仅统计已接受未结算注单
标准盘口选项风险敞口(平台净亏):
选项风险敞口 = 选项投注额 × Decimal(本地赔率) 减去 集合总投注额
其中:Decimal(本地赔率) = 本地HK赔率 加 1口径说明:
- 正值 = 平台净亏(风险敞口),表示该选项赢时平台亏损金额
- 负值 = 平台净赢,表示该选项赢时平台盈利金额
预估盈亏(该选项赢时,平台口径):
预估盈亏(选项赢) = 集合总投注额 减去 选项投注额 × Decimal(本地赔率)
= 负的选项风险敞口12.7.2 BT8双重机会风险敞口
BT8双重机会(主胜或平/主胜或客胜/平或客胜)需按结果场景计算:
| 比赛结果 | 赢的选项 | 场景敞口计算 |
|---|---|---|
| 主胜 | 主胜或平、主胜或客胜 | 两个选项赔付之和 减去 集合总投注额 |
| 平局 | 主胜或平、平或客胜 | 两个选项赔付之和 减去 集合总投注额 |
| 客胜 | 主胜或客胜、平或客胜 | 两个选项赔付之和 减去 集合总投注额 |
BT8风险敞口取值:
- 集合风险敞口 = MAX(主胜场景敞口, 平局场景敞口, 客胜场景敞口)
- 风险列默认展示"最大场景敞口"
- Tooltip展示三场景拆解(主胜/平/客胜)
12.7.3 风险显示规则
| 显示元素 | 格式 | 颜色规则 |
|---|---|---|
| 风险敞口 | ¥XXX.XK | 大于20万红色,否则白色(阈值由风控管理配置) |
| 预估盈亏 | P&L +¥XXX 或 P&L -¥XXX | 正值绿色(平台盈利),负值红色(平台亏损) |
12.7.4 风险敞口计算示例
示例:让球盘 主队(-0.5)
| 数据项 | 值 |
|---|---|
| 主队(-0.5)投注额 | ¥186,200 |
| 客队(+0.5)投注额 | ¥40,960 |
| 盘口线总投注额 | ¥227,160 |
| 主队本地赔率(HK) | 0.92 |
| 客队本地赔率(HK) | 0.94 |
计算主队(-0.5)风险敞口:
Decimal(主队赔率) = 0.92 加 1 = 1.92
主队风险敞口 = 186,200 × 1.92 减去 227,160
= 357,504 减去 227,160
= 130,344(平台净亏¥130,344)计算客队(+0.5)风险敞口:
Decimal(客队赔率) = 0.94 加 1 = 1.94
客队风险敞口 = 40,960 × 1.94 减去 227,160
= 79,462.4 减去 227,160
= -147,697.6(平台净赢¥147,697.6)该盘口线风险敞口 = MAX(130,344, -147,697.6) = ¥130,344
12.8 玩法级汇总字段
盘口卡片底部显示玩法级汇总数据。
12.8.1 玩法汇总字段
| 字段名 | 数据类型 | 来源 | 计算公式 | 说明 |
|---|---|---|---|---|
| 玩法总线数 | 整数 | 本地派生 | COUNT(盘口线) | 该玩法下的盘口线数量 |
| 玩法总选项数 | 整数 | 本地派生 | COUNT(选项) | 该玩法下的选项数量 |
| 玩法总投注额 | 金额 | 本地落库 | SUM(选项投注额) | 该玩法所有选项投注额合计 |
| 玩法总注单数 | 整数 | 本地落库 | SUM(注单数) | 该玩法所有选项注单数合计 |
| 玩法/集合风险敞口 | 金额 | 本地派生 | 见下方规则 | 该玩法/盘口集合的平台净亏 |
| 初始返奖率 | 百分比 | 本地落库 | 见第7章公式 | 上架时锁定的RTP |
| 当前返奖率 | 百分比 | 本地派生 | 见第7章公式 | 当前本地赔率计算的RTP |
玩法/集合风险敞口计算规则:
| 盘口类型 | 计算方式 |
|---|---|
| 标准盘口 | MAX(集合内各选项风险敞口) |
| BT8双重机会 | MAX(三种结果场景敞口) |
12.8.2 玩法汇总显示位置
合计 (2线4选项) 当前返奖率: 97.2% ¥304,160 100% 318 ¥130.3K12.9 IM数据源字段速查表
以下列出操盘页使用的IM关键字段,完整字段定义参见《IM体育数据接口v5.2.6》。
12.9.1 盘口级字段(MarketLine)
| IM字段名 | 数据类型 | 取值范围 | 业务含义 | 推送方式 |
|---|---|---|---|---|
| MarketlineId | Long | - | 盘口唯一ID | Full Pull/Delta |
| BetTypeId | Int | 1-200+ | 玩法ID | Full Pull |
| BetTypeName | String | - | 玩法名称 | Full Pull |
| PeriodId | Int | 1=全场,2=上半场,3=下半场 | 时段ID | Full Pull |
| MarketlineLevel | Int | 1=主力线,2+=副线 | 盘口级别 | Full Pull/Delta |
| MarketlineStatusId | Int | 1=开盘,2=关盘 | 盘口状态 | Delta |
| IsLocked | Bool | true/false | 是否锁定 | Delta |
12.9.2 选项级字段(WagerSelection)
| IM字段名 | 数据类型 | 取值范围 | 业务含义 | 推送方式 |
|---|---|---|---|---|
| WagerSelectionId | Long | - | 选项唯一ID | Full Pull/Delta |
| SelectionId | Int | 1=Home,2=Away,3=Over,4=Under... | 选项类型 | Full Pull |
| SelectionName | String | - | 选项名称 | Full Pull |
| Handicap | Float | 如-0.5,2.5 | 盘口值 | Full Pull/Delta |
| Specifiers | String | 如"total=2.5" | 特殊参数 | Full Pull |
| OddsType | Int | 1=MY,2=HK,3=EU,4=ID,6=US | 赔率类型 | Full Pull |
| Odds | Float | 如0.92,1.85 | 赔率值 | Delta |
| OddsList | Array | 多格式赔率 | 各格式赔率列表 | Full Pull/Delta |
12.9.3 赛事级字段(Event)
赛事级字段定义参见操盘列表页《第9章数据字段定义》,本章不重复定义。
12.10 本地扩展字段
以下是本地系统在IM字段基础上扩展的字段。
12.10.1 盘口级扩展字段
| 字段名 | 数据类型 | 默认值 | 说明 |
|---|---|---|---|
| 本地盘口状态 | 枚举 | 跟随数据源 | 开盘/隐藏/锁定/关盘 |
| 隐藏来源 | 枚举 | null | manual/data_source/league_pause/league_close/risk_control/system/inherit/maintenance/event_incident(详见第8章隐藏来源) |
| 数据源开关 | 布尔值 | true(开) | 是否跟随数据源(赔率、盘口状态、结算) |
| 初始RTP | 百分比 | - | 上架时锁定 |
| 当前RTP | 百分比 | - | 实时计算 |
| 可见性 | 布尔值 | true | 是否在操盘视图显示 |
12.10.2 选项级扩展字段
| 字段名 | 数据类型 | 默认值 | 说明 |
|---|---|---|---|
| 本地赔率 | 浮点数 | 等于IM赔率(HK) | 当前生效赔率(HK) |
| 初始赔率 | 浮点数 | 上架时锁定 | 初始赔率快照(HK) |
| 本地选项状态 | 枚举 | 跟随上级 | 开盘/隐藏/锁定/关盘 |
| 投注额 | 金额 | 0 | 累计投注金额(已接受未结算) |
| 注单数 | 整数 | 0 | 累计注单数量(已接受未结算) |
12.11 字段精度汇总
12.11.1 赔率精度规范
| 精度类型 | 精度 | 适用场景 |
|---|---|---|
| IM原始精度 | 4位小数 | IM推送的赔率 |
| 本地落库精度 | 3位小数 | 本地赔率存储 |
| 界面显示精度 | 2位小数 | 用户可见的赔率 |
| 内部计算精度 | 全精度(不截断) | RTP计算、风险敞口计算等 |
12.11.2 金额精度规范
| 精度类型 | 精度 | 适用场景 |
|---|---|---|
| 落库精度 | 2位小数 | 投注额、风险敞口存储 |
| 显示精度 | 智能缩写 | 万/亿单位显示 |
12.11.3 时间精度规范
| 精度类型 | 精度 | 适用场景 |
|---|---|---|
| 落库精度 | 毫秒 | 所有时间戳存储 |
| 显示精度 | 秒 | 界面展示 |
| 日志/导出精度 | 毫秒 | 操盘日志、数据导出 |
12.12 字段映射关系图
12.13 配置项归属汇总
| 配置项 | 默认值 | 配置归属 | 说明 |
|---|---|---|---|
| 偏离告警阈值 | 0.10(HK) | 风控管理 | 本地与IM偏离超过此值告警 |
| 单边比例告警阈值 | 70% | 风控管理 | 投注占比超过此值告警 |
| 大额投注阈值 | 5万 | 风控管理 | 单笔投注超过此值告警 |
| 风险敞口高危阈值 | 20万 | 风控管理 | 敞口超过此值显示红色(不触发风控动作) |
| 赔率落库精度 | 3位小数 | 系统管理 | 本地赔率存储精度 |
| 赔率显示精度 | 2位小数 | 系统管理 | 界面显示精度 |
| 金额万元显示阈值 | 1万 | 系统管理 | 大于等于此值显示为万元 |
| 时间戳落库精度 | 毫秒 | 系统管理 | 所有时间戳精度 |
修订记录
| 版本 | 日期 | 修订内容 |
|---|---|---|
| v1.0 | 2026-01-22 | 初稿 |
| v1.1 | 2026-01-22 | 审计修正:1)OddsType枚举修正为2=HK(原错误写成3=HK);2)新增IM赔率(HK)取值规则(优先级+异常处理);3)偏离字段明确"同制式比较"口径;4)风险敞口公式改为"平台净亏Exposure"口径,与核心摘要5.8对齐;5)新增BT8双重机会三场景敞口计算规则;6)新增风险敞口计算示例;7)统计范围明确为"已接受未结算" |