# course section 一句话:管理课程的节(视频节与直播节),仅机构管理员;每次只操作一个节,底层先查最新目录再全量提交。双层目录课程必须用 `--chapter-id` 或 `--chapter-index` 指定所属目录。 向用户汇报前 MUST 遵循 [课程对外表达](zeyiji-course-presentation.md)。 ## 命令 ```bash # 视频节:单层目录 zeyiji-cli course section add --course-id 123 --name "第1节 Go基础" --video ./v1.mp4 --video-cover ./cover.jpg # 视频节:双层目录(按章序号或章ID 指定所属目录) zeyiji-cli course section add --course-id 123 --chapter-index 0 \ --name "1.1 环境搭建" --video ./v2.mp4 --video-cover ./cover.jpg --free-flag 2 # 视频节:多个课件(英文逗号分隔,最多 5 个) + 关联练习 zeyiji-cli course section add --course-id 123 --name "1.2 基础语法" --video ./v3.mp4 \ --video-cover ./cover.jpg --courseware "./a.pdf,./b.docx" --edu-reply-id 456 # 直播节(封面/标题/讲师/起止时间必填) zeyiji-cli course section add-live --course-id 123 --name "Go直播课" \ --cover-image ./cover.jpg --teacher "张老师,李老师" \ --start-time 1722300000000 --end-time 1722307200000 # 编辑视频节 / 直播节 zeyiji-cli course section edit --course-id 123 --section-id 789 --name "新名称" zeyiji-cli course section edit-live --course-id 123 --section-id 789 \ --name "新标题" --teacher "王老师" --start-time 1722300000000 --end-time 1722307200000 # 删除节(按 ID 或按序号;双层目录按序号时需带章定位) zeyiji-cli course section delete --course-id 123 --section-id 789 zeyiji-cli course section delete --course-id 123 --chapter-index 0 --index 1 ``` ## 参数要点 | 参数 | 说明 | |---|---| | `--course-id` | 必填,课程 ID | | `--section-id` / `--index` | 编辑/删除时二选一;`--index` 从 0 开始(列表位置,= detail 中该节序号 - 1) | | `--chapter-id` / `--chapter-index` | 双层目录课程定位所属章,二选一;`--chapter-index` 从 0 开始。add/add-live 在双层目录下必填,edit/edit-live/delete 按 `--index` 定位时必填 | | `--video` | 视频本地路径,add 必填(≤4GB);视频时长由 CLI 自动识别(仅 MP4/MOV),无需传入 | | `--video-cover` | 视频封面本地路径,add 必填(≤10MB) | | `--cover-image` | 直播封面本地路径,add-live 必填(≤10MB) | | `--courseware` | 课件本地路径,英文逗号分隔、最多 5 个;课件名称自动取文件名 | | `--edu-reply-id` | 关联练习 ID;edit/edit-live 传 `0` 表示清除关联 | | `--free-flag` | 是否免费试看:1 否(add 默认)/ 2 是 | | `--lecturer-name` / `--lecturer-unit` | 视频节讲师名称 / 单位 | | `--teacher` | 直播节讲师,多个用英文逗号分隔(add-live 必填) | | `--live-platform-type` | 直播流平台类型:1 腾讯云 / 2 平台(默认 2) | | `--video-type` | 是否上架直播回放:1 是(默认 1)/ 2 否 | | `--notice` | 直播公告 | | `--start-time` / `--end-time` | 直播起止时间,毫秒时间戳;结束必须晚于开始 | | `--sort` | 不传默认追加到末尾 | ## 定位规则 - 单层目录:`--section-id` 或 `--index`(列表位置,0 起)二选一。 - 双层目录:优先 `--section-id`;用 `--index` 时必须同时给 `--chapter-id` 或 `--chapter-index`。 - 实际 ID/序号先用 [`course detail`](zeyiji-course-detail.md) 查看(表格模式序号从 1 显示,传给 `--index` 时减 1)。 ## 对外结果 - 视频节:说「已添加 / 已更新 / 已删除第 N 节《节名称》」,只补充用户关心的封面、课件、讲师或免费试看状态。 - 直播节:说「已添加 / 已更新 / 已删除直播节《节名称》」,补充直播流平台、回放和免费试看等业务文案。 - 用户没有询问时,不播报视频地址、课件地址、空值或内部字段;`freeFlag` 必须翻译为「免费试看:是 / 否」。 ## 常见错误 | 现象 | 处理 | |---|---| | 课程ID不能为空 / 节名称不能为空 | 补 `--course-id` / `--name` | | 视频文件不能为空 / 视频封面不能为空 | add 必填 `--video` / `--video-cover` | | 该课程为双层目录,请通过 `--chapter-id` 或 `--chapter-index` 指定节所属的目录 | 补章定位参数 | | 该课程为双层目录,按序号定位节时请通过 `--chapter-id` 或 `--chapter-index` 指定所属目录 | 同上 | | 请通过 --section-id 或 --index 指定要编辑/删除的节 | 补定位参数 | | 未找到ID为 x 的节 | 用 `course detail` 核对实际 ID | | 节序号超出范围: x,该目录当前共 N 个节 | 序号从 0 起核对 | | 免费试看标识不合法 | 1 否(收费)/ 2 是(免费试看) | | 课件文件最多支持5个 | 拆分或合并课件 | | 目标节不是直播章节(无关联的直播ID) | 用 `section edit` 编辑视频节 | | 直播结束时间必须晚于开始时间 | 校正时间戳 | | 节视频大小超出限制 / 视频封面大小超出限制 / 直播封面大小超出限制 | ≤4GB / ≤10MB / ≤10MB | ## 选填项询问 1. 收集完视频节必填项(名称、视频、视频封面)后,**一次性**列出选填项及默认值让用户确认:讲师(默认空)、是否免费试看(默认否)、课件(≤5 个)、关联练习(默认无)。 2. 直播节收集完封面、标题、讲师、起止时间后同样一次性列出:直播流平台(默认平台)、直播公告、是否上架回放(默认是)、是否免费试看(默认否)、课件、关联练习。 3. 关联练习 ID 用 `zeyiji-cli api GET /back/edu/page -p type=2` 查询,让用户按名称选择。 4. 不要逐项追问;用户不回复的部分按默认值执行。