01 · 模块定位
直播能力中心
可分别完成一场正式教学直播、一场招生公开课直播和一场集团内部会议直播的创建、开播、互动、录制、回放、数据统计、消息通知和异常追踪;后台启用阿里云、腾讯云或七牛云任一供应商后,三类直播均按同一套配置运行。业务目标
统一承载教学直播、招生公开课直播和集团内部会议直播,沉淀供应商适配、直播房间、互动、录制回放、数据统计和风险监控能力。
使用终端
PC Web 直播运营台、教师/员工 App、学员端微信小程序/iPhone/iPad/安卓手机/安卓平板 App、H5/Web 学习中心、员工端会议入口。
验收主线
可分别完成一场正式教学直播、一场招生公开课直播和一场集团内部会议直播的创建、开播、互动、录制、回放、数据统计、消息通知和异常追踪;后台启用阿里云、腾讯云或七牛云任一供应商后,三类直播均按同一套配置运行。
02 · 范围边界
明确本模块负责什么、依赖什么、不负责什么
边界清晰后,原型、接口和数据库设计才能避免重复建设。模块内范围
- 直播供应商适配
- 教学直播
- 学员直播课堂
- 招生公开课直播
- 集团内部会议直播
- 直播互动工具
- 录制回放与资料归档
- 直播数据分析与异常监控
- 直播连麦队列
- 连麦策略配置
- 回放发布范围
- 回放下架
- 回放过期
- 回放补看记录
- 公开课观看评分
- 公开课二次转化
- 回放人工补传
- 回放替换版本
- 回放补传审核
上游依赖
- 组织校区与账号权限
- 课程/客户/合同等主数据
- 审批流、消息模板、文件中心
- 必要的第三方接口密钥
下游输出
- 业务状态和待办
- 消息通知和审批记录
- 报表指标和数据快照
- 审计日志和接口回执
03 · 确认口径、后台配置与默认实施规则
直播能力中心必须承接的已确认规则
本章节来自待决策与澄清清单的收口结果,已经转为本模块 PRD 的正式需求、配置项或默认实施规则。| 分类 | 事项 | 本模块落地要求 | 责任方 |
|---|---|---|---|
| 默认实施规则 | 直播供应商启用配置模型 | 阿里云、腾讯云、七牛云共用一套直播能力配置;后台启用哪家即教学直播、招生公开课直播、集团会议直播统一使用哪家。 | 产品/研发/运维 |
| 默认实施规则 | 接口设计说明书组织方式 | 采用单独 HTML 文件集中管理接口协议;模块 PRD 保留模块级接口摘要,避免每个模块重复写通用协议。 | 产品/研发 |
| 默认实施规则 | 数据库分区与归档策略 | 设备事件、直播互动、接口日志、视频会话、操作审计按时间分区和归档,交易主表保留业务索引和审计快照。 | DBA/后端 |
| 默认实施规则 | 接口错误码与重试中间件 | 所有外部接口和内部异步任务统一错误码、幂等键、重试次数、告警阈值和回执归档策略。 | 后端/测试/运维 |
04 · 业务流程
直播能力中心主流程
流程用于指导原型图的页面顺序、按钮状态和异常分支。统一适配阿里云、腾讯云、七牛云的推流、拉流、回调、录制、转码和存储配置
教学直播绑定课程、班级、课次、教师、助教、签到、课消、作业和学习档案
学员端直播课堂支持观看、签到、互动答题、举手上麦、回放和学习进度同步
公开课直播联动活动报名、活码、渠道归因、观看行为和 CRM 线索转化
集团会议直播支持参会范围、签到、纪要任务、资料归档和员工学习记录
互动工具覆盖聊天、答题、投票、奖励、禁言、举手和连麦
直播结束后按供应商存储配置生成回放,并可发布到学习资源或知识库
监控开播、在线人数、卡顿、掉线、回调、转码和互动数据
05 · 功能清单
按子模块拆到可设计、可开发、可测试的颗粒度
每一行功能都需要在原型中体现入口、状态、按钮、字段和反馈。| 一级功能 | 二级功能 | 功能说明 | 规则/验收 |
|---|---|---|---|
| 直播供应商适配 | 直播操作 | 直播供应商适配支持配置、创建、开播、互动、发布、监控、回放和异常处理。 | 供应商配置、直播状态、业务权益和回调审计必须校验 |
| 直播供应商适配 | 业务处理 | 统一适配阿里云、腾讯云、七牛云的推流、拉流、回调、录制、转码和存储配置 | 必须联动状态、权限、消息、审批和指标 |
| 直播供应商适配 | 异常闭环 | 供应商连通失败处理 | 失败原因可见、可重试、可转人工、可追溯 |
| 教学直播 | 直播操作 | 教学直播支持配置、创建、开播、互动、发布、监控、回放和异常处理。 | 供应商配置、直播状态、业务权益和回调审计必须校验 |
| 教学直播 | 业务处理 | 教学直播绑定课程、班级、课次、教师、助教、签到、课消、作业和学习档案 | 必须联动状态、权限、消息、审批和指标 |
| 教学直播 | 异常闭环 | 课次或教师冲突处理 | 失败原因可见、可重试、可转人工、可追溯 |
| 学员直播课堂 | 直播操作 | 学员直播课堂支持配置、创建、开播、互动、发布、监控、回放和异常处理。 | 供应商配置、直播状态、业务权益和回调审计必须校验 |
| 学员直播课堂 | 业务处理 | 学员端直播课堂支持观看、签到、互动答题、举手上麦、回放和学习进度同步 | 必须联动状态、权限、消息、审批和指标 |
| 学员直播课堂 | 异常闭环 | 学员无直播权限处理 | 失败原因可见、可重试、可转人工、可追溯 |
| 招生公开课直播 | 直播操作 | 招生公开课直播支持配置、创建、开播、互动、发布、监控、回放和异常处理。 | 供应商配置、直播状态、业务权益和回调审计必须校验 |
| 招生公开课直播 | 业务处理 | 公开课直播联动活动报名、活码、渠道归因、观看行为和 CRM 线索转化 | 必须联动状态、权限、消息、审批和指标 |
| 招生公开课直播 | 异常闭环 | 活码或线索沉淀失败处理 | 失败原因可见、可重试、可转人工、可追溯 |
| 集团内部会议直播 | 直播操作 | 集团内部会议直播支持配置、创建、开播、互动、发布、监控、回放和异常处理。 | 供应商配置、直播状态、业务权益和回调审计必须校验 |
| 集团内部会议直播 | 业务处理 | 集团会议直播支持参会范围、签到、纪要任务、资料归档和员工学习记录 | 必须联动状态、权限、消息、审批和指标 |
| 集团内部会议直播 | 异常闭环 | 会议越权访问处理 | 失败原因可见、可重试、可转人工、可追溯 |
| 直播互动工具 | 直播操作 | 直播互动工具支持配置、创建、开播、互动、发布、监控、回放和异常处理。 | 供应商配置、直播状态、业务权益和回调审计必须校验 |
| 直播互动工具 | 业务处理 | 互动工具覆盖聊天、答题、投票、奖励、禁言、举手和连麦 | 必须联动状态、权限、消息、审批和指标 |
| 直播互动工具 | 异常闭环 | 互动消息发送失败处理 | 失败原因可见、可重试、可转人工、可追溯 |
| 录制回放与资料归档 | 直播操作 | 录制回放与资料归档支持配置、创建、开播、互动、发布、监控、回放和异常处理。 | 供应商配置、直播状态、业务权益和回调审计必须校验 |
| 录制回放与资料归档 | 业务处理 | 直播结束后按供应商存储配置生成回放,并可发布到学习资源或知识库 | 必须联动状态、权限、消息、审批和指标 |
| 录制回放与资料归档 | 异常闭环 | 录制转码失败处理 | 失败原因可见、可重试、可转人工、可追溯 |
| 直播数据分析与异常监控 | 直播操作 | 直播数据分析与异常监控支持配置、创建、开播、互动、发布、监控、回放和异常处理。 | 供应商配置、直播状态、业务权益和回调审计必须校验 |
| 直播数据分析与异常监控 | 业务处理 | 监控开播、在线人数、卡顿、掉线、回调、转码和互动数据 | 必须联动状态、权限、消息、审批和指标 |
| 直播数据分析与异常监控 | 异常闭环 | 供应商回调异常处理 | 失败原因可见、可重试、可转人工、可追溯 |
| 直播连麦队列 | 直播操作 | 直播连麦队列支持配置、创建、开播、互动、发布、监控、回放和异常处理。 | 供应商配置、直播状态、业务权益和回调审计必须校验 |
| 直播连麦队列 | 业务处理 | 教师/助教可处理举手队列、邀请上麦、拒绝、静音、解除静音、下麦和清空队列 | 必须联动状态、权限、消息、审批和指标 |
| 直播连麦队列 | 异常闭环 | 连麦人数已满处理 | 失败原因可见、可重试、可转人工、可追溯 |
| 连麦策略配置 | 直播操作 | 连麦策略配置支持配置、创建、开播、互动、发布、监控、回放和异常处理。 | 供应商配置、直播状态、业务权益和回调审计必须校验 |
| 连麦策略配置 | 业务处理 | 按直播类型配置最大上麦人数、邀请超时、助教权限、重复举手和失败重试 | 必须联动状态、权限、消息、审批和指标 |
| 连麦策略配置 | 异常闭环 | 规则冲突处理 | 失败原因可见、可重试、可转人工、可追溯 |
| 回放发布范围 | 直播操作 | 回放发布范围支持配置、创建、开播、互动、发布、监控、回放和异常处理。 | 供应商配置、直播状态、业务权益和回调审计必须校验 |
| 回放发布范围 | 业务处理 | 回放发布范围需覆盖入口、字段、状态、权限、审批/消息、异常处理、审计和指标统计,并与上下游模块保持数据一致。 | 必须联动状态、权限、消息、审批和指标 |
| 回放发布范围 | 异常闭环 | 供应商连麦失败处理 | 失败原因可见、可重试、可转人工、可追溯 |
| 回放下架 | 直播操作 | 回放下架支持配置、创建、开播、互动、发布、监控、回放和异常处理。 | 供应商配置、直播状态、业务权益和回调审计必须校验 |
| 回放下架 | 业务处理 | 回放下架需覆盖入口、字段、状态、权限、审批/消息、异常处理、审计和指标统计,并与上下游模块保持数据一致。 | 必须联动状态、权限、消息、审批和指标 |
| 回放下架 | 异常闭环 | 麦克风权限未授权处理 | 失败原因可见、可重试、可转人工、可追溯 |
| 回放过期 | 直播操作 | 回放过期支持配置、创建、开播、互动、发布、监控、回放和异常处理。 | 供应商配置、直播状态、业务权益和回调审计必须校验 |
| 回放过期 | 业务处理 | 回放过期需覆盖入口、字段、状态、权限、审批/消息、异常处理、审计和指标统计,并与上下游模块保持数据一致。 | 必须联动状态、权限、消息、审批和指标 |
| 回放过期 | 异常闭环 | 回放权限不足处理 | 失败原因可见、可重试、可转人工、可追溯 |
| 回放补看记录 | 直播操作 | 回放补看记录支持配置、创建、开播、互动、发布、监控、回放和异常处理。 | 供应商配置、直播状态、业务权益和回调审计必须校验 |
| 回放补看记录 | 业务处理 | 回放补看记录需覆盖入口、字段、状态、权限、审批/消息、异常处理、审计和指标统计,并与上下游模块保持数据一致。 | 必须联动状态、权限、消息、审批和指标 |
| 回放补看记录 | 异常闭环 | 回放已过期处理 | 失败原因可见、可重试、可转人工、可追溯 |
| 公开课观看评分 | 直播操作 | 公开课观看评分支持配置、创建、开播、互动、发布、监控、回放和异常处理。 | 供应商配置、直播状态、业务权益和回调审计必须校验 |
| 公开课观看评分 | 业务处理 | 公开课观看评分需覆盖入口、字段、状态、权限、审批/消息、异常处理、审计和指标统计,并与上下游模块保持数据一致。 | 必须联动状态、权限、消息、审批和指标 |
| 公开课观看评分 | 异常闭环 | 回放下架访问处理 | 失败原因可见、可重试、可转人工、可追溯 |
| 公开课二次转化 | 直播操作 | 公开课二次转化支持配置、创建、开播、互动、发布、监控、回放和异常处理。 | 供应商配置、直播状态、业务权益和回调审计必须校验 |
| 公开课二次转化 | 业务处理 | 公开课二次转化需覆盖入口、字段、状态、权限、审批/消息、异常处理、审计和指标统计,并与上下游模块保持数据一致。 | 必须联动状态、权限、消息、审批和指标 |
| 公开课二次转化 | 异常闭环 | 公开课线索沉淀失败处理 | 失败原因可见、可重试、可转人工、可追溯 |
| 回放人工补传 | 直播操作 | 回放人工补传支持配置、创建、开播、互动、发布、监控、回放和异常处理。 | 供应商配置、直播状态、业务权益和回调审计必须校验 |
| 回放人工补传 | 业务处理 | 回放人工补传需覆盖入口、字段、状态、权限、审批/消息、异常处理、审计和指标统计,并与上下游模块保持数据一致。 | 必须联动状态、权限、消息、审批和指标 |
| 回放人工补传 | 异常闭环 | 录制失败处理 | 失败原因可见、可重试、可转人工、可追溯 |
| 回放替换版本 | 直播操作 | 回放替换版本支持配置、创建、开播、互动、发布、监控、回放和异常处理。 | 供应商配置、直播状态、业务权益和回调审计必须校验 |
| 回放替换版本 | 业务处理 | 回放替换版本需覆盖入口、字段、状态、权限、审批/消息、异常处理、审计和指标统计,并与上下游模块保持数据一致。 | 必须联动状态、权限、消息、审批和指标 |
| 回放替换版本 | 异常闭环 | 回放替换失败处理 | 失败原因可见、可重试、可转人工、可追溯 |
| 回放补传审核 | 直播操作 | 回放补传审核支持配置、创建、开播、互动、发布、监控、回放和异常处理。 | 供应商配置、直播状态、业务权益和回调审计必须校验 |
| 回放补传审核 | 业务处理 | 回放补传审核需覆盖入口、字段、状态、权限、审批/消息、异常处理、审计和指标统计,并与上下游模块保持数据一致。 | 必须联动状态、权限、消息、审批和指标 |
| 回放补传审核 | 异常闭环 | 学习进度重算失败处理 | 失败原因可见、可重试、可转人工、可追溯 |
功能到数据对象/接口/表映射
| 功能域 | 承接对象 | 核心表 | 代表接口 | 状态机/状态字段 | 研发落地校验 |
|---|---|---|---|---|---|
| 直播供应商适配 | LiveProviderConfig、LiveRoom | live_provider_config、live_room | 建议接口资源组 /api/v1/live/providers | live_type、biz_type、room_status | 新增/编辑/删除/审批/导出/回调均需校验租户、校区、角色、数据范围、逻辑删除、幂等和审计 |
| 教学直播 | LiveProviderConfig、LiveRoom、LiveSession/LiveAttendance、LiveInteraction | live_provider_config、live_room、live_participant、live_interaction_event | 接口资源组 /api/v1/live/features/02 | live_type、biz_type、room_status、participant_type、join_status、sign_status | 新增/编辑/删除/审批/导出/回调均需校验租户、校区、角色、数据范围、逻辑删除、幂等和审计 |
| 学员直播课堂 | LiveProviderConfig、LiveRoom、LiveSession/LiveAttendance、LiveInteraction | live_provider_config、live_room、live_participant、live_interaction_event | 接口资源组 /api/v1/live/features/03 | live_type、biz_type、room_status、participant_type、join_status、sign_status | 新增/编辑/删除/审批/导出/回调均需校验租户、校区、角色、数据范围、逻辑删除、幂等和审计 |
| 招生公开课直播 | LiveRoom、LiveSession/LiveAttendance、PublicLiveConversion | live_room、live_participant、live_public_conversion | 建议接口资源组 /api/v1/live/public-classes | live_type、biz_type、room_status、participant_type、join_status、sign_status | 新增/编辑/删除/审批/导出/回调均需校验租户、校区、角色、数据范围、逻辑删除、幂等和审计 |
| 集团内部会议直播 | LiveProviderConfig、LiveRoom、LiveSession/LiveAttendance、LiveInteraction | live_provider_config、live_room、live_participant、live_interaction_event | 接口资源组 /api/v1/live/features/05 | live_type、biz_type、room_status、participant_type、join_status、sign_status | 新增/编辑/删除/审批/导出/回调均需校验租户、校区、角色、数据范围、逻辑删除、幂等和审计 |
| 直播互动工具 | LiveProviderConfig、LiveRoom、LiveSession/LiveAttendance、LiveInteraction | live_provider_config、live_room、live_participant、live_interaction_event | 接口资源组 /api/v1/live/features/06 | live_type、biz_type、room_status、participant_type、join_status、sign_status | 新增/编辑/删除/审批/导出/回调均需校验租户、校区、角色、数据范围、逻辑删除、幂等和审计 |
| 录制回放与资料归档 | LiveRoom、LiveRecording、ReplayPublishPolicy/ReplayAccess | live_room、live_recording_file、live_replay_policy | 建议接口资源组 /api/v1/live/recordings | live_type、biz_type、room_status、recording_status、publish_status | 新增/编辑/删除/审批/导出/回调均需校验租户、校区、角色、数据范围、逻辑删除、幂等和审计 |
| 直播数据分析与异常监控 | LiveProviderConfig、LiveRoom、LiveSession/LiveAttendance、LiveInteraction | live_provider_config、live_room、live_participant、live_interaction_event | 接口资源组 /api/v1/live/features/08 | live_type、biz_type、room_status、participant_type、join_status、sign_status | 新增/编辑/删除/审批/导出/回调均需校验租户、校区、角色、数据范围、逻辑删除、幂等和审计 |
| 直播连麦队列 | LiveInteraction、LiveMicRequest、LiveMicSeat | live_interaction_event、live_mic_request、live_mic_seat | 建议接口资源组 /api/v1/live/mic-requests | interaction_type、request_status、seat_status | 新增/编辑/删除/审批/导出/回调均需校验租户、校区、角色、数据范围、逻辑删除、幂等和审计 |
| 连麦策略配置 | LiveProviderConfig、LiveRoom | live_provider_config、live_room | 建议接口资源组 /api/v1/live/providers | live_type、biz_type、room_status | 新增/编辑/删除/审批/导出/回调均需校验租户、校区、角色、数据范围、逻辑删除、幂等和审计 |
| 回放发布范围 | LiveRoom、LiveRecording、ReplayPublishPolicy/ReplayAccess | live_room、live_recording_file、live_replay_policy | 建议接口资源组 /api/v1/live/recordings | live_type、biz_type、room_status、recording_status、publish_status | 新增/编辑/删除/审批/导出/回调均需校验租户、校区、角色、数据范围、逻辑删除、幂等和审计 |
| 回放下架 | LiveRoom、LiveRecording、ReplayPublishPolicy/ReplayAccess | live_room、live_recording_file、live_replay_policy | 建议接口资源组 /api/v1/live/recordings | live_type、biz_type、room_status、recording_status、publish_status | 新增/编辑/删除/审批/导出/回调均需校验租户、校区、角色、数据范围、逻辑删除、幂等和审计 |
| 回放过期 | LiveRoom、LiveRecording、ReplayPublishPolicy/ReplayAccess | live_room、live_recording_file、live_replay_policy | 建议接口资源组 /api/v1/live/recordings | live_type、biz_type、room_status、recording_status、publish_status | 新增/编辑/删除/审批/导出/回调均需校验租户、校区、角色、数据范围、逻辑删除、幂等和审计 |
| 回放补看记录 | LiveRoom、LiveRecording、ReplayPublishPolicy/ReplayAccess | live_room、live_recording_file、live_replay_policy | 建议接口资源组 /api/v1/live/recordings | live_type、biz_type、room_status、recording_status、publish_status | 新增/编辑/删除/审批/导出/回调均需校验租户、校区、角色、数据范围、逻辑删除、幂等和审计 |
| 公开课观看评分 | LiveRoom、LiveSession/LiveAttendance、PublicLiveConversion | live_room、live_participant、live_public_conversion | 建议接口资源组 /api/v1/live/public-classes | live_type、biz_type、room_status、participant_type、join_status、sign_status | 新增/编辑/删除/审批/导出/回调均需校验租户、校区、角色、数据范围、逻辑删除、幂等和审计 |
| 公开课二次转化 | LiveRoom、LiveSession/LiveAttendance、PublicLiveConversion | live_room、live_participant、live_public_conversion | 建议接口资源组 /api/v1/live/public-classes | live_type、biz_type、room_status、participant_type、join_status、sign_status | 新增/编辑/删除/审批/导出/回调均需校验租户、校区、角色、数据范围、逻辑删除、幂等和审计 |
| 回放人工补传 | LiveRoom、LiveRecording、ReplayPublishPolicy/ReplayAccess | live_room、live_recording_file、live_replay_policy | 建议接口资源组 /api/v1/live/recordings | live_type、biz_type、room_status、recording_status、publish_status | 新增/编辑/删除/审批/导出/回调均需校验租户、校区、角色、数据范围、逻辑删除、幂等和审计 |
| 回放替换版本 | LiveRoom、LiveRecording、ReplayPublishPolicy/ReplayAccess | live_room、live_recording_file、live_replay_policy | 建议接口资源组 /api/v1/live/recordings | live_type、biz_type、room_status、recording_status、publish_status | 新增/编辑/删除/审批/导出/回调均需校验租户、校区、角色、数据范围、逻辑删除、幂等和审计 |
| 回放补传审核 | LiveRoom、LiveRecording、ReplayPublishPolicy/ReplayAccess | live_room、live_recording_file、live_replay_policy | 建议接口资源组 /api/v1/live/recordings | live_type、biz_type、room_status、recording_status、publish_status | 新增/编辑/删除/审批/导出/回调均需校验租户、校区、角色、数据范围、逻辑删除、幂等和审计 |
06 · 原子级功能需求
用于研发任务拆分和测试用例追踪
需求编号可直接进入项目管理工具。| 编号 | 需求描述 | 入口页面 | 关键动作 | 输入校验 | 输出结果 | 异常处理 | 验收标准 |
|---|---|---|---|---|---|---|---|
| FR-LIVE-001 | 支持阿里云、腾讯云、七牛云直播框架,通过统一供应商适配层管理推流、拉流、录制、转码、回调、存储位置和用量统计 | 直播供应商配置 | 配置供应商 | 校验租户、校区、角色、数据范围、状态前置、必填、唯一和敏感操作授权 | 生成业务记录、状态流转、消息通知、审计日志、指标快照和必要的第三方任务 | 供应商连通性失败、回调验签失败或启用冲突时阻断发布 | 主流程、异常流、权限流、接口失败和数据一致性均可通过测试 |
| FR-LIVE-002 | 直播能力不区分主备供应商,后台配置启用哪一家就使用哪一家;教学直播、招生公开课直播和集团内部会议直播共用同一套直播能力供应商配置 | 教学直播课表 | 创建教学直播 | 校验租户、校区、角色、数据范围、状态前置、必填、唯一和敏感操作授权 | 生成业务记录、状态流转、消息通知、审计日志、指标快照和必要的第三方任务 | 课次冲突、教师无权限或供应商资源申请失败时回滚房间 | 主流程、异常流、权限流、接口失败和数据一致性均可通过测试 |
| FR-LIVE-003 | 教学直播支持与课程、班级、课次、教师、助教、学员、签到、课消、作业、测评和学习档案联动 | 学员直播课堂 | 学员进入 | 校验租户、校区、角色、数据范围、状态前置、必填、唯一和敏感操作授权 | 生成业务记录、状态流转、消息通知、审计日志、指标快照和必要的第三方任务 | 无课程权益、直播未开播或播放鉴权失效时拒绝进入 | 主流程、异常流、权限流、接口失败和数据一致性均可通过测试 |
| FR-LIVE-004 | 学员端微信小程序、iPhone/iPad App、安卓手机/安卓平板 App 和 H5/Web 学习中心可进入直播课堂、互动、补看回放和查看学习记录 | 招生公开课直播 | 公开课报名观看 | 校验租户、校区、角色、数据范围、状态前置、必填、唯一和敏感操作授权 | 生成业务记录、状态流转、消息通知、审计日志、指标快照和必要的第三方任务 | 报名信息缺失、活码失效或线索沉淀失败时生成异常任务 | 主流程、异常流、权限流、接口失败和数据一致性均可通过测试 |
| FR-LIVE-005 | 教师/员工端支持直播开课、课件共享、白板/屏幕共享、点名签到、举手连麦、答题投票、课堂奖励、禁言和异常处理 | 集团会议直播 | 发布会议直播 | 校验租户、校区、角色、数据范围、状态前置、必填、唯一和敏感操作授权 | 生成业务记录、状态流转、消息通知、审计日志、指标快照和必要的第三方任务 | 参会范围越权、会议资料缺失或签到失败时提示处理 | 主流程、异常流、权限流、接口失败和数据一致性均可通过测试 |
| FR-LIVE-006 | 招生公开课直播支持报名预约、渠道归因、活码海报、直播提醒、观看行为采集、互动线索沉淀和 CRM 跟进转化 | 直播互动工具 | 互动管理 | 校验租户、校区、角色、数据范围、状态前置、必填、唯一和敏感操作授权 | 生成业务记录、状态流转、消息通知、审计日志、指标快照和必要的第三方任务 | 聊天违规、答题超时、奖励失败或禁言冲突时写入互动日志 | 主流程、异常流、权限流、接口失败和数据一致性均可通过测试 |
| FR-LIVE-007 | 集团内部会议直播支持总部会议、区域会议、培训宣导、权限范围控制、会议签到、纪要任务、资料归档和员工学习记录联动 | 回放与数据分析 | 发布回放 | 校验租户、校区、角色、数据范围、状态前置、必填、唯一和敏感操作授权 | 生成业务记录、状态流转、消息通知、审计日志、指标快照和必要的第三方任务 | 录制转码失败、存储回调失败或回放权限缺失时告警 | 主流程、异常流、权限流、接口失败和数据一致性均可通过测试 |
| FR-LIVE-008 | 直播全链路需要记录开播、入会、互动、掉线、回放、转码、供应商回调、异常重试和访问审计 | 直播监控大屏 | 监控异常 | 校验租户、校区、角色、数据范围、状态前置、必填、唯一和敏感操作授权 | 生成业务记录、状态流转、消息通知、审计日志、指标快照和必要的第三方任务 | 卡顿、掉线、回调失败或在线数异常时触发运维告警 | 主流程、异常流、权限流、接口失败和数据一致性均可通过测试 |
| FR-LIVE-009 | 支持按总部、区域、校区、课程、班级、教师、顾问、员工和学员维度统计到课率、完播率、互动率、转化率、回放观看率和会议参会率 | 直播连麦队列 | 处理连麦 | 校验租户、校区、角色、数据范围、状态前置、必填、唯一和敏感操作授权 | 生成业务记录、状态流转、消息通知、审计日志、指标快照和必要的第三方任务 | 连麦人数已满、邀请超时、座席冲突或供应商连麦失败时进入异常队列 | 主流程、异常流、权限流、接口失败和数据一致性均可通过测试 |
| FR-LIVE-010 | 直播举手上麦需要形成独立连麦请求队列,教师或助教可同意、拒绝、邀请、静音、解除静音、下麦和清空队列。 | 连麦策略配置 | 配置连麦规则 | 校验租户、校区、角色、数据范围、状态前置、必填、唯一和敏感操作授权 | 生成业务记录、状态流转、消息通知、审计日志、指标快照和必要的第三方任务 | 最大上麦人数、助教权限或供应商能力不匹配时不允许启用 | 主流程、异常流、权限流、接口失败和数据一致性均可通过测试 |
| FR-LIVE-011 | 连麦队列需支持最大上麦人数、邀请超时、重复举手拦截、设备权限预检、供应商返回失败、教师操作审计和异常重试。 | 采购对账付款 | 采购对账、采购付款或凭证归档 | 校验租户、校区、角色、数据范围、状态前置、必填、唯一和敏感操作授权 | 生成业务记录、状态流转、消息通知、审计日志、指标快照和必要的第三方任务 | 对账不平、付款失败或凭证缺失 | 主流程、异常流、权限流、接口失败和数据一致性均可通过测试 |
| FR-LIVE-012 | 学员端发起举手后必须实时反馈排队序号和处理状态,教师端处理结果需通过直播互动通道与消息通道同步。 | 直播课堂/连麦队列 | 进入直播、举手上麦或处理连麦 | 校验租户、校区、角色、数据范围、状态前置、必填、唯一和敏感操作授权 | 生成业务记录、状态流转、消息通知、审计日志、指标快照和必要的第三方任务 | 直播未开播、连麦超时或供应商失败 | 主流程、异常流、权限流、接口失败和数据一致性均可通过测试 |
| FR-LIVE-013 | 直播回放需支持发布范围、有效期、下架、过期、补看记录、访问鉴权、异常提示和导出审批。 | 回放发布与访问 | 回放发布、下架、过期或权限校验 | 校验租户、校区、角色、数据范围、状态前置、必填、唯一和敏感操作授权 | 生成业务记录、状态流转、消息通知、审计日志、指标快照和必要的第三方任务 | 回放已下架、已过期或权限不足 | 主流程、异常流、权限流、接口失败和数据一致性均可通过测试 |
| FR-LIVE-014 | 公开课直播需记录观看评分、互动意向标签、未观看唤醒、公开课回放二次转化和顾问自动跟进任务。 | 回放发布与访问 | 回放发布、下架、过期或权限校验 | 校验租户、校区、角色、数据范围、状态前置、必填、唯一和敏感操作授权 | 生成业务记录、状态流转、消息通知、审计日志、指标快照和必要的第三方任务 | 回放已下架、已过期或权限不足 | 主流程、异常流、权限流、接口失败和数据一致性均可通过测试 |
| FR-LIVE-015 | 直播录制失败、转码失败或文件损坏时需支持人工补传回放,补传文件需通过格式、时长、权限范围、存储位置和有效期校验。 | 回放发布与访问 | 回放发布、下架、过期或权限校验 | 校验租户、校区、角色、数据范围、状态前置、必填、唯一和敏感操作授权 | 生成业务记录、状态流转、消息通知、审计日志、指标快照和必要的第三方任务 | 回放已下架、已过期或权限不足 | 主流程、异常流、权限流、接口失败和数据一致性均可通过测试 |
| FR-LIVE-016 | 已发布回放被替换时需生成新版本,保留原回放访问日志,按配置通知学员、家长、教师,并明确学习进度是否重算。 | 回放发布与访问 | 回放发布、下架、过期或权限校验 | 校验租户、校区、角色、数据范围、状态前置、必填、唯一和敏感操作授权 | 生成业务记录、状态流转、消息通知、审计日志、指标快照和必要的第三方任务 | 回放已下架、已过期或权限不足 | 主流程、异常流、权限流、接口失败和数据一致性均可通过测试 |
07 · 关联闭环补充需求
直播能力中心在跨模块闭环中的责任边界
本章节承接最终闭环核对清单,明确本模块需要补齐的页面、接口对象、异常兜底和验收口径。| 闭环项 | 本模块责任 | 关键场景 | 页面/功能补充 | 关联对象/接口 | 验收口径 |
|---|---|---|---|---|---|
| 回放人工补传 | 负责回放缺失检测、人工补传、转码、重新发布和访问权限继承 | 云直播录制失败、回调失败、文件损坏或回放需要替换 | 回放列表、异常回放、人工补传、转码任务、发布范围、访问统计 | LiveInteraction/LiveRecording、ReplayPublishPolicy/ReplayAccess、/api/v1/live/recordings | 补传后必须保留旧文件状态、操作人、转码结果和重新发布记录 |
| 统一付款补偿 | 直播付费公开课或活动直播如涉及支付,按统一资金补偿口径处理 | 直播公开课报名支付超时、退款或支付回调异常 | 直播报名订单、支付状态、回调日志 | PublicLiveConversion、Contract/Order/Payment | 资金异常不得影响直播权益判定,必须可对账和补偿 |
08 · 页面与原型设计说明
页面清单、布局要求、按钮字段和状态
原型图设计需要覆盖列表、详情、表单、弹窗、空状态、异常状态和权限状态。| 终端 | 页面 | 用户 | 页面目标 | 布局结构 | 关键按钮 | 关键字段 | 异常状态 | 原型备注 |
|---|---|---|---|---|---|---|---|---|
| PC Web | 直播供应商配置 | 总部管理员/技术运维 | 配置阿里云、腾讯云、七牛云直播框架的应用、域名、回调、录制、转码和对象存储位置,启用哪家供应商即全平台使用哪家 | 运营台以配置/监控/回放/转化分区组织,顶部展示供应商状态和业务类型筛选,详情抽屉展示回调、录制和发布记录。 | 配置供应商、健康检测、创建直播、发布回放、人工补传、下架回放、生成跟进任务 | 供应商、业务类型、直播间、回调状态、录制文件、存储位置、发布范围、转化任务、直播间名称、直播类型 | 供应商连通失败、回调验签失败、录制转码失败、存储回调失败、回放权限缺失、线索沉淀失败 | 需体现三家供应商启用配置、无主备切换、录制存储配置、回放补传版本、公开课转化和会议归档。 建议 Figma Frame:LIVE-直播供应商配置;需补齐正常、空态、加载、无权限、处理中、成功和失败状态。 |
| PC Web | 直播课管理 | 教务/校长/总部教研 | 创建教学直播、绑定课程班级课次、配置助教、课件、签到和回放策略 | 直播列表展示今日直播、未开始、进行中和回放;课堂页突出播放器、签到、互动、答题、举手和课后任务。 | 进入直播、直播签到、提交答题、举手上麦、查看回放、同步进度、结束课堂 | 直播课次、开播时间、教师/助教、观看权限、签到状态、互动得分、回放状态、学习进度、直播间名称、直播类型 | 直播未开播、无观看权益、播放鉴权失效、断流、回放生成中、学习进度同步失败 | 需覆盖开播前、直播中、断流重试、回放生成中、回放可看、补看任务和学习档案回写。 建议 Figma Frame:LIVE-直播课管理;需补齐正常、空态、加载、无权限、处理中、成功和失败状态。 |
| 教师/员工 App | 教师直播授课台 | 教师/助教 | 开播、点名、课件共享、互动答题、连麦、禁言、下课和异常上报 | 直播列表展示今日直播、未开始、进行中和回放;课堂页突出播放器、签到、互动、答题、举手和课后任务。 | 进入直播、直播签到、提交答题、举手上麦、查看回放、同步进度、结束课堂 | 直播课次、开播时间、教师/助教、观看权限、签到状态、互动得分、回放状态、学习进度、直播间名称、直播类型 | 直播未开播、无观看权益、播放鉴权失效、断流、回放生成中、学习进度同步失败 | 需覆盖开播前、直播中、断流重试、回放生成中、回放可看、补看任务和学习档案回写。 建议 Figma Frame:LIVE-教师直播授课台;需补齐正常、空态、加载、无权限、处理中、成功和失败状态。 |
| 学员端小程序/App/H5 | 学员直播课堂 | 学员 | 进入直播课堂、签到、互动、答题、查看回放并同步学习进度 | 直播列表展示今日直播、未开始、进行中和回放;课堂页突出播放器、签到、互动、答题、举手和课后任务。 | 进入直播、直播签到、提交答题、举手上麦、查看回放、同步进度、结束课堂 | 直播课次、开播时间、教师/助教、观看权限、签到状态、互动得分、回放状态、学习进度、直播间名称、直播类型 | 直播未开播、无观看权益、播放鉴权失效、断流、回放生成中、学习进度同步失败 | 需覆盖开播前、直播中、断流重试、回放生成中、回放可看、补看任务和学习档案回写。 建议 Figma Frame:LIVE-学员直播课堂;需补齐正常、空态、加载、无权限、处理中、成功和失败状态。 |
| PC Web/H5 | 招生公开课直播 | 市场/课程顾问/校区 | 公开课报名、活码海报、直播运营、观看行为采集和 CRM 转化 | 运营台以配置/监控/回放/转化分区组织,顶部展示供应商状态和业务类型筛选,详情抽屉展示回调、录制和发布记录。 | 配置供应商、健康检测、创建直播、发布回放、人工补传、下架回放、生成跟进任务 | 供应商、业务类型、直播间、回调状态、录制文件、存储位置、发布范围、转化任务、直播间名称、直播类型 | 供应商连通失败、回调验签失败、录制转码失败、存储回调失败、回放权限缺失、线索沉淀失败 | 需体现三家供应商启用配置、无主备切换、录制存储配置、回放补传版本、公开课转化和会议归档。 建议 Figma Frame:LIVE-招生公开课直播;需补齐正常、空态、加载、无权限、处理中、成功和失败状态。 |
| PC Web/员工端 | 集团会议直播 | 总部/区域/校区员工 | 集团会议、培训宣导、会议签到、纪要任务、资料和回放归档 | 运营台以配置/监控/回放/转化分区组织,顶部展示供应商状态和业务类型筛选,详情抽屉展示回调、录制和发布记录。 | 配置供应商、健康检测、创建直播、发布回放、人工补传、下架回放、生成跟进任务 | 供应商、业务类型、直播间、回调状态、录制文件、存储位置、发布范围、转化任务、直播间名称、直播类型 | 供应商连通失败、回调验签失败、录制转码失败、存储回调失败、回放权限缺失、线索沉淀失败 | 需体现三家供应商启用配置、无主备切换、录制存储配置、回放补传版本、公开课转化和会议归档。 建议 Figma Frame:LIVE-集团会议直播;需补齐正常、空态、加载、无权限、处理中、成功和失败状态。 |
| PC Web | 直播监控大屏 | 总部运营/技术运维 | 监控开播状态、在线人数、卡顿、掉线、回调、转码和供应商异常 | 运营台以配置/监控/回放/转化分区组织,顶部展示供应商状态和业务类型筛选,详情抽屉展示回调、录制和发布记录。 | 配置供应商、健康检测、创建直播、发布回放、人工补传、下架回放、生成跟进任务 | 供应商、业务类型、直播间、回调状态、录制文件、存储位置、发布范围、转化任务、直播间名称、直播类型 | 供应商连通失败、回调验签失败、录制转码失败、存储回调失败、回放权限缺失、线索沉淀失败 | 需体现三家供应商启用配置、无主备切换、录制存储配置、回放补传版本、公开课转化和会议归档。 建议 Figma Frame:LIVE-直播监控大屏;需补齐正常、空态、加载、无权限、处理中、成功和失败状态。 |
| PC Web | 直播回放与数据分析 | 教务/教研/市场/人事 | 查看录制回放、学习统计、公开课转化、会议参会和数据导出 | 运营台以配置/监控/回放/转化分区组织,顶部展示供应商状态和业务类型筛选,详情抽屉展示回调、录制和发布记录。 | 配置供应商、健康检测、创建直播、发布回放、人工补传、下架回放、生成跟进任务 | 供应商、业务类型、直播间、回调状态、录制文件、存储位置、发布范围、转化任务、直播间名称、直播类型 | 供应商连通失败、回调验签失败、录制转码失败、存储回调失败、回放权限缺失、线索沉淀失败 | 需体现三家供应商启用配置、无主备切换、录制存储配置、回放补传版本、公开课转化和会议归档。 建议 Figma Frame:LIVE-直播回放与数据分析;需补齐正常、空态、加载、无权限、处理中、成功和失败状态。 |
| 学员端小程序/App/H5 | 学员直播举手上麦 | 学员 | 在直播课堂中发起举手、取消排队、查看排队序号、接受教师邀请、完成设备检测并进入连麦 | 队列视图展示排队学员、当前座席、设备检测结果和教师处理记录,支持右侧抽屉查看单个学员连麦历史。 | 同意上麦、拒绝上麦、邀请上麦、静音、解除静音、下麦、清空队列 | 学员姓名、排队序号、申请时间、设备检测、座席号、处理人、邀请倒计时、失败原因、直播间名称、直播类型 | 连麦人数已满、邀请超时、麦克风未授权、座席冲突、供应商连接失败 | 需覆盖学员等待态、教师邀请态、上麦中、被拒绝、超时失败和重新举手。 建议 Figma Frame:LIVE-学员直播举手上麦;需补齐正常、空态、加载、无权限、处理中、成功和失败状态。 |
| 教师/员工 App | 直播连麦队列管理 | 教师/助教 | 查看举手队列、处理上麦邀请、拒绝、静音、解除静音、下麦、清空队列和连麦异常 | 队列视图展示排队学员、当前座席、设备检测结果和教师处理记录,支持右侧抽屉查看单个学员连麦历史。 | 同意上麦、拒绝上麦、邀请上麦、静音、解除静音、下麦、清空队列 | 学员姓名、排队序号、申请时间、设备检测、座席号、处理人、邀请倒计时、失败原因、直播间名称、直播类型 | 连麦人数已满、邀请超时、麦克风未授权、座席冲突、供应商连接失败 | 需覆盖学员等待态、教师邀请态、上麦中、被拒绝、超时失败和重新举手。 建议 Figma Frame:LIVE-直播连麦队列管理;需补齐正常、空态、加载、无权限、处理中、成功和失败状态。 |
| PC Web/学员端 | 直播回放发布与下架 | 教务/教师/学员 | 配置回放发布范围、有效期、下架、过期、补看任务和访问鉴权 | 运营台以配置/监控/回放/转化分区组织,顶部展示供应商状态和业务类型筛选,详情抽屉展示回调、录制和发布记录。 | 配置供应商、健康检测、创建直播、发布回放、人工补传、下架回放、生成跟进任务 | 供应商、业务类型、直播间、回调状态、录制文件、存储位置、发布范围、转化任务、直播间名称、直播类型 | 供应商连通失败、回调验签失败、录制转码失败、存储回调失败、回放权限缺失、线索沉淀失败 | 需体现三家供应商启用配置、无主备切换、录制存储配置、回放补传版本、公开课转化和会议归档。 建议 Figma Frame:LIVE-直播回放发布与下架;需补齐正常、空态、加载、无权限、处理中、成功和失败状态。 |
| PC Web/H5 | 公开课二次转化 | 市场/课程顾问 | 基于公开课观看评分、互动意向标签和未观看唤醒生成顾问跟进任务 | 运营台以配置/监控/回放/转化分区组织,顶部展示供应商状态和业务类型筛选,详情抽屉展示回调、录制和发布记录。 | 配置供应商、健康检测、创建直播、发布回放、人工补传、下架回放、生成跟进任务 | 供应商、业务类型、直播间、回调状态、录制文件、存储位置、发布范围、转化任务、直播间名称、直播类型 | 供应商连通失败、回调验签失败、录制转码失败、存储回调失败、回放权限缺失、线索沉淀失败 | 需体现三家供应商启用配置、无主备切换、录制存储配置、回放补传版本、公开课转化和会议归档。 建议 Figma Frame:LIVE-公开课二次转化;需补齐正常、空态、加载、无权限、处理中、成功和失败状态。 |
| PC Web | 回放人工补传 | 教务/直播运营 | 录制失败或转码失败后人工上传回放、审核、替换、通知并记录版本 | 运营台以配置/监控/回放/转化分区组织,顶部展示供应商状态和业务类型筛选,详情抽屉展示回调、录制和发布记录。 | 配置供应商、健康检测、创建直播、发布回放、人工补传、下架回放、生成跟进任务 | 供应商、业务类型、直播间、回调状态、录制文件、存储位置、发布范围、转化任务、直播间名称、直播类型 | 供应商连通失败、回调验签失败、录制转码失败、存储回调失败、回放权限缺失、线索沉淀失败 | 需体现三家供应商启用配置、无主备切换、录制存储配置、回放补传版本、公开课转化和会议归档。 建议 Figma Frame:LIVE-回放人工补传;需补齐正常、空态、加载、无权限、处理中、成功和失败状态。 |
| PC Web/教师端/学员端/会议端 | 直播间创建 | 教师/助教/学员/会议主持人 | 围绕供应商配置完善直播间创建的入口、字段、状态、异常提示、处理进度和验收反馈 | 移动端采用顶部标题/状态区、内容卡片流和底部主按钮;平板端需要分栏布局和横屏适配。 | 查看、提交、保存、取消、确认、联系客服、配置供应商、创建直播 | 直播间名称、直播类型、供应商、开播时间、主讲教师、观看权限、录制状态、回放发布状态 | 网络异常、权限不足、提交失败、状态已变化 | 需分别标注小程序、App、H5、平板和桌面壳的适配差异。 建议 Figma Frame:LIVE-直播间创建;需补齐正常、空态、加载、无权限、处理中、成功和失败状态。 |
| PC Web/教师端/学员端/会议端 | 学员直播间 | 教师/助教/学员/会议主持人 | 围绕互动闭环完善学员直播间的入口、字段、状态、异常提示、处理进度和验收反馈 | 移动端采用顶部标题/状态区、内容卡片流和底部主按钮;平板端需要分栏布局和横屏适配。 | 查看、提交、保存、取消、确认、联系客服、配置供应商、创建直播 | 直播间名称、直播类型、供应商、开播时间、主讲教师、观看权限、录制状态、回放发布状态 | 网络异常、权限不足、提交失败、状态已变化 | 需分别标注小程序、App、H5、平板和桌面壳的适配差异。 建议 Figma Frame:LIVE-学员直播间;需补齐正常、空态、加载、无权限、处理中、成功和失败状态。 |
| PC Web/教师端/学员端/会议端 | 教师直播控制台 | 教师/助教/学员/会议主持人 | 围绕互动闭环完善教师直播控制台的入口、字段、状态、异常提示、处理进度和验收反馈 | 移动端采用顶部标题/状态区、内容卡片流和底部主按钮;平板端需要分栏布局和横屏适配。 | 查看、提交、保存、取消、确认、联系客服、配置供应商、创建直播 | 直播间名称、直播类型、供应商、开播时间、主讲教师、观看权限、录制状态、回放发布状态 | 网络异常、权限不足、提交失败、状态已变化 | 需分别标注小程序、App、H5、平板和桌面壳的适配差异。 建议 Figma Frame:LIVE-教师直播控制台;需补齐正常、空态、加载、无权限、处理中、成功和失败状态。 |
| PC Web/教师端/学员端/会议端 | 回放管理 | 教师/助教/学员/会议主持人 | 围绕回放归档完善回放管理的入口、字段、状态、异常提示、处理进度和验收反馈 | 移动端采用顶部标题/状态区、内容卡片流和底部主按钮;平板端需要分栏布局和横屏适配。 | 查看、提交、保存、取消、确认、联系客服、配置供应商、创建直播 | 直播间名称、直播类型、供应商、开播时间、主讲教师、观看权限、录制状态、回放发布状态 | 网络异常、权限不足、提交失败、状态已变化 | 需分别标注小程序、App、H5、平板和桌面壳的适配差异。 建议 Figma Frame:LIVE-回放管理;需补齐正常、空态、加载、无权限、处理中、成功和失败状态。 |
| PC Web/教师端/学员端/会议端 | 补传页 | 教师/助教/学员/会议主持人 | 围绕回放归档完善补传页的入口、字段、状态、异常提示、处理进度和验收反馈 | 移动端采用顶部标题/状态区、内容卡片流和底部主按钮;平板端需要分栏布局和横屏适配。 | 查看、提交、保存、取消、确认、联系客服、配置供应商、创建直播 | 直播间名称、直播类型、供应商、开播时间、主讲教师、观看权限、录制状态、回放发布状态 | 网络异常、权限不足、提交失败、状态已变化 | 需分别标注小程序、App、H5、平板和桌面壳的适配差异。 建议 Figma Frame:LIVE-补传页;需补齐正常、空态、加载、无权限、处理中、成功和失败状态。 |
| PC Web/教师端/学员端/会议端 | 知识库归档 | 教师/助教/学员/会议主持人 | 围绕回放归档完善知识库归档的入口、字段、状态、异常提示、处理进度和验收反馈 | 培训页以分类导航、学习任务、资料预览和考试记录组合,题库版本页展示试卷快照和历史答题追溯。 | 配置分类、上传素材、发布培训、开始学习、开始考试、安排补考、查看档案、查看版本 | 课程分类、资料类型、适用岗位、学习进度、考试规则、题库版本、补考次数、历史答题、直播间名称、直播类型 | 分类权限不足、素材转码失败、培训逾期、考试超时、试卷快照损坏、历史答题缺失 | 需覆盖员工学习、培训计划、资料类型、考试补考、会议直播归档、题库版本和历史成绩复核。 建议 Figma Frame:LIVE-知识库归档;需补齐正常、空态、加载、无权限、处理中、成功和失败状态。 |
09 · 页面到接口的前后端闭环矩阵
把原型页面、后端接口、数据对象、状态和消息审批绑定到一起
设计原型时,每个关键页面必须能解释前端展示什么、后端提交什么、状态怎么变、异常怎么处理。| 原型页面 | 关键接口 | 关联对象 | 状态流 | 审批/权限触发 | 消息/待办触达 | 原型验收要求 |
|---|---|---|---|---|---|---|
| 直播供应商配置 | POST/GET /api/v1/live/providers | LiveProviderConfig | 草稿 -> 待处理 -> 处理中 -> 已完成 -> 异常待处理 -> 已关闭 | 直播供应商配置审批:新增或变更直播供应商密钥、回调地址、录制存储、转码模板和域名配置 | 处理完成、失败和异常转人工均需触发站内通知或待办 | 原型需展示入口、主按钮、禁用原因、提交中、成功、失败、无权限、空状态和异常转人工入口 |
| 直播课管理 | POST/GET /api/v1/live/rooms | LiveRoom | 草稿 -> 待处理 -> 处理中 -> 已完成 -> 异常待处理 -> 已关闭 | 无审批时仍需写操作审计,敏感操作按安全中心规则触发审批 | 直播开课提醒 -> 学员/家长/教师/助教 | 原型需展示入口、主按钮、禁用原因、提交中、成功、失败、无权限、空状态和异常转人工入口 |
| 教师直播授课台 | POST /api/v1/live/rooms/{id}/join | LiveSession/LiveAttendance | 草稿 -> 待处理 -> 处理中 -> 已完成 -> 异常待处理 -> 已关闭 | 无审批时仍需写操作审计,敏感操作按安全中心规则触发审批 | 处理完成、失败和异常转人工均需触发站内通知或待办 | 原型需展示入口、主按钮、禁用原因、提交中、成功、失败、无权限、空状态和异常转人工入口 |
| 学员直播课堂 | POST/GET /api/v1/live/rooms/{id}/mic-requests | LiveInteraction | 草稿 -> 待处理 -> 处理中 -> 已完成 -> 异常待处理 -> 已关闭 | 无审批时仍需写操作审计,敏感操作按安全中心规则触发审批 | 处理完成、失败和异常转人工均需触发站内通知或待办 | 原型需展示入口、主按钮、禁用原因、提交中、成功、失败、无权限、空状态和异常转人工入口 |
| 招生公开课直播 | POST /api/v1/live/mic-requests/{requestId}/handle | LiveMicRequest | 草稿 -> 待处理 -> 处理中 -> 已完成 -> 异常待处理 -> 已关闭 | 无审批时仍需写操作审计,敏感操作按安全中心规则触发审批 | 处理完成、失败和异常转人工均需触发站内通知或待办 | 原型需展示入口、主按钮、禁用原因、提交中、成功、失败、无权限、空状态和异常转人工入口 |
| 集团会议直播 | POST /api/v1/live/mic-seats/{seatId}/control | LiveMicSeat | 草稿 -> 待发布 -> 已通知 -> 直播中 -> 纪要整理中 -> 待任务确认 -> 已归档 | 集团会议直播发布审批:会议范围包含全集团、跨区域或敏感经营主题 | 集团会议直播通知 -> 员工/主管/总部 | 原型需展示入口、主按钮、禁用原因、提交中、成功、失败、无权限、空状态和异常转人工入口 |
| 直播监控大屏 | POST /api/v1/live/callbacks/provider | LiveRecording | 草稿 -> 待处理 -> 处理中 -> 已完成 -> 异常待处理 -> 已关闭 | 无审批时仍需写操作审计,敏感操作按安全中心规则触发审批 | 处理完成、失败和异常转人工均需触发站内通知或待办 | 原型需展示入口、主按钮、禁用原因、提交中、成功、失败、无权限、空状态和异常转人工入口 |
| 直播回放与数据分析 | POST /api/v1/live/recordings/publish | ReplayPublishPolicy/ReplayAccess | 草稿 -> 待处理 -> 处理中 -> 已完成 -> 异常待处理 -> 已关闭 | 无审批时仍需写操作审计,敏感操作按安全中心规则触发审批 | 处理完成、失败和异常转人工均需触发站内通知或待办 | 原型需展示入口、主按钮、禁用原因、提交中、成功、失败、无权限、空状态和异常转人工入口 |
| 学员直播举手上麦 | POST /api/v1/live/replays/{id}/publish | PublicLiveConversion | 草稿 -> 待处理 -> 处理中 -> 已完成 -> 异常待处理 -> 已关闭 | 无审批时仍需写操作审计,敏感操作按安全中心规则触发审批 | 处理完成、失败和异常转人工均需触发站内通知或待办 | 原型需展示入口、主按钮、禁用原因、提交中、成功、失败、无权限、空状态和异常转人工入口 |
| 直播连麦队列管理 | POST /api/v1/live/replays/{id}/offline | LiveProviderConfig | 草稿 -> 待处理 -> 处理中 -> 已完成 -> 异常待处理 -> 已关闭 | 无审批时仍需写操作审计,敏感操作按安全中心规则触发审批 | 处理完成、失败和异常转人工均需触发站内通知或待办 | 原型需展示入口、主按钮、禁用原因、提交中、成功、失败、无权限、空状态和异常转人工入口 |
| 直播回放发布与下架 | POST /api/v1/live/public-classes/{id}/conversion-tasks | LiveRoom | 草稿 -> 待处理 -> 处理中 -> 已完成 -> 异常待处理 -> 已关闭 | 无审批时仍需写操作审计,敏感操作按安全中心规则触发审批 | 处理完成、失败和异常转人工均需触发站内通知或待办 | 原型需展示入口、主按钮、禁用原因、提交中、成功、失败、无权限、空状态和异常转人工入口 |
| 公开课二次转化 | POST/GET /api/v1/live/providers | LiveSession/LiveAttendance | 草稿 -> 待处理 -> 处理中 -> 已完成 -> 异常待处理 -> 已关闭 | 无审批时仍需写操作审计,敏感操作按安全中心规则触发审批 | 处理完成、失败和异常转人工均需触发站内通知或待办 | 原型需展示入口、主按钮、禁用原因、提交中、成功、失败、无权限、空状态和异常转人工入口 |
10 · 原型、UI、研发、测试交付补充
把关键闭环补强为下一阶段可执行任务
本章节为正式 PRD 的交付要求,面向原型图、UI、开发、联调和测试分工。| 能力域 | 功能补充要求 | 原型交付要求 | UI 交互要求 | 研发实现要求 | 测试验收要求 |
|---|---|---|---|---|---|
| 供应商配置 | 补齐供应商配置、启停、域名、回调密钥、录制存储位置和健康检查。 | 直播供应商配置、直播间创建 需要在原型中拆到列表、详情、表单、弹窗、空状态、失败态、无权限态和处理进度。 | UI 需清晰呈现状态标签、流程节点、主次按钮、危险操作确认、移动/平板/TV 适配和错误提示;PC 管理端遵循统一框架,仅输出信息架构和交互说明。 | 后端需提供接口幂等、权限校验、状态机、审计日志、消息/审批触发、异步补偿和跨模块数据一致性保障。 | 测试需覆盖主流程、异常流、权限流、重复提交、批量部分失败和数据一致性;后台启用哪家供应商,教学/活动/会议直播均使用同一套能力。 |
| 互动闭环 | 补齐教师端查看队列、同意、拒绝、邀请超时、静音、下麦、清空队列和座席释放。 | 学员直播间、教师直播控制台 需要在原型中拆到列表、详情、表单、弹窗、空状态、失败态、无权限态和处理进度。 | UI 需清晰呈现状态标签、流程节点、主次按钮、危险操作确认、移动/平板/TV 适配和错误提示;PC 管理端遵循统一框架,仅输出信息架构和交互说明。 | 后端需提供接口幂等、权限校验、状态机、审计日志、消息/审批触发、异步补偿和跨模块数据一致性保障。 | 测试需覆盖主流程、异常流、权限流、重复提交、批量部分失败和数据一致性;学员端每个连麦状态都能在教师端找到对应处理动作。 |
| 回放归档 | 补齐录制回调、转码失败、人工补传、发布范围、过期策略、学习记录和会议归档。 | 回放管理、补传页、知识库归档 需要在原型中拆到列表、详情、表单、弹窗、空状态、失败态、无权限态和处理进度。 | UI 需清晰呈现状态标签、流程节点、主次按钮、危险操作确认、移动/平板/TV 适配和错误提示;PC 管理端遵循统一框架,仅输出信息架构和交互说明。 | 后端需提供接口幂等、权限校验、状态机、审计日志、消息/审批触发、异步补偿和跨模块数据一致性保障。 | 测试需覆盖主流程、异常流、权限流、重复提交、批量部分失败和数据一致性;回放异常有补传入口,发布后学员/员工访问记录可追踪。 |
11 · 数据对象与字段字典
明确页面、接口、数据库共同使用的数据语言
字段涉及敏感、人脸、财务、绩效时,原型需体现脱敏、授权和审计。核心对象
| 对象 | 说明 |
|---|---|
| LiveProviderConfig | 直播供应商配置;落地表:live_provider_config |
| LiveRoom | 直播间;落地表:live_room |
| LiveSession/LiveAttendance | 直播观看、签到和时长;落地表:live_participant |
| LiveInteraction | 直播互动、答题和评论事件;落地表:live_interaction_event |
| LiveMicRequest | 举手上麦请求;落地表:live_mic_request |
| LiveMicSeat | 连麦座席管理;落地表:live_mic_seat |
| LiveRecording | 直播录制和回放文件;落地表:live_recording_file |
| ReplayPublishPolicy/ReplayAccess | 回放发布和访问策略;落地表:live_replay_policy |
| PublicLiveConversion | 公开课直播转化线索;落地表:live_public_conversion |
关联引用对象
| 对象 | 说明 |
|---|---|
| Organization | 集团、区域、校区、部门组织树;引用来源:FND / sys_organization |
| User/Employee | 统一登录账号;引用来源:FND / sys_user |
| Employee | 员工基础档案;引用来源:FND / sys_employee |
| Role | 角色定义;引用来源:FND / sys_role |
| ApprovalFlow | 审批流配置;引用来源:FND / sys_approval_flow |
| MessageTemplate | 消息模板与多端触达配置;引用来源:FND / sys_message_template |
| AuditLog | 全平台操作审计日志;引用来源:FND / sys_audit_log |
| IntegrationLog | 接口调用日志;引用来源:OPEN / int_integration_log |
| SensitiveFieldPolicy | 敏感字段脱敏策略;引用来源:SEC / sec_sensitive_field_policy |
| Schedule/Lesson | 课次和排课;引用来源:EDU / edu_lesson |
| Class | 班级;引用来源:EDU / edu_class |
| Student | 学员基础档案;引用来源:CRM / stu_student |
| MarketingCampaign | 营销活动主数据;引用来源:MKT / mkt_campaign |
| Lead | 销售线索主表;引用来源:CRM / crm_lead |
| KnowledgeMaterial | 员工培训资料和素材库;引用来源:KBT / kb_material |
| LearningResource | 教研学习资源;引用来源:RES / res_learning_resource |
| MetricSnapshot | 指标快照;引用来源:BI / bi_metric_snapshot |
完整字段字典
| 对象 | 字段 | 类型 | 必填 | 规则 | 数据级别 |
|---|---|---|---|---|---|
| LiveProviderConfig | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| LiveProviderConfig | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| LiveProviderConfig | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| LiveProviderConfig | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| LiveProviderConfig | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| LiveProviderConfig | created_at | DATETIME | 是 | 创建时间 | 普通 |
| LiveProviderConfig | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| LiveProviderConfig | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| LiveProviderConfig | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| LiveProviderConfig | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| LiveProviderConfig | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| LiveProviderConfig | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| LiveProviderConfig | provider_code | VARCHAR(32) | 是 | ALIYUN/TENCENT/QINIU | 普通 |
| LiveProviderConfig | provider_name | VARCHAR(128) | 是 | 供应商名称 | 普通 |
| LiveProviderConfig | app_id | VARCHAR(128) | 是 | 供应商应用 ID | 普通 |
| LiveProviderConfig | secret_ref | VARCHAR(128) | 是 | 密钥引用,密钥中心加密存储 | 高敏 |
| LiveProviderConfig | domain_config | JSON | 是 | 推流、播流、回调域名配置 | 普通 |
| LiveProviderConfig | storage_config | JSON | 是 | 录制存储位置配置 | 普通 |
| LiveProviderConfig | enabled | TINYINT | 是 | 是否为当前启用供应商 | 普通 |
| LiveRoom | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| LiveRoom | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| LiveRoom | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| LiveRoom | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| LiveRoom | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| LiveRoom | created_at | DATETIME | 是 | 创建时间 | 普通 |
| LiveRoom | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| LiveRoom | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| LiveRoom | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| LiveRoom | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| LiveRoom | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| LiveRoom | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| LiveRoom | room_no | VARCHAR(64) | 是 | 直播间编号,唯一 | 普通 |
| LiveRoom | live_type | VARCHAR(32) | 是 | 教学直播/活动直播/集团会议直播 | 普通 |
| LiveRoom | provider_code | VARCHAR(32) | 是 | 启用供应商 | 普通 |
| LiveRoom | biz_type | VARCHAR(64) | 是 | 绑定业务类型 | 普通 |
| LiveRoom | biz_id | BIGINT | 是 | 绑定业务 ID | 普通 |
| LiveRoom | start_at | DATETIME | 否 | 计划开始时间 | 普通 |
| LiveRoom | end_at | DATETIME | 否 | 计划结束时间 | 普通 |
| LiveRoom | room_status | VARCHAR(32) | 是 | 待开播/直播中/已结束/异常 | 普通 |
| LiveSession/LiveAttendance | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| LiveSession/LiveAttendance | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| LiveSession/LiveAttendance | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| LiveSession/LiveAttendance | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| LiveSession/LiveAttendance | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| LiveSession/LiveAttendance | created_at | DATETIME | 是 | 创建时间 | 普通 |
| LiveSession/LiveAttendance | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| LiveSession/LiveAttendance | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| LiveSession/LiveAttendance | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| LiveSession/LiveAttendance | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| LiveSession/LiveAttendance | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| LiveSession/LiveAttendance | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| LiveSession/LiveAttendance | live_room_id | BIGINT | 是 | 直播间 ID | 普通 |
| LiveSession/LiveAttendance | user_id | BIGINT | 是 | 用户 ID | 普通 |
| LiveSession/LiveAttendance | participant_type | VARCHAR(32) | 是 | 学员/教师/员工/家长/访客 | 普通 |
| LiveSession/LiveAttendance | join_status | VARCHAR(32) | 是 | 未进入/观看中/已离开/掉线 | 普通 |
| LiveSession/LiveAttendance | watch_duration | INT | 是 | 观看时长秒数 | 普通 |
| LiveSession/LiveAttendance | sign_status | VARCHAR(32) | 否 | 签到状态 | 普通 |
| LiveSession/LiveAttendance | last_heartbeat_at | DATETIME | 否 | 最近心跳 | 普通 |
| LiveInteraction | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| LiveInteraction | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| LiveInteraction | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| LiveInteraction | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| LiveInteraction | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| LiveInteraction | created_at | DATETIME | 是 | 创建时间 | 普通 |
| LiveInteraction | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| LiveInteraction | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| LiveInteraction | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| LiveInteraction | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| LiveInteraction | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| LiveInteraction | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| LiveInteraction | live_room_id | BIGINT | 是 | 直播间 ID | 普通 |
| LiveInteraction | user_id | BIGINT | 否 | 用户 ID | 普通 |
| LiveInteraction | interaction_type | VARCHAR(32) | 是 | 评论/答题/点赞/签到/投票 | 普通 |
| LiveInteraction | event_payload | JSON | 是 | 互动数据 | 普通 |
| LiveInteraction | client_event_id | VARCHAR(128) | 是 | 客户端事件 ID,用于幂等 | 普通 |
| LiveInteraction | event_time | DATETIME | 是 | 事件时间 | 普通 |
| LiveMicRequest | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| LiveMicRequest | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| LiveMicRequest | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| LiveMicRequest | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| LiveMicRequest | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| LiveMicRequest | created_at | DATETIME | 是 | 创建时间 | 普通 |
| LiveMicRequest | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| LiveMicRequest | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| LiveMicRequest | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| LiveMicRequest | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| LiveMicRequest | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| LiveMicRequest | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| LiveMicRequest | live_room_id | BIGINT | 是 | 直播间 ID | 普通 |
| LiveMicRequest | requester_id | BIGINT | 是 | 申请人 ID | 普通 |
| LiveMicRequest | request_status | VARCHAR(32) | 是 | 排队中/已邀请/已上麦/已拒绝/已超时/已取消 | 普通 |
| LiveMicRequest | queue_no | INT | 否 | 队列序号 | 普通 |
| LiveMicRequest | seat_no | INT | 否 | 座席号 | 普通 |
| LiveMicRequest | invite_expire_at | DATETIME | 否 | 邀请过期时间 | 普通 |
| LiveMicRequest | device_check_result | JSON | 否 | 设备检测结果 | 普通 |
| LiveMicSeat | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| LiveMicSeat | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| LiveMicSeat | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| LiveMicSeat | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| LiveMicSeat | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| LiveMicSeat | created_at | DATETIME | 是 | 创建时间 | 普通 |
| LiveMicSeat | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| LiveMicSeat | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| LiveMicSeat | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| LiveMicSeat | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| LiveMicSeat | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| LiveMicSeat | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| LiveMicSeat | live_room_id | BIGINT | 是 | 直播间 ID | 普通 |
| LiveMicSeat | seat_no | INT | 是 | 座席号 | 普通 |
| LiveMicSeat | participant_id | BIGINT | 否 | 上麦参与人 ID | 普通 |
| LiveMicSeat | seat_status | VARCHAR(32) | 是 | 空闲/邀请中/使用中/异常 | 普通 |
| LiveMicSeat | muted | TINYINT | 是 | 是否静音 | 普通 |
| LiveMicSeat | provider_session_id | VARCHAR(128) | 否 | 供应商会话 ID | 普通 |
| LiveRecording | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| LiveRecording | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| LiveRecording | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| LiveRecording | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| LiveRecording | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| LiveRecording | created_at | DATETIME | 是 | 创建时间 | 普通 |
| LiveRecording | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| LiveRecording | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| LiveRecording | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| LiveRecording | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| LiveRecording | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| LiveRecording | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| LiveRecording | live_room_id | BIGINT | 是 | 直播间 ID | 普通 |
| LiveRecording | provider_record_id | VARCHAR(128) | 否 | 供应商录制 ID | 普通 |
| LiveRecording | recording_status | VARCHAR(32) | 是 | 录制中/转码中/可播放/失败/已过期 | 普通 |
| LiveRecording | replay_url | VARCHAR(512) | 否 | 回放地址 | 普通 |
| LiveRecording | storage_location | VARCHAR(512) | 否 | 供应商 OSS/COS/Kodo 存储位置 | 普通 |
| LiveRecording | duration | INT | 否 | 时长秒数 | 普通 |
| LiveRecording | retention_until | DATETIME | 否 | 保留到期时间 | 普通 |
| ReplayPublishPolicy/ReplayAccess | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| ReplayPublishPolicy/ReplayAccess | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| ReplayPublishPolicy/ReplayAccess | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| ReplayPublishPolicy/ReplayAccess | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| ReplayPublishPolicy/ReplayAccess | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| ReplayPublishPolicy/ReplayAccess | created_at | DATETIME | 是 | 创建时间 | 普通 |
| ReplayPublishPolicy/ReplayAccess | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| ReplayPublishPolicy/ReplayAccess | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| ReplayPublishPolicy/ReplayAccess | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| ReplayPublishPolicy/ReplayAccess | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| ReplayPublishPolicy/ReplayAccess | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| ReplayPublishPolicy/ReplayAccess | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| ReplayPublishPolicy/ReplayAccess | policy_no | VARCHAR(64) | 是 | 策略编号,唯一 | 普通 |
| ReplayPublishPolicy/ReplayAccess | live_room_id | BIGINT | 是 | 直播间 ID | 普通 |
| ReplayPublishPolicy/ReplayAccess | publish_scope | JSON | 是 | 可见范围 | 普通 |
| ReplayPublishPolicy/ReplayAccess | access_rule | JSON | 是 | 有效期、次数、身份限制 | 普通 |
| ReplayPublishPolicy/ReplayAccess | publish_status | VARCHAR(32) | 是 | 未发布/已发布/已下线 | 普通 |
| PublicLiveConversion | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| PublicLiveConversion | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| PublicLiveConversion | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| PublicLiveConversion | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| PublicLiveConversion | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| PublicLiveConversion | created_at | DATETIME | 是 | 创建时间 | 普通 |
| PublicLiveConversion | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| PublicLiveConversion | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| PublicLiveConversion | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| PublicLiveConversion | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| PublicLiveConversion | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| PublicLiveConversion | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| PublicLiveConversion | conversion_no | VARCHAR(64) | 是 | 转化编号,唯一 | 普通 |
| PublicLiveConversion | live_room_id | BIGINT | 是 | 直播间 ID | 普通 |
| PublicLiveConversion | visitor_id | VARCHAR(128) | 否 | 访客 ID | 普通 |
| PublicLiveConversion | lead_id | BIGINT | 否 | 生成线索 ID | 普通 |
| PublicLiveConversion | conversion_stage | VARCHAR(32) | 是 | 观看/留资/邀约/转化 | 普通 |
| PublicLiveConversion | conversion_payload | JSON | 否 | 转化明细 | 普通 |
引用对象字段字典
| 引用表 | 对象 | 字段 | 类型 | 必填 | 规则 | 数据级别 |
|---|---|---|---|---|---|---|
| sys_organization | Organization | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| sys_organization | Organization | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| sys_organization | Organization | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| sys_organization | Organization | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| sys_organization | Organization | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| sys_organization | Organization | created_at | DATETIME | 是 | 创建时间 | 普通 |
| sys_organization | Organization | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| sys_organization | Organization | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| sys_organization | Organization | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| sys_organization | Organization | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| sys_organization | Organization | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| sys_organization | Organization | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| sys_organization | Organization | org_code | VARCHAR(64) | 是 | 组织编码,租户内唯一 | 普通 |
| sys_organization | Organization | org_name | VARCHAR(128) | 是 | 组织名称 | 普通 |
| sys_organization | Organization | org_type | VARCHAR(32) | 是 | 集团/区域/校区/部门/法人主体 | 普通 |
| sys_organization | Organization | parent_id | BIGINT | 否 | 上级组织 ID,根节点为空 | 普通 |
| sys_organization | Organization | sort_no | INT | 否 | 同级排序 | 普通 |
| sys_organization | Organization | enabled | TINYINT | 是 | 是否启用 | 普通 |
| sys_user | User/Employee | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| sys_user | User/Employee | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| sys_user | User/Employee | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| sys_user | User/Employee | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| sys_user | User/Employee | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| sys_user | User/Employee | created_at | DATETIME | 是 | 创建时间 | 普通 |
| sys_user | User/Employee | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| sys_user | User/Employee | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| sys_user | User/Employee | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| sys_user | User/Employee | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| sys_user | User/Employee | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| sys_user | User/Employee | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| sys_user | User/Employee | user_no | VARCHAR(64) | 是 | 账号编号,唯一 | 普通 |
| sys_user | User/Employee | login_name | VARCHAR(64) | 是 | 登录名,唯一 | 普通 |
| sys_user | User/Employee | mobile | VARCHAR(32) | 否 | 手机号,敏感脱敏展示 | 敏感 |
| sys_user | User/Employee | password_hash | VARCHAR(255) | 否 | 密码哈希,禁止前端返回 | 高敏 |
| sys_user | User/Employee | user_type | VARCHAR(32) | 是 | 员工/学员/家长/外部账号 | 普通 |
| sys_user | User/Employee | login_status | VARCHAR(32) | 是 | 正常/锁定/停用/待激活 | 普通 |
| sys_employee | Employee | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| sys_employee | Employee | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| sys_employee | Employee | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| sys_employee | Employee | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| sys_employee | Employee | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| sys_employee | Employee | created_at | DATETIME | 是 | 创建时间 | 普通 |
| sys_employee | Employee | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| sys_employee | Employee | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| sys_employee | Employee | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| sys_employee | Employee | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| sys_employee | Employee | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| sys_employee | Employee | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| sys_employee | Employee | employee_no | VARCHAR(64) | 是 | 工号,唯一 | 普通 |
| sys_employee | Employee | user_id | BIGINT | 否 | 关联账号 ID | 普通 |
| sys_employee | Employee | employee_name | VARCHAR(64) | 是 | 员工姓名 | 普通 |
| sys_employee | Employee | primary_campus_id | BIGINT | 否 | 主校区 ID | 普通 |
| sys_employee | Employee | job_title | VARCHAR(64) | 否 | 岗位名称 | 普通 |
| sys_employee | Employee | hire_status | VARCHAR(32) | 是 | 在职/试用/离职/停用 | 普通 |
| sys_role | Role | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| sys_role | Role | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| sys_role | Role | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| sys_role | Role | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| sys_role | Role | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| sys_role | Role | created_at | DATETIME | 是 | 创建时间 | 普通 |
| sys_role | Role | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| sys_role | Role | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| sys_role | Role | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| sys_role | Role | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| sys_role | Role | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| sys_role | Role | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| sys_role | Role | role_code | VARCHAR(64) | 是 | 角色编码,唯一 | 普通 |
| sys_role | Role | role_name | VARCHAR(128) | 是 | 角色名称 | 普通 |
| sys_role | Role | role_level | VARCHAR(32) | 是 | 总部/区域/校区/个人 | 普通 |
| sys_role | Role | data_scope_type | VARCHAR(32) | 是 | 数据范围类型 | 普通 |
| sys_role | Role | enabled | TINYINT | 是 | 是否启用 | 普通 |
| sys_approval_flow | ApprovalFlow | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| sys_approval_flow | ApprovalFlow | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| sys_approval_flow | ApprovalFlow | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| sys_approval_flow | ApprovalFlow | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| sys_approval_flow | ApprovalFlow | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| sys_approval_flow | ApprovalFlow | created_at | DATETIME | 是 | 创建时间 | 普通 |
| sys_approval_flow | ApprovalFlow | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| sys_approval_flow | ApprovalFlow | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| sys_approval_flow | ApprovalFlow | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| sys_approval_flow | ApprovalFlow | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| sys_approval_flow | ApprovalFlow | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| sys_approval_flow | ApprovalFlow | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| sys_approval_flow | ApprovalFlow | flow_code | VARCHAR(64) | 是 | 审批流编码,唯一 | 普通 |
| sys_approval_flow | ApprovalFlow | biz_type | VARCHAR(64) | 是 | 业务类型 | 普通 |
| sys_approval_flow | ApprovalFlow | flow_name | VARCHAR(128) | 是 | 审批流名称 | 普通 |
| sys_approval_flow | ApprovalFlow | condition_json | JSON | 否 | 触发条件 | 普通 |
| sys_approval_flow | ApprovalFlow | node_json | JSON | 是 | 节点、审批人和超时规则 | 普通 |
| sys_approval_flow | ApprovalFlow | version_no | INT | 是 | 审批流版本号 | 普通 |
| sys_approval_flow | ApprovalFlow | enabled | TINYINT | 是 | 是否启用 | 普通 |
| sys_message_template | MessageTemplate | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| sys_message_template | MessageTemplate | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| sys_message_template | MessageTemplate | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| sys_message_template | MessageTemplate | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| sys_message_template | MessageTemplate | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| sys_message_template | MessageTemplate | created_at | DATETIME | 是 | 创建时间 | 普通 |
| sys_message_template | MessageTemplate | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| sys_message_template | MessageTemplate | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| sys_message_template | MessageTemplate | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| sys_message_template | MessageTemplate | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| sys_message_template | MessageTemplate | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| sys_message_template | MessageTemplate | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| sys_message_template | MessageTemplate | template_code | VARCHAR(64) | 是 | 模板编码,唯一 | 普通 |
| sys_message_template | MessageTemplate | template_name | VARCHAR(128) | 是 | 模板名称 | 普通 |
| sys_message_template | MessageTemplate | channel | VARCHAR(32) | 是 | 站内信/短信/微信小程序/企微/Push | 普通 |
| sys_message_template | MessageTemplate | receiver_rule | JSON | 是 | 接收人规则 | 普通 |
| sys_message_template | MessageTemplate | content_template | TEXT | 是 | 模板内容 | 普通 |
| sys_message_template | MessageTemplate | enabled | TINYINT | 是 | 是否启用 | 普通 |
| sys_audit_log | AuditLog | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| sys_audit_log | AuditLog | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| sys_audit_log | AuditLog | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| sys_audit_log | AuditLog | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| sys_audit_log | AuditLog | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| sys_audit_log | AuditLog | created_at | DATETIME | 是 | 创建时间 | 普通 |
| sys_audit_log | AuditLog | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| sys_audit_log | AuditLog | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| sys_audit_log | AuditLog | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| sys_audit_log | AuditLog | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| sys_audit_log | AuditLog | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| sys_audit_log | AuditLog | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| sys_audit_log | AuditLog | operator_id | BIGINT | 是 | 操作人 ID | 普通 |
| sys_audit_log | AuditLog | biz_type | VARCHAR(64) | 是 | 业务类型 | 普通 |
| sys_audit_log | AuditLog | biz_id | BIGINT | 否 | 业务主键 ID | 普通 |
| sys_audit_log | AuditLog | action_code | VARCHAR(64) | 是 | 操作编码 | 普通 |
| sys_audit_log | AuditLog | before_snapshot | JSON | 否 | 变更前快照 | 普通 |
| sys_audit_log | AuditLog | after_snapshot | JSON | 否 | 变更后快照 | 普通 |
| sys_audit_log | AuditLog | ip_address | VARCHAR(64) | 否 | 操作 IP | 普通 |
| int_integration_log | IntegrationLog | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| int_integration_log | IntegrationLog | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| int_integration_log | IntegrationLog | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| int_integration_log | IntegrationLog | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| int_integration_log | IntegrationLog | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| int_integration_log | IntegrationLog | created_at | DATETIME | 是 | 创建时间 | 普通 |
| int_integration_log | IntegrationLog | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| int_integration_log | IntegrationLog | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| int_integration_log | IntegrationLog | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| int_integration_log | IntegrationLog | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| int_integration_log | IntegrationLog | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| int_integration_log | IntegrationLog | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| int_integration_log | IntegrationLog | request_id | VARCHAR(128) | 是 | 请求 ID,幂等键 | 普通 |
| int_integration_log | IntegrationLog | system_code | VARCHAR(64) | 是 | 外部系统编码 | 普通 |
| int_integration_log | IntegrationLog | api_path | VARCHAR(512) | 是 | 接口路径 | 普通 |
| int_integration_log | IntegrationLog | biz_type | VARCHAR(64) | 否 | 业务类型 | 普通 |
| int_integration_log | IntegrationLog | biz_id | BIGINT | 否 | 业务 ID | 普通 |
| int_integration_log | IntegrationLog | request_payload | JSON | 否 | 请求报文,敏感字段脱敏 | 敏感 |
| int_integration_log | IntegrationLog | response_payload | JSON | 否 | 响应报文 | 普通 |
| int_integration_log | IntegrationLog | call_status | VARCHAR(32) | 是 | 成功/失败/超时/重试中 | 普通 |
| sec_sensitive_field_policy | SensitiveFieldPolicy | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| sec_sensitive_field_policy | SensitiveFieldPolicy | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| sec_sensitive_field_policy | SensitiveFieldPolicy | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| sec_sensitive_field_policy | SensitiveFieldPolicy | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| sec_sensitive_field_policy | SensitiveFieldPolicy | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| sec_sensitive_field_policy | SensitiveFieldPolicy | created_at | DATETIME | 是 | 创建时间 | 普通 |
| sec_sensitive_field_policy | SensitiveFieldPolicy | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| sec_sensitive_field_policy | SensitiveFieldPolicy | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| sec_sensitive_field_policy | SensitiveFieldPolicy | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| sec_sensitive_field_policy | SensitiveFieldPolicy | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| sec_sensitive_field_policy | SensitiveFieldPolicy | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| sec_sensitive_field_policy | SensitiveFieldPolicy | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| sec_sensitive_field_policy | SensitiveFieldPolicy | field_code | VARCHAR(128) | 是 | 字段编码,唯一 | 普通 |
| sec_sensitive_field_policy | SensitiveFieldPolicy | biz_type | VARCHAR(64) | 是 | 业务类型 | 普通 |
| sec_sensitive_field_policy | SensitiveFieldPolicy | mask_rule | VARCHAR(64) | 是 | 脱敏规则 | 普通 |
| sec_sensitive_field_policy | SensitiveFieldPolicy | view_requires_approval | TINYINT | 是 | 明文查看是否需审批 | 普通 |
| sec_sensitive_field_policy | SensitiveFieldPolicy | watermark_required | TINYINT | 是 | 是否加水印 | 普通 |
| edu_lesson | Schedule/Lesson | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| edu_lesson | Schedule/Lesson | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| edu_lesson | Schedule/Lesson | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| edu_lesson | Schedule/Lesson | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| edu_lesson | Schedule/Lesson | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| edu_lesson | Schedule/Lesson | created_at | DATETIME | 是 | 创建时间 | 普通 |
| edu_lesson | Schedule/Lesson | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| edu_lesson | Schedule/Lesson | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| edu_lesson | Schedule/Lesson | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| edu_lesson | Schedule/Lesson | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| edu_lesson | Schedule/Lesson | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| edu_lesson | Schedule/Lesson | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| edu_lesson | Schedule/Lesson | lesson_no | VARCHAR(64) | 是 | 课次编号,唯一 | 普通 |
| edu_lesson | Schedule/Lesson | class_id | BIGINT | 是 | 班级 ID | 普通 |
| edu_lesson | Schedule/Lesson | teacher_id | BIGINT | 是 | 授课教师 ID | 普通 |
| edu_lesson | Schedule/Lesson | classroom_id | BIGINT | 否 | 教室 ID | 普通 |
| edu_lesson | Schedule/Lesson | start_at | DATETIME | 是 | 上课开始时间 | 普通 |
| edu_lesson | Schedule/Lesson | end_at | DATETIME | 是 | 上课结束时间 | 普通 |
| edu_lesson | Schedule/Lesson | lesson_status | VARCHAR(32) | 是 | 待上课/上课中/已下课/已取消/需补课 | 普通 |
| edu_class | Class | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| edu_class | Class | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| edu_class | Class | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| edu_class | Class | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| edu_class | Class | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| edu_class | Class | created_at | DATETIME | 是 | 创建时间 | 普通 |
| edu_class | Class | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| edu_class | Class | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| edu_class | Class | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| edu_class | Class | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| edu_class | Class | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| edu_class | Class | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| edu_class | Class | class_no | VARCHAR(64) | 是 | 班级编号,唯一 | 普通 |
| edu_class | Class | course_id | BIGINT | 是 | 课程 ID | 普通 |
| edu_class | Class | teacher_id | BIGINT | 否 | 主讲教师 ID | 普通 |
| edu_class | Class | classroom_id | BIGINT | 否 | 默认教室 ID | 普通 |
| edu_class | Class | capacity | INT | 是 | 班级容量 | 普通 |
| edu_class | Class | class_status | VARCHAR(32) | 是 | 筹备中/开班/结课/停课 | 普通 |
| stu_student | Student | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| stu_student | Student | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| stu_student | Student | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| stu_student | Student | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| stu_student | Student | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| stu_student | Student | created_at | DATETIME | 是 | 创建时间 | 普通 |
| stu_student | Student | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| stu_student | Student | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| stu_student | Student | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| stu_student | Student | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| stu_student | Student | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| stu_student | Student | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| stu_student | Student | student_no | VARCHAR(64) | 是 | 学员编号,唯一 | 普通 |
| stu_student | Student | family_id | BIGINT | 否 | 家庭 ID | 普通 |
| stu_student | Student | student_name | VARCHAR(64) | 是 | 学员姓名 | 普通 |
| stu_student | Student | gender | VARCHAR(16) | 否 | 性别 | 普通 |
| stu_student | Student | birthday | DATE | 否 | 出生日期 | 普通 |
| stu_student | Student | grade | VARCHAR(32) | 否 | 年级 | 普通 |
| stu_student | Student | school_name | VARCHAR(128) | 否 | 学校名称 | 普通 |
| stu_student | Student | biz_status | VARCHAR(32) | 是 | 业务状态,取值来自状态机字典 | 普通 |
| stu_student | Student | remark | VARCHAR(512) | 否 | 业务备注,敏感内容按权限脱敏 | 普通 |
| mkt_campaign | MarketingCampaign | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| mkt_campaign | MarketingCampaign | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| mkt_campaign | MarketingCampaign | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| mkt_campaign | MarketingCampaign | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| mkt_campaign | MarketingCampaign | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| mkt_campaign | MarketingCampaign | created_at | DATETIME | 是 | 创建时间 | 普通 |
| mkt_campaign | MarketingCampaign | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| mkt_campaign | MarketingCampaign | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| mkt_campaign | MarketingCampaign | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| mkt_campaign | MarketingCampaign | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| mkt_campaign | MarketingCampaign | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| mkt_campaign | MarketingCampaign | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| mkt_campaign | MarketingCampaign | campaign_code | VARCHAR(64) | 是 | 活动编码,唯一 | 普通 |
| mkt_campaign | MarketingCampaign | campaign_name | VARCHAR(128) | 是 | 活动名称 | 普通 |
| mkt_campaign | MarketingCampaign | channel_id | BIGINT | 否 | 所属渠道 | 普通 |
| mkt_campaign | MarketingCampaign | campus_scope | JSON | 是 | 适用校区范围 | 普通 |
| mkt_campaign | MarketingCampaign | start_at | DATETIME | 是 | 开始时间 | 普通 |
| mkt_campaign | MarketingCampaign | end_at | DATETIME | 是 | 结束时间 | 普通 |
| mkt_campaign | MarketingCampaign | biz_status | VARCHAR(32) | 是 | 业务状态,取值来自状态机字典 | 普通 |
| mkt_campaign | MarketingCampaign | remark | VARCHAR(512) | 否 | 业务备注,敏感内容按权限脱敏 | 普通 |
| crm_lead | Lead | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| crm_lead | Lead | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| crm_lead | Lead | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| crm_lead | Lead | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| crm_lead | Lead | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| crm_lead | Lead | created_at | DATETIME | 是 | 创建时间 | 普通 |
| crm_lead | Lead | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| crm_lead | Lead | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| crm_lead | Lead | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| crm_lead | Lead | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| crm_lead | Lead | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| crm_lead | Lead | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| crm_lead | Lead | lead_no | VARCHAR(64) | 是 | 线索编号,唯一 | 普通 |
| crm_lead | Lead | source_channel | VARCHAR(64) | 是 | 来源渠道 | 普通 |
| crm_lead | Lead | campaign_id | BIGINT | 否 | 来源活动 ID | 普通 |
| crm_lead | Lead | guardian_mobile | VARCHAR(32) | 是 | 家长手机号,敏感 | 敏感 |
| crm_lead | Lead | student_name | VARCHAR(64) | 否 | 学员姓名 | 普通 |
| crm_lead | Lead | intent_course_id | BIGINT | 否 | 意向课程 | 普通 |
| crm_lead | Lead | owner_id | BIGINT | 否 | 当前归属销售/顾问 | 普通 |
| crm_lead | Lead | protect_until | DATETIME | 否 | 保护期截止时间 | 普通 |
| crm_lead | Lead | duplicate_status | VARCHAR(32) | 是 | 未查重/疑似重复/已合并/已忽略 | 普通 |
| crm_lead | Lead | biz_status | VARCHAR(32) | 是 | 业务状态,取值来自状态机字典 | 普通 |
| crm_lead | Lead | remark | VARCHAR(512) | 否 | 业务备注,敏感内容按权限脱敏 | 普通 |
| kb_material | KnowledgeMaterial | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| kb_material | KnowledgeMaterial | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| kb_material | KnowledgeMaterial | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| kb_material | KnowledgeMaterial | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| kb_material | KnowledgeMaterial | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| kb_material | KnowledgeMaterial | created_at | DATETIME | 是 | 创建时间 | 普通 |
| kb_material | KnowledgeMaterial | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| kb_material | KnowledgeMaterial | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| kb_material | KnowledgeMaterial | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| kb_material | KnowledgeMaterial | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| kb_material | KnowledgeMaterial | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| kb_material | KnowledgeMaterial | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| kb_material | KnowledgeMaterial | material_no | VARCHAR(64) | 是 | 资料编号,唯一 | 普通 |
| kb_material | KnowledgeMaterial | category_id | BIGINT | 是 | 分类 ID | 普通 |
| kb_material | KnowledgeMaterial | material_name | VARCHAR(128) | 是 | 资料名称 | 普通 |
| kb_material | KnowledgeMaterial | material_type | VARCHAR(32) | 是 | 文档/视频/音频/课件/案例 | 普通 |
| kb_material | KnowledgeMaterial | file_id | BIGINT | 否 | 文件 ID | 普通 |
| kb_material | KnowledgeMaterial | publish_status | VARCHAR(32) | 是 | 草稿/已发布/已下架 | 普通 |
| res_learning_resource | LearningResource | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| res_learning_resource | LearningResource | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| res_learning_resource | LearningResource | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| res_learning_resource | LearningResource | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| res_learning_resource | LearningResource | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| res_learning_resource | LearningResource | created_at | DATETIME | 是 | 创建时间 | 普通 |
| res_learning_resource | LearningResource | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| res_learning_resource | LearningResource | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| res_learning_resource | LearningResource | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| res_learning_resource | LearningResource | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| res_learning_resource | LearningResource | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| res_learning_resource | LearningResource | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| res_learning_resource | LearningResource | resource_no | VARCHAR(64) | 是 | 资源编号,唯一 | 普通 |
| res_learning_resource | LearningResource | resource_name | VARCHAR(128) | 是 | 资源名称 | 普通 |
| res_learning_resource | LearningResource | resource_type | VARCHAR(32) | 是 | 课件/视频/音频/题库/文章/试卷 | 普通 |
| res_learning_resource | LearningResource | category_id | BIGINT | 否 | 资源分类 | 普通 |
| res_learning_resource | LearningResource | file_id | BIGINT | 否 | 文件 ID | 普通 |
| res_learning_resource | LearningResource | publish_status | VARCHAR(32) | 是 | 草稿/审核中/已发布/已下架 | 普通 |
| bi_metric_snapshot | MetricSnapshot | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| bi_metric_snapshot | MetricSnapshot | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| bi_metric_snapshot | MetricSnapshot | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| bi_metric_snapshot | MetricSnapshot | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| bi_metric_snapshot | MetricSnapshot | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| bi_metric_snapshot | MetricSnapshot | created_at | DATETIME | 是 | 创建时间 | 普通 |
| bi_metric_snapshot | MetricSnapshot | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| bi_metric_snapshot | MetricSnapshot | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| bi_metric_snapshot | MetricSnapshot | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| bi_metric_snapshot | MetricSnapshot | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| bi_metric_snapshot | MetricSnapshot | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| bi_metric_snapshot | MetricSnapshot | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| bi_metric_snapshot | MetricSnapshot | metric_code | VARCHAR(64) | 是 | 指标编码 | 普通 |
| bi_metric_snapshot | MetricSnapshot | stat_date | DATE | 是 | 统计日期 | 普通 |
| bi_metric_snapshot | MetricSnapshot | dimension_json | JSON | 否 | 维度值 | 普通 |
| bi_metric_snapshot | MetricSnapshot | metric_value | DECIMAL(18,4) | 是 | 指标值 | 普通 |
JSON 字段结构与校验
| 表名 | 对象 | 字段 | 结构编码 | 结构定义 | 校验规则 | 示例 |
|---|---|---|---|---|---|---|
| live_provider_config | LiveProviderConfig | domain_config | LIVE_DOMAIN | {pushDomain:string, playDomain:string, callbackUrl:string, protocol:string[]} | 域名必须完成 HTTPS/证书/回调验签配置 | {"pushDomain":"push.dinuo.cn","playDomain":"live.dinuo.cn","protocol":["HLS","FLV"]} |
| live_provider_config | LiveProviderConfig | storage_config | LIVE_STORAGE | {provider:string, bucket:string, pathPrefix:string, retentionDays:number, callbackEnabled:boolean} | 存储桶必须与启用供应商匹配;保留天数 1-3650 | {"provider":"ALIYUN","bucket":"dinuo-live","retentionDays":180} |
| live_interaction_event | LiveInteraction | event_payload | SUPERVISION_PAYLOAD | {bizType:string, contractNo:string, amount:number, student:object, attachments:number[]} | 报送字段必须满足教育局/监管账户配置的必填规则 | {"bizType":"CONTRACT","contractNo":"DNC20260628001","amount":6800} |
| live_mic_request | LiveMicRequest | device_check_result | MIC_DEVICE_CHECK | {camera:boolean, microphone:boolean, network:string, sdkVersion:string, failReason?:string} | 上麦前必须完成端侧设备检测 | {"camera":true,"microphone":true,"network":"GOOD"} |
| live_replay_policy | ReplayPublishPolicy/ReplayAccess | publish_scope | ORG_SCOPE | {scopeType:string, orgIds:number[], campusIds:number[], includeChildren:boolean} | 组织和校区必须在当前租户授权范围内 | {"scopeType":"CAMPUS","campusIds":[101,102],"includeChildren":false} |
| live_replay_policy | ReplayPublishPolicy/ReplayAccess | access_rule | GENERIC | object | array | 必须符合字段说明中的业务结构;保存前进行 JSON Schema 校验并记录版本 | {"version":1,"items":[]} |
| live_public_conversion | PublicLiveConversion | conversion_payload | SUPERVISION_PAYLOAD | {bizType:string, contractNo:string, amount:number, student:object, attachments:number[]} | 报送字段必须满足教育局/监管账户配置的必填规则 | {"bizType":"CONTRACT","contractNo":"DNC20260628001","amount":6800} |
状态/枚举标准字典
| 表名 | 对象 | 字段 | 枚举编码 | 取值 | 终态/流转规则 | 字段说明 |
|---|---|---|---|---|---|---|
| live_provider_config | LiveProviderConfig | tenant_id | TENANT_ID | 集团、租户隔离字段 | 非终态,可按状态机或字典规则流转 | 集团/租户隔离字段,所有查询必须带租户上下文 |
| live_provider_config | LiveProviderConfig | is_deleted | BOOL_DELETED | 0 未删除、1 已删除 | 非终态,可按状态机或字典规则流转 | 是否已删除,0 未删除,1 已删除 |
| live_provider_config | LiveProviderConfig | provider_code | PROVIDER_CODE | ALIYUN、TENCENT、QINIU | 非终态,可按状态机或字典规则流转 | ALIYUN/TENCENT/QINIU |
| live_provider_config | LiveProviderConfig | enabled | ENABLED_STATUS | 0 停用、1 启用 | 非终态,可按状态机或字典规则流转 | 是否为当前启用供应商 |
| live_room | LiveRoom | tenant_id | TENANT_ID | 集团、租户隔离字段 | 非终态,可按状态机或字典规则流转 | 集团/租户隔离字段,所有查询必须带租户上下文 |
| live_room | LiveRoom | is_deleted | BOOL_DELETED | 0 未删除、1 已删除 | 非终态,可按状态机或字典规则流转 | 是否已删除,0 未删除,1 已删除 |
| live_room | LiveRoom | live_type | LIVE_TYPE | 教学直播、活动直播、集团会议直播 | 非终态,可按状态机或字典规则流转 | 教学直播/活动直播/集团会议直播 |
| live_room | LiveRoom | biz_type | BIZ_TYPE | LEAD 线索、CUSTOMER 客户、CONTRACT 合同、ORDER 订单、PAYMENT 收款、REFUND 退费、LESSON 课次、CONSUMPTION 课消、EXPENSE 报销、VOUCHER 凭证、INVOICE 发票、LIVE 直播、PATROL 巡课、DEVICE 设备、MATERIAL 物料、PAYROLL 工资 | 非终态,可按状态机或字典规则流转 | 绑定业务类型 |
| live_room | LiveRoom | room_status | LIVE_ROOM_STATUS | WAITING 待开播、LIVE 直播中、ENDED 已结束、ABNORMAL 异常 | 包含终态,终态禁止直接编辑,需走变更/红冲/撤回流程 | 待开播/直播中/已结束/异常 |
| live_participant | LiveSession/LiveAttendance | tenant_id | TENANT_ID | 集团、租户隔离字段 | 非终态,可按状态机或字典规则流转 | 集团/租户隔离字段,所有查询必须带租户上下文 |
| live_participant | LiveSession/LiveAttendance | is_deleted | BOOL_DELETED | 0 未删除、1 已删除 | 非终态,可按状态机或字典规则流转 | 是否已删除,0 未删除,1 已删除 |
| live_participant | LiveSession/LiveAttendance | participant_type | PARTICIPANT_TYPE | 学员、教师、员工、家长、访客 | 非终态,可按状态机或字典规则流转 | 学员/教师/员工/家长/访客 |
| live_participant | LiveSession/LiveAttendance | join_status | JOIN_STATUS | 未进入、观看中、已离开、掉线 | 非终态,可按状态机或字典规则流转 | 未进入/观看中/已离开/掉线 |
| live_participant | LiveSession/LiveAttendance | sign_status | SIGN_STATUS | UNSIGNED 未签到、SIGNED 已签到、LATE 迟到签到、LEAVE 请假、ABSENT 缺席 | 非终态,可按状态机或字典规则流转 | 签到状态 |
| live_interaction_event | LiveInteraction | tenant_id | TENANT_ID | 集团、租户隔离字段 | 非终态,可按状态机或字典规则流转 | 集团/租户隔离字段,所有查询必须带租户上下文 |
| live_interaction_event | LiveInteraction | is_deleted | BOOL_DELETED | 0 未删除、1 已删除 | 非终态,可按状态机或字典规则流转 | 是否已删除,0 未删除,1 已删除 |
| live_interaction_event | LiveInteraction | interaction_type | INTERACTION_TYPE | 评论、答题、点赞、签到、投票 | 非终态,可按状态机或字典规则流转 | 评论/答题/点赞/签到/投票 |
| live_mic_request | LiveMicRequest | tenant_id | TENANT_ID | 集团、租户隔离字段 | 非终态,可按状态机或字典规则流转 | 集团/租户隔离字段,所有查询必须带租户上下文 |
| live_mic_request | LiveMicRequest | is_deleted | BOOL_DELETED | 0 未删除、1 已删除 | 非终态,可按状态机或字典规则流转 | 是否已删除,0 未删除,1 已删除 |
| live_mic_request | LiveMicRequest | request_status | MIC_REQUEST_STATUS | QUEUED 排队中、INVITED 已邀请、ON_MIC 已上麦、REJECTED 已拒绝、TIMEOUT 已超时、CANCELLED 已取消 | 包含终态,终态禁止直接编辑,需走变更/红冲/撤回流程 | 排队中/已邀请/已上麦/已拒绝/已超时/已取消 |
| live_mic_seat | LiveMicSeat | tenant_id | TENANT_ID | 集团、租户隔离字段 | 非终态,可按状态机或字典规则流转 | 集团/租户隔离字段,所有查询必须带租户上下文 |
| live_mic_seat | LiveMicSeat | is_deleted | BOOL_DELETED | 0 未删除、1 已删除 | 非终态,可按状态机或字典规则流转 | 是否已删除,0 未删除,1 已删除 |
| live_mic_seat | LiveMicSeat | seat_status | SEAT_STATUS | 空闲、邀请中、使用中、异常 | 非终态,可按状态机或字典规则流转 | 空闲/邀请中/使用中/异常 |
| live_recording_file | LiveRecording | tenant_id | TENANT_ID | 集团、租户隔离字段 | 非终态,可按状态机或字典规则流转 | 集团/租户隔离字段,所有查询必须带租户上下文 |
| live_recording_file | LiveRecording | is_deleted | BOOL_DELETED | 0 未删除、1 已删除 | 非终态,可按状态机或字典规则流转 | 是否已删除,0 未删除,1 已删除 |
| live_recording_file | LiveRecording | recording_status | RECORDING_STATUS | 录制中、转码中、可播放、失败、已过期 | 包含终态,终态禁止直接编辑,需走变更/红冲/撤回流程 | 录制中/转码中/可播放/失败/已过期 |
| live_recording_file | LiveRecording | storage_location | STORAGE_LOCATION | 供应商 OSS、COS、Kodo 存储位置 | 非终态,可按状态机或字典规则流转 | 供应商 OSS/COS/Kodo 存储位置 |
| live_replay_policy | ReplayPublishPolicy/ReplayAccess | tenant_id | TENANT_ID | 集团、租户隔离字段 | 非终态,可按状态机或字典规则流转 | 集团/租户隔离字段,所有查询必须带租户上下文 |
| live_replay_policy | ReplayPublishPolicy/ReplayAccess | is_deleted | BOOL_DELETED | 0 未删除、1 已删除 | 非终态,可按状态机或字典规则流转 | 是否已删除,0 未删除,1 已删除 |
| live_replay_policy | ReplayPublishPolicy/ReplayAccess | publish_scope | PUBLISH_SCOPE | PRIVATE 私有、CLASS 班级可见、COURSE 课程可见、CAMPUS 校区可见、ROLE 角色可见、PUBLIC 公开可见 | 非终态,可按状态机或字典规则流转 | 可见范围 |
| live_replay_policy | ReplayPublishPolicy/ReplayAccess | publish_status | PUBLISH_STATUS | DRAFT 草稿、PUBLISHING 发布中、PUBLISHED 已发布、FAILED 发布失败、OFFLINE 已下线、ARCHIVED 已归档 | 包含终态,终态禁止直接编辑,需走变更/红冲/撤回流程 | 未发布/已发布/已下线 |
| live_public_conversion | PublicLiveConversion | tenant_id | TENANT_ID | 集团、租户隔离字段 | 非终态,可按状态机或字典规则流转 | 集团/租户隔离字段,所有查询必须带租户上下文 |
| live_public_conversion | PublicLiveConversion | is_deleted | BOOL_DELETED | 0 未删除、1 已删除 | 非终态,可按状态机或字典规则流转 | 是否已删除,0 未删除,1 已删除 |
| live_public_conversion | PublicLiveConversion | conversion_stage | CONVERSION_STAGE | 观看、留资、邀约、转化 | 非终态,可按状态机或字典规则流转 | 观看/留资/邀约/转化 |
敏感字段与数据安全策略
| 来源 | 表名 | 对象 | 字段 | 数据级别 | 脱敏/返回策略 | 明文查看条件 | 导出策略 | 审计要求 | 端侧展示规则 |
|---|---|---|---|---|---|---|---|---|---|
| 本模块对象 | live_provider_config | LiveProviderConfig | secret_ref | 高敏 | NEVER_RETURN | 禁止接口返回明文;仅密钥中心/鉴权服务按服务身份读取密钥引用 | 禁止导出;配置导出只允许导出脱敏引用和启停状态 | 配置新增、修改、启停、轮换和失败读取均记录安全审计 | 前端只展示已配置/未配置、到期时间和连通性状态,不展示密钥值 |
| 本模块对象 | live_interaction_event | LiveInteraction | event_payload | 普通 | PAYLOAD_DESENSITIZE | 接口报文、快照和文件地址默认脱敏;排障查看需运维/安全授权 | 导出日志或报文时自动清理手机号、证件号、密钥、票据和人脸字段 | 查看报文、下载附件、失败重放和人工补偿均记录审计 | 业务端展示摘要和状态,完整报文仅运维/安全后台查看 |
| 本模块对象 | live_public_conversion | PublicLiveConversion | conversion_payload | 普通 | PAYLOAD_DESENSITIZE | 接口报文、快照和文件地址默认脱敏;排障查看需运维/安全授权 | 导出日志或报文时自动清理手机号、证件号、密钥、票据和人脸字段 | 查看报文、下载附件、失败重放和人工补偿均记录审计 | 业务端展示摘要和状态,完整报文仅运维/安全后台查看 |
| 引用对象 | sys_user | User/Employee | mobile | 敏感 | MOBILE_MASK | 默认展示 138****0000;明文查看需字段权限或敏感字段查看审批 | 导出手机号必须触发导出审批、下载水印和有效期控制 | 明文查看、复制、导出和批量下载均写入 SensitiveAccessLog | PC 管理端按字段权限展示;移动端仅展示本人授权范围内脱敏信息 |
| 引用对象 | sys_user | User/Employee | password_hash | 高敏 | NEVER_RETURN | 禁止接口返回明文;仅密钥中心/鉴权服务按服务身份读取密钥引用 | 禁止导出;配置导出只允许导出脱敏引用和启停状态 | 配置新增、修改、启停、轮换和失败读取均记录安全审计 | 前端只展示已配置/未配置、到期时间和连通性状态,不展示密钥值 |
| 引用对象 | int_integration_log | IntegrationLog | request_payload | 敏感 | PAYLOAD_DESENSITIZE | 接口报文、快照和文件地址默认脱敏;排障查看需运维/安全授权 | 导出日志或报文时自动清理手机号、证件号、密钥、票据和人脸字段 | 查看报文、下载附件、失败重放和人工补偿均记录审计 | 业务端展示摘要和状态,完整报文仅运维/安全后台查看 |
| 引用对象 | int_integration_log | IntegrationLog | response_payload | 普通 | PAYLOAD_DESENSITIZE | 接口报文、快照和文件地址默认脱敏;排障查看需运维/安全授权 | 导出日志或报文时自动清理手机号、证件号、密钥、票据和人脸字段 | 查看报文、下载附件、失败重放和人工补偿均记录审计 | 业务端展示摘要和状态,完整报文仅运维/安全后台查看 |
| 引用对象 | sec_sensitive_field_policy | SensitiveFieldPolicy | mask_rule | 普通 | BIZ_FIELD_MASK | 按字段权限、数据范围和业务角色展示;明文查看按敏感字段审批规则执行 | 导出时按数据级别触发审批、水印、下载有效期和日志 | 查看、修改、删除、导出、下载和审批均记录操作审计 | 默认遵循总部、区域、校区、团队、本人数据范围和端侧最小可见原则 |
| 引用对象 | stu_student | Student | remark | 普通 | BIZ_FIELD_MASK | 按字段权限、数据范围和业务角色展示;明文查看按敏感字段审批规则执行 | 导出时按数据级别触发审批、水印、下载有效期和日志 | 查看、修改、删除、导出、下载和审批均记录操作审计 | 默认遵循总部、区域、校区、团队、本人数据范围和端侧最小可见原则 |
| 引用对象 | mkt_campaign | MarketingCampaign | remark | 普通 | BIZ_FIELD_MASK | 按字段权限、数据范围和业务角色展示;明文查看按敏感字段审批规则执行 | 导出时按数据级别触发审批、水印、下载有效期和日志 | 查看、修改、删除、导出、下载和审批均记录操作审计 | 默认遵循总部、区域、校区、团队、本人数据范围和端侧最小可见原则 |
| 引用对象 | crm_lead | Lead | guardian_mobile | 敏感 | MOBILE_MASK | 默认展示 138****0000;明文查看需字段权限或敏感字段查看审批 | 导出手机号必须触发导出审批、下载水印和有效期控制 | 明文查看、复制、导出和批量下载均写入 SensitiveAccessLog | PC 管理端按字段权限展示;移动端仅展示本人授权范围内脱敏信息 |
| 引用对象 | crm_lead | Lead | remark | 普通 | BIZ_FIELD_MASK | 按字段权限、数据范围和业务角色展示;明文查看按敏感字段审批规则执行 | 导出时按数据级别触发审批、水印、下载有效期和日志 | 查看、修改、删除、导出、下载和审批均记录操作审计 | 默认遵循总部、区域、校区、团队、本人数据范围和端侧最小可见原则 |
核心数据表完整字段
| 表名 | 对象 | 字段 | 类型 | 必填 | 规则 | 数据级别 |
|---|---|---|---|---|---|---|
| live_provider_config | LiveProviderConfig | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| live_provider_config | LiveProviderConfig | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| live_provider_config | LiveProviderConfig | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| live_provider_config | LiveProviderConfig | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| live_provider_config | LiveProviderConfig | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| live_provider_config | LiveProviderConfig | created_at | DATETIME | 是 | 创建时间 | 普通 |
| live_provider_config | LiveProviderConfig | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| live_provider_config | LiveProviderConfig | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| live_provider_config | LiveProviderConfig | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| live_provider_config | LiveProviderConfig | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| live_provider_config | LiveProviderConfig | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| live_provider_config | LiveProviderConfig | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| live_provider_config | LiveProviderConfig | provider_code | VARCHAR(32) | 是 | ALIYUN/TENCENT/QINIU | 普通 |
| live_provider_config | LiveProviderConfig | provider_name | VARCHAR(128) | 是 | 供应商名称 | 普通 |
| live_provider_config | LiveProviderConfig | app_id | VARCHAR(128) | 是 | 供应商应用 ID | 普通 |
| live_provider_config | LiveProviderConfig | secret_ref | VARCHAR(128) | 是 | 密钥引用,密钥中心加密存储 | 高敏 |
| live_provider_config | LiveProviderConfig | domain_config | JSON | 是 | 推流、播流、回调域名配置 | 普通 |
| live_provider_config | LiveProviderConfig | storage_config | JSON | 是 | 录制存储位置配置 | 普通 |
| live_provider_config | LiveProviderConfig | enabled | TINYINT | 是 | 是否为当前启用供应商 | 普通 |
| live_room | LiveRoom | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| live_room | LiveRoom | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| live_room | LiveRoom | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| live_room | LiveRoom | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| live_room | LiveRoom | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| live_room | LiveRoom | created_at | DATETIME | 是 | 创建时间 | 普通 |
| live_room | LiveRoom | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| live_room | LiveRoom | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| live_room | LiveRoom | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| live_room | LiveRoom | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| live_room | LiveRoom | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| live_room | LiveRoom | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| live_room | LiveRoom | room_no | VARCHAR(64) | 是 | 直播间编号,唯一 | 普通 |
| live_room | LiveRoom | live_type | VARCHAR(32) | 是 | 教学直播/活动直播/集团会议直播 | 普通 |
| live_room | LiveRoom | provider_code | VARCHAR(32) | 是 | 启用供应商 | 普通 |
| live_room | LiveRoom | biz_type | VARCHAR(64) | 是 | 绑定业务类型 | 普通 |
| live_room | LiveRoom | biz_id | BIGINT | 是 | 绑定业务 ID | 普通 |
| live_room | LiveRoom | start_at | DATETIME | 否 | 计划开始时间 | 普通 |
| live_room | LiveRoom | end_at | DATETIME | 否 | 计划结束时间 | 普通 |
| live_room | LiveRoom | room_status | VARCHAR(32) | 是 | 待开播/直播中/已结束/异常 | 普通 |
| live_participant | LiveSession/LiveAttendance | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| live_participant | LiveSession/LiveAttendance | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| live_participant | LiveSession/LiveAttendance | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| live_participant | LiveSession/LiveAttendance | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| live_participant | LiveSession/LiveAttendance | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| live_participant | LiveSession/LiveAttendance | created_at | DATETIME | 是 | 创建时间 | 普通 |
| live_participant | LiveSession/LiveAttendance | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| live_participant | LiveSession/LiveAttendance | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| live_participant | LiveSession/LiveAttendance | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| live_participant | LiveSession/LiveAttendance | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| live_participant | LiveSession/LiveAttendance | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| live_participant | LiveSession/LiveAttendance | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| live_participant | LiveSession/LiveAttendance | live_room_id | BIGINT | 是 | 直播间 ID | 普通 |
| live_participant | LiveSession/LiveAttendance | user_id | BIGINT | 是 | 用户 ID | 普通 |
| live_participant | LiveSession/LiveAttendance | participant_type | VARCHAR(32) | 是 | 学员/教师/员工/家长/访客 | 普通 |
| live_participant | LiveSession/LiveAttendance | join_status | VARCHAR(32) | 是 | 未进入/观看中/已离开/掉线 | 普通 |
| live_participant | LiveSession/LiveAttendance | watch_duration | INT | 是 | 观看时长秒数 | 普通 |
| live_participant | LiveSession/LiveAttendance | sign_status | VARCHAR(32) | 否 | 签到状态 | 普通 |
| live_participant | LiveSession/LiveAttendance | last_heartbeat_at | DATETIME | 否 | 最近心跳 | 普通 |
| live_interaction_event | LiveInteraction | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| live_interaction_event | LiveInteraction | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| live_interaction_event | LiveInteraction | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| live_interaction_event | LiveInteraction | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| live_interaction_event | LiveInteraction | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| live_interaction_event | LiveInteraction | created_at | DATETIME | 是 | 创建时间 | 普通 |
| live_interaction_event | LiveInteraction | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| live_interaction_event | LiveInteraction | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| live_interaction_event | LiveInteraction | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| live_interaction_event | LiveInteraction | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| live_interaction_event | LiveInteraction | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| live_interaction_event | LiveInteraction | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| live_interaction_event | LiveInteraction | live_room_id | BIGINT | 是 | 直播间 ID | 普通 |
| live_interaction_event | LiveInteraction | user_id | BIGINT | 否 | 用户 ID | 普通 |
| live_interaction_event | LiveInteraction | interaction_type | VARCHAR(32) | 是 | 评论/答题/点赞/签到/投票 | 普通 |
| live_interaction_event | LiveInteraction | event_payload | JSON | 是 | 互动数据 | 普通 |
| live_interaction_event | LiveInteraction | client_event_id | VARCHAR(128) | 是 | 客户端事件 ID,用于幂等 | 普通 |
| live_interaction_event | LiveInteraction | event_time | DATETIME | 是 | 事件时间 | 普通 |
| live_mic_request | LiveMicRequest | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| live_mic_request | LiveMicRequest | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| live_mic_request | LiveMicRequest | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| live_mic_request | LiveMicRequest | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| live_mic_request | LiveMicRequest | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| live_mic_request | LiveMicRequest | created_at | DATETIME | 是 | 创建时间 | 普通 |
| live_mic_request | LiveMicRequest | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| live_mic_request | LiveMicRequest | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| live_mic_request | LiveMicRequest | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| live_mic_request | LiveMicRequest | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| live_mic_request | LiveMicRequest | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| live_mic_request | LiveMicRequest | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| live_mic_request | LiveMicRequest | live_room_id | BIGINT | 是 | 直播间 ID | 普通 |
| live_mic_request | LiveMicRequest | requester_id | BIGINT | 是 | 申请人 ID | 普通 |
| live_mic_request | LiveMicRequest | request_status | VARCHAR(32) | 是 | 排队中/已邀请/已上麦/已拒绝/已超时/已取消 | 普通 |
| live_mic_request | LiveMicRequest | queue_no | INT | 否 | 队列序号 | 普通 |
| live_mic_request | LiveMicRequest | seat_no | INT | 否 | 座席号 | 普通 |
| live_mic_request | LiveMicRequest | invite_expire_at | DATETIME | 否 | 邀请过期时间 | 普通 |
| live_mic_request | LiveMicRequest | device_check_result | JSON | 否 | 设备检测结果 | 普通 |
| live_mic_seat | LiveMicSeat | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| live_mic_seat | LiveMicSeat | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| live_mic_seat | LiveMicSeat | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| live_mic_seat | LiveMicSeat | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| live_mic_seat | LiveMicSeat | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| live_mic_seat | LiveMicSeat | created_at | DATETIME | 是 | 创建时间 | 普通 |
| live_mic_seat | LiveMicSeat | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| live_mic_seat | LiveMicSeat | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| live_mic_seat | LiveMicSeat | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| live_mic_seat | LiveMicSeat | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| live_mic_seat | LiveMicSeat | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| live_mic_seat | LiveMicSeat | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| live_mic_seat | LiveMicSeat | live_room_id | BIGINT | 是 | 直播间 ID | 普通 |
| live_mic_seat | LiveMicSeat | seat_no | INT | 是 | 座席号 | 普通 |
| live_mic_seat | LiveMicSeat | participant_id | BIGINT | 否 | 上麦参与人 ID | 普通 |
| live_mic_seat | LiveMicSeat | seat_status | VARCHAR(32) | 是 | 空闲/邀请中/使用中/异常 | 普通 |
| live_mic_seat | LiveMicSeat | muted | TINYINT | 是 | 是否静音 | 普通 |
| live_mic_seat | LiveMicSeat | provider_session_id | VARCHAR(128) | 否 | 供应商会话 ID | 普通 |
| live_recording_file | LiveRecording | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| live_recording_file | LiveRecording | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| live_recording_file | LiveRecording | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| live_recording_file | LiveRecording | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| live_recording_file | LiveRecording | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| live_recording_file | LiveRecording | created_at | DATETIME | 是 | 创建时间 | 普通 |
| live_recording_file | LiveRecording | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| live_recording_file | LiveRecording | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| live_recording_file | LiveRecording | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| live_recording_file | LiveRecording | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| live_recording_file | LiveRecording | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| live_recording_file | LiveRecording | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| live_recording_file | LiveRecording | live_room_id | BIGINT | 是 | 直播间 ID | 普通 |
| live_recording_file | LiveRecording | provider_record_id | VARCHAR(128) | 否 | 供应商录制 ID | 普通 |
| live_recording_file | LiveRecording | recording_status | VARCHAR(32) | 是 | 录制中/转码中/可播放/失败/已过期 | 普通 |
| live_recording_file | LiveRecording | replay_url | VARCHAR(512) | 否 | 回放地址 | 普通 |
| live_recording_file | LiveRecording | storage_location | VARCHAR(512) | 否 | 供应商 OSS/COS/Kodo 存储位置 | 普通 |
| live_recording_file | LiveRecording | duration | INT | 否 | 时长秒数 | 普通 |
| live_recording_file | LiveRecording | retention_until | DATETIME | 否 | 保留到期时间 | 普通 |
| live_replay_policy | ReplayPublishPolicy/ReplayAccess | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| live_replay_policy | ReplayPublishPolicy/ReplayAccess | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| live_replay_policy | ReplayPublishPolicy/ReplayAccess | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| live_replay_policy | ReplayPublishPolicy/ReplayAccess | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| live_replay_policy | ReplayPublishPolicy/ReplayAccess | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| live_replay_policy | ReplayPublishPolicy/ReplayAccess | created_at | DATETIME | 是 | 创建时间 | 普通 |
| live_replay_policy | ReplayPublishPolicy/ReplayAccess | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| live_replay_policy | ReplayPublishPolicy/ReplayAccess | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| live_replay_policy | ReplayPublishPolicy/ReplayAccess | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| live_replay_policy | ReplayPublishPolicy/ReplayAccess | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| live_replay_policy | ReplayPublishPolicy/ReplayAccess | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| live_replay_policy | ReplayPublishPolicy/ReplayAccess | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| live_replay_policy | ReplayPublishPolicy/ReplayAccess | policy_no | VARCHAR(64) | 是 | 策略编号,唯一 | 普通 |
| live_replay_policy | ReplayPublishPolicy/ReplayAccess | live_room_id | BIGINT | 是 | 直播间 ID | 普通 |
| live_replay_policy | ReplayPublishPolicy/ReplayAccess | publish_scope | JSON | 是 | 可见范围 | 普通 |
| live_replay_policy | ReplayPublishPolicy/ReplayAccess | access_rule | JSON | 是 | 有效期、次数、身份限制 | 普通 |
| live_replay_policy | ReplayPublishPolicy/ReplayAccess | publish_status | VARCHAR(32) | 是 | 未发布/已发布/已下线 | 普通 |
| live_public_conversion | PublicLiveConversion | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| live_public_conversion | PublicLiveConversion | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| live_public_conversion | PublicLiveConversion | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| live_public_conversion | PublicLiveConversion | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| live_public_conversion | PublicLiveConversion | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| live_public_conversion | PublicLiveConversion | created_at | DATETIME | 是 | 创建时间 | 普通 |
| live_public_conversion | PublicLiveConversion | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| live_public_conversion | PublicLiveConversion | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| live_public_conversion | PublicLiveConversion | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| live_public_conversion | PublicLiveConversion | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| live_public_conversion | PublicLiveConversion | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| live_public_conversion | PublicLiveConversion | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| live_public_conversion | PublicLiveConversion | conversion_no | VARCHAR(64) | 是 | 转化编号,唯一 | 普通 |
| live_public_conversion | PublicLiveConversion | live_room_id | BIGINT | 是 | 直播间 ID | 普通 |
| live_public_conversion | PublicLiveConversion | visitor_id | VARCHAR(128) | 否 | 访客 ID | 普通 |
| live_public_conversion | PublicLiveConversion | lead_id | BIGINT | 否 | 生成线索 ID | 普通 |
| live_public_conversion | PublicLiveConversion | conversion_stage | VARCHAR(32) | 是 | 观看/留资/邀约/转化 | 普通 |
| live_public_conversion | PublicLiveConversion | conversion_payload | JSON | 否 | 转化明细 | 普通 |
数据表与对象映射
| 表名 | 对象 | 用途 | 完整字段 | 索引建议 |
|---|---|---|---|---|
| live_provider_config | LiveProviderConfig | 直播供应商配置 | id(BIGINT,必填)、tenant_id(BIGINT,必填)、org_id(BIGINT)、campus_id(BIGINT)、created_by(BIGINT,必填)、created_at(DATETIME,必填)、updated_by(BIGINT)、updated_at(DATETIME)、is_deleted(TINYINT,必填)、deleted_at(DATETIME)、deleted_by(BIGINT)、version(INT,必填)、provider_code(VARCHAR(32),必填)、provider_name(VARCHAR(128),必填)、app_id(VARCHAR(128),必填)、secret_ref(VARCHAR(128),必填)、domain_config(JSON,必填)、storage_config(JSON,必填)、enabled(TINYINT,必填) | uk_provider_code、idx_enabled |
| live_room | LiveRoom | 直播间 | id(BIGINT,必填)、tenant_id(BIGINT,必填)、org_id(BIGINT)、campus_id(BIGINT)、created_by(BIGINT,必填)、created_at(DATETIME,必填)、updated_by(BIGINT)、updated_at(DATETIME)、is_deleted(TINYINT,必填)、deleted_at(DATETIME)、deleted_by(BIGINT)、version(INT,必填)、room_no(VARCHAR(64),必填)、live_type(VARCHAR(32),必填)、provider_code(VARCHAR(32),必填)、biz_type(VARCHAR(64),必填)、biz_id(BIGINT,必填)、start_at(DATETIME)、end_at(DATETIME)、room_status(VARCHAR(32),必填) | uk_room_no、idx_biz_status |
| live_participant | LiveSession/LiveAttendance | 直播观看、签到和时长 | id(BIGINT,必填)、tenant_id(BIGINT,必填)、org_id(BIGINT)、campus_id(BIGINT)、created_by(BIGINT,必填)、created_at(DATETIME,必填)、updated_by(BIGINT)、updated_at(DATETIME)、is_deleted(TINYINT,必填)、deleted_at(DATETIME)、deleted_by(BIGINT)、version(INT,必填)、live_room_id(BIGINT,必填)、user_id(BIGINT,必填)、participant_type(VARCHAR(32),必填)、join_status(VARCHAR(32),必填)、watch_duration(INT,必填)、sign_status(VARCHAR(32))、last_heartbeat_at(DATETIME) | uk_room_user、idx_room_status |
| live_interaction_event | LiveInteraction | 直播互动、答题和评论事件 | id(BIGINT,必填)、tenant_id(BIGINT,必填)、org_id(BIGINT)、campus_id(BIGINT)、created_by(BIGINT,必填)、created_at(DATETIME,必填)、updated_by(BIGINT)、updated_at(DATETIME)、is_deleted(TINYINT,必填)、deleted_at(DATETIME)、deleted_by(BIGINT)、version(INT,必填)、live_room_id(BIGINT,必填)、user_id(BIGINT)、interaction_type(VARCHAR(32),必填)、event_payload(JSON,必填)、client_event_id(VARCHAR(128),必填)、event_time(DATETIME,必填) | uk_client_event、idx_room_time |
| live_mic_request | LiveMicRequest | 举手上麦请求 | id(BIGINT,必填)、tenant_id(BIGINT,必填)、org_id(BIGINT)、campus_id(BIGINT)、created_by(BIGINT,必填)、created_at(DATETIME,必填)、updated_by(BIGINT)、updated_at(DATETIME)、is_deleted(TINYINT,必填)、deleted_at(DATETIME)、deleted_by(BIGINT)、version(INT,必填)、live_room_id(BIGINT,必填)、requester_id(BIGINT,必填)、request_status(VARCHAR(32),必填)、queue_no(INT)、seat_no(INT)、invite_expire_at(DATETIME)、device_check_result(JSON) | idx_room_status_queue、idx_requester_active |
| live_mic_seat | LiveMicSeat | 连麦座席管理 | id(BIGINT,必填)、tenant_id(BIGINT,必填)、org_id(BIGINT)、campus_id(BIGINT)、created_by(BIGINT,必填)、created_at(DATETIME,必填)、updated_by(BIGINT)、updated_at(DATETIME)、is_deleted(TINYINT,必填)、deleted_at(DATETIME)、deleted_by(BIGINT)、version(INT,必填)、live_room_id(BIGINT,必填)、seat_no(INT,必填)、participant_id(BIGINT)、seat_status(VARCHAR(32),必填)、muted(TINYINT,必填)、provider_session_id(VARCHAR(128)) | uk_room_seat、idx_room_status |
| live_recording_file | LiveRecording | 直播录制和回放文件 | id(BIGINT,必填)、tenant_id(BIGINT,必填)、org_id(BIGINT)、campus_id(BIGINT)、created_by(BIGINT,必填)、created_at(DATETIME,必填)、updated_by(BIGINT)、updated_at(DATETIME)、is_deleted(TINYINT,必填)、deleted_at(DATETIME)、deleted_by(BIGINT)、version(INT,必填)、live_room_id(BIGINT,必填)、provider_record_id(VARCHAR(128))、recording_status(VARCHAR(32),必填)、replay_url(VARCHAR(512))、storage_location(VARCHAR(512))、duration(INT)、retention_until(DATETIME) | idx_room_status、idx_retention |
| live_replay_policy | ReplayPublishPolicy/ReplayAccess | 回放发布和访问策略 | id(BIGINT,必填)、tenant_id(BIGINT,必填)、org_id(BIGINT)、campus_id(BIGINT)、created_by(BIGINT,必填)、created_at(DATETIME,必填)、updated_by(BIGINT)、updated_at(DATETIME)、is_deleted(TINYINT,必填)、deleted_at(DATETIME)、deleted_by(BIGINT)、version(INT,必填)、policy_no(VARCHAR(64),必填)、live_room_id(BIGINT,必填)、publish_scope(JSON,必填)、access_rule(JSON,必填)、publish_status(VARCHAR(32),必填) | uk_policy_no、idx_room_status |
| live_public_conversion | PublicLiveConversion | 公开课直播转化线索 | id(BIGINT,必填)、tenant_id(BIGINT,必填)、org_id(BIGINT)、campus_id(BIGINT)、created_by(BIGINT,必填)、created_at(DATETIME,必填)、updated_by(BIGINT)、updated_at(DATETIME)、is_deleted(TINYINT,必填)、deleted_at(DATETIME)、deleted_by(BIGINT)、version(INT,必填)、conversion_no(VARCHAR(64),必填)、live_room_id(BIGINT,必填)、visitor_id(VARCHAR(128))、lead_id(BIGINT)、conversion_stage(VARCHAR(32),必填)、conversion_payload(JSON) | uk_conversion_no、idx_room_stage |
12 · 状态机与业务规则
约束业务对象如何流转、何时可编辑、何时触发审批
原型需要把状态标签、可操作按钮和禁用原因展示清楚。| 对象 | 状态 | 触发与说明 |
|---|---|---|
| 直播房间 | 草稿 -> 待开播 -> 直播中 -> 已结束 -> 回放生成中 -> 可回放 -> 异常 -> 已关闭 | 创建房间、供应商资源申请、教师开播、下课、录制转码、回放发布和异常关闭 |
| 直播参会 | 未进入 -> 已进入 -> 已签到 -> 迟到 -> 早退 -> 掉线 -> 已补看 -> 缺席 | 直播进入、签到、心跳、退出、补看回放和参会统计 |
| 直播录制 | 未录制 -> 录制中 -> 转码中 -> 可回放 -> 转码失败 -> 已过期 -> 已归档 | 供应商录制回调、转码任务、回放发布、留存过期和资料归档 |
| 集团会议直播 | 草稿 -> 待发布 -> 已通知 -> 直播中 -> 纪要整理中 -> 待任务确认 -> 已归档 | 会议创建、范围通知、直播、签到、纪要任务、资料归档 |
| 直播连麦请求 | 未举手 -> 已举手排队 -> 教师邀请中 -> 连接中 -> 上麦中 -> 已下麦 -> 已拒绝 -> 已取消 -> 已超时 -> 连接失败 | 学员举手进入队列,教师处理后进入邀请和连接;取消、拒绝、超时、失败、下麦均写入互动事件和连麦请求记录 |
| 直播连麦座席 | 空闲 -> 占用中 -> 静音 -> 下麦中 -> 已释放 -> 异常 | 教师端按座席管理当前上麦人员,人数达到上限后新请求继续排队或提示人数已满 |
直播能力中心涉及该规则时,必须在前端提示、后端校验、审计日志和测试用例中同时覆盖。
直播能力中心涉及该规则时,必须在前端提示、后端校验、审计日志和测试用例中同时覆盖。
直播能力中心涉及该规则时,必须在前端提示、后端校验、审计日志和测试用例中同时覆盖。
直播能力中心涉及该规则时,必须在前端提示、后端校验、审计日志和测试用例中同时覆盖。
直播能力中心涉及该规则时,必须在前端提示、后端校验、审计日志和测试用例中同时覆盖。
直播能力中心涉及该规则时,必须在前端提示、后端校验、审计日志和测试用例中同时覆盖。
13 · 权限、审批与消息
动作权限、数据范围、审批触发和消息触达必须闭环
权限需要覆盖菜单、按钮、字段、接口和导出。动作权限
- 配置供应商:需映射菜单、按钮、接口和字段权限
- 创建直播:需映射菜单、按钮、接口和字段权限
- 教师开播:需映射菜单、按钮、接口和字段权限
- 学员进入:需映射菜单、按钮、接口和字段权限
- 举手上麦:需映射菜单、按钮、接口和字段权限
- 连麦队列:需映射菜单、按钮、接口和字段权限
- 互动管理:需映射菜单、按钮、接口和字段权限
- 回放发布:需映射菜单、按钮、接口和字段权限
- 回放下架:需映射菜单、按钮、接口和字段权限
- 公开课转化:需映射菜单、按钮、接口和字段权限
- 数据复盘:需映射菜单、按钮、接口和字段权限
数据范围
- 总部全量
- 区域辖区
- 校区本地
- 部门/岗位
- 本人负责
- 授权班级/学员
审批配置
| 审批名称 | 触发条件 | 流程 | 结果 | 留痕 |
|---|---|---|---|---|
| 直播回放导出审批 | 导出直播回放、聊天记录、观看明细或会议参会明细 | 申请人 -> 业务主管 -> 数据管理员 | 通过后生成限时下载链接,驳回后保留申请原因 | 保留导出范围、用途、文件哈希和下载日志 |
| 集团会议直播发布审批 | 会议范围包含全集团、跨区域或敏感经营主题 | 发起人 -> 部门负责人 -> 总部管理员 | 通过后推送会议通知并开放观看入口 | 保留会议主题、参会范围、资料和审批意见 |
| 直播供应商配置审批 | 新增或变更直播供应商密钥、回调地址、录制存储、转码模板和域名配置 | 技术运维 -> 系统管理员 -> 安全管理员 | 通过后配置生效并触发连通性校验,同一租户仅保留一个启用供应商 | 保留配置前后快照和验签结果 |
| 回放补传替换审批 | 录制失败、转码失败或已发布回放需要人工替换 | 教务/直播运营 -> 教学负责人 -> 数据安全复核 | 通过后替换回放版本并通知受影响用户 | 保留原回放、补传文件、审核意见和访问影响 |
消息模板
| 消息 | 接收人 | 触发 | 渠道 | 变量 |
|---|---|---|---|---|
| 巡课整改通知 | 校长/教师/教研督导 | 督课记录生成整改项 | 站内信、App、企微 | 督课任务、问题等级、整改期限、回放片段 |
| 直播开课提醒 | 学员/家长/教师/助教 | 直播课开始前 30 分钟、10 分钟或教师开播 | 小程序、App、短信、站内信 | 课程、班级、教师、开课时间、进入链接 |
| 直播迟到/缺席提醒 | 学员/家长/班主任/学管师 | 直播开始后未进入或观看时长不足 | 小程序、App、站内信 | 学员、课程、迟到分钟、补看入口 |
| 公开课直播报名提醒 | 报名家长/线索顾问 | 公开课报名成功、开播前提醒、未到场提醒 | 短信、公众号、企微、H5 | 活动、渠道、顾问、直播入口 |
| 集团会议直播通知 | 员工/主管/总部 | 会议发布、开播、未签到、纪要任务生成 | App、站内信、企微 | 会议主题、参会范围、签到状态、任务入口 |
| 直播回放生成通知 | 教师/教务/学员/员工 | 录制转码完成或失败 | App、站内信、小程序 | 直播标题、回放入口、有效期、失败原因 |
| 直播连麦邀请通知 | 学员 | 教师同意举手并发起上麦邀请 | 直播内通知、App、站内信 | 直播间、教师、倒计时、设备检测入口 |
| 直播连麦处理结果 | 学员/教师/助教 | 连麦被拒绝、超时、失败、下麦或教师清空队列 | 直播内通知、站内信 | 直播间、处理动作、原因、排队状态 |
| 直播回放发布变更 | 学员/家长/教师/员工 | 回放发布、下架、过期或权限变更 | 小程序、App、站内信 | 直播标题、回放状态、有效期 |
| 回放补传替换通知 | 学员/家长/教师/教务 | 回放补传成功、替换、下架或学习进度处理完成 | 小程序、App、站内信 | 直播标题、回放版本、有效期、补看入口 |
14 · 接口与技术细节
接口需支持幂等、权限、审计、重试和回执
每个写接口必须有 requestId 或业务幂等键,外部回调必须验签和去重。| 接口 | 方法 | 方向 | 请求字段 | 响应字段 | 幂等/权限 |
|---|---|---|---|---|---|
| /api/v1/live/providers | POST/GET | PC Web 到平台 | providerCode, appId, domainConfig, callbackSecret | providerId, status, health | providerCode 唯一 |
| /api/v1/live/rooms | POST/GET | PC Web 到直播中心 | liveType, bizType, bizId, providerCode, startAt | roomId, roomNo, roomStatus | bizType + bizId 幂等 |
| /api/v1/live/rooms/{id}/join | POST | 多端到直播中心 | roomId, userId, clientType, role | playUrl, pushUrl, token, imConfig | 权益与角色校验 |
| /api/v1/live/rooms/{id}/mic-requests | POST/GET | 学员端/教师端到直播中心 | liveRoomId, requesterId, action, requestStatus, pageNo | micRequestId, queueItems, activeSeats, requestStatus | 同直播间同学员单活跃请求 |
| /api/v1/live/mic-requests/{requestId}/handle | POST | 教师端到直播中心 | requestId, teacherId, action, seatNo, reason, operationId | requestStatus, seatStatus, notifyStatus | operationId 幂等 |
| /api/v1/live/mic-seats/{seatId}/control | POST | 教师端到直播中心 | seatId, action, teacherId, reason, operationId | seatStatus, providerResult | 座席状态校验 |
| /api/v1/live/callbacks/provider | POST | 云厂商到平台 | providerCode, eventType, payload, signature | consumeStatus, retryable | 验签 + eventId 去重 |
| /api/v1/live/recordings/publish | POST | 直播中心到资源中心 | roomId, recordId, publishScope, retentionUntil | replayId, publishStatus | recordId 幂等 |
| /api/v1/live/replays/{id}/publish | POST | PC Web 到直播中心 | replayId, publishScope, validUntil, allowDownload, approvalId | replayAccessStatus, accessUrl, notifyStatus | replayId + versionNo 幂等 |
| /api/v1/live/replays/{id}/offline | POST | PC Web 到直播中心 | replayId, offlineReason, operatorId, requestId | replayAccessStatus, affectedUsers | requestId 幂等 |
| /api/v1/live/public-classes/{id}/conversion-tasks | POST | 公开课直播到 CRM | liveRoomId, leadId, watchScore, intentTags, replayWatched, requestId | taskId, ownerConsultantId, followStatus | leadId + liveRoomId 幂等 |
前端约束
- 统一登录态和租户校区上下文
- 列表分页、筛选、排序、列显隐
- 表单本地校验与服务端错误映射
- 移动/平板/TV 按终端适配交互
后端约束
- 领域服务封装业务规则
- 写操作事务一致性
- 关键操作审计快照
- 异步任务失败重试和告警
集成约束
- 第三方接口统一走开放集成中心
- 回执文件归档
- 接口日志可按业务单号追踪
- 密钥和回调地址按环境隔离
15 · 数据库与存储设计
核心表建议、关键字段和索引方向
详细 DDL 已在平台技术设计文档中统一展开,本处保留模块核心表、关键字段和索引方向。| 表名 | 用途 | 核心字段 | 索引建议 |
|---|---|---|---|
| live_provider_config | 直播供应商配置 | id、tenant_id、org_id、campus_id、created_by、created_at、updated_by、updated_at、is_deleted、deleted_at、deleted_by、version、provider_code、provider_name、app_id、secret_ref、domain_config、storage_config、enabled | uk_provider_code、idx_enabled |
| live_room | 直播间 | id、tenant_id、org_id、campus_id、created_by、created_at、updated_by、updated_at、is_deleted、deleted_at、deleted_by、version、room_no、live_type、provider_code、biz_type、biz_id、start_at、end_at、room_status | uk_room_no、idx_biz_status |
| live_participant | 直播观看、签到和时长 | id、tenant_id、org_id、campus_id、created_by、created_at、updated_by、updated_at、is_deleted、deleted_at、deleted_by、version、live_room_id、user_id、participant_type、join_status、watch_duration、sign_status、last_heartbeat_at | uk_room_user、idx_room_status |
| live_interaction_event | 直播互动、答题和评论事件 | id、tenant_id、org_id、campus_id、created_by、created_at、updated_by、updated_at、is_deleted、deleted_at、deleted_by、version、live_room_id、user_id、interaction_type、event_payload、client_event_id、event_time | uk_client_event、idx_room_time |
| live_mic_request | 举手上麦请求 | id、tenant_id、org_id、campus_id、created_by、created_at、updated_by、updated_at、is_deleted、deleted_at、deleted_by、version、live_room_id、requester_id、request_status、queue_no、seat_no、invite_expire_at、device_check_result | idx_room_status_queue、idx_requester_active |
| live_mic_seat | 连麦座席管理 | id、tenant_id、org_id、campus_id、created_by、created_at、updated_by、updated_at、is_deleted、deleted_at、deleted_by、version、live_room_id、seat_no、participant_id、seat_status、muted、provider_session_id | uk_room_seat、idx_room_status |
| live_recording_file | 直播录制和回放文件 | id、tenant_id、org_id、campus_id、created_by、created_at、updated_by、updated_at、is_deleted、deleted_at、deleted_by、version、live_room_id、provider_record_id、recording_status、replay_url、storage_location、duration、retention_until | idx_room_status、idx_retention |
| live_replay_policy | 回放发布和访问策略 | id、tenant_id、org_id、campus_id、created_by、created_at、updated_by、updated_at、is_deleted、deleted_at、deleted_by、version、policy_no、live_room_id、publish_scope、access_rule、publish_status | uk_policy_no、idx_room_status |
| live_public_conversion | 公开课直播转化线索 | id、tenant_id、org_id、campus_id、created_by、created_at、updated_by、updated_at、is_deleted、deleted_at、deleted_by、version、conversion_no、live_room_id、visitor_id、lead_id、conversion_stage、conversion_payload | uk_conversion_no、idx_room_stage |
DDL 草案
live_provider_configLiveProviderConfig
CREATE TABLE `live_provider_config` (
`id` BIGINT NOT NULL COMMENT '主键,雪花或号段生成,禁止复用;数据级别:普通',
`tenant_id` BIGINT NOT NULL COMMENT '集团/租户隔离字段,所有查询必须带租户上下文;数据级别:普通',
`org_id` BIGINT NULL COMMENT '所属组织,集团级或公共配置为空;数据级别:普通',
`campus_id` BIGINT NULL COMMENT '所属校区,跨校区或总部级数据为空;数据级别:普通',
`created_by` BIGINT NOT NULL COMMENT '创建人账号 ID;数据级别:普通',
`created_at` DATETIME NOT NULL COMMENT '创建时间;数据级别:普通',
`updated_by` BIGINT NULL COMMENT '最后更新人账号 ID;数据级别:普通',
`updated_at` DATETIME NULL COMMENT '最后更新时间;数据级别:普通',
`is_deleted` TINYINT NOT NULL DEFAULT 0 COMMENT '是否已删除,0 未删除,1 已删除;数据级别:普通',
`deleted_at` DATETIME NULL COMMENT '删除时间,未删除为空;数据级别:普通',
`deleted_by` BIGINT NULL COMMENT '删除人账号 ID,未删除为空;数据级别:普通',
`version` INT NOT NULL DEFAULT 1 COMMENT '乐观锁版本号,写操作必须校验;数据级别:普通',
`provider_code` VARCHAR(32) NOT NULL COMMENT 'ALIYUN/TENCENT/QINIU;数据级别:普通',
`provider_name` VARCHAR(128) NOT NULL COMMENT '供应商名称;数据级别:普通',
`app_id` VARCHAR(128) NOT NULL COMMENT '供应商应用 ID;数据级别:普通',
`secret_ref` VARCHAR(128) NOT NULL COMMENT '密钥引用,密钥中心加密存储;数据级别:高敏',
`domain_config` JSON NOT NULL COMMENT '推流、播流、回调域名配置;数据级别:普通',
`storage_config` JSON NOT NULL COMMENT '录制存储位置配置;数据级别:普通',
`enabled` TINYINT NOT NULL COMMENT '是否为当前启用供应商;数据级别:普通',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_provider_code` (`provider_code`),
KEY `idx_enabled` (`enabled`),
KEY `idx_tenant_deleted` (`tenant_id`, `is_deleted`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='LiveProviderConfig:直播供应商配置';
live_roomLiveRoom
CREATE TABLE `live_room` (
`id` BIGINT NOT NULL COMMENT '主键,雪花或号段生成,禁止复用;数据级别:普通',
`tenant_id` BIGINT NOT NULL COMMENT '集团/租户隔离字段,所有查询必须带租户上下文;数据级别:普通',
`org_id` BIGINT NULL COMMENT '所属组织,集团级或公共配置为空;数据级别:普通',
`campus_id` BIGINT NULL COMMENT '所属校区,跨校区或总部级数据为空;数据级别:普通',
`created_by` BIGINT NOT NULL COMMENT '创建人账号 ID;数据级别:普通',
`created_at` DATETIME NOT NULL COMMENT '创建时间;数据级别:普通',
`updated_by` BIGINT NULL COMMENT '最后更新人账号 ID;数据级别:普通',
`updated_at` DATETIME NULL COMMENT '最后更新时间;数据级别:普通',
`is_deleted` TINYINT NOT NULL DEFAULT 0 COMMENT '是否已删除,0 未删除,1 已删除;数据级别:普通',
`deleted_at` DATETIME NULL COMMENT '删除时间,未删除为空;数据级别:普通',
`deleted_by` BIGINT NULL COMMENT '删除人账号 ID,未删除为空;数据级别:普通',
`version` INT NOT NULL DEFAULT 1 COMMENT '乐观锁版本号,写操作必须校验;数据级别:普通',
`room_no` VARCHAR(64) NOT NULL COMMENT '直播间编号,唯一;数据级别:普通',
`live_type` VARCHAR(32) NOT NULL COMMENT '教学直播/活动直播/集团会议直播;数据级别:普通',
`provider_code` VARCHAR(32) NOT NULL COMMENT '启用供应商;数据级别:普通',
`biz_type` VARCHAR(64) NOT NULL COMMENT '绑定业务类型;数据级别:普通',
`biz_id` BIGINT NOT NULL COMMENT '绑定业务 ID;数据级别:普通',
`start_at` DATETIME NULL COMMENT '计划开始时间;数据级别:普通',
`end_at` DATETIME NULL COMMENT '计划结束时间;数据级别:普通',
`room_status` VARCHAR(32) NOT NULL COMMENT '待开播/直播中/已结束/异常;数据级别:普通',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_room_no` (`room_no`),
KEY `idx_biz_status` (`biz_type`, `room_status`),
KEY `idx_tenant_deleted` (`tenant_id`, `is_deleted`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='LiveRoom:直播间';
live_participantLiveSession/LiveAttendance
CREATE TABLE `live_participant` (
`id` BIGINT NOT NULL COMMENT '主键,雪花或号段生成,禁止复用;数据级别:普通',
`tenant_id` BIGINT NOT NULL COMMENT '集团/租户隔离字段,所有查询必须带租户上下文;数据级别:普通',
`org_id` BIGINT NULL COMMENT '所属组织,集团级或公共配置为空;数据级别:普通',
`campus_id` BIGINT NULL COMMENT '所属校区,跨校区或总部级数据为空;数据级别:普通',
`created_by` BIGINT NOT NULL COMMENT '创建人账号 ID;数据级别:普通',
`created_at` DATETIME NOT NULL COMMENT '创建时间;数据级别:普通',
`updated_by` BIGINT NULL COMMENT '最后更新人账号 ID;数据级别:普通',
`updated_at` DATETIME NULL COMMENT '最后更新时间;数据级别:普通',
`is_deleted` TINYINT NOT NULL DEFAULT 0 COMMENT '是否已删除,0 未删除,1 已删除;数据级别:普通',
`deleted_at` DATETIME NULL COMMENT '删除时间,未删除为空;数据级别:普通',
`deleted_by` BIGINT NULL COMMENT '删除人账号 ID,未删除为空;数据级别:普通',
`version` INT NOT NULL DEFAULT 1 COMMENT '乐观锁版本号,写操作必须校验;数据级别:普通',
`live_room_id` BIGINT NOT NULL COMMENT '直播间 ID;数据级别:普通',
`user_id` BIGINT NOT NULL COMMENT '用户 ID;数据级别:普通',
`participant_type` VARCHAR(32) NOT NULL COMMENT '学员/教师/员工/家长/访客;数据级别:普通',
`join_status` VARCHAR(32) NOT NULL COMMENT '未进入/观看中/已离开/掉线;数据级别:普通',
`watch_duration` INT NOT NULL COMMENT '观看时长秒数;数据级别:普通',
`sign_status` VARCHAR(32) NULL COMMENT '签到状态;数据级别:普通',
`last_heartbeat_at` DATETIME NULL COMMENT '最近心跳;数据级别:普通',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_room_user` (`live_room_id`, `user_id`),
KEY `idx_room_status` (`live_room_id`, `join_status`),
KEY `idx_tenant_deleted` (`tenant_id`, `is_deleted`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='LiveSession/LiveAttendance:直播观看、签到和时长';
live_interaction_eventLiveInteraction
CREATE TABLE `live_interaction_event` (
`id` BIGINT NOT NULL COMMENT '主键,雪花或号段生成,禁止复用;数据级别:普通',
`tenant_id` BIGINT NOT NULL COMMENT '集团/租户隔离字段,所有查询必须带租户上下文;数据级别:普通',
`org_id` BIGINT NULL COMMENT '所属组织,集团级或公共配置为空;数据级别:普通',
`campus_id` BIGINT NULL COMMENT '所属校区,跨校区或总部级数据为空;数据级别:普通',
`created_by` BIGINT NOT NULL COMMENT '创建人账号 ID;数据级别:普通',
`created_at` DATETIME NOT NULL COMMENT '创建时间;数据级别:普通',
`updated_by` BIGINT NULL COMMENT '最后更新人账号 ID;数据级别:普通',
`updated_at` DATETIME NULL COMMENT '最后更新时间;数据级别:普通',
`is_deleted` TINYINT NOT NULL DEFAULT 0 COMMENT '是否已删除,0 未删除,1 已删除;数据级别:普通',
`deleted_at` DATETIME NULL COMMENT '删除时间,未删除为空;数据级别:普通',
`deleted_by` BIGINT NULL COMMENT '删除人账号 ID,未删除为空;数据级别:普通',
`version` INT NOT NULL DEFAULT 1 COMMENT '乐观锁版本号,写操作必须校验;数据级别:普通',
`live_room_id` BIGINT NOT NULL COMMENT '直播间 ID;数据级别:普通',
`user_id` BIGINT NULL COMMENT '用户 ID;数据级别:普通',
`interaction_type` VARCHAR(32) NOT NULL COMMENT '评论/答题/点赞/签到/投票;数据级别:普通',
`event_payload` JSON NOT NULL COMMENT '互动数据;数据级别:普通',
`client_event_id` VARCHAR(128) NOT NULL COMMENT '客户端事件 ID,用于幂等;数据级别:普通',
`event_time` DATETIME NOT NULL COMMENT '事件时间;数据级别:普通',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_client_event` (`client_event_id`, `event_payload`),
KEY `idx_room_time` (`live_room_id`, `event_time`),
KEY `idx_tenant_deleted` (`tenant_id`, `is_deleted`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='LiveInteraction:直播互动、答题和评论事件';
live_mic_requestLiveMicRequest
CREATE TABLE `live_mic_request` (
`id` BIGINT NOT NULL COMMENT '主键,雪花或号段生成,禁止复用;数据级别:普通',
`tenant_id` BIGINT NOT NULL COMMENT '集团/租户隔离字段,所有查询必须带租户上下文;数据级别:普通',
`org_id` BIGINT NULL COMMENT '所属组织,集团级或公共配置为空;数据级别:普通',
`campus_id` BIGINT NULL COMMENT '所属校区,跨校区或总部级数据为空;数据级别:普通',
`created_by` BIGINT NOT NULL COMMENT '创建人账号 ID;数据级别:普通',
`created_at` DATETIME NOT NULL COMMENT '创建时间;数据级别:普通',
`updated_by` BIGINT NULL COMMENT '最后更新人账号 ID;数据级别:普通',
`updated_at` DATETIME NULL COMMENT '最后更新时间;数据级别:普通',
`is_deleted` TINYINT NOT NULL DEFAULT 0 COMMENT '是否已删除,0 未删除,1 已删除;数据级别:普通',
`deleted_at` DATETIME NULL COMMENT '删除时间,未删除为空;数据级别:普通',
`deleted_by` BIGINT NULL COMMENT '删除人账号 ID,未删除为空;数据级别:普通',
`version` INT NOT NULL DEFAULT 1 COMMENT '乐观锁版本号,写操作必须校验;数据级别:普通',
`live_room_id` BIGINT NOT NULL COMMENT '直播间 ID;数据级别:普通',
`requester_id` BIGINT NOT NULL COMMENT '申请人 ID;数据级别:普通',
`request_status` VARCHAR(32) NOT NULL COMMENT '排队中/已邀请/已上麦/已拒绝/已超时/已取消;数据级别:普通',
`queue_no` INT NULL COMMENT '队列序号;数据级别:普通',
`seat_no` INT NULL COMMENT '座席号;数据级别:普通',
`invite_expire_at` DATETIME NULL COMMENT '邀请过期时间;数据级别:普通',
`device_check_result` JSON NULL COMMENT '设备检测结果;数据级别:普通',
PRIMARY KEY (`id`),
KEY `idx_room_status_queue` (`live_room_id`, `request_status`, `queue_no`),
KEY `idx_requester_active` (`requester_id`),
KEY `idx_tenant_deleted` (`tenant_id`, `is_deleted`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='LiveMicRequest:举手上麦请求';
live_mic_seatLiveMicSeat
CREATE TABLE `live_mic_seat` (
`id` BIGINT NOT NULL COMMENT '主键,雪花或号段生成,禁止复用;数据级别:普通',
`tenant_id` BIGINT NOT NULL COMMENT '集团/租户隔离字段,所有查询必须带租户上下文;数据级别:普通',
`org_id` BIGINT NULL COMMENT '所属组织,集团级或公共配置为空;数据级别:普通',
`campus_id` BIGINT NULL COMMENT '所属校区,跨校区或总部级数据为空;数据级别:普通',
`created_by` BIGINT NOT NULL COMMENT '创建人账号 ID;数据级别:普通',
`created_at` DATETIME NOT NULL COMMENT '创建时间;数据级别:普通',
`updated_by` BIGINT NULL COMMENT '最后更新人账号 ID;数据级别:普通',
`updated_at` DATETIME NULL COMMENT '最后更新时间;数据级别:普通',
`is_deleted` TINYINT NOT NULL DEFAULT 0 COMMENT '是否已删除,0 未删除,1 已删除;数据级别:普通',
`deleted_at` DATETIME NULL COMMENT '删除时间,未删除为空;数据级别:普通',
`deleted_by` BIGINT NULL COMMENT '删除人账号 ID,未删除为空;数据级别:普通',
`version` INT NOT NULL DEFAULT 1 COMMENT '乐观锁版本号,写操作必须校验;数据级别:普通',
`live_room_id` BIGINT NOT NULL COMMENT '直播间 ID;数据级别:普通',
`seat_no` INT NOT NULL COMMENT '座席号;数据级别:普通',
`participant_id` BIGINT NULL COMMENT '上麦参与人 ID;数据级别:普通',
`seat_status` VARCHAR(32) NOT NULL COMMENT '空闲/邀请中/使用中/异常;数据级别:普通',
`muted` TINYINT NOT NULL COMMENT '是否静音;数据级别:普通',
`provider_session_id` VARCHAR(128) NULL COMMENT '供应商会话 ID;数据级别:普通',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_room_seat` (`live_room_id`, `seat_no`),
KEY `idx_room_status` (`live_room_id`, `seat_status`),
KEY `idx_tenant_deleted` (`tenant_id`, `is_deleted`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='LiveMicSeat:连麦座席管理';
live_recording_fileLiveRecording
CREATE TABLE `live_recording_file` (
`id` BIGINT NOT NULL COMMENT '主键,雪花或号段生成,禁止复用;数据级别:普通',
`tenant_id` BIGINT NOT NULL COMMENT '集团/租户隔离字段,所有查询必须带租户上下文;数据级别:普通',
`org_id` BIGINT NULL COMMENT '所属组织,集团级或公共配置为空;数据级别:普通',
`campus_id` BIGINT NULL COMMENT '所属校区,跨校区或总部级数据为空;数据级别:普通',
`created_by` BIGINT NOT NULL COMMENT '创建人账号 ID;数据级别:普通',
`created_at` DATETIME NOT NULL COMMENT '创建时间;数据级别:普通',
`updated_by` BIGINT NULL COMMENT '最后更新人账号 ID;数据级别:普通',
`updated_at` DATETIME NULL COMMENT '最后更新时间;数据级别:普通',
`is_deleted` TINYINT NOT NULL DEFAULT 0 COMMENT '是否已删除,0 未删除,1 已删除;数据级别:普通',
`deleted_at` DATETIME NULL COMMENT '删除时间,未删除为空;数据级别:普通',
`deleted_by` BIGINT NULL COMMENT '删除人账号 ID,未删除为空;数据级别:普通',
`version` INT NOT NULL DEFAULT 1 COMMENT '乐观锁版本号,写操作必须校验;数据级别:普通',
`live_room_id` BIGINT NOT NULL COMMENT '直播间 ID;数据级别:普通',
`provider_record_id` VARCHAR(128) NULL COMMENT '供应商录制 ID;数据级别:普通',
`recording_status` VARCHAR(32) NOT NULL COMMENT '录制中/转码中/可播放/失败/已过期;数据级别:普通',
`replay_url` VARCHAR(512) NULL COMMENT '回放地址;数据级别:普通',
`storage_location` VARCHAR(512) NULL COMMENT '供应商 OSS/COS/Kodo 存储位置;数据级别:普通',
`duration` INT NULL COMMENT '时长秒数;数据级别:普通',
`retention_until` DATETIME NULL COMMENT '保留到期时间;数据级别:普通',
PRIMARY KEY (`id`),
KEY `idx_room_status` (`live_room_id`, `recording_status`),
KEY `idx_retention` (`retention_until`),
KEY `idx_tenant_deleted` (`tenant_id`, `is_deleted`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='LiveRecording:直播录制和回放文件';
live_replay_policyReplayPublishPolicy/ReplayAccess
CREATE TABLE `live_replay_policy` (
`id` BIGINT NOT NULL COMMENT '主键,雪花或号段生成,禁止复用;数据级别:普通',
`tenant_id` BIGINT NOT NULL COMMENT '集团/租户隔离字段,所有查询必须带租户上下文;数据级别:普通',
`org_id` BIGINT NULL COMMENT '所属组织,集团级或公共配置为空;数据级别:普通',
`campus_id` BIGINT NULL COMMENT '所属校区,跨校区或总部级数据为空;数据级别:普通',
`created_by` BIGINT NOT NULL COMMENT '创建人账号 ID;数据级别:普通',
`created_at` DATETIME NOT NULL COMMENT '创建时间;数据级别:普通',
`updated_by` BIGINT NULL COMMENT '最后更新人账号 ID;数据级别:普通',
`updated_at` DATETIME NULL COMMENT '最后更新时间;数据级别:普通',
`is_deleted` TINYINT NOT NULL DEFAULT 0 COMMENT '是否已删除,0 未删除,1 已删除;数据级别:普通',
`deleted_at` DATETIME NULL COMMENT '删除时间,未删除为空;数据级别:普通',
`deleted_by` BIGINT NULL COMMENT '删除人账号 ID,未删除为空;数据级别:普通',
`version` INT NOT NULL DEFAULT 1 COMMENT '乐观锁版本号,写操作必须校验;数据级别:普通',
`policy_no` VARCHAR(64) NOT NULL COMMENT '策略编号,唯一;数据级别:普通',
`live_room_id` BIGINT NOT NULL COMMENT '直播间 ID;数据级别:普通',
`publish_scope` JSON NOT NULL COMMENT '可见范围;数据级别:普通',
`access_rule` JSON NOT NULL COMMENT '有效期、次数、身份限制;数据级别:普通',
`publish_status` VARCHAR(32) NOT NULL COMMENT '未发布/已发布/已下线;数据级别:普通',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_policy_no` (`policy_no`),
KEY `idx_room_status` (`live_room_id`, `publish_status`),
KEY `idx_tenant_deleted` (`tenant_id`, `is_deleted`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='ReplayPublishPolicy/ReplayAccess:回放发布和访问策略';
live_public_conversionPublicLiveConversion
CREATE TABLE `live_public_conversion` (
`id` BIGINT NOT NULL COMMENT '主键,雪花或号段生成,禁止复用;数据级别:普通',
`tenant_id` BIGINT NOT NULL COMMENT '集团/租户隔离字段,所有查询必须带租户上下文;数据级别:普通',
`org_id` BIGINT NULL COMMENT '所属组织,集团级或公共配置为空;数据级别:普通',
`campus_id` BIGINT NULL COMMENT '所属校区,跨校区或总部级数据为空;数据级别:普通',
`created_by` BIGINT NOT NULL COMMENT '创建人账号 ID;数据级别:普通',
`created_at` DATETIME NOT NULL COMMENT '创建时间;数据级别:普通',
`updated_by` BIGINT NULL COMMENT '最后更新人账号 ID;数据级别:普通',
`updated_at` DATETIME NULL COMMENT '最后更新时间;数据级别:普通',
`is_deleted` TINYINT NOT NULL DEFAULT 0 COMMENT '是否已删除,0 未删除,1 已删除;数据级别:普通',
`deleted_at` DATETIME NULL COMMENT '删除时间,未删除为空;数据级别:普通',
`deleted_by` BIGINT NULL COMMENT '删除人账号 ID,未删除为空;数据级别:普通',
`version` INT NOT NULL DEFAULT 1 COMMENT '乐观锁版本号,写操作必须校验;数据级别:普通',
`conversion_no` VARCHAR(64) NOT NULL COMMENT '转化编号,唯一;数据级别:普通',
`live_room_id` BIGINT NOT NULL COMMENT '直播间 ID;数据级别:普通',
`visitor_id` VARCHAR(128) NULL COMMENT '访客 ID;数据级别:普通',
`lead_id` BIGINT NULL COMMENT '生成线索 ID;数据级别:普通',
`conversion_stage` VARCHAR(32) NOT NULL COMMENT '观看/留资/邀约/转化;数据级别:普通',
`conversion_payload` JSON NULL COMMENT '转化明细;数据级别:普通',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_conversion_no` (`conversion_no`),
KEY `idx_room_stage` (`live_room_id`, `conversion_stage`),
KEY `idx_tenant_deleted` (`tenant_id`, `is_deleted`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='PublicLiveConversion:公开课直播转化线索';
16 · 异常、指标、测试与初始化
保证模块上线后可运营、可追踪、可验收
测试要覆盖主流程、异常流、权限流、接口失败和数据一致性。异常状态
指标埋点
测试用例
| 编号 | 场景 | 前置 | 步骤 | 预期 | 优先级 |
|---|---|---|---|---|---|
| TC-LIVE-001 | 教学直播完整闭环 | 已创建课程、班级、课次、学员和供应商配置 | 教务创建直播课,教师开播,学员进入互动,结束后生成回放 | 签到、课消、学习档案、回放和统计均正确 | 高 |
| TC-LIVE-002 | 招生公开课转化闭环 | 已创建营销活动、活码、报名表单和顾问分配规则 | 家长报名公开课并观看互动,系统生成线索和跟进任务 | 渠道归因、观看行为、CRM 线索和转化看板正确 | 高 |
| TC-LIVE-003 | 集团会议直播闭环 | 已配置会议范围和员工账号 | 总部发布会议直播,员工签到观看,会议结束后归档纪要任务 | 参会率、回放、资料归档和员工培训记录正确 | 高 |
| TC-LIVE-004 | 供应商回调异常 | 直播供应商回调签名错误或重复回调 | 模拟阿里云/腾讯云/七牛云回调失败、重复、延迟 | 系统验签拦截、幂等去重、失败重试和告警记录正确 | 高 |
| TC-LIVE-005 | 直播回放权限 | 直播已结束且回放生成 | 未授权学员、非参会员工、跨校区账号访问回放 | 系统拒绝访问并记录审计,授权用户可正常播放 | 中 |
| TC-LIVE-006 | 直播供应商启用策略 | 阿里云、腾讯云、七牛云均已配置但仅启用一家 | 分别创建教学直播、公开课直播和集团会议直播 | 三类直播均使用启用供应商;切换供应商需审批并通过连通性校验;录制文件落到当前供应商配置的 OSS/COS/Kodo 存储位置 | 高 |
| TC-LIVE-MIC-001 | 学员举手教师同意上麦 | 直播间已开播且连麦策略允许学员举手 | 学员举手,教师端查看队列并同意上麦,学员完成设备检测进入连麦 | 队列状态 2 秒内同步;邀请倒计时默认 30 秒;上麦后教师端座席状态正确 | 高 |
| TC-LIVE-MIC-002 | 教师拒绝/下麦/静音控制 | 学员已举手或已上麦 | 教师拒绝举手、静音、解除静音、下麦和清空队列 | 学员端收到明确状态和原因;座席释放;操作 100% 写入审计和互动事件 | 高 |
| TC-LIVE-MIC-003 | 连麦异常与供应商失败 | 直播供应商返回连麦失败或学员麦克风未授权 | 学员接受邀请但设备检测失败或供应商连接失败 | 系统提示修复指引;请求进入连接失败状态;教师端可重新邀请或关闭请求 | 高 |
| TC-LIVE-REPLAY-001 | 回放发布下架权限 | 直播回放已生成 | 按班级发布回放,未授权账号访问,随后下架回放 | 授权账号可访问;未授权账号拒绝并审计;下架后所有访问返回已下架状态 | 高 |
| TC-LIVE-PUBLIC-001 | 公开课二次转化 | 公开课直播已结束且存在观看线索 | 根据观看时长、互动和回放补看生成意向标签和顾问跟进任务 | 高意向任务分配成功;未观看线索进入唤醒;转化结果可回写 CRM | 中 |
| TC-LIVE-REPLAY-REPAIR-001 | 回放人工补传与替换 | 直播录制失败或转码失败 | 人工上传回放文件,审核通过并替换发布,通知受影响学员 | 回放版本递增;旧访问日志保留;补传成功率和通知到达可统计 | 高 |
| TC-LIVE-ENH-001 | 供应商配置交付闭环验收 | 直播供应商配置、直播间创建相关基础数据、权限、审批流、消息模板和接口配置已初始化 | 按补齐供应商配置、启停、域名、回调密钥、录制存储位置和健康检查。执行前端提交、后端处理、状态流转、异常重试和消息触达 | 后台启用哪家供应商,教学/活动/会议直播均使用同一套能力。;同时产生审计日志、指标埋点和必要的补偿任务 | 高 |
| TC-LIVE-ENH-002 | 互动闭环交付闭环验收 | 学员直播间、教师直播控制台相关基础数据、权限、审批流、消息模板和接口配置已初始化 | 按补齐教师端查看队列、同意、拒绝、邀请超时、静音、下麦、清空队列和座席释放。执行前端提交、后端处理、状态流转、异常重试和消息触达 | 学员端每个连麦状态都能在教师端找到对应处理动作。;同时产生审计日志、指标埋点和必要的补偿任务 | 高 |
| TC-LIVE-ENH-003 | 回放归档交付闭环验收 | 回放管理、补传页、知识库归档相关基础数据、权限、审批流、消息模板和接口配置已初始化 | 按补齐录制回调、转码失败、人工补传、发布范围、过期策略、学习记录和会议归档。执行前端提交、后端处理、状态流转、异常重试和消息触达 | 回放异常有补传入口,发布后学员/员工访问记录可追踪。;同时产生审计日志、指标埋点和必要的补偿任务 | 高 |
上线初始化
| 初始化项 | 动作 | 数据 | 验收 |
|---|---|---|---|
| 直播供应商基础配置 | 初始化阿里云、腾讯云、七牛云直播框架的租户级配置 | providerCode、appId、appSecret、推流域名、播放域名、回调地址、录制策略、转码模板、对象存储桶/目录 | 三家供应商均可完成连通性校验和测试回调,同一租户仅启用一个供应商 |
| 直播角色与权限 | 初始化直播管理员、教务直播运营、教师主播、助教、学员、员工参会、市场运营等权限 | 菜单、按钮、数据范围、导出审批、回放权限 | 各角色只能访问授权直播房间和回放 |
| 直播消息模板 | 初始化开播提醒、迟到缺席、公开课报名、会议通知、回放生成等模板 | 模板变量、渠道、发送时间、失败重试策略 | 测试消息可正常发送并记录送达结果 |
| 直播数据口径 | 初始化到课、完播、互动、回放、转化、会议参会等指标 | 指标编码、公式、数据源、刷新频率、展示看板 | 指标在数据驾驶舱中可查询并下钻明细 |
| 直播连麦管理策略 | 初始化最大上麦人数、邀请超时、重复举手策略、教师/助教权限、静音/下麦动作、供应商错误码映射和消息模板 | maxMicSeats、inviteTimeoutSeconds=30、allowStudentCancel、teacherActionScope、providerErrorMapping | 教师端可管理队列,学员端可获得实时状态反馈 |
| 供应商配置交付配置 | 初始化补齐供应商配置、启停、域名、回调密钥、录制存储位置和健康检查。所需的页面入口、功能开关、审批流、消息模板、状态枚举、异常原因和角色权限 | 直播供应商配置、直播间创建 | 后台启用哪家供应商,教学/活动/会议直播均使用同一套能力。 |
| 互动闭环交付配置 | 初始化补齐教师端查看队列、同意、拒绝、邀请超时、静音、下麦、清空队列和座席释放。所需的页面入口、功能开关、审批流、消息模板、状态枚举、异常原因和角色权限 | 学员直播间、教师直播控制台 | 学员端每个连麦状态都能在教师端找到对应处理动作。 |
| 回放归档交付配置 | 初始化补齐录制回调、转码失败、人工补传、发布范围、过期策略、学习记录和会议归档。所需的页面入口、功能开关、审批流、消息模板、状态枚举、异常原因和角色权限 | 回放管理、补传页、知识库归档 | 回放异常有补传入口,发布后学员/员工访问记录可追踪。 |