养生直播管理模块 — 字段说明与原型需求描述

一、页面概述

本文档基于「运维运营管理平台」养生直播管理原型图,整理该模块的字段定义、交互逻辑及功能需求,供前后端开发参考。


⚠️
特别说明:养生直播课程为平台固定两条记录,不支持新增和删除,管理员仅可对现有记录进行编辑、启用 / 禁用操作。


二、字段清单

2.1 列表页展示字段

字段名 字段说明 类型 备注
序号 列表行号 int 固定两条记录,序号分别为 1、2
课程封面图 课程封面缩略图 图片 URL 列表内展示小图
课程名称 直播课程名称 string 列表与详情页均展示
开播时间 直播开播时间 datetime 格式:YYYY-MM-DD HH:mm;在直播课表中配置
累计预约人次 历史总预约人次 int 只读,系统自动累加
累计观看次数 历史总观看次数 int 只读,系统自动累加
可得积分 完成答题可得积分数 int 对应编辑字段「答题可得积分」
授课专家 关联的授课专家名称 string 展示专家姓名,关联 expert 表
直播状态 当前直播状态 enum tag 未开始 / 直播中 / 已结束
启用状态 课程启用 / 禁用状态 enum tag 启用(绿色)/ 禁用(红色)
操作 行内操作入口 — 详情、编辑(无新增 / 删除)

2.2 课程详情页字段(课程信息 Tab)

字段名 字段说明 类型 备注
课程名称 直播课程标题 string 展示在页头
课程封面图 课程封面展示图 图片 URL 展示单张封面图,展示在页头左侧
累计预约人数 预约该直播的总人数 int 页头展示,只读
累计观看人数 观看该直播的总人数 int 页头展示,只读
授课专家 关联的授课专家(头像 + 名称) relation 展示专家头像和姓名
开播时间 直播开始时间 datetime 格式:YYYY-MM-DD HH:mm
可答题时间 直播结束后多少分钟内可答题 int 展示格式:「直播后XX分钟」
答题可得积分 完成答题可获得积分数 int 展示格式:「XX积分」
适用人群 该直播适合的目标用户群体描述 string 多行文本展示
状态 课程当前启用状态 enum tag 启用 / 禁用
课程宣传图 课程宣传展示图,可多张 图片 URL 数组 列表展示多张缩略图
课程介绍 课程详细介绍内容 富文本 展示时渲染为 HTML

2.3 编辑页字段(课程信息)

字段名 是否必填 类型 校验规则 / 备注
课程名称 是 string 最大 128 字符,不允许为空
是否启用 是 boolean Toggle 开关,默认开启;对应字段 status
可答题时间 是 int 输入数字,单位:分钟;展示格式:「直播 输入框 分钟后」;必须 > 0
答题可得积分 是 int 输入数字,必须 ≥ 0
授课专家 是 relation 输入搜索下拉框,支持模糊搜索专家名称后下拉选择,关联 expert 表,单选
适用人群 是 string 多行文本入框,最大 500 字符
课程封面图 是 图片 URL 单张图片上传,支持 JPG / PNG,存储 OSS URL,上传后预览
课程宣传图 是 图片 URL 数组 支持多张上传,存储多个 OSS URL;建议尺寸 750×400px
课程介绍 是 富文本 富文本编辑器,支持加粗、斜体、对齐等基础格式,存储 HTML;不允许为空

三、操作说明

操作 入口 交互逻辑
详情 列表行「详情」链接 跳转详情页,展示「课程信息」和「直播课表」两个 Tab
编辑 列表行「编辑」链接 / 详情页「编辑」按钮 跳转编辑页,回显当前课程字段,修改后点击「保存」提交;点击「取消」返回列表页,数据不保存
禁用 / 启用 详情页「禁用/启用」按钮 弹出确认弹窗,确认后切换状态并刷新列表,符当前状态动态展示按钮文案;禁用后 APP 展示页不再显示该直播
观看直播 详情页「观看直播」按钮 跳转直播间连接 URL,新标签页打开观看;【产品批注】仅当该课程处于「直播中」状态时显示此按钮,其他状态下隐藏


