# 课程包与套餐重构需求文档

> 创建时间：2026-02-27
> 状态：需求确认完成，待设计重构
> 背景：基于客户沟通，对课程包和套餐进行较大幅度重构

---

## 一、需求背景

### 1.1 核心变更概述

| 变更类型 | 说明 |
|---------|------|
| 新增概念 | 课程套餐（授权/计费单位） |
| 结构重构 | 课程包从"单次课程"变为"教学单元" |
| 新增功能 | 校本课程包（教师自定义调整） |
| 授权变更 | 从"按课程包授权"变为"按套餐授权" |

### 1.2 与原有设计对比

| 维度 | 原有设计 | 新设计 |
|-----|---------|-------|
| 授权单位 | 按课程包授权 | **按套餐授权** |
| 计费单位 | 套餐级别（基础/标准/高级） | **按套餐定价** |
| 课程包定位 | 单次完整教学方案 | **教学单元（含多次课）** |
| 课程包结构 | 6模块（基本信息+资源+课件+脚本+活动+测评） | **新结构（见下文）** |

---

## 二、概念模型

### 2.1 概念层级

```
┌─────────────────────────────────────────────────────────────┐
│                                                             │
│                    课程套餐（授权/计费单位）                   │
│                         │                                   │
│                         │ 包含                              │
│                         │ (按年级分组，有顺序)               │
│                         ▼                                   │
│                      课程包                                  │
│                         │                                   │
│                         │ 包含                              │
│                         ▼                                   │
│                      课程                                    │
│                   (导入课/集体课/领域课)                      │
│                         │                                   │
│                         │ 包含                              │
│                         ▼                                   │
│                      教学环节                                │
│                                                             │
└─────────────────────────────────────────────────────────────┘
```

### 2.2 关系规则

| 关系 | 类型 | 说明 |
|-----|------|------|
| 套餐 ↔ 课程包 | 多对多 | 一个套餐包含多个课程包；一个课程包可属于多个套餐 |
| 课程包 → 课程 | 一对多 | 一个课程包包含：1个导入课 + 1个集体课 + 0-5个领域课 |
| 课程 → 环节 | 一对多 | 一个课程包含多个教学环节 |
| 租户 ↔ 套餐 | 授权关系 | 租户只能通过套餐获得课程包 |

---

## 三、课程套餐

### 3.1 套餐定义

课程套餐是**授权和计费的最小单位**，包含一组按年级和教学体系编排的课程包。

### 3.2 套餐属性

| 属性 | 类型 | 说明 |
|-----|------|------|
| 套餐名称 | 文本 | 套餐的名称 |
| 套餐描述 | 富文本 | 套餐的详细描述 |
| 固定价格 | 数值 | 手动填写 |
| 折扣价格 | 数值 | 手动填写（可选） |
| 包含课程包 | 关联 | 按年级分组，有顺序 |
| 状态 | 枚举 | 草稿/审核中/已发布/已下架 |

### 3.3 套餐内课程包编排

```
套餐
├── 【小班组】
│   ├── 1. 课程包A
│   ├── 2. 课程包B
│   └── 3. 课程包C
│
├── 【中班组】
│   ├── 1. 课程包D
│   ├── 2. 课程包E
│   └── ...
│
└── 【大班组】
    ├── 1. 课程包F
    └── ...
```

### 3.4 状态流转

```
草稿 → 审核中 → 已发布 → 已下架
  ↑                  ↓
  └──────────────────┘
```

与课程包状态流转保持一致。

---

## 四、课程包（新结构）

### 4.1 课程包结构

```
课程包
│
├── 【基本信息】
│   ├── 主题（字典，单选）
│   ├── 适用年级
│   ├── 关联绘本（选择）
│   └── 核心内容（文本）
│
├── 【课程介绍】（8个富文本字段）
│   ├── 课程简介
│   ├── 课程亮点
│   ├── 课程总目标
│   ├── 课程内容安排
│   ├── 教学重难点
│   ├── 教学方法
│   ├── 评价方式
│   └── 注意事项
│
├── 【排课计划参考】（表格）
│   └── 表头：时间（周一到周五）、课程类型、课程名称、区域活动、备注
│
├── 【环创建设】（富文本）
│   └── 环创建设内容和指导
│
└── 【包含课程】
    ├── 1. 导入课
    ├── 2. 集体课
    └── 3. 五大领域主题课（可选）
        ├── 语言领域课（可选）
        ├── 健康领域课（可选）
        ├── 科学领域课（可选）
        ├── 社会领域课（可选）
        └── 艺术领域课（可选）
```

### 4.2 基本信息字段

