# 播课功能

## 功能概述

管理员在课程编辑页点击"生成播课"按钮，触发 Coze 工作流生成综合播课音频。学员可在课程中心点击"播课"按钮播放。

## 核心策略

**触发即可，Coze工作流直接写数据库**

- 后端API只负责触发Coze工作流，立即返回
- Coze工作流生成音频后直接执行SQL更新数据库
- 前端刷新页面即可看到最新结果，无需轮询

## 架构设计

1. **管理员触发**：课程编辑页点击"生成播课"
2. **后端触发**：调用 Coze API，立即返回
3. **Coze工作流**：生成音频 + 直接写数据库
4. **用户查看**：刷新页面查看结果

## 技术要点

- 使用 `asyncio.to_thread()` 避免同步SDK阻塞
- Coze工作流配置MySQL连接（端口3307）
- 数据库只需2个字段：`broadcast_audio_url`、`broadcast_generated_at`
- 极简架构：无需后台任务、状态轮询、状态字段

## 文档说明

- **Coze工作流运行API文档.md** - Coze API调用规范
- **播课功能API接口规范.md** - 后端API接口定义
- **播课功能技术方案.md** - 技术架构和实现细节
- **播课功能验收清单.md** - 功能验收标准

## 数据库配置

Coze工作流连接生产环境数据库：

```
主机：120.79.247.16 或 aiedu.ireborn.com.cn
端口：3307（容器映射端口）
数据库：kaopeilian
用户：root
密码：nj861021
```

SQL更新语句：

```sql
UPDATE courses 
SET 
  broadcast_audio_url = '{mp3_url}', 
  broadcast_generated_at = NOW(), 
  updated_at = NOW() 
WHERE id = {course_id}
```

## 验证状态

✅ 已完成端到端联调  
✅ Coze工作流成功写入远程数据库  
✅ 无linter错误  
✅ 生产环境验证通过

---

**实施日期**: 2025-10-14  
**最后更新**: 2025-10-14