🚫

本模块不提供「新增」和「删除」功能,课程条数固定为 2 条,仅支持编辑和启用/禁用。


四、直播课表 Tab

直播课表用于管理该课程各期开播场次,与课程主信息分层管理。

4.1 筛选 / 搜索条件

筛选项 类型 匹配方式 备注
开播时间 日期范围选择 起止区间 对应字段 start_time,格式:开始时间 ~ 结束时间
上课状态 下拉选择 精确匹配 全部 / 未开始 / 直播中 / 已结束;默认选「全部」
  • 重置:清空所有筛选条件,重新加载默认列表
  • 搜索:按当前条件查询并刷新列表,分页重置至第 1 页

4.2 Tab 头部操作按钮

  • 添加场次:新增一期直播场次,弹窗输入开播时间,保存后展示在列表。
  • 推送开播提醒:对当期未开始的场次,向已预约用户批量推送开播提醒消息(小程序 / 推送通知)。

4.3 列表展示字段

字段名 字段说明 类型 备注
序号 列表行号 int 按开播时间倒序排列
开播时间 该期直播开始时间 datetime 格式:YYYY-MM-DD HH:mm
上课状态 直播当前状态 enum tag 未开始 / 直播中 / 已结束;系统根据开播时间自动更新
预约人数 该期预约直播的人数 int 只读,系统自动累加
观看人数 该期实际观看人数 int 只读,未开始时显示"-";【产品批注】本场直播的去重观看人数,同一用户多次进入仅计 1 次
预约转化率 观看人数 / 预约人数 percent 只读,未开始时显示"-";【产品批注】公式:观看直播人数 ÷ 总预约人数
完播率 完整观看人数 / 观看人数 percent 只读,未开始时显示"-";【产品批注】公式:完整观看直播人数 ÷ 总观看人数
有效观看率 满足有效观看时长的观看人数比例 percent 只读,未开始时显示"-";【产品批注】公式:观看直播超过 10 分钟的人数 ÷ 总观看人数
答题正确数 该期答题正确的人数 int 只读,未开始时显示“-”
获得积分数 该期用户积分发放汇总 int 只读,未开始时显示“-”
操作 行内操作入口 — 按上课状态动态展示,详见下表

4.4 场次操作说明(按状态展示不同操作)

上课状态 可用操作 交互逻辑
未开始 预约记录、编辑、开播、复制、删除 「预约记录」:查看该期预约用户列表;「编辑」:修改开播时间及题目等信息;「开播」:手动提前开启直播,状态变为「直播中」;「复制」:复制本条场次并创建新记录;「删除」:弹窗确认后软删除;【产品批注】未开始状态可编辑场次信息,可提前开启直播
直播中 预约记录、观看记录、结束、详情、复制、删除 「观看记录」:查看该期实时观看用户列表;「结束」:手动结束直播,弹窗确认,确认后状态变为「已结束」;「详情」:查看该期直播数据详情;「复制」「删除」同上;【产品批注】直播中状态可手动结束直播
已结束 预约记录、观看记录、详情、删除、复制 「详情」:查看该期直播完整数据统计;「删除」:弹窗确认后软删除,删除后不影响已预约 / 观看的历史数据;「复制」:复制本期信息并创建一期新场次

4.5 场次添加 / 编辑字段

弹窗标题:添加直播场次

基本信息

字段名 是否必填 类型 备注
开始直播时间 是 datetime 日期时间选择器,格式:YYYY-MM-DD HH:mm;不允许设置过去时间
视频地址 是 string 直播间流地址,存储直播间连接 URL;对应「观看直播」按钮跳转地址
基础预约量 否 int 初始展示的预约基数;新用户预约后在此数量基础上 +1 展示;不填则默认为 0。
基础观看量 否 int 初始展示的观看基数;新用户观看后在此数量基础上 +1 展示;不填则默认为 0。

内置题目(固定 3 题,全部必填)