| 字段 | 类型 | 必填 | 说明 |
|-----|------|-----|------|
| 主题 | 字典选择 | 是 | 从全局主题字典单选 |
| 适用年级 | 多选 | 是 | 小班/中班/大班 |
| 关联绘本 | 选择 | 是 | 从绘本库选择 |
| 核心内容 | 文本 | 是 | 课程包的核心内容概述 |

### 4.3 课程介绍字段（8个富文本）

| 字段 | 说明 |
|-----|------|
| 课程简介 | 课程的整体介绍 |
| 课程亮点 | 课程的特色和亮点 |
| 课程总目标 | 课程要达成的总体目标 |
| 课程内容安排 | 课程内容的整体安排 |
| 教学重难点 | 教学重点和难点 |
| 教学方法 | 采用的教学方法 |
| 评价方式 | 学生的评价方式 |
| 注意事项 | 教学过程中的注意事项 |

### 4.4 排课计划参考表格

| 列名 | 说明 |
|-----|------|
| 时间 | 周一到周五 |
| 课程类型 | 导入课/集体课/领域课 |
| 课程名称 | 具体课程名称 |
| 区域活动 | 配套的区域活动 |
| 备注 | 其他备注信息 |

### 4.5 环创建设

| 字段 | 类型 | 必填 | 说明 |
|-----|------|-----|------|
| 环创建设 | 富文本 | 否 | 课程包相关的环境创设指导内容 |

### 4.6 状态流转

```
草稿 → 审核中 → 已发布 → 已下架
  ↑                  ↓
  └──────────────────┘
```

### 4.6 与套餐的关系

- 课程包可以独立创建，不必须关联套餐
- 未关联套餐的课程包不会分发给租户
- 课程包必须被添加到至少一个套餐才能被使用

---

## 五、课程

### 5.1 导入课

| 属性 | 类型 | 必填 | 说明 |
|-----|------|-----|------|
| 时长 | 数值 | 是 | 5-15分钟 |
| 教学目标 | 富文本 | 是 | 本节课的教学目标 |
| 教学准备 | 富文本 | 是 | 需要准备的素材、设备等 |
| 教学过程 | 环节列表 | 是 | 自定义多个环节 |
| 教学反思 | 富文本 | 是 | 教学后的反思记录 |
| 测评工具 | 关联 | 否 | 保留原有测评工具 |

**教学过程环节结构：**
- 环节名称（文本）
- 环节内容（富文本）
- 关联数字资源（非必须）

### 5.2 集体课

| 属性 | 类型 | 必填 | 说明 |
|-----|------|-----|------|
| 时长 | 数值 | 是 | 约25分钟 |
| 核心资源 | 文件 | 是 | 动画 + 课件（PPT/PDF） |
| 教学目标 | 富文本 | 是 | 本节课的教学目标 |
| 教学准备 | 富文本 | 是 | 需要准备的素材、设备等 |
| 教学过程 | 环节列表 | 是 | 推荐4环节模板 |
| 教学延伸 | 富文本 | 是 | 课后延伸活动建议 |
| 教学反思 | 富文本 | 是 | 教学后的反思记录 |
| 测评工具 | 关联 | 否 | 保留原有测评工具 |

**推荐4环节模板：**

| 序号 | 环节名称 | 时长 | 教学目的 | 核心资源 |
|-----|---------|-----|---------|---------|
| 1 | 导入环节 | 5分钟 | 复习回顾，激发兴趣 | - |
| 2 | 动画观看环节 | 7分钟 | 观看绘本动画，初步感知情节 | 动画 |
| 3 | 绘本跟读环节 | 10分钟 | 跟随电子绘本/课件，精读绘本 | 课件(PPT/PDF) |
| 4 | 结束环节 | 3分钟 | 回顾总结，引发期待 | - |

### 5.3 五大领域主题课

| 领域 | 必填 | 说明 |
|-----|------|------|
| 语言领域课 | 可选 | 结构同集体课，但教学过程自定义 |
| 健康领域课 | 可选 | 结构同集体课，但教学过程自定义 |
| 科学领域课 | 可选 | 结构同集体课，但教学过程自定义 |
| 社会领域课 | 可选 | 结构同集体课，但教学过程自定义 |
| 艺术领域课 | 可选 | 结构同集体课，但教学过程自定义 |

**课程属性（与集体课相同）：**
- 时长：约25分钟
- 核心资源：动画 + 课件（PPT/PDF）
- 教学目标（富文本）
- 教学准备（富文本）
- 教学过程（**自定义环节**，无模板参考）
- 教学延伸（富文本）
- 教学反思（富文本）
- 测评工具（保留）

### 5.4 课程对比

