Skip to content

第十二章 权限控制

本章定义操盘系统的角色划分、功能权限矩阵、数据可见范围及权限相关的交互规则。

12.1 角色定义

系统定义三种用户角色,每种角色拥有不同的操作权限和数据可见范围。

角色角色代码说明
普通操盘手TRADER负责具体赛事操盘
主管SUPERVISOR团队管理,高权限
风控RISK_CONTROL风险控制,最高权限

12.1.1 角色职责详述

普通操盘手:负责日常操盘工作,包括审核上架、盘口调整、风险监控、异常响应等。可操作分配给自己的赛事,也可主动上架未分配赛事(上架时分配给自己)。

职责范围说明
赛事上架审核待上架赛事,执行上架操作
盘口调整在详情页隐藏/取消隐藏自己负责赛事的盘口
风险监控监控自己负责赛事的投注分布和风险指标
异常响应处理自己负责赛事的告警和异常情况

主管:负责操盘团队的管理工作,包括赛事分配、人员调度、异常审批等。可以操作所有赛事,并拥有分配操盘手、锁盘等高级权限。

职责范围说明
赛事分配将赛事分配给操盘手,调整分配
团队管理协调团队工作,处理人员调度
高级操作在详情页执行锁盘、解锁等高权限功能
异常审批审批需要确认的异常处理

风控人员:负责风险监控和紧急干预,拥有最高操作权限。可以执行一键锁盘、处理高风险赛事等敏感操作。

职责范围说明
风险监控全局监控所有赛事的风险指标
紧急干预执行一键锁盘等紧急操作
风控策略配置和调整风控规则(在联赛管理页面)
异常处理处理高风险赛事和异常投注

12.2 功能权限矩阵

12.2.1 基础功能权限

功能普通操盘手主管风控说明
查看操盘列表全部角色可查看
筛选搜索全部角色可使用
数据导出导出当前筛选结果

12.2.2 上架与下架权限(列表页操作)

与7.4.1/11保持一致:操盘列表仅提供上架/下架操作,盘口操作统一在详情页进行。

"自己负责"定义:指当前用户被分配为该玩法的操盘手时。未分配的赛事不属于任何人"自己负责",普通操盘手对未分配和未上架的赛事只有查看权限。

功能普通操盘手主管风控说明
上架赛事全部角色可上架
隐藏待上架赛事全部角色可隐藏
下架赛事(自己的)操盘手可下架自己负责的赛事
下架赛事(他人的)仅主管和风控可下架他人赛事
批量上架全部角色可批量上架
批量下架(自己的)操盘手可批量下架自己负责的赛事
批量下架(他人的)仅主管和风控可批量下架他人赛事

12.2.3 盘口操作权限(详情页操作)

重要说明:根据D1设计决策,盘口操作(隐藏/取消隐藏/锁定/解锁)统一在「赛事操盘详情页」进行,列表页不提供这些操作按钮。

功能普通操盘手主管风控操作位置说明
隐藏盘口(自己的)详情页操盘手可隐藏自己负责的赛事
隐藏盘口(他人的)详情页仅主管和风控可隐藏他人赛事
取消隐藏盘口(自己的)详情页操盘手可取消隐藏自己负责的赛事
取消隐藏盘口(他人的)详情页仅主管和风控可取消隐藏他人赛事
锁定盘口详情页仅主管和风控可锁定
解锁盘口详情页仅主管和风控可解锁
一键锁盘详情页 、列表页仅主管和风控可执行

12.2.4 操盘手管理权限

功能普通操盘手主管风控说明
上架时选择操盘手✅(仅选自己)普通操盘手上架时只能选择自己
分配/变更操盘手更换赛事负责人
批量分配批量上架时统一分配

12.2.5 详情页访问权限

功能普通操盘手主管风控说明
进入操盘详情(自己的)操盘手可进入自己负责的赛事详情
进入操盘详情(未分配)操盘手可查看未分配赛事详情(只读)
进入操盘详情(他人的)仅主管和风控可进入他人赛事详情

12.2.6 结算相关权限

功能普通操盘手主管风控说明
确认取消赛事退款全部角色可确认
处理腰斩赛事结算全部角色可处理

12.3 数据可见范围

角色列表可见范围详情页访问范围说明
普通操盘手已分配给自己 + 未分配自己的可操作,未分配的只读可看到自己负责的和待认领的赛事
主管全部赛事全部赛事无限制,可查看和操作全部赛事
风控全部赛事全部赛事无限制,可查看和操作全部赛事

权限设计说明

普通操盘手可见范围 = 「已分配给自己的赛事」+「未分配的赛事」,设计原因:

  1. 主动承接:操盘手可以主动上架未分配赛事并承接(上架时分配给自己)
  2. 工作协同:了解待处理赛事情况,便于团队协作
  3. 责任明确:已分配给他人的赛事不可见,避免越界操作

普通操盘手看不到已分配给其他操盘手的赛事,这部分仅主管和风控可见。

12.3.1 普通操盘手的赛事可见规则

普通操盘手可见以下两类赛事:

可见类型匹配条件可执行操作
已分配给自己操盘手编号 = 当前用户编号上架、下架、详情页操作
未分配赛事操盘手字段为空上架(上架时分配给自己)

不可见的赛事:已分配给其他操盘手的赛事,普通操盘手不可见。

12.3.2 主管的赛事管理职责

主管可以看到全部赛事,负责:

职责说明
赛事分配将待上架赛事分配给操盘手
分配调整在操盘手之间转移赛事
兜底操作对紧急赛事进行操作
全局监控查看所有操盘手的工作状态

12.4 权限不足处理

12.4.1 前端处理

场景处理方式说明
无权限的按钮显示为禁用状态(灰色 50% 透明度)视觉上明确不可操作
鼠标悬停无权限按钮显示 Tooltip 提示具体原因帮助用户理解原因
通过 URL 直接访问无权限页面跳转到无权限提示页面防止越权访问
通过快捷键触发无权限操作弹出提示对话框阻止操作并提示

12.4.2 后端处理

场景处理方式HTTP 状态码
接口权限校验失败返回错误信息403 Forbidden
越权操作尝试记录越权操作日志403 Forbidden
角色不存在返回错误信息401 Unauthorized

12.4.3 权限提示文案

场景提示文案
下架他人赛事「该赛事由 {操盘手姓名} 负责,您无权操作」
执行锁盘/解锁(详情页)「锁盘/解锁操作仅限主管和风控执行」
分配/变更操盘手「分配操盘手仅限主管执行」
进入他人赛事详情「该赛事由 {操盘手姓名} 负责,您无权查看详情」
批量操作包含他人赛事「选中的赛事中包含非您负责的赛事,这些赛事将被跳过」
对未分配赛事执行非上架操作「该赛事尚未分配操盘手,请先上架」

12.5 角色切换与多角色

12.5.1 单用户单角色

系统采用单用户单角色设计,每个用户只能拥有一种角色。角色由管理员在后台配置,用户无法自行切换。

设计原则说明
职责清晰每个用户只承担一种角色的职责
权限明确避免多角色带来的权限混淆
审计简单操作日志可明确追溯到具体角色

12.5.2 角色变更

当用户角色发生变更时:

变更类型处理方式生效时机
角色升级(操盘手 → 主管)获得新权限下次刷新页面后生效
角色降级(主管 → 操盘手)失去原权限下次刷新页面后生效
角色平移(主管 → 风控)权限变更下次刷新页面后生效

12.5.3 角色变更时的数据处理

场景处理方式
操盘手升级为主管原负责的赛事保持分配关系
主管降级为操盘手需重新分配其原负责的赛事
操盘手账号停用主管重新分配其负责的赛事

12.6 敏感操作审计

日志详情:审计日志是操盘日志的子集,完整的日志格式、字段定义和查询方式详见第18章「操盘日志页面规范」

以下敏感操作会记录详细审计日志:

操作类型记录内容风险等级
锁盘操作人、操作时间、赛事信息
解锁操作人、操作时间、赛事信息
一键锁盘操作人、操作时间、影响赛事数量
分配操盘手操作人、操作时间、赛事信息、分配给谁
变更操盘手操作人、操作时间、赛事信息、原操盘手、新操盘手
取消赛事确认操作人、操作时间、赛事信息、选择的结算方式
腰斩赛事确认操作人、操作时间、赛事信息、选择的结算方式
越权操作尝试操作人、操作时间、尝试的操作、失败原因

12.6.1 审计日志保留与查询

配置项说明
保留时间180 天超过 180 天自动归档
查询权限主管、风控普通操盘手无法查询审计日志
导出权限风控仅风控可导出审计日志

12.6.2 审计日志字段

字段数据类型说明
日志编号字符串唯一标识
操作时间时间戳精确到毫秒
操作人编号字符串操作人用户编号
操作人姓名字符串操作人姓名
操作人角色枚举TRADER / SUPERVISOR / RISK_CONTROL
操作类型枚举见上表
操作对象字符串赛事编号或批量操作标识
操作详情JSON操作的具体参数和结果
操作结果枚举SUCCESS / FAILED / REJECTED
操作原因字符串操作人填写的原因(如有)
IP 地址字符串操作人 IP

12.7 权限与操作按钮的联动

操盘列表中的操作按钮显示规则需要同时满足「状态条件」(详见第7章7.4节)和「权限条件」。

12.7.1 列表页按钮显示与权限叠加规则

与7.4.1/D1决策保持一致:操盘列表仅提供上架/下架/详情三个操作按钮。

按钮状态条件(第七章)权限条件最终显示
上架待上架/已下架 + 正常全部角色满足状态条件即显示
下架已上架自己的赛事或主管/风控状态满足 + 权限满足才可点击
详情任意自己的/未分配的赛事或主管/风控状态满足 + 权限满足才可点击

12.7.2 详情页按钮权限规则

盘口操作按钮在详情页显示,权限规则如下:

按钮状态条件权限条件说明
隐藏盘口状态=开盘自己的赛事或主管/风控普通操盘手仅限自己的赛事
取消隐藏盘口状态=隐藏自己的赛事或主管/风控普通操盘手仅限自己的赛事
锁盘盘口状态=开盘/隐藏仅主管/风控普通操盘手无此权限
解锁盘口状态=锁定仅主管/风控普通操盘手无此权限

修订记录

版本日期修订内容
v1.02026-01-15初稿
v1.12026-01-21【D1/D3决策对齐】1) 12.3节普通操盘手可见范围改为「已分配+未分配」;2) 12.2.3节盘口操作增加「操作位置=详情页」;3) 12.7节移除列表页不存在的按钮,拆分为列表页/详情页权限;4) VitePress语法转换
v1.22026-01-28【审计修正】12.2.2节补充「自己负责」定义:指当前用户被分配为该玩法的操盘手时

体育操盘系统产品文档