每期场次内置 3 道单选题,用于用户观看直播后答题获得积分。

字段名 是否必填 类型 备注
题目 1 题干 是 string 题目描述文字,最大 500 字符
题目 1 选项 A 是 string 单选项文字;右侧单选按鈕可标记为「正确答案」
题目 1 选项 B 是 string 同上
题目 1 选项 C 是 string 同上;三项中必须且仅能选择一项为正确答案
题目 2 题干 是 string 同题目 1
题目 2 选项 A / B / C 是 string 同题目 1,必须标记一个正确答案
题目 3 题干 是 string 同题目 1
题目 3 选项 A / B / C 是 string 同题目 1,必须标记一个正确答案


💡

产品批注:基础预约量 / 基础观看量为跦现字段,新建场次后展示的预约数 / 观看数从该基数起算,每新增一个真实预约 / 观看行为在实际数据上 +1。即:**展示数据 = 基础量 + 真实行为数**。


五、业务规则

  1. 固定两条:该模块最喑两条课程记录,不提供新增 / 删除入口,如页面迯错出现新增按钮应隐藏。
  2. 直播状态:直播状态(未开始 / 直播中 / 已结束)由系统根据开播时间自动切换,不需人工修改。
  3. 禁用阔读:课程被禁用后,APP 端不展示该直播入口,已预约用户不影响历史预约记录。
  4. 累计数据:累计预约人次 / 观看次数为只读字段,由业务逻辑层自动累加,后台不可手动修改。
  5. 可答题时间:限制用户必须在直播结束后指定分钟内完成答题,超时后不可答题,积分不计入。
  6. 关联专家:授课专家必选,展示专家头像和姓名;被关联的专家不允许删除。
  7. 课程宣传图:支持上传多张,在课程详情页轮播展示,在 APP 端作为宣传轮播图展示。

六、数据库字段对应

6.1 养生直播课程表(live_course)