| 维度 | 导入课 | 集体课 | 五大领域课 |
|-----|-------|-------|----------|
| 时长 | 5-15分钟 | 约25分钟 | 约25分钟 |
| 定位 | 引入主题 | 核心阅读课 | 领域深化 |
| 核心资源 | 无特定要求 | 动画+课件 | 动画+课件 |
| 教学过程 | 自定义环节 | 推荐4环节模板 | 自定义环节 |
| 教学延伸 | 无 | 有 | 有 |
| 必填性 | 必填 | 必填 | 可选配置 |

---

## 六、数字资源

### 6.1 资源上传位置

数字资源在**每节课/每个环节**分别上传，使创建课程包时更加条理。

### 6.2 资源类型

保持现有所有类型：
- 电子绘本（PDF/HTML）
- 配套音频（MP3）
- 配套视频/动画（MP4）
- 课件（PPT/PDF）
- 教学挂图（图片）
- 其他素材

---

## 七、主题字典

### 7.1 字典管理

- 管理位置：超管端全局管理
- 与租户无关
- 支持增删改
- 创建课程包时单选

---

## 八、校本课程包（新功能）

### 8.1 功能定位

允许教师基于平台课程包进行本地化定制，保存为本校的校本课程包。

### 8.2 教师端功能

- 选择一个课程包进行自定义调整
- 保存为本校的"校本课程包"
- 调整内容可包括：教学目标、教学过程、教学资源等

### 8.3 学校端功能

- 查看全部校本课程包
- 支持预约或排课上课

### 8.4 数据关系

```
平台课程包（超管端创建）
    │
    │ 被复制/调整
    ▼
校本课程包（教师端创建，归属本校）
```

---

## 九、各端功能变更

### 9.1 超管端

| 功能模块 | 变更类型 | 说明 |
|---------|---------|------|
| 套餐管理 | 新增 | 创建、编辑、发布套餐；管理套餐内课程包 |
| 课程包管理 | 重构 | 按新结构创建课程包（8个富文本+3类课程） |
| 主题字典 | 新增 | 全局管理主题字典 |
| 租户授权 | 变更 | 从"按课程包授权"变为"按套餐授权" |

### 9.2 教师端

| 功能模块 | 变更类型 | 说明 |
|---------|---------|------|
| 课程中心 | 适配 | 按新结构展示课程包内容 |
| 备课模式 | 适配 | 按课程维度（导入课→集体课→领域课）备课 |
| 上课模式 | 适配 | 建议整体上，也允许有选择地上 |
| 校本课程包 | 新增 | 基于平台课程包创建校本课程包 |

### 9.3 学校端

| 功能模块 | 变更类型 | 说明 |
|---------|---------|------|
| 套餐管理 | 新增 | 查看已授权套餐、续订套餐 |
| 课程包查看 | 适配 | 按新结构展示课程包详情 |
| 校本课程包 | 新增 | 查看全部校本课程包、预约/排课上课 |

---

## 十、数据模型变更（概要）

### 10.1 新增表

| 表名 | 说明 |
|-----|------|
| course_packages | 课程套餐 |
| course_package_courses | 套餐-课程包关联（含年级分组、顺序） |
| school_course_packages | 校本课程包 |
| themes | 主题字典 |

### 10.2 重构表

| 表名 | 变更说明 |
|-----|---------|
| courses | 课程包表，字段大幅调整 |
| course_lessons | 新增，课程表（导入课/集体课/领域课） |
| lesson_steps | 新增，教学环节表 |
| course_resources | 调整，资源关联到环节级别 |

### 10.3 关系图

```
course_packages (套餐)
    │
    ├──← course_package_courses (关联表) →→ courses (课程包)
    │                                        │
    │                                        ├── course_lessons (课程)
    │                                        │       │
    │                                        │       └── lesson_steps (环节)
    │                                        │               │
    │                                        │               └── lesson_resources (资源)
    │                                        │
    │                                        └── school_course_packages (校本课程包)
    │
    └── tenant_packages (租户-套餐授权)
```

---

## 十一、待开发事项

### 11.1 超管端

- [ ] 套餐管理模块（CRUD、状态流转、课程包编排）
- [ ] 课程包管理模块重构（新结构）
- [ ] 主题字典管理
- [ ] 租户授权改为按套餐

### 11.2 教师端

- [ ] 课程包详情页适配新结构
- [ ] 备课模式适配新结构
- [ ] 上课模式适配新结构
- [ ] 校本课程包功能

### 11.3 学校端

- [ ] 套餐查看/续订功能
- [ ] 课程包详情适配
- [ ] 校本课程包管理

### 11.4 后端

- [ ] 数据模型重构
- [ ] API接口重构
- [ ] 权限逻辑调整

---

## 十二、文档变更记录

| 版本 | 日期 | 变更内容 |
|-----|------|---------|
| v1.0 | 2026-02-27 | 初始版本，记录完整重构需求 |

---

*本文档创建于 2026-02-27*
*最后更新于 2026-02-27*
