课程审核功能完整实现总结
✅ 已完成功能
1. 课程审核管理界面
文件: src/api/admin/course_review.py
功能:
- ✅ 待审核课程列表展示
- ✅ 课程详情查看(知识点、描述、元数据)
- ✅ 审核操作界面(通过/拒绝)
- ✅ 审核意见输入
- ✅ 实时刷新(30秒自动刷新)
访问路径: /admin/courses/pending
界面特点:
- 左右分栏布局(列表 + 审核面板)
- 响应式设计,支持移动端
- 与专家审核界面风格一致
2. 通知功能集成
文件: src/services/notification_service.py
新增通知类型:
- ✅
TYPE_COURSE_SUBMITTED- 课程提交审核 - ✅
TYPE_COURSE_APPROVED- 课程审核通过 - ✅
TYPE_COURSE_REJECTED- 课程审核拒绝 - ✅
TYPE_COURSE_UPDATED- 课程已更新
通知方式:
- ✅ 邮件通知
- ✅ WebSocket 实时推送
- ✅ 数据库记录
便捷方法:
- ✅
notify_course_submitted()- 提交审核通知 - ✅
notify_course_approved()- 审核通过通知 - ✅
notify_course_rejected()- 审核拒绝通知 - ✅
notify_course_updated()- 课程更新通知
3. API 集成
文件: opensource/mbe-education/backend/api/course_review_api.py
已集成通知:
- ✅ 提交审核时通知管理员
- ✅ 审核通过时通知创建者
- ✅ 审核拒绝时通知创建者
- ✅ 课程更新时通知创建者
4. 课程同步服务集成
文件: src/services/course_sync_service.py
已集成通知:
- ✅ 课程更新时通知创建者
5. 管理后台集成
文件: src/api/admin/__init__.py, src/api/admin/common.py
已添加:
- ✅ 课程审核路由注册
- ✅ 导航栏菜单项
- ✅ 移动端菜单项
🔄 完整工作流程
1. 课程生成流程
知识库更新
↓
课程同步服务自动生成课程 (status: draft)
↓
通知创建者:课程已更新
2. 提交审核流程
创建者检查课程内容
↓
提交审核 (status: pending_review)
↓
通知管理员:课程已提交审核
↓
管理员收到通知(邮件 + WebSocket)
3. 审核流程
管理员访问审核页面
↓
查看待审核课程列表
↓
选择课程,查看详情
↓
执行审核操作
├─→ 通过 → 发布 (status: published)
│ ↓
│ 通知创建者:审核通过
│
└─→ 拒绝 → 修改 (status: rejected)
↓
通知创建者:审核拒绝(含原因)
📊 通知流程
通知触发点
| 事件 | 触发时机 | 接收者 | 通知方式 |
|---|---|---|---|
| 课程提交审核 | 创建者提交审核 | 管理员 | 邮件 + WebSocket |
| 课程审核通过 | 管理员审核通过 | 创建者 | 邮件 + WebSocket |
| 课程审核拒绝 | 管理员审核拒绝 | 创建者 | 邮件 + WebSocket |
| 课程更新 | 知识库更新触发同步 | 创建者 | 邮件 + WebSocket |
通知内容
提交审核通知:
管理员您好,
课程「{course_name}」已提交审核,请及时处理。
课程ID:{course_id}
提交时间:{submitted_at}
知识点数量:{knowledge_points_count}
请访问审核页面进行审核。
审核通过通知:
尊敬的 {name},
恭喜!您的课程「{course_name}」已通过审核并发布。
课程ID:{course_id}
审核时间:{reviewed_at}
审核意见:{review_message}
课程现已对学生可见,感谢您的贡献!
审核拒绝通知:
尊敬的 {name},
很抱歉,您的课程「{course_name}」审核未通过。
课程ID:{course_id}
拒绝时间:{reviewed_at}
拒绝原因:{rejection_reason}
审核意见:{review_message}
请根据审核意见修改后重新提交审核。
🎯 使用指南
对于管理员
访问审核页面
http://localhost:8000/admin/courses/pending查看待审核课程
- 页面自动加载待审核课程列表
- 点击课程查看详细信息
执行审核
- 检查课程内容质量
- 填写审核意见(可选)
- 点击"审核通过"或"审核拒绝"
接收通知
- 新课程提交时自动收到通知
- 邮件和 WebSocket 实时推送
对于创建者
提交审核
POST /api/courses/{course_id}/submit-review { "message": "课程已准备就绪,请审核" }接收审核结果
- 审核通过:收到邮件和 WebSocket 通知
- 审核拒绝:收到拒绝原因和修改建议
修改后重新提交
- 根据审核意见修改课程
- 重新提交审核
🔧 配置选项
通知配置
在 src/services/notification_service.py 中:
# 发送邮件
send_email: bool = True
# 保存到数据库
save_to_db: bool = True
# WebSocket 推送
push_websocket: bool = True
自动刷新
审核页面每30秒自动刷新:
setInterval(loadPendingCourses, 30000);
📝 API 端点总结
课程审核 API
| 端点 | 方法 | 说明 |
|---|---|---|
/api/courses/{course_id}/submit-review |
POST | 提交审核 |
/api/courses/{course_id}/approve |
POST | 审核通过 |
/api/courses/{course_id}/reject |
POST | 审核拒绝 |
/api/courses/pending-review |
GET | 获取待审核列表 |
管理界面
| 路径 | 说明 |
|---|---|
/admin/courses/pending |
课程审核管理页面 |
✅ 测试建议
1. 功能测试
- 提交审核功能
- 审核通过功能
- 审核拒绝功能
- 通知发送功能
- 页面刷新功能
2. 通知测试
- 邮件通知发送
- WebSocket 推送
- 数据库记录
- 通知内容正确性
3. 界面测试
- 课程列表显示
- 课程详情显示
- 审核操作响应
- 移动端适配
🚀 未来扩展
阶段1:批量审核
- 支持批量审核多个课程
- 批量通过/拒绝
阶段2:审核历史
- 查看审核历史记录
- 审核统计报表
阶段3:自动审核规则
- 基于规则的自动审核
- 高质量课程自动通过
阶段4:审核工作流
- 多级审核
- 审核委派
- 审核提醒
📚 相关文件
src/api/admin/course_review.py- 审核管理界面opensource/mbe-education/backend/api/course_review_api.py- 审核 APIsrc/services/notification_service.py- 通知服务src/services/course_sync_service.py- 课程同步服务docs/architecture/COURSE_REVIEW_WORKFLOW.md- 审核流程设计docs/architecture/COURSE_REVIEW_IMPLEMENTATION.md- 实现总结
✅ 总结
✅ 已完成:
- 课程审核管理界面
- 通知功能完整集成
- API 端点完整实现
- 前后端完整对接
✅ 优势:
- 完整的审核流程
- 实时通知机制
- 友好的管理界面
- 与专家审核流程一致
✅ 下一步:
- 测试所有功能
- 优化用户体验
- 添加批量操作
- 完善审核历史