CREATE TABLE `live_course` (
  `id`                  BIGINT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '直播课程 ID',
  `name`                VARCHAR(128)    NOT NULL COMMENT '课程名称',
  `cover`               VARCHAR(512)    DEFAULT NULL COMMENT '课程封面图 OSS URL',
  `banner_images`       JSON            DEFAULT NULL COMMENT '课程宣传图 OSS URL 列表,JSON数组',
  `expert_id`           BIGINT UNSIGNED NOT NULL COMMENT '授课专家 ID,关联 expert 表',
  `answer_delay_min`    INT UNSIGNED    NOT NULL DEFAULT 30 COMMENT '直播后多少分钟可答题(分钟)',
  `answer_score`        INT UNSIGNED    NOT NULL DEFAULT 0 COMMENT '答题可得积分',
  `target_audience`     VARCHAR(500)    DEFAULT NULL COMMENT '适用人群',
  `intro`               TEXT            DEFAULT NULL COMMENT '课程介绍(HTML富文本)',
  -- 累计数据(只读)
  `total_subscribe`     INT UNSIGNED    NOT NULL DEFAULT 0 COMMENT '累计预约人次',
  `total_views`         INT UNSIGNED    NOT NULL DEFAULT 0 COMMENT '累计观看次数',
  -- 状态
  `status`              TINYINT(1)      NOT NULL DEFAULT 1 COMMENT '启用状态:1启用 0禁用',
  -- 审计字段
  `created_at`          DATETIME        NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `created_by`          VARCHAR(64)     DEFAULT NULL COMMENT '创建人名称',
  `updated_at`          DATETIME        NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后修改时间',
  `updated_by`          VARCHAR(64)     DEFAULT NULL COMMENT '最后修改人名称',
  PRIMARY KEY (`id`),
  KEY `idx_status`     (`status`),
  KEY `idx_expert_id`  (`expert_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='养生直播课程表(固定两条)';

6.2 直播课表表(live_course_schedule)

CREATE TABLE `live_course_schedule` (
  `id`                  BIGINT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '场次 ID',
  `course_id`           BIGINT UNSIGNED NOT NULL COMMENT '关联课程 ID',
  `start_time`          DATETIME        NOT NULL COMMENT '开播时间',
  `live_url`            VARCHAR(512)    NOT NULL COMMENT '直播间视频地址',
  `base_subscribe`      INT UNSIGNED    NOT NULL DEFAULT 0 COMMENT '基础预约量(跦现),展示预约数 = 基础量 + 真实预约数',
  `base_views`          INT UNSIGNED    NOT NULL DEFAULT 0 COMMENT '基础观看量(跦现),展示观看数 = 基础量 + 真实观看数',
  `live_status`         TINYINT         NOT NULL DEFAULT 0 COMMENT '直播状态:0未开始 1直播中 2已结束',
  -- 题目 1
  `q1_stem`             VARCHAR(500)    NOT NULL COMMENT '题目1题干',
  `q1_option_a`         VARCHAR(255)    NOT NULL COMMENT '题目1选项A',
  `q1_option_b`         VARCHAR(255)    NOT NULL COMMENT '题目1选项B',
  `q1_option_c`         VARCHAR(255)    NOT NULL COMMENT '题目1选项C',
  `q1_answer`           CHAR(1)         NOT NULL COMMENT '题目1正确答案:A/B/C',
  -- 题目 2
  `q2_stem`             VARCHAR(500)    NOT NULL COMMENT '题目2题干',
  `q2_option_a`         VARCHAR(255)    NOT NULL COMMENT '题目2选项A',
  `q2_option_b`         VARCHAR(255)    NOT NULL COMMENT '题目2选项B',
  `q2_option_c`         VARCHAR(255)    NOT NULL COMMENT '题目2选项C',
  `q2_answer`           CHAR(1)         NOT NULL COMMENT '题目2正确答案:A/B/C',
  -- 题目 3
  `q3_stem`             VARCHAR(500)    NOT NULL COMMENT '题目3题干',
  `q3_option_a`         VARCHAR(255)    NOT NULL COMMENT '题目3选项A',
  `q3_option_b`         VARCHAR(255)    NOT NULL COMMENT '题目3选项B',
  `q3_option_c`         VARCHAR(255)    NOT NULL COMMENT '题目3选项C',
  `q3_answer`           CHAR(1)         NOT NULL COMMENT '题目3正确答案:A/B/C',
  -- 审计字段
  `is_deleted`          TINYINT(1)      NOT NULL DEFAULT 0 COMMENT '是否删除:1已删除 0正常',
  `created_at`          DATETIME        NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `created_by`          VARCHAR(64)     DEFAULT NULL COMMENT '创建人名称',
  `updated_at`          DATETIME        NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后修改时间',
  `updated_by`          VARCHAR(64)     DEFAULT NULL COMMENT '最后修改人名称',
  PRIMARY KEY (`id`),
  KEY `idx_course_id`  (`course_id`),
  KEY `idx_start_time` (`start_time`),
  KEY `idx_live_status` (`live_status`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='直播场次表';

七、原型图

7.1 列表页

![页面 1](/Users/mitao/Downloads/私人与共享/养生直播管理模块 — 字段说明与原型需求描述 .assets/页面 1.png)

7.2 编辑养身直播

![页面 1](/Users/mitao/Downloads/私人与共享/养生直播管理模块 — 字段说明与原型需求描述 .assets/页面 1-3990807.png)

7.3 养身直播详情

7.3.1 养身直播详情课程信息Tab

![页面 1](/Users/mitao/Downloads/私人与共享/养生直播管理模块 — 字段说明与原型需求描述 .assets/页面 1-3990866.png)

7.3.2 养身直播详情课程信息Tab

![页面 1](/Users/mitao/Downloads/私人与共享/养生直播管理模块 — 字段说明与原型需求描述 .assets/页面 1-3990907.png)

7.3.2.1 养身直播详情课程信息Tab添加直播场次

![页面 1](/Users/mitao/Downloads/私人与共享/养生直播管理模块 — 字段说明与原型需求描述 .assets/页面 1-3990929.png)