Appearance
智萃课程发布
POST /api/admin/course/essence/{courseId}/publish
权限 ADMIN_COURSE_MANAGE
校验发布参数后,触发智萃发布编排,并写入发布范围、加入条件、字幕关联与课后考试配置。
路径参数
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| courseId | number | 是 | 课程 ID |
请求体
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
| language | string | 是 | 发布语言,如 zh_CN、en,需在支持列表中且已翻译 |
| afterCourseExam | boolean | 是 | 是否自动加入课后固定卷考试;传 false 表示不加入 |
| subtitleFileId | number | 否 | 字幕文件 ID(upload_files.id),用于关联视频字幕 |
| showable | boolean | 是 | 发布范围:false=仅后台可见,true=指定范围 |
| publishOrg | array | 条件 | 发布范围-部门 orgCode 列表,showable=true 时必填(部门为空将导致无人可见) |
| publishPost | array | 条件 | 发布范围-岗位 ID 列表 |
| publishUserGroup | array | 条件 | 发布范围-用户组 ID 列表 |
| publishPostRank | array | 条件 | 发布范围-职级 ID 列表,职级插件未安装时自动忽略 |
| conditionalAccess | boolean | 是 | 是否开启加入条件 |
| accessOrg | array | 条件 | 加入条件-部门 orgCode 列表,conditionalAccess=true 时必填(部门为空将导致无人能加入) |
| accessPost | array | 条件 | 加入条件-岗位 ID 列表 |
| accessUserGroup | array | 条件 | 加入条件-用户组 ID 列表 |
| accessPostRank | array | 条件 | 加入条件-职级 ID 列表,职级插件未安装时自动忽略 |
| hireDateType | string | 条件 | 入职日期类型:greatThanOrEqual/lessThanOrEqual/before/after/between |
| days | number | 条件 | 入职日期-天数,hireDateType 为 greatThanOrEqual/lessThanOrEqual 时使用 |
| date | string | 条件 | 入职日期-单个日期 YYYY-MM-DD,hireDateType 为 before/after 时使用 |
| hireDateRange | array | 条件 | 入职日期-范围 [start, end] YYYY-MM-DD,hireDateType 为 between 时使用 |
| autoAddMember | boolean | 否 | 满足条件的用户自动加入课程 |
| autoRemoveMember | boolean | 否 | 未满足条件的用户自动移出课程 |
响应
| 字段 | 类型 | 说明 |
|---|---|---|
| success | boolean | 固定为 true |
请求示例
http
POST /api/admin/course/essence/1001/publish
Authorization: Bearer <token>
Content-Type: application/jsonjson
{
"language": "zh_CN",
"showable": true,
"publishOrg": ["1.2"],
"publishPost": [],
"publishUserGroup": [],
"publishPostRank": [],
"conditionalAccess": false,
"accessOrg": [],
"accessPost": [],
"accessUserGroup": [],
"accessPostRank": [],
"afterCourseExam": false,
"subtitleFileId": null,
"autoAddMember": false,
"autoRemoveMember": false
}响应示例
json
{
"success": true
}异常
| 错误码 | HTTP | 说明 | 触发条件 |
|---|---|---|---|
COURSE_NOT_FOUND | 404 | 课程不存在 | 课程 ID 无效或已删除 |
COURSE_NOT_ESSENCE | 403 | 当前课程不是智萃课程 | 无 course_essence_file 记录 |
ESSENCE_NOT_PROCESSED | 400 | 智萃尚未完成 | essence_file.status 为 processing 或 failed |
ESSENCE_VERSION_NOT_FOUND | 404 | 指定语言版本不存在或未生成 | language 不在支持列表或未翻译 |
ESSENCE_ALREADY_PUBLISHED | 400 | 已发布,不可重复 | course_essence_file.status = published |
ESSENCE_PUBLISH_ORG_REQUIRED | 400 | 发布范围必须选择部门 | showable=true 且 publishOrg 为空 |
ESSENCE_ACCESS_ORG_REQUIRED | 400 | 加入条件必须选择部门 | conditionalAccess=true 且 accessOrg 为空 |
ESSENCE_HIRE_DATE_INVALID | 400 | 入职日期参数无效 | hireDateType 与 days/date/range 不匹配,或 date/hireDateRange 非 YYYY-MM-DD 格式 |
ORG_NOT_FOUND | 404 | 组织/部门编码无效或不存在 | publishOrg/accessOrg 中存在无法解析或校验失败的 orgCode |
MENU_PERMISSION_DENIED | 403 | 权限不足 | 无课程管理权限 |
ESSENCE_MARKER_CREATE_FAILED | 500 | 弹题创建失败 | Marker 或 QuestionMarker 写入数据库异常 |