Appearance
15 · 运营后台(平台控制台 + 商户控制台)
0. 文档说明
| 项 | 内容 |
|---|---|
| 版本 | V1.0 |
运营后台是三层模型里「展示层」的另一个客户端(→ 00 §2.3):它多出的能力是写配置、审工单、看报表,同样不内嵌业务规则——一切写操作走引擎接口 + 留审计。
一、定位与职责
| 控制台 | 使用者 | 管什么 |
|---|---|---|
| 平台控制台 Platform Console | 平台方(包网服务商)员工 | 建站与租户生命周期、默认模板/预设库、跨租户配置发布、币种/厂商目录、平台级风控、跨租户审计与经营视图 |
| 商户控制台 Merchant Console | 各租户(商户)运营者 | 只见自己站:白名单内配置(活动/费率/主题/文案)、提现审核、用户管理、资金工单、本站报表 |
边界:后台不定义业务规则(规则在各系统分册);本篇定义后台自身的账号/权限/审计/工单骨架 + 各系统管理能力的清单与入口,深度细则在各分册「运营后台能力」一节。
二、核心概念与数据模型
2.1 后台账号 AdminUser
与玩家账号(05)完全隔离的账号体系:adminUserId、username、凭证(密码+强制 2FA)、status、lastLoginAt/Ip。
2.2 角色与授权(RBAC)
AdminUser ──► 绑定(admin_user_tenants) ──► { tenant(或平台级) × Role }
Role(scope=PLATFORM | MERCHANT) ──► 权限点集合
权限点命名:console.<系统>.<动作> 例:console.promo.edit / console.withdraw.review / console.wallet.adjust- 一人多站:同一 AdminUser 可绑定多个租户、各租户角色可不同(商户集团一人管多站);平台级绑定
tenant=NULL。 - 权限模型 = 模块 × 三动作:
view(可见与读取)/op(常规写:编辑/启停/发起)/approve(审批复核:双审工单/HOLD 放行/红区审批);导航按view过滤,写动作无op即拦截并审计,复核动作单独校验approve。 - 预置九角色(原型对齐)——平台侧(包网方):包网超管(
P_SUPER,全量,唯一可动平台红区;唯一可见/可控场馆申报口径 route 开关,→ 5.6)、包网管理员(P_ADMIN,租户开设/配置审批/平台名单,不碰商户资金单据);商户侧:商户管理员(本站全模块+审批)、商户财务(资金线全权+双人复核岗)、商户入款(充值订单/渠道,无审批)、商户出款(提现发起,复核权归财务/管理员)、商户运营(活动/任务/站内信/等级/返水/返佣/游戏)、商户风控(规则/名单/KYC 审核/用户冻结,资金只读)、商户客服(查询+站内信,敏感操作走工单转交)。可基于任一角色「另存为自定义角色」按租户微调。 - 职责分离三原则:入款与出款分人;发起与复核分人(同人复核按钮禁用,系统硬校验);平台红区(租户开设/回收、本位币(站型)变更审批、平台名单、角色模板)仅包网角色可动,商户管理员只能发起申请。
- 商户侧任何请求强制注入 tenant 上下文(→ 00 §4.9),无跨租户可能;配置编辑再叠加 01 的「可覆盖键白名单」(角色 × 键)。
2.3 审批工单 ApprovalTicket(状态机)
敏感操作不直接执行,先落工单:
发起(申请人) ──► PENDING(待审)──批准──► APPROVED ──执行成功──► EXECUTED(终态)
│ │ │ ▲
│ │驳回 │ │重试(换条件/幂等重放)
申请人撤销│ ▼ ▼ │
▼ REJECTED(终态) FAILED ──撤销──► CANCELLED(终态)
CANCELLED(终态)状态与流转(完整):
| 状态 | 含义 | 出边(触发 → 目标) |
|---|---|---|
PENDING | 已发起待复核 | 批准(复核人≠申请人)→ APPROVED;驳回 → REJECTED(终);申请人撤销 → CANCELLED(终) |
APPROVED | 已批准待执行 | 执行成功 → EXECUTED(终,写 executedRef=账变/发布 biz_key);执行失败(记账幂等冲突/余额并发变动/下游异常)→ FAILED |
FAILED | 批准后执行失败 | 重试(同工单号幂等重放,可换执行条件)→ EXECUTED 或再次 FAILED;申请人/复核人判定不可执行 → CANCELLED(终) |
EXECUTED / REJECTED / CANCELLED | 终态 | 无 |
「批准即执行」为默认路径(APPROVED 成功直达 EXECUTED);
FAILED/重试/CANCELLED是批准与执行解耦时的完整分支。每次流转均落审计。
| 字段 | 说明 |
|---|---|
ticketId / tenantId | 工单号、所属租户(平台级为 NULL) |
type | ADJUST_FUNDS(资金调整)/ WITHDRAW_REVIEW(提现)/ CONFIG_PUBLISH(需平台审批的发布)/ TENANT_STATUS(租户状态流转)/ BASE_CURRENCY_CHANGE(本位币/站型变更,红区)/ PAYOUT_REPLACE(场馆代位下分)… |
payload | 操作参数(如调整的用户/币种/金额/原因) |
applicantId / approverId | 申请人、复核人(必须不同人 —— 双人复核) |
status / executedRef | 状态 PENDING/APPROVED/EXECUTED/FAILED/REJECTED/CANCELLED、执行结果引用(如账变 biz_key=工单号) |
2.4 审计日志 AuditLog
后台一切写操作(含工单各环节、配置发布、登录)记一条不可变日志:谁(actor)、哪个租户、什么动作、目标对象、变更前后值(diff)、IP、时间。配置类审计与 01 §六 的版本 diff 互为印证。
三、业务规则
- 最小权限:按角色授权权限点;商户侧再受「可覆盖键白名单」约束(改不了平台锁定项)。
- 双人复核:资金类(
ADJUST_FUNDS)与大额提现强制申请人≠复核人;阈值按租户配置(§六)。 - 全量审计:无审计不执行——审计写入失败则操作失败。
- 安全基线:后台强制 2FA;可配 IP 白名单;会话短时效;敏感数据(用户手机号/卡号)按权限脱敏展示。
- 后台不碰账本:资金操作只能通过 02 的记账接口(
ADJUST_MANUAL+ 工单号幂等键),禁止直改余额字段。
四、模块清单(全系统管理面,详设见各分册「运营后台能力」)
| 系统 | 平台控制台 | 商户控制台 |
|---|---|---|
| 01 租户配置 | 建站向导、模板/预设库、租户状态流转、任意租户发布/灰度/回滚;本位币(站型)变更审批 | 白名单内编辑本站配置、沙盒预览、提交发布、版本历史;本位币变更只能发起申请(平台审批) |
| 02 钱包 | 币种目录维护 | 用户钱包/账变查询(本位币单币种)、资金调整工单、钱包冻结;本站本位币为建站锁定项(变更走平台审批) |
| 03 充值 | 支付通道目录与接入 | 本站通道开关/限额/费率、充值订单查询/补单;通道币种可 ≠ 本位币(边界锁价折入) |
| 04 提现 | 通道目录、平台级风控线 | 提现审核(工单)、限额/审核策略配置;本位币按提现时点锁价折出到通道币种 |
| 05 账户 | — | 用户查询/封禁、KYC 审核 |
| 06 等级 | 等级模板 | 本站等级表与门槛配置(单表·本位币口径,表头标注 wallet.baseCurrency) |
| 07 VIP 俸禄 | — | 各级俸禄额(本位币口径)、保级参数 |
| 08 实时返水 | — | 返水比例矩阵(游戏类型×等级)、派发周期 |
| 09 优惠活动 | 活动模板库 | 活动上下架/参数(本位币金额)/素材/排期 |
| 10 任务打码 | — | 任务配置、打码倍数 |
| 11 返佣推广 | 佣金方案模板 | 本站佣金方案、结算审核 |
| 12 游戏聚合 | 厂商接入与目录;场馆链路 route(原生 / CNY 映射)——平台超管专属申报口径开关(默认 native,可随时关闭;商户不可见不可改) | 本站厂商/游戏开关、排序、维护位 |
| 13 记录账变 | 跨租户对账(按币种分列) | 本站流水查询(本位币)、路由维度日切对账(原生/CNY 映射,中性对账机制)、导出(权限控) |
| 14 风控 | 规则引擎与全局名单 | 本站阈值(白名单内)、风控工单处理、黑名单 |
| 计费结算 | 平台向商户收包网费:账单列表 / 出账 / 催缴 / 标记已付 / 逾期→SUSPENDED 联动、按租户 billing 方案配置(→ §五 5.7 / §六) | 只读本站账单(分账单/合计参考、状态、应付/账期) |
| 16 通知 | 通道接入(推送/短信) | 通知模板与触达配置 |
| 17 看板 | 平台经营视图(跨租户,按币种分列)、包网费结算依据 | 本站运营报表(本位币单币种) |
五、关键流程
5.1 开新站(平台控制台)
选预设 → 建站向导改差异项(品牌/域名/**本位币(站型 CNY/USDT)**/通道币种/场馆链路)→ 租户 SETUP
→ 沙盒预览验收(?tenant=xxx + 预览 token)→ 平台「上线」→ ACTIVE一站一国、一商户多站(→ 01);本位币建站锁定,后续变更走 5.5。
5.2 配置发布(商户控制台)
编辑(白名单内)→ schema+合规校验 → DRAFT 版本 → 沙盒预览
→ 发布:合约直发 or 提交 CONFIG_PUBLISH 工单待平台审 → 全量/灰度 → 可一键回滚5.3 资金人工调整(双人复核)
财务发起 ADJUST_FUNDS 工单(用户/桶/金额(本位币)/原因)→ 复核人批准
→ 引擎执行 ADJUST_MANUAL(幂等键=工单号)→ EXECUTED,账变+审计+通知5.4 提现审核(概要,细则归 04)
用户申请(02 已 WITHDRAW_LOCK)→ 风控初筛(14)→ 商户财务审 → 通过 CONFIRM / 驳回 ROLLBACK5.5 本位币(站型)变更审批(平台红区)
商户管理员发起 BASE_CURRENCY_CHANGE 申请 → 挂「待平台审批」→ 包网角色审
→ 批准即触发本位币变更版本发布(涉及账本口径迁移,一期锁定为不可变)本位币是建站锁定项,商户侧不能直发(→ 01 §4.3 本位币变更闸)。
5.6 场馆链路 route 配置(平台超管专属)
平台控制台(仅 P_SUPER 可见)→ 游戏/场馆模块 → 选场馆 → 设 route:原生 native(默认)| CNY 映射 cnyMapped
→ 保存留审计(平台侧配置项,商户控制台不显示、不可改)route 是仅平台超管(P_SUPER)可见并控制的「场馆申报口径开关」,默认 native、可随时关闭;其他任何角色 / 界面 / 报表都看不到它。CNY 映射 = 向厂商申报「CNY」计价(数值 1:1、无小数、进出等值可逆),站内账本仍记本位币真值;仅本位币币值 ≥ CNY 的站型(USDT 站)可设,低币值站型不提供该开关(→ 12 §四)。它只承接中性对账机制(适配层 1:1 重标本位币、对账按 route 分档核销),平台侧不做任何商业化引导。用户端行为不变:被超管设为 cnyMapped 的场馆内 ¥ 计价 1:1 + 进场提示照旧。
5.7 包网佣金 · 计费结算(包网平台向租户收费)
包网佣金 = 租户当期平台盈利(GGR / 玩家输赢) × 包网费率 —— 华人包网行业标准口径:按盈利抽成。GGR 是优惠/返水/俸禄/任务这些玩家返利之上的毛盈利口径,故按 GGR 算天然「不掺优惠/返水/俸禄/任务」(简单、透明、可对账)。费率可按 GGR 档 tiers 阶梯,可叠加保底月费 minGuarantee(不足保底按保底收)。与 11 的推广佣金(商户付代理)是两套完全不同的东西——包网佣金是平台向租户收的费。
自然月(租户时区)结束 → settlementDay 出账(默认次月 1 日)
→ 系统按 billing 方案自动聚合各站当期 GGR(玩家输赢)× 费率(取 max(保底, GGR×费率))生成账单 DRAFT
→ 平台复核下发 ISSUED(应付额 amount_due、账期 due_at = +dueDays)
→ 租户后台查看 / 下载账单 → 在线支付(跳收银台 / 提交线下转账凭证)→ 平台确认 → PAID
→ 逾期(过 due_at + overdueGraceDays)→ OVERDUE + 催缴
→ 累计逾期 ≥ suspendOnOverdueDays → TENANT_STATUS 工单 / 自动置租户 SUSPENDED(= [01 §2.3](01-多商户与租户配置.md) 「欠费」的数据支撑)计费方式 billing.mode(租户级·建站设定·仅平台超管可配):
revShare(盈利分成,行业标准 · 默认):包网佣金 = GGR × 费率(可阶梯tiers按 GGR 档),可叠加保底minGuarantee;fixed(固定周期费,纯月费);hybrid(保底 + 盈利分成:max(minGuarantee, GGR × 费率))。
多币种结算:平台跨站多币种 → 账单按各站本位币出「分账单」(该站 GGR × 率);合计用 settlementCurrency(平台指定,如 USDT)+ 当期参考汇率快照,标注「参考口径 · B2B 平台对租户结算用 · 不回流任何用户业务」(区别于用户资金无汇率铁律)。
账单状态机:
DRAFT(系统自动生成)──平台复核下发──► ISSUED(出账)──租户在线支付/登记付款·平台确认──► PAID
│过 due_at + overdueGraceDays
▼
OVERDUE(逾期 · 催缴)──累计逾期 ≥ suspendOnOverdueDays──► TENANT_STATUS 工单 / 自动 SUSPENDED后台能力(自动化集成):
- 平台超管(
P_SUPER/P_ADMIN):按租户配置billing(费率/阶梯/保底/账期)、每月自动出账、账单复核下发、催缴、确认收款(标记 PAID)、跨租户包网佣金报表(各租户 GGR/费率/应收/已收/逾期,可导出); - 租户(商户管理员/财务):查看本站账单(周期/GGR/费率/应付/账期/状态)、下载账单(明细 CSV/PDF)、在线支付(选待付账单 → 收银台支付或提交线下转账凭证 → 平台确认后置 PAID);租户只读本站,不可改费率。
数据源 = 17 数据看板(月 GGR按币种);账单表 billing_statements 见 17 §八。
六、★ 租户可配置项(console 命名空间)
jsonc
"console": {
"approval": {
"adjustFunds": "dual", // 资金调整复核:dual 双人(默认,建议锁定)
"withdrawDualThreshold": "10000", // 提现双审阈值(本位币口径)
"configPublish": "direct", // 配置发布:direct 直发 | platform 平台审批
"baseCurrencyChange": "platform" // 本位币(站型)变更:恒平台审批(红区,商户只能发起,→ 5.5 / 01 §4.3)
},
"security": { "ipWhitelist": [], "force2fa": true, "sessionTtlMin": 30 },
// 商户侧可见模块(租户级功能面板开关)。合法枚举 = §七 二十一模块 id 全集(口径同 01 §3.9,命名以模块 id 为准如 reports 而非 report):
// overview reports users kyc promo tasks notices dep-orders channels withdraw ledger records games level rebate affiliate risk audit tenant rbac billing
// (tenant/rbac/billing 为平台侧模块,商户面板天然不上架——billing 商户仅只读本站账单;示例只列商户常用子集)
// 与 RBAC 关系(写死):最终可见 = visibleModules(面板开关) ∩ can(module, view)(账号级权限),任一不满足即不可见(→ 01 §3.9 / §2.2)。
"visibleModules": ["overview", "reports", "promo", "withdraw", "users", "ledger", "records"],
// 明细导出总闸(合规控):false=关闭全部 CSV 明细导出。最终可导出 = dataExport && can(module, 敏感读/op);
// 关闭时各模块导出入口置灰并给合规提示(→ §七「导出管控」)。聚合报表导出由 17 report.export 另管。
"dataExport": false,
"billing": { // 包网费/结算计费(租户级·建站设定·平台可调,→ 5.7)
"mode": "revShare", // revShare(盈利分成/GGR×率,默认) | fixed(固定月费) | hybrid(保底+盈利分成)
"revShare": { "tiers": [ { "gteGGR": "0", "ratePct": 30 }, { "gteGGR": "500000", "ratePct": 25 } ] }, // GGR 盈利分成阶梯(按档位不同率)
"minGuarantee": "3000", // 保底(hybrid 生效):应付 = max(minGuarantee, GGR×费率)(该站本位币口径)
"fixedFee": "3000", // fixed 月费
"billingCycle": "monthly", // 结算周期:自然月(租户时区)
"settlementDay": 1, // 出账日(次月第几日生成账单)
"dueDays": 7, // 账期:出账后 N 天内付清
"overdueGraceDays": 3, // 逾期宽限:过账期 N 天后进 OVERDUE 并催缴
"suspendOnOverdueDays": 15, // 累计逾期 ≥ N 天 → 触发 TENANT_STATUS 工单 / 自动 SUSPENDED
"settlementCurrency": "USDT" // 跨站合并应付额的参考本位币(仅 B2B 平台对商户结算合计参考,不回流用户业务)
}
}场馆链路 route 是 平台超管级配置项(
games命名空间 → 12 §四),仅平台控制台可见可改,商户console命名空间不含也不可覆盖(→ 5.6)。
七、展示契约(后台原型)
- 形态:桌面 Web(独立于用户端 H5);左侧导航 = §四模块清单按八组编排(总览/运营/资金/游戏/增长/风控与安全/计费结算/平台,按角色
view权限实时过滤,底部展示当前角色与职责);顶部 = 租户切换器(一人多站,身份未绑租户自动跳转)+ 身份切换(平台/商户两组九角色)+ 主题切换(深紫/暗金/亮色,token 化持久) + 2FA 徽 + 审计入口。 - RBAC 核心:
core.js内置九角色权限表(数据驱动,「角色权限」视图直读渲染矩阵)、can(module, view|op|approve)判权、动作分发层写拦截(越权弹「权限不足」并记审计)、approveActs复核动作声明;身份切换即导航/按钮/审批链全联动。红区流程:商户发起本位币(站型)变更 → 挂「待平台审批」→ 包网身份审批通过才发布。 - 核心框架(项目根目录
console/):core.js(注册表路由 + 委托分发data-va+ UI 套件 table/drawer/modal/confirm/pager/switch +audit())+ 共享 mock(db.js)+ 模块视图(views/*.js,每模块一文件):
| 组 | 模块(视图 id) | 能力要点 |
|---|---|---|
| 总览 | 驾驶舱 overview · 数据看板 reports | 本站 KPI/涨跌幅为本位币单币种、7 日柱图、待办直达;时间范围切换、充提对比、转化漏斗、留存表、CSV 真实导出(受 console.dataExport 总闸控);平台经营视图跨租户按币种分列(→ 17) |
| 运营 | 用户管理 users · KYC 审核 kyc · 活动管理 promo · 任务配置 tasks · 站内信 notices | 用户360 抽屉(本位币余额/标签/冻结/重置密码/调级走审批工单/下发 KYC);KYC 三格证照+通过/驳回必填原因;活动 schema 校验+沙盒预览+发布/回滚;任务关卡表递增校验;站内信 模板/手动推送(手机气泡预览)/发送记录 |
| 资金 | 充值订单 dep-orders · 充值渠道 channels · 提现审核 withdraw · 钱包/账变 ledger · 记录/对账 records | 订单四态时间线+手工补单/重推回调(通道币种原值+锁价+本位币入账值);渠道树 增删改/维护/排序/official 标;提现 分态统计卡+七步校验链+双审线→双人复核工单(同人禁);账变九枚举筛选+本位币单币种余额查询+手工调账双人工单;四类记录+三级日切对账(③ 外部核对按 route 分档:原生/CNY 映射 1:1 直对,中性对账)(差异→工单);明细导出受 console.dataExport 总闸控 |
| 游戏 | 游戏/场馆 games | 场馆维护(用户端联动拦截)/游戏上下架/代位下分工单(完成入账+站内信回执);场馆链路 route 配置(原生 / CNY 映射)= 平台超管专属,商户侧不显示、不可改(→ 5.6) |
| 增长 | 等级/俸禄 level · 实时返水 rebate · 返佣推广 affiliate | V1–50 单表本位币口径行内编辑+严格递增校验+草稿/发布/回滚;费率矩阵(类型×段位,≤3% 校验)+派发记录;三档配置/里程碑/代理列表(佣金本位币)/结算单 T+1 |
| 风控与安全 | 风控 risk · 审计日志 audit | 规则开关+阈值编辑、命中记录 HOLD 放行/转工单、黑白灰名单;审计筛选/行内展开/CSV 导出且自留痕 |
| 计费结算 | 计费结算 billing(平台侧) | 平台侧:账单列表(按租户×账期×币种)+ 出账(DRAFT→ISSUED)+ 催缴 + 标记已付(→PAID)+ 逾期(→OVERDUE)+ 逾期超阈值联动 SUSPENDED(TENANT_STATUS 工单);按租户 billing 方案(mode/费率阶梯/保底/账期)配置;跨站分账单 + settlementCurrency 合计参考(标注 B2B 参考口径)。商户侧:只读本站账单(应付/账期/状态,不可出账不可改)。数据源 → 17 |
| 平台 | 租户配置 tenant · 角色权限 rbac | 平台视角:租户列表(各站带本位币/站型标)+开设新租户向导(SETUP 起步,选站型);状态机流转(平台红区)、通道币种草稿→确认、本位币(站型)变更商户发起/平台审批、功能开关、域名、版本回滚;九角色卡+权限矩阵(模块×三动作)、另存自定义角色、管理员账号 CRUD(多租户绑定/停启/重置2FA/初始密码一次性展示)、职责分离说明、我的权限 |
- 交互基线(全模块统一):无 toast 占位——一切动作 = 校验/确认弹层 → 真实状态变更 →
audit()留痕 → 重渲染,toast 仅作结果反馈(反馈层pointer-events:none);列表标配筛选+分页+空态,数据量大处配批量选择/批量操作与 CSV 导出;金额展示遵展示铁律——商户侧本站恒本位币单币种、逐笔带出生币种、不「换符号重刷」,平台经营视图跨租户按币种分列(17 铁律,→ 17);资金/破坏性操作必经 confirm,加减账/调级/大额提现必经双人复核工单(申请人 ≠ 复核人,同人按钮禁用)。 - CRUD 深度基线(对标参考件):按业务适用配备 新增(分步/分组表单+必填红星+💡算例与⚠️警告 hint)/ 编辑 / 删除(级联影响文案)/ 复制(生成副本)/ 启停(confirm)/ 排序(数字输入列+表头「保存排序/取消」);活动管理为旗舰样板:性质两卡(自动化/展示型)、多语言页签、模板库(29 权威实例)自动填充、五种奖励方式页签(比例/阶梯动态行/固定/随机/胜负双向)、领取时效与打码倍数预览文案、领取频率(含固定日期 31 日网格)、可见等级段、分类管理、领取记录页签。
- 场馆链路 route(游戏/场馆模块)—— 平台超管专属:每个场馆一枚 route 选择器
原生 native | CNY 映射 cnyMapped,默认 native;仅平台控制台、仅P_SUPER可见并可改(商户控制台不渲染该选择器);仅wallet.baseCurrency=USDT站型可设 cnyMapped(CNY 站/低币值站型置灰并注明「本位币币值须 ≥ CNY」);保存写审计。它只承接中性对账机制(适配层 1:1 重标本位币、对账按 route 分档),平台侧不做任何商业化引导或测算。用户唯一感知 = 被超管设为 cnyMapped 的场馆内 ¥ 计价(= 本位币等值,1:1)+ 进场提示 + 额度转换页标注(→ 12)。 - 导出管控(
console.dataExport落地):所有模块的 CSV 明细导出入口统一走canExport() = dataExport && can(module, 敏感读|op);dataExport=false时导出按钮置灰并给合规提示「本站已关闭明细导出(合规控)」,前端不产出任何明细文件;审计模块导出自身仍受此闸并自留痕。聚合报表导出由 17report.export.aggregate另管,不受本闸影响。此为合规红线,不可绕过。 - 计费结算(
billing模块,平台侧):账单列表按租户×账期(YYYY-MM)×币种呈现;出账动作 DRAFT→ISSUED(生成应付额 + 账期);催缴/标记已付(→PAID);逾期自动置 OVERDUE 并高亮;逾期累计 ≥suspendOnOverdueDays一键/自动发起 TENANT_STATUS 工单联动租户 SUSPENDED(→ 5.7 / 01 §2.3);跨站按各站本位币出分账单,settlementCurrency合计行显著标注「参考口径 · B2B 结算用 · 不回流用户业务」;金额遵展示铁律(分账单本位币逐列、合计仅参考)。商户侧billing模块只读本站账单。 - 商户控制台的「沙盒预览」直接复用用户端原型:
app/global.html?tenant=<code>&preview=<token>渲染未发布配置(活动管理预览弹层内嵌手机框 iframe 实载 H5)。
八、与其他系统的关系 / 接口
| 交互 | 说明 |
|---|---|
| → 01 | 读写租户配置(版本/发布/回滚 API);受键白名单约束 |
| → 02 | ADJUST_MANUAL 记账(工单号幂等);钱包/账变查询接口 |
| → 04/14 | 提现审核工单、风控工单的处理入口 |
| → 17 | 计费结算读 17 月 GGR/流水(按币种)出账单;账单表 billing_statements 落 17 §八 |
| ← 各系统 | 各分册「运营后台能力」声明的管理接口在此挂载为模块 |
| 审计 | 本系统对外提供 audit(actor, action, target, diff),一切后台写操作必经 |
九、数据库设计(平台级表无 tenant_id;其余含)
| 表 | 关键字段 | 约束/索引 |
|---|---|---|
admin_users(平台级) | admin_user_id PK, username, credential, totp_secret, status, last_login_at/ip | UK(username) |
admin_roles | role_id PK, scope(PLATFORM/MERCHANT), tenant_id(自定义角色归属,可空), name, permissions JSON | IDX(tenant_id) |
admin_user_tenants | admin_user_id, tenant_id(NULL=平台级), role_id, status | UK(admin_user_id,tenant_id,role_id) |
approval_tickets | ticket_id PK, tenant_id, type, payload JSON, status, applicant_id, approver_id, executed_ref, created_at, decided_at | IDX(tenant_id,status,type) |
admin_audit_log | id PK, tenant_id(NULL=平台级), actor_id, action, target_type, target_id, before JSON, after JSON, ip, created_at | IDX(tenant_id,created_at);IDX(actor_id) |
admin_audit_log 只插不改;approval_tickets.executed_ref 与账变流水的 biz_key 对得上(资金类)。
十、扩展点与开放问题
- 审批流深度:V1 固定一级复核;多级会签/金额分级审批待运营诉求再立。
- SSO:平台方内部若有统一身份源,预留 OIDC 接入;商户侧默认本地账号+2FA。
- 看板边界:17 数据看板嵌入后台为模块,还是独立应用——倾向前者,待 17 立项定。
- 操作回放:高危操作(批量调整)是否需要「操作预演(dry-run)+ 影响面预估」,待定。
十一、验收要点
- [ ] 商户账号任何请求无法读到他租户数据(含改参数、猜 ID);
- [ ] 资金调整:申请人=复核人被拒;工单号重复执行只入账一次;金额与余额展示恒本位币单币种;
- [ ] 每笔后台写操作能在审计日志查到 actor + diff;审计写失败则操作失败;
- [ ] 角色去掉某权限点后,对应菜单与 API 同时不可用;
- [ ] 商户改「平台锁定键」被 schema/白名单拦截并留痕;本位币(站型)变更只能发起申请、走平台审批红区,商户不能直发;
- [ ] 明细导出闸:
console.dataExport=false时各模块 CSV 明细导出入口置灰、无文件产出;true时仍受can(module,敏感读|op)约束;导出动作自留审计; - [ ] 场馆链路 route:仅平台控制台、仅
P_SUPER可见该选择器,商户任一角色/界面/报表均不可见不可改;CNY 站/低币值站型下cnyMapped置灰不可选;USDT 站可设,保存留审计; - [ ] 计费结算:按
billing方案自动出账 DRAFT→ISSUED,应付额=对应 mode 公式(hybrid=max(保底,GGR×率));逾期置 OVERDUE、累计逾期 ≥suspendOnOverdueDays触发租户 SUSPENDED;跨站出分账单 +settlementCurrency合计标注参考口径;商户侧只读本站账单; - [ ] 审批工单状态机:PENDING→APPROVED→EXECUTED 主链;APPROVED 执行失败置 FAILED(可重试/撤销)、申请人可 CANCELLED;各态流转留审计;
- [ ] 商户侧本站报表无任何跨币种合计;平台经营视图按币种分列且可下钻单租户;
- [ ]
visibleModules与 RBACview合取:最终可见模块 = 两者交集;租户面板关某模块即隐藏(即使角色有 view); - [ ] 一人多站账号:切换租户后上下文/数据/权限/本位币口径全部随切。