01 · 模块定位
教务教学中心
合同激活后可入班排课,学员签到后自动课消,教师完成课堂点评并进入学员学习档案。业务目标
管理课程、班级、排课、调课、请假、补课、签到、课消、课堂点评和作业测评。
使用终端
PC Web 教务工作台、教师/员工 App、家长端通知、学员端学习入口。
验收主线
合同激活后可入班排课,学员签到后自动课消,教师完成课堂点评并进入学员学习档案。
02 · 范围边界
明确本模块负责什么、依赖什么、不负责什么
边界清晰后,原型、接口和数据库设计才能避免重复建设。模块内范围
- 课程班级
- 排课引擎
- 签到课消
- 请假补课
- 课堂反馈
- 测评作业
- 直播课务编排
- 请假审批
- 补课安排池
- 补课课次确认
- 转班转课测算
- 调班调课执行
- 试听到访签到
- 试听反馈评价
- 补课改期取消
- 补课重新安排
- 补课课消冲正
上游依赖
- 组织校区与账号权限
- 课程/客户/合同等主数据
- 审批流、消息模板、文件中心
- 必要的第三方接口密钥
下游输出
- 业务状态和待办
- 消息通知和审批记录
- 报表指标和数据快照
- 审计日志和接口回执
03 · 确认口径、后台配置与默认实施规则
教务教学中心必须承接的已确认规则
本章节来自待决策与澄清清单的收口结果,已经转为本模块 PRD 的正式需求、配置项或默认实施规则。| 分类 | 事项 | 本模块落地要求 | 责任方 |
|---|---|---|---|
| 默认实施规则 | 接口设计说明书组织方式 | 采用单独 HTML 文件集中管理接口协议;模块 PRD 保留模块级接口摘要,避免每个模块重复写通用协议。 | 产品/研发 |
| 默认实施规则 | 接口错误码与重试中间件 | 所有外部接口和内部异步任务统一错误码、幂等键、重试次数、告警阈值和回执归档策略。 | 后端/测试/运维 |
04 · 业务流程
教务教学中心主流程
流程用于指导原型图的页面顺序、按钮状态和异常分支。课程班级需覆盖入口、字段、状态、权限、审批/消息、异常处理、审计和指标统计,并与上下游模块保持数据一致。
排课引擎需覆盖入口、字段、状态、权限、审批/消息、异常处理、审计和指标统计,并与上下游模块保持数据一致。
签到课消需覆盖入口、字段、状态、权限、审批/消息、异常处理、审计和指标统计,并与上下游模块保持数据一致。
请假补课需形成从家长申请、教务审批、课消回滚或冻结、补课安排、家长确认、教师执行到补课完成的完整闭环。
课堂反馈需覆盖入口、字段、状态、权限、审批/消息、异常处理、审计和指标统计,并与上下游模块保持数据一致。
测评作业需覆盖入口、字段、状态、权限、审批/消息、异常处理、审计和指标统计,并与上下游模块保持数据一致。
直播课务编排需覆盖入口、字段、状态、权限、审批/消息、异常处理、审计和指标统计,并与上下游模块保持数据一致。
请假审批需覆盖入口、字段、状态、权限、审批/消息、异常处理、审计和指标统计,并与上下游模块保持数据一致。
05 · 功能清单
按子模块拆到可设计、可开发、可测试的颗粒度
每一行功能都需要在原型中体现入口、状态、按钮、字段和反馈。| 一级功能 | 二级功能 | 功能说明 | 规则/验收 |
|---|---|---|---|
| 课程班级 | 基础维护 | 课程班级支持新增、编辑、启用/停用、查询、导入导出和操作审计。 | 编码唯一、数据范围过滤、逻辑删除和审计留痕 |
| 课程班级 | 业务处理 | 课程班级需覆盖入口、字段、状态、权限、审批/消息、异常处理、审计和指标统计,并与上下游模块保持数据一致。 | 必须联动状态、权限、消息、审批和指标 |
| 课程班级 | 异常闭环 | 排课冲突处理 | 失败原因可见、可重试、可转人工、可追溯 |
| 排课引擎 | 基础维护 | 排课引擎支持新增、编辑、启用/停用、查询、导入导出和操作审计。 | 编码唯一、数据范围过滤、逻辑删除和审计留痕 |
| 排课引擎 | 业务处理 | 排课引擎需覆盖入口、字段、状态、权限、审批/消息、异常处理、审计和指标统计,并与上下游模块保持数据一致。 | 必须联动状态、权限、消息、审批和指标 |
| 排课引擎 | 异常闭环 | 签到异常处理 | 失败原因可见、可重试、可转人工、可追溯 |
| 签到课消 | 基础维护 | 签到课消支持新增、编辑、启用/停用、查询、导入导出和操作审计。 | 编码唯一、数据范围过滤、逻辑删除和审计留痕 |
| 签到课消 | 业务处理 | 签到课消需覆盖入口、字段、状态、权限、审批/消息、异常处理、审计和指标统计,并与上下游模块保持数据一致。 | 必须联动状态、权限、消息、审批和指标 |
| 签到课消 | 异常闭环 | 课消待确认处理 | 失败原因可见、可重试、可转人工、可追溯 |
| 请假补课 | 基础维护 | 请假补课支持新增、编辑、启用/停用、查询、导入导出和操作审计。 | 编码唯一、数据范围过滤、逻辑删除和审计留痕 |
| 请假补课 | 业务处理 | 请假补课需形成从家长申请、教务审批、课消回滚或冻结、补课安排、家长确认、教师执行到补课完成的完整闭环。 | 必须联动状态、权限、消息、审批和指标 |
| 请假补课 | 异常闭环 | 补课时间未确认处理 | 失败原因可见、可重试、可转人工、可追溯 |
| 课堂反馈 | 基础维护 | 课堂反馈支持新增、编辑、启用/停用、查询、导入导出和操作审计。 | 编码唯一、数据范围过滤、逻辑删除和审计留痕 |
| 课堂反馈 | 业务处理 | 课堂反馈需覆盖入口、字段、状态、权限、审批/消息、异常处理、审计和指标统计,并与上下游模块保持数据一致。 | 必须联动状态、权限、消息、审批和指标 |
| 课堂反馈 | 异常闭环 | 补课课次容量不足处理 | 失败原因可见、可重试、可转人工、可追溯 |
| 测评作业 | 基础维护 | 测评作业支持新增、编辑、启用/停用、查询、导入导出和操作审计。 | 编码唯一、数据范围过滤、逻辑删除和审计留痕 |
| 测评作业 | 业务处理 | 测评作业需覆盖入口、字段、状态、权限、审批/消息、异常处理、审计和指标统计,并与上下游模块保持数据一致。 | 必须联动状态、权限、消息、审批和指标 |
| 测评作业 | 异常闭环 | 教师课表冲突处理 | 失败原因可见、可重试、可转人工、可追溯 |
| 直播课务编排 | 基础维护 | 直播课务编排支持新增、编辑、启用/停用、查询、导入导出和操作审计。 | 编码唯一、数据范围过滤、逻辑删除和审计留痕 |
| 直播课务编排 | 业务处理 | 直播课务编排需覆盖入口、字段、状态、权限、审批/消息、异常处理、审计和指标统计,并与上下游模块保持数据一致。 | 必须联动状态、权限、消息、审批和指标 |
| 直播课务编排 | 异常闭环 | 转课补差未支付处理 | 失败原因可见、可重试、可转人工、可追溯 |
| 请假审批 | 基础维护 | 请假审批支持新增、编辑、启用/停用、查询、导入导出和操作审计。 | 编码唯一、数据范围过滤、逻辑删除和审计留痕 |
| 请假审批 | 业务处理 | 请假审批需覆盖入口、字段、状态、权限、审批/消息、异常处理、审计和指标统计,并与上下游模块保持数据一致。 | 必须联动状态、权限、消息、审批和指标 |
| 请假审批 | 异常闭环 | 试听未到访处理 | 失败原因可见、可重试、可转人工、可追溯 |
| 补课安排池 | 基础维护 | 补课安排池支持新增、编辑、启用/停用、查询、导入导出和操作审计。 | 编码唯一、数据范围过滤、逻辑删除和审计留痕 |
| 补课安排池 | 业务处理 | 补课安排池需覆盖入口、字段、状态、权限、审批/消息、异常处理、审计和指标统计,并与上下游模块保持数据一致。 | 必须联动状态、权限、消息、审批和指标 |
| 补课安排池 | 异常闭环 | 试听反馈缺失处理 | 失败原因可见、可重试、可转人工、可追溯 |
| 补课课次确认 | 基础维护 | 补课课次确认支持新增、编辑、启用/停用、查询、导入导出和操作审计。 | 编码唯一、数据范围过滤、逻辑删除和审计留痕 |
| 补课课次确认 | 业务处理 | 补课课次确认需覆盖入口、字段、状态、权限、审批/消息、异常处理、审计和指标统计,并与上下游模块保持数据一致。 | 必须联动状态、权限、消息、审批和指标 |
| 补课课次确认 | 异常闭环 | 补课改期超时处理 | 失败原因可见、可重试、可转人工、可追溯 |
| 转班转课测算 | 基础维护 | 转班转课测算支持新增、编辑、启用/停用、查询、导入导出和操作审计。 | 编码唯一、数据范围过滤、逻辑删除和审计留痕 |
| 转班转课测算 | 业务处理 | 转班转课测算需覆盖入口、字段、状态、权限、审批/消息、异常处理、审计和指标统计,并与上下游模块保持数据一致。 | 必须联动状态、权限、消息、审批和指标 |
| 转班转课测算 | 异常闭环 | 补课已课消取消处理 | 失败原因可见、可重试、可转人工、可追溯 |
| 调班调课执行 | 基础维护 | 调班调课执行支持新增、编辑、启用/停用、查询、导入导出和操作审计。 | 编码唯一、数据范围过滤、逻辑删除和审计留痕 |
| 调班调课执行 | 业务处理 | 调班调课执行需覆盖入口、字段、状态、权限、审批/消息、异常处理、审计和指标统计,并与上下游模块保持数据一致。 | 必须联动状态、权限、消息、审批和指标 |
| 调班调课执行 | 异常闭环 | 补课资源释放失败处理 | 失败原因可见、可重试、可转人工、可追溯 |
| 试听到访签到 | 基础维护 | 试听到访签到支持新增、编辑、启用/停用、查询、导入导出和操作审计。 | 编码唯一、数据范围过滤、逻辑删除和审计留痕 |
| 试听到访签到 | 业务处理 | 试听到访签到需覆盖入口、字段、状态、权限、审批/消息、异常处理、审计和指标统计,并与上下游模块保持数据一致。 | 必须联动状态、权限、消息、审批和指标 |
| 试听到访签到 | 异常闭环 | 排课冲突处理 | 失败原因可见、可重试、可转人工、可追溯 |
| 试听反馈评价 | 基础维护 | 试听反馈评价支持新增、编辑、启用/停用、查询、导入导出和操作审计。 | 编码唯一、数据范围过滤、逻辑删除和审计留痕 |
| 试听反馈评价 | 业务处理 | 试听反馈评价需覆盖入口、字段、状态、权限、审批/消息、异常处理、审计和指标统计,并与上下游模块保持数据一致。 | 必须联动状态、权限、消息、审批和指标 |
| 试听反馈评价 | 异常闭环 | 签到异常处理 | 失败原因可见、可重试、可转人工、可追溯 |
| 补课改期取消 | 基础维护 | 补课改期取消支持新增、编辑、启用/停用、查询、导入导出和操作审计。 | 编码唯一、数据范围过滤、逻辑删除和审计留痕 |
| 补课改期取消 | 业务处理 | 补课改期取消需覆盖入口、字段、状态、权限、审批/消息、异常处理、审计和指标统计,并与上下游模块保持数据一致。 | 必须联动状态、权限、消息、审批和指标 |
| 补课改期取消 | 异常闭环 | 课消待确认处理 | 失败原因可见、可重试、可转人工、可追溯 |
| 补课重新安排 | 基础维护 | 补课重新安排支持新增、编辑、启用/停用、查询、导入导出和操作审计。 | 编码唯一、数据范围过滤、逻辑删除和审计留痕 |
| 补课重新安排 | 业务处理 | 补课重新安排需覆盖入口、字段、状态、权限、审批/消息、异常处理、审计和指标统计,并与上下游模块保持数据一致。 | 必须联动状态、权限、消息、审批和指标 |
| 补课重新安排 | 异常闭环 | 补课时间未确认处理 | 失败原因可见、可重试、可转人工、可追溯 |
| 补课课消冲正 | 基础维护 | 补课课消冲正支持新增、编辑、启用/停用、查询、导入导出和操作审计。 | 编码唯一、数据范围过滤、逻辑删除和审计留痕 |
| 补课课消冲正 | 业务处理 | 补课课消冲正需覆盖入口、字段、状态、权限、审批/消息、异常处理、审计和指标统计,并与上下游模块保持数据一致。 | 必须联动状态、权限、消息、审批和指标 |
| 补课课消冲正 | 异常闭环 | 补课课次容量不足处理 | 失败原因可见、可重试、可转人工、可追溯 |
功能到数据对象/接口/表映射
| 功能域 | 承接对象 | 核心表 | 代表接口 | 状态机/状态字段 | 研发落地校验 |
|---|---|---|---|---|---|
| 课程班级 | Course/Product、CoursePackage、Class、Schedule/Lesson | edu_course、edu_product_package、edu_class、edu_lesson | 接口资源组 /api/v1/edu/features/01 | course_type、class_status、lesson_status | 新增/编辑/删除/审批/导出/回调均需校验租户、校区、角色、数据范围、逻辑删除、幂等和审计 |
| 排课引擎 | Course/Product、CoursePackage、Class、Schedule/Lesson | edu_course、edu_product_package、edu_class、edu_lesson | 接口资源组 /api/v1/edu/features/02 | course_type、class_status、lesson_status | 新增/编辑/删除/审批/导出/回调均需校验租户、校区、角色、数据范围、逻辑删除、幂等和审计 |
| 签到课消 | Course/Product、CoursePackage、Class、Schedule/Lesson | edu_course、edu_product_package、edu_class、edu_lesson | 接口资源组 /api/v1/edu/features/03 | course_type、class_status、lesson_status | 新增/编辑/删除/审批/导出/回调均需校验租户、校区、角色、数据范围、逻辑删除、幂等和审计 |
| 请假补课 | Course/Product、CoursePackage、Class、Schedule/Lesson | edu_course、edu_product_package、edu_class、edu_lesson | 接口资源组 /api/v1/edu/features/04 | course_type、class_status、lesson_status | 新增/编辑/删除/审批/导出/回调均需校验租户、校区、角色、数据范围、逻辑删除、幂等和审计 |
| 课堂反馈 | Course/Product、CoursePackage、Class、Schedule/Lesson | edu_course、edu_product_package、edu_class、edu_lesson | 接口资源组 /api/v1/edu/features/05 | course_type、class_status、lesson_status | 新增/编辑/删除/审批/导出/回调均需校验租户、校区、角色、数据范围、逻辑删除、幂等和审计 |
| 测评作业 | Course/Product、CoursePackage、Class、Schedule/Lesson | edu_course、edu_product_package、edu_class、edu_lesson | 接口资源组 /api/v1/edu/features/06 | course_type、class_status、lesson_status | 新增/编辑/删除/审批/导出/回调均需校验租户、校区、角色、数据范围、逻辑删除、幂等和审计 |
| 直播课务编排 | Course/Product、CoursePackage、Class、Schedule/Lesson | edu_course、edu_product_package、edu_class、edu_lesson | 接口资源组 /api/v1/edu/features/07 | course_type、class_status、lesson_status | 新增/编辑/删除/审批/导出/回调均需校验租户、校区、角色、数据范围、逻辑删除、幂等和审计 |
| 请假审批 | Course/Product、CoursePackage、Class、Schedule/Lesson | edu_course、edu_product_package、edu_class、edu_lesson | 接口资源组 /api/v1/edu/features/08 | course_type、class_status、lesson_status | 新增/编辑/删除/审批/导出/回调均需校验租户、校区、角色、数据范围、逻辑删除、幂等和审计 |
| 补课安排池 | Course/Product、CoursePackage、Class、Schedule/Lesson | edu_course、edu_product_package、edu_class、edu_lesson | 接口资源组 /api/v1/edu/features/09 | course_type、class_status、lesson_status | 新增/编辑/删除/审批/导出/回调均需校验租户、校区、角色、数据范围、逻辑删除、幂等和审计 |
| 补课课次确认 | Course/Product、CoursePackage、Class、Schedule/Lesson | edu_course、edu_product_package、edu_class、edu_lesson | 接口资源组 /api/v1/edu/features/10 | course_type、class_status、lesson_status | 新增/编辑/删除/审批/导出/回调均需校验租户、校区、角色、数据范围、逻辑删除、幂等和审计 |
| 转班转课测算 | Course/Product、CoursePackage、Class、Schedule/Lesson | edu_course、edu_product_package、edu_class、edu_lesson | 接口资源组 /api/v1/edu/features/11 | course_type、class_status、lesson_status | 新增/编辑/删除/审批/导出/回调均需校验租户、校区、角色、数据范围、逻辑删除、幂等和审计 |
| 调班调课执行 | Course/Product、CoursePackage、Class、Schedule/Lesson | edu_course、edu_product_package、edu_class、edu_lesson | 接口资源组 /api/v1/edu/features/12 | course_type、class_status、lesson_status | 新增/编辑/删除/审批/导出/回调均需校验租户、校区、角色、数据范围、逻辑删除、幂等和审计 |
| 试听到访签到 | Course/Product、CoursePackage、Class、Schedule/Lesson | edu_course、edu_product_package、edu_class、edu_lesson | 接口资源组 /api/v1/edu/features/13 | course_type、class_status、lesson_status | 新增/编辑/删除/审批/导出/回调均需校验租户、校区、角色、数据范围、逻辑删除、幂等和审计 |
| 试听反馈评价 | Course/Product、CoursePackage、Class、Schedule/Lesson | edu_course、edu_product_package、edu_class、edu_lesson | 接口资源组 /api/v1/edu/features/14 | course_type、class_status、lesson_status | 新增/编辑/删除/审批/导出/回调均需校验租户、校区、角色、数据范围、逻辑删除、幂等和审计 |
| 补课改期取消 | Course/Product、CoursePackage、Class、Schedule/Lesson | edu_course、edu_product_package、edu_class、edu_lesson | 接口资源组 /api/v1/edu/features/15 | course_type、class_status、lesson_status | 新增/编辑/删除/审批/导出/回调均需校验租户、校区、角色、数据范围、逻辑删除、幂等和审计 |
| 补课重新安排 | Course/Product、CoursePackage、Class、Schedule/Lesson | edu_course、edu_product_package、edu_class、edu_lesson | 接口资源组 /api/v1/edu/features/16 | course_type、class_status、lesson_status | 新增/编辑/删除/审批/导出/回调均需校验租户、校区、角色、数据范围、逻辑删除、幂等和审计 |
| 补课课消冲正 | Course/Product、CoursePackage、Class、Schedule/Lesson | edu_course、edu_product_package、edu_class、edu_lesson | 接口资源组 /api/v1/edu/features/17 | course_type、class_status、lesson_status | 新增/编辑/删除/审批/导出/回调均需校验租户、校区、角色、数据范围、逻辑删除、幂等和审计 |
06 · 原子级功能需求
用于研发任务拆分和测试用例追踪
需求编号可直接进入项目管理工具。| 编号 | 需求描述 | 入口页面 | 关键动作 | 输入校验 | 输出结果 | 异常处理 | 验收标准 |
|---|---|---|---|---|---|---|---|
| FR-EDU-001 | 支持一对一、小组课、班课、体验课、公开课、线上课和录播课 | 公开课直播转化 | 观看评分、意向标签或顾问跟进 | 校验租户、校区、角色、数据范围、状态前置、必填、唯一和敏感操作授权 | 生成业务记录、状态流转、消息通知、审计日志、指标快照和必要的第三方任务 | 线索沉淀失败或跟进任务未分配 | 主流程、异常流、权限流、接口失败和数据一致性均可通过测试 |
| FR-EDU-002 | 排课检测教师、教室、学员、助教、设备和营业时间冲突 | 签到处理 | 排课调课 | 校验租户、校区、角色、数据范围、状态前置、必填、唯一和敏感操作授权 | 生成业务记录、状态流转、消息通知、审计日志、指标快照和必要的第三方任务 | 签到异常 | 主流程、异常流、权限流、接口失败和数据一致性均可通过测试 |
| FR-EDU-003 | 请假、补课、插班、转班、调课均需记录规则和审批 | 请假补课/补课安排 | 请假审批、补课安排或家长确认 | 校验租户、校区、角色、数据范围、状态前置、必填、唯一和敏感操作授权 | 生成业务记录、状态流转、消息通知、审计日志、指标快照和必要的第三方任务 | 补课时间未确认、候选课次过期或课消回滚失败 | 主流程、异常流、权限流、接口失败和数据一致性均可通过测试 |
| FR-EDU-004 | 人工签到和人脸签到均可进入课消规则 | 人脸授权撤回任务 | 授权撤回、模板删除或失败重试 | 校验租户、校区、角色、数据范围、状态前置、必填、唯一和敏感操作授权 | 生成业务记录、状态流转、消息通知、审计日志、指标快照和必要的第三方任务 | 设备离线、删除回执缺失或模板删除失败 | 主流程、异常流、权限流、接口失败和数据一致性均可通过测试 |
| FR-EDU-005 | 教师填写课堂点评、作业批改、测评和学习反馈 | 作业草稿箱/作业提交 | 保存草稿、恢复草稿或提交作业 | 校验租户、校区、角色、数据范围、状态前置、必填、唯一和敏感操作授权 | 生成业务记录、状态流转、消息通知、审计日志、指标快照和必要的第三方任务 | 草稿冲突、附件失败或作业已关闭 | 主流程、异常流、权限流、接口失败和数据一致性均可通过测试 |
| FR-EDU-006 | 请假补课需形成从家长申请、教务审批、课消回滚或冻结、补课安排、家长确认、教师执行到补课完成的完整闭环。 | 请假补课/补课安排 | 请假审批、补课安排或家长确认 | 校验租户、校区、角色、数据范围、状态前置、必填、唯一和敏感操作授权 | 生成业务记录、状态流转、消息通知、审计日志、指标快照和必要的第三方任务 | 补课时间未确认、候选课次过期或课消回滚失败 | 主流程、异常流、权限流、接口失败和数据一致性均可通过测试 |
| FR-EDU-007 | 补课安排必须提供独立入口,用于兜底学员请假时无法立即确认补课时间的场景,支持待安排池、推荐课次、人工安排和超时提醒。 | 请假补课/补课安排 | 请假审批、补课安排或家长确认 | 校验租户、校区、角色、数据范围、状态前置、必填、唯一和敏感操作授权 | 生成业务记录、状态流转、消息通知、审计日志、指标快照和必要的第三方任务 | 补课时间未确认、候选课次过期或课消回滚失败 | 主流程、异常流、权限流、接口失败和数据一致性均可通过测试 |
| FR-EDU-008 | 转班、转课、调班、调课需联动课表、班级容量、教师冲突、合同权益、优惠分摊、补差或退差和家长确认。 | 转班转课测算 | 权益重算、补差退差或课表调整 | 校验租户、校区、角色、数据范围、状态前置、必填、唯一和敏感操作授权 | 生成业务记录、状态流转、消息通知、审计日志、指标快照和必要的第三方任务 | 班级容量不足、补差未支付或家长确认超时 | 主流程、异常流、权限流、接口失败和数据一致性均可通过测试 |
| FR-EDU-009 | 试听预约需联动到访签到、教师试听反馈、家长评价、顾问跟进、未到访唤醒和试听后转化任务。 | 试听反馈台 | 到访签到、教师反馈或转化跟进 | 校验租户、校区、角色、数据范围、状态前置、必填、唯一和敏感操作授权 | 生成业务记录、状态流转、消息通知、审计日志、指标快照和必要的第三方任务 | 试听未到访、反馈缺失或转化任务未分配 | 主流程、异常流、权限流、接口失败和数据一致性均可通过测试 |
| FR-EDU-010 | 补课已确认后需支持家长申请改期或取消,教务可重新安排候选课次,原补课课次资源需释放并保留改期原因、处理人和消息触达记录。 | 请假补课/补课安排 | 请假审批、补课安排或家长确认 | 校验租户、校区、角色、数据范围、状态前置、必填、唯一和敏感操作授权 | 生成业务记录、状态流转、消息通知、审计日志、指标快照和必要的第三方任务 | 补课时间未确认、候选课次过期或课消回滚失败 | 主流程、异常流、权限流、接口失败和数据一致性均可通过测试 |
| FR-EDU-011 | 补课已签到或已课消后发生取消、异常或重复课消时,必须进入课消冲正、人工复核和财务监管一致性校验流程。 | 请假补课/补课安排 | 请假审批、补课安排或家长确认 | 校验租户、校区、角色、数据范围、状态前置、必填、唯一和敏感操作授权 | 生成业务记录、状态流转、消息通知、审计日志、指标快照和必要的第三方任务 | 补课时间未确认、候选课次过期或课消回滚失败 | 主流程、异常流、权限流、接口失败和数据一致性均可通过测试 |
07 · 关联闭环补充需求
教务教学中心在跨模块闭环中的责任边界
本章节承接最终闭环核对清单,明确本模块需要补齐的页面、接口对象、异常兜底和验收口径。| 闭环项 | 本模块责任 | 关键场景 | 页面/功能补充 | 关联对象/接口 | 验收口径 |
|---|---|---|---|---|---|
| 补课改期取消 | 负责请假、补课安排、候选课次、人工安排、取消和课消冻结/回滚 | 家长请假时无法确认补课时间,或补课时间需后续人工安排 | 请假审批、补课安排池、候选课次、家长确认、补课取消、课消回滚 | LeaveRequest/MakeupArrangement、Attendance/Consumption、/api/v1/edu/makeup-arrangements | 请假后必须形成补课状态;超时、取消、改期和完成均有消息和审计 |
| 合同补充协议 | 转班转课、课时权益调整时触发合同补充协议需求 | 转班、转课、调课导致权益、价格或有效期变化 | 转班转课申请、权益重算、补充协议触发确认 | ClassCourseTransfer、Contract/Order/Payment、DiscountSimulation/BenefitAllocation | 权益变化需要合同确认时,教务单据不得直接完结 |
08 · 页面与原型设计说明
页面清单、布局要求、按钮字段和状态
原型图设计需要覆盖列表、详情、表单、弹窗、空状态、异常状态和权限状态。| 终端 | 页面 | 用户 | 页面目标 | 布局结构 | 关键按钮 | 关键字段 | 异常状态 | 原型备注 |
|---|---|---|---|---|---|---|---|---|
| PC Web | 校区课表 | 教务/前台 | 排课、调课、请假、补课、冲突校验 | 教务页以日历/课表为主,课次详情展示学员列表、签到课消、请假补课、教师点评和异常处理。 | 排课、调课、提交请假、审批请假、安排补课、确认签到、课消确认、发布作业 | 课次、班级、教师、教室、请假状态、补课候选、签到状态、课消状态、上课时间、补课状态 | 教师冲突、教室冲突、补课时间未确认、候选课次过期、课消回滚失败、签到异常 | 需覆盖请假后无法确认补课时间进入补课安排池、家长确认、改期取消、资源释放和课消冲正。 建议 Figma Frame:EDU-校区课表;需补齐正常、空态、加载、无权限、处理中、成功和失败状态。 |
| PC Web | 签到处理 | 教务/前台 | 处理人工签到、人脸签到、异常确认和课消 | 设备页按校区、设备、人员、事件四层组织,识别流水支持照片、置信度、课次匹配和异常处理入口。 | 新增设备、人员下发、查看心跳、确认异常、撤回授权、重试下发、查看回执 | 设备编号、设备品牌、所属校区、人员编号、人脸照片、置信度、匹配课次、删除回执、班级、课次 | 设备离线、人员下发失败、低置信度、跨校区识别、模板删除失败、回执缺失 | 需覆盖设备在线/离线、人员模板下发、识别异常确认、家长撤回授权、设备离线延迟删除和隐私审计。 建议 Figma Frame:EDU-签到处理;需补齐正常、空态、加载、无权限、处理中、成功和失败状态。 |
| 教师 App | 今日课程 | 教师 | 查看课表、签到确认、课堂点评、作业发布 | 教务页以日历/课表为主,课次详情展示学员列表、签到课消、请假补课、教师点评和异常处理。 | 排课、调课、提交请假、审批请假、安排补课、确认签到、课消确认、发布作业 | 课次、班级、教师、教室、请假状态、补课候选、签到状态、课消状态、上课时间、补课状态 | 教师冲突、教室冲突、补课时间未确认、候选课次过期、课消回滚失败、签到异常 | 需覆盖请假后无法确认补课时间进入补课安排池、家长确认、改期取消、资源释放和课消冲正。 建议 Figma Frame:EDU-今日课程;需补齐正常、空态、加载、无权限、处理中、成功和失败状态。 |
| PC Web | 直播课务编排 | 教务/校长 | 在排课中选择直播课型并联动直播房间、教师端、学员端和课消规则 | 直播列表展示今日直播、未开始、进行中和回放;课堂页突出播放器、签到、互动、答题、举手和课后任务。 | 进入直播、直播签到、提交答题、举手上麦、查看回放、同步进度、结束课堂 | 直播课次、开播时间、教师/助教、观看权限、签到状态、互动得分、回放状态、学习进度、班级、课次 | 直播未开播、无观看权益、播放鉴权失效、断流、回放生成中、学习进度同步失败 | 需覆盖开播前、直播中、断流重试、回放生成中、回放可看、补看任务和学习档案回写。 建议 Figma Frame:EDU-直播课务编排;需补齐正常、空态、加载、无权限、处理中、成功和失败状态。 |
| PC Web/家长端 | 请假申请与审批 | 家长/教务/教师 | 家长提交请假,教务审批,教师确认课次状态,系统处理课消冻结、回滚或补课安排 | 教务页以日历/课表为主,课次详情展示学员列表、签到课消、请假补课、教师点评和异常处理。 | 排课、调课、提交请假、审批请假、安排补课、确认签到、课消确认、发布作业 | 课次、班级、教师、教室、请假状态、补课候选、签到状态、课消状态、上课时间、补课状态 | 教师冲突、教室冲突、补课时间未确认、候选课次过期、课消回滚失败、签到异常 | 需覆盖请假后无法确认补课时间进入补课安排池、家长确认、改期取消、资源释放和课消冲正。 建议 Figma Frame:EDU-请假申请与审批;需补齐正常、空态、加载、无权限、处理中、成功和失败状态。 |
| PC Web | 补课安排池 | 教务/校长 | 集中处理请假时未确定补课时间的学员,推荐补课课次并推送家长确认 | 教务页以日历/课表为主,课次详情展示学员列表、签到课消、请假补课、教师点评和异常处理。 | 排课、调课、提交请假、审批请假、安排补课、确认签到、课消确认、发布作业 | 课次、班级、教师、教室、请假状态、补课候选、签到状态、课消状态、上课时间、补课状态 | 教师冲突、教室冲突、补课时间未确认、候选课次过期、课消回滚失败、签到异常 | 需覆盖请假后无法确认补课时间进入补课安排池、家长确认、改期取消、资源释放和课消冲正。 建议 Figma Frame:EDU-补课安排池;需补齐正常、空态、加载、无权限、处理中、成功和失败状态。 |
| PC Web | 补课重新安排 | 教务/校长 | 处理补课改期、取消、候选课次重选、资源释放和课消冲正 | 教务页以日历/课表为主,课次详情展示学员列表、签到课消、请假补课、教师点评和异常处理。 | 排课、调课、提交请假、审批请假、安排补课、确认签到、课消确认、发布作业 | 课次、班级、教师、教室、请假状态、补课候选、签到状态、课消状态、上课时间、补课状态 | 教师冲突、教室冲突、补课时间未确认、候选课次过期、课消回滚失败、签到异常 | 需覆盖请假后无法确认补课时间进入补课安排池、家长确认、改期取消、资源释放和课消冲正。 建议 Figma Frame:EDU-补课重新安排;需补齐正常、空态、加载、无权限、处理中、成功和失败状态。 |
| PC Web | 请假详情 | 授权用户 | 围绕补课兜底完善请假详情的入口、字段、状态、异常提示、处理进度和验收反馈 | 教务页以日历/课表为主,课次详情展示学员列表、签到课消、请假补课、教师点评和异常处理。 | 排课、调课、提交请假、审批请假、安排补课、确认签到、课消确认、发布作业 | 课次、班级、教师、教室、请假状态、补课候选、签到状态、课消状态、上课时间、补课状态 | 教师冲突、教室冲突、补课时间未确认、候选课次过期、课消回滚失败、签到异常 | 需覆盖请假后无法确认补课时间进入补课安排池、家长确认、改期取消、资源释放和课消冲正。 建议 Figma Frame:EDU-请假详情;需补齐正常、空态、加载、无权限、处理中、成功和失败状态。 |
| PC Web | 家长确认页 | 授权用户 | 围绕补课兜底完善家长确认页的入口、字段、状态、异常提示、处理进度和验收反馈 | 教务页以日历/课表为主,课次详情展示学员列表、签到课消、请假补课、教师点评和异常处理。 | 排课、调课、提交请假、审批请假、安排补课、确认签到、课消确认、发布作业 | 课次、班级、教师、教室、请假状态、补课候选、签到状态、课消状态、上课时间、补课状态 | 教师冲突、教室冲突、补课时间未确认、候选课次过期、课消回滚失败、签到异常 | 需覆盖请假后无法确认补课时间进入补课安排池、家长确认、改期取消、资源释放和课消冲正。 建议 Figma Frame:EDU-家长确认页;需补齐正常、空态、加载、无权限、处理中、成功和失败状态。 |
| PC Web | 课次详情 | 授权用户 | 围绕课消回滚完善课次详情的入口、字段、状态、异常提示、处理进度和验收反馈 | PC 端采用顶部筛选、左侧列表或导航、中部主工作区、右侧详情抽屉,复杂操作进入弹窗或步骤条。 | 查询、新增、编辑、提交、导出、查看日志、维护课程、排课调课 | 班级、课次、教师、教室、上课时间、签到状态、课消状态、补课状态 | 空数据、无权限、加载失败、保存失败、审批驳回、批量部分失败 | 管理员端沿用统一框架,原型重点标注信息架构、表单弹窗、状态流和异常处理。 建议 Figma Frame:EDU-课次详情;需补齐正常、空态、加载、无权限、处理中、成功和失败状态。 |
| PC Web | 考勤异常 | 授权用户 | 围绕课消回滚完善考勤异常的入口、字段、状态、异常提示、处理进度和验收反馈 | PC 端采用顶部筛选、左侧列表或导航、中部主工作区、右侧详情抽屉,复杂操作进入弹窗或步骤条。 | 查询、新增、编辑、提交、导出、查看日志、维护课程、排课调课 | 班级、课次、教师、教室、上课时间、签到状态、课消状态、补课状态 | 空数据、无权限、加载失败、保存失败、审批驳回、批量部分失败 | 管理员端沿用统一框架,原型重点标注信息架构、表单弹窗、状态流和异常处理。 建议 Figma Frame:EDU-考勤异常;需补齐正常、空态、加载、无权限、处理中、成功和失败状态。 |
| PC Web | 课消确认 | 授权用户 | 围绕课消回滚完善课消确认的入口、字段、状态、异常提示、处理进度和验收反馈 | PC 端采用顶部筛选、左侧列表或导航、中部主工作区、右侧详情抽屉,复杂操作进入弹窗或步骤条。 | 查询、新增、编辑、提交、导出、查看日志、维护课程、排课调课 | 班级、课次、教师、教室、上课时间、签到状态、课消状态、补课状态 | 空数据、无权限、加载失败、保存失败、审批驳回、批量部分失败 | 管理员端沿用统一框架,原型重点标注信息架构、表单弹窗、状态流和异常处理。 建议 Figma Frame:EDU-课消确认;需补齐正常、空态、加载、无权限、处理中、成功和失败状态。 |
| PC Web | 课后点评 | 授权用户 | 围绕教学反馈完善课后点评的入口、字段、状态、异常提示、处理进度和验收反馈 | PC 端采用顶部筛选、左侧列表或导航、中部主工作区、右侧详情抽屉,复杂操作进入弹窗或步骤条。 | 查询、新增、编辑、提交、导出、查看日志、维护课程、排课调课 | 班级、课次、教师、教室、上课时间、签到状态、课消状态、补课状态 | 空数据、无权限、加载失败、保存失败、审批驳回、批量部分失败 | 管理员端沿用统一框架,原型重点标注信息架构、表单弹窗、状态流和异常处理。 建议 Figma Frame:EDU-课后点评;需补齐正常、空态、加载、无权限、处理中、成功和失败状态。 |
| PC Web | 作业批改 | 授权用户 | 围绕教学反馈完善作业批改的入口、字段、状态、异常提示、处理进度和验收反馈 | PC 端采用顶部筛选、左侧列表或导航、中部主工作区、右侧详情抽屉,复杂操作进入弹窗或步骤条。 | 查询、新增、编辑、提交、导出、查看日志、维护课程、排课调课 | 班级、课次、教师、教室、上课时间、签到状态、课消状态、补课状态 | 空数据、无权限、加载失败、保存失败、审批驳回、批量部分失败 | 管理员端沿用统一框架,原型重点标注信息架构、表单弹窗、状态流和异常处理。 建议 Figma Frame:EDU-作业批改;需补齐正常、空态、加载、无权限、处理中、成功和失败状态。 |
| PC Web | 测评报告 | 授权用户 | 围绕教学反馈完善测评报告的入口、字段、状态、异常提示、处理进度和验收反馈 | PC 端采用顶部筛选、左侧列表或导航、中部主工作区、右侧详情抽屉,复杂操作进入弹窗或步骤条。 | 查询、新增、编辑、提交、导出、查看日志、维护课程、排课调课 | 班级、课次、教师、教室、上课时间、签到状态、课消状态、补课状态 | 空数据、无权限、加载失败、保存失败、审批驳回、批量部分失败 | 管理员端沿用统一框架,原型重点标注信息架构、表单弹窗、状态流和异常处理。 建议 Figma Frame:EDU-测评报告;需补齐正常、空态、加载、无权限、处理中、成功和失败状态。 |
| PC Web | 成长档案 | 授权用户 | 围绕教学反馈完善成长档案的入口、字段、状态、异常提示、处理进度和验收反馈 | PC 端采用顶部筛选、左侧列表或导航、中部主工作区、右侧详情抽屉,复杂操作进入弹窗或步骤条。 | 查询、新增、编辑、提交、导出、查看日志、维护课程、排课调课 | 班级、课次、教师、教室、上课时间、签到状态、课消状态、补课状态 | 空数据、无权限、加载失败、保存失败、审批驳回、批量部分失败 | 管理员端沿用统一框架,原型重点标注信息架构、表单弹窗、状态流和异常处理。 建议 Figma Frame:EDU-成长档案;需补齐正常、空态、加载、无权限、处理中、成功和失败状态。 |
09 · 页面到接口的前后端闭环矩阵
把原型页面、后端接口、数据对象、状态和消息审批绑定到一起
设计原型时,每个关键页面必须能解释前端展示什么、后端提交什么、状态怎么变、异常怎么处理。| 原型页面 | 关键接口 | 关联对象 | 状态流 | 审批/权限触发 | 消息/待办触达 | 原型验收要求 |
|---|---|---|---|---|---|---|
| 校区课表 | POST/GET /api/v1/edu/makeup-arrangements | Course/Product | 草稿 -> 待审批 -> 已同意 -> 已驳回 -> 已取消 -> 补课待安排 -> 补课待确认 -> 补课已预约 -> 已补课 -> 已关闭 | 请假审批与补课安排:家长请假通过但未确认补课时间,或补课候选课次需家长确认 | 处理完成、失败和异常转人工均需触发站内通知或待办 | 原型需展示入口、主按钮、禁用原因、提交中、成功、失败、无权限、空状态和异常转人工入口 |
| 签到处理 | POST/GET /api/v1/edu/transfers | CoursePackage | 已确认 -> 改期申请中 -> 取消申请中 -> 教务处理中 -> 已重新安排 -> 已拒绝 -> 已关闭 -> 待冲正 -> 已冲正 | 补课改期取消审批:已确认补课需要改期、取消或已课消后冲正 | 处理完成、失败和异常转人工均需触发站内通知或待办 | 原型需展示入口、主按钮、禁用原因、提交中、成功、失败、无权限、空状态和异常转人工入口 |
| 今日课程 | POST/GET /api/v1/edu/makeup-arrangements | Class | 草稿 -> 待审批 -> 已同意 -> 已驳回 -> 已取消 -> 补课待安排 -> 补课待确认 -> 补课已预约 -> 已补课 -> 已关闭 | 请假审批与补课安排:家长请假通过但未确认补课时间,或补课候选课次需家长确认 | 处理完成、失败和异常转人工均需触发站内通知或待办 | 原型需展示入口、主按钮、禁用原因、提交中、成功、失败、无权限、空状态和异常转人工入口 |
| 直播课务编排 | POST/GET /api/v1/edu/transfers | Schedule/Lesson | 已确认 -> 改期申请中 -> 取消申请中 -> 教务处理中 -> 已重新安排 -> 已拒绝 -> 已关闭 -> 待冲正 -> 已冲正 | 补课改期取消审批:已确认补课需要改期、取消或已课消后冲正 | 处理完成、失败和异常转人工均需触发站内通知或待办 | 原型需展示入口、主按钮、禁用原因、提交中、成功、失败、无权限、空状态和异常转人工入口 |
| 请假申请与审批 | POST/GET /api/v1/edu/makeup-arrangements | Attendance | 草稿 -> 待审批 -> 已同意 -> 已驳回 -> 已取消 -> 补课待安排 -> 补课待确认 -> 补课已预约 -> 已补课 -> 已关闭 | 请假审批与补课安排:家长请假通过但未确认补课时间,或补课候选课次需家长确认 | 处理完成、失败和异常转人工均需触发站内通知或待办 | 原型需展示入口、主按钮、禁用原因、提交中、成功、失败、无权限、空状态和异常转人工入口 |
| 补课安排池 | POST/GET /api/v1/edu/transfers | Consumption | 已确认 -> 改期申请中 -> 取消申请中 -> 教务处理中 -> 已重新安排 -> 已拒绝 -> 已关闭 -> 待冲正 -> 已冲正 | 补课改期取消审批:已确认补课需要改期、取消或已课消后冲正 | 处理完成、失败和异常转人工均需触发站内通知或待办 | 原型需展示入口、主按钮、禁用原因、提交中、成功、失败、无权限、空状态和异常转人工入口 |
| 补课重新安排 | POST/GET /api/v1/edu/makeup-arrangements | LeaveRequest | 草稿 -> 待审批 -> 已同意 -> 已驳回 -> 已取消 -> 补课待安排 -> 补课待确认 -> 补课已预约 -> 已补课 -> 已关闭 | 请假审批与补课安排:家长请假通过但未确认补课时间,或补课候选课次需家长确认 | 处理完成、失败和异常转人工均需触发站内通知或待办 | 原型需展示入口、主按钮、禁用原因、提交中、成功、失败、无权限、空状态和异常转人工入口 |
| 请假详情 | POST/GET /api/v1/edu/transfers | MakeupArrangement | 已确认 -> 改期申请中 -> 取消申请中 -> 教务处理中 -> 已重新安排 -> 已拒绝 -> 已关闭 -> 待冲正 -> 已冲正 | 补课改期取消审批:已确认补课需要改期、取消或已课消后冲正 | 处理完成、失败和异常转人工均需触发站内通知或待办 | 原型需展示入口、主按钮、禁用原因、提交中、成功、失败、无权限、空状态和异常转人工入口 |
| 家长确认页 | POST/GET /api/v1/edu/makeup-arrangements | Homework | 草稿 -> 待审批 -> 已同意 -> 已驳回 -> 已取消 -> 补课待安排 -> 补课待确认 -> 补课已预约 -> 已补课 -> 已关闭 | 请假审批与补课安排:家长请假通过但未确认补课时间,或补课候选课次需家长确认 | 处理完成、失败和异常转人工均需触发站内通知或待办 | 原型需展示入口、主按钮、禁用原因、提交中、成功、失败、无权限、空状态和异常转人工入口 |
| 课次详情 | POST/GET /api/v1/edu/transfers | HomeworkReview | 已确认 -> 改期申请中 -> 取消申请中 -> 教务处理中 -> 已重新安排 -> 已拒绝 -> 已关闭 -> 待冲正 -> 已冲正 | 补课改期取消审批:已确认补课需要改期、取消或已课消后冲正 | 处理完成、失败和异常转人工均需触发站内通知或待办 | 原型需展示入口、主按钮、禁用原因、提交中、成功、失败、无权限、空状态和异常转人工入口 |
| 考勤异常 | POST/GET /api/v1/edu/makeup-arrangements | GrowthRecord | 草稿 -> 待审批 -> 已同意 -> 已驳回 -> 已取消 -> 补课待安排 -> 补课待确认 -> 补课已预约 -> 已补课 -> 已关闭 | 请假审批与补课安排:家长请假通过但未确认补课时间,或补课候选课次需家长确认 | 处理完成、失败和异常转人工均需触发站内通知或待办 | 原型需展示入口、主按钮、禁用原因、提交中、成功、失败、无权限、空状态和异常转人工入口 |
| 课消确认 | POST/GET /api/v1/edu/transfers | Course/Product | 已确认 -> 改期申请中 -> 取消申请中 -> 教务处理中 -> 已重新安排 -> 已拒绝 -> 已关闭 -> 待冲正 -> 已冲正 | 补课改期取消审批:已确认补课需要改期、取消或已课消后冲正 | 处理完成、失败和异常转人工均需触发站内通知或待办 | 原型需展示入口、主按钮、禁用原因、提交中、成功、失败、无权限、空状态和异常转人工入口 |
10 · 原型、UI、研发、测试交付补充
把关键闭环补强为下一阶段可执行任务
本章节为正式 PRD 的交付要求,面向原型图、UI、开发、联调和测试分工。| 能力域 | 功能补充要求 | 原型交付要求 | UI 交互要求 | 研发实现要求 | 测试验收要求 |
|---|---|---|---|---|---|
| 补课兜底 | 新增补课安排池、候选课次、确认截止、超时提醒、教务代安排和家长确认流程。 | 请假详情、补课安排池、家长确认页 需要在原型中拆到列表、详情、表单、弹窗、空状态、失败态、无权限态和处理进度。 | UI 需清晰呈现状态标签、流程节点、主次按钮、危险操作确认、移动/平板/TV 适配和错误提示;PC 管理端遵循统一框架,仅输出信息架构和交互说明。 | 后端需提供接口幂等、权限校验、状态机、审计日志、消息/审批触发、异步补偿和跨模块数据一致性保障。 | 测试需覆盖主流程、异常流、权限流、重复提交、批量部分失败和数据一致性;请假后未确认时间的学员不会丢失,均进入补课待安排状态。 |
| 课消回滚 | 补齐课消冻结、自动课消、人工确认、冲正审批和财务监管报送联动。 | 课次详情、考勤异常、课消确认 需要在原型中拆到列表、详情、表单、弹窗、空状态、失败态、无权限态和处理进度。 | UI 需清晰呈现状态标签、流程节点、主次按钮、危险操作确认、移动/平板/TV 适配和错误提示;PC 管理端遵循统一框架,仅输出信息架构和交互说明。 | 后端需提供接口幂等、权限校验、状态机、审计日志、消息/审批触发、异步补偿和跨模块数据一致性保障。 | 测试需覆盖主流程、异常流、权限流、重复提交、批量部分失败和数据一致性;任何课消变更均可追溯原因、审批、财务影响和监管状态。 |
| 教学反馈 | 补齐课堂点评、作业批改、阶段测评、成长档案更新和家长端通知。 | 课后点评、作业批改、测评报告、成长档案 需要在原型中拆到列表、详情、表单、弹窗、空状态、失败态、无权限态和处理进度。 | UI 需清晰呈现状态标签、流程节点、主次按钮、危险操作确认、移动/平板/TV 适配和错误提示;PC 管理端遵循统一框架,仅输出信息架构和交互说明。 | 后端需提供接口幂等、权限校验、状态机、审计日志、消息/审批触发、异步补偿和跨模块数据一致性保障。 | 测试需覆盖主流程、异常流、权限流、重复提交、批量部分失败和数据一致性;学习结果能回写学员端、家长端、教师端和服务中心。 |
11 · 数据对象与字段字典
明确页面、接口、数据库共同使用的数据语言
字段涉及敏感、人脸、财务、绩效时,原型需体现脱敏、授权和审计。核心对象
| 对象 | 说明 |
|---|---|
| Course/Product | 课程产品;落地表:edu_course |
| CoursePackage | 课包与价格;落地表:edu_product_package |
| Class | 班级;落地表:edu_class |
| Schedule/Lesson | 课次和排课;落地表:edu_lesson |
| Attendance | 上课签到记录;落地表:edu_attendance |
| Consumption | 课消记录;落地表:edu_consumption |
| LeaveRequest | 学员请假申请;落地表:edu_leave_request |
| MakeupArrangement | 补课安排兜底入口;落地表:edu_makeup_arrangement |
| Homework | 作业任务;落地表:edu_homework |
| HomeworkReview | 作业批改与点评;落地表:edu_homework_review |
| GrowthRecord | 学习成长档案;落地表:edu_growth_record |
关联引用对象
| 对象 | 说明 |
|---|---|
| Organization | 集团、区域、校区、部门组织树;引用来源:FND / sys_organization |
| User/Employee | 统一登录账号;引用来源:FND / sys_user |
| Employee | 员工基础档案;引用来源:FND / sys_employee |
| Role | 角色定义;引用来源:FND / sys_role |
| ApprovalFlow | 审批流配置;引用来源:FND / sys_approval_flow |
| MessageTemplate | 消息模板与多端触达配置;引用来源:FND / sys_message_template |
| AuditLog | 全平台操作审计日志;引用来源:FND / sys_audit_log |
| IntegrationLog | 接口调用日志;引用来源:OPEN / int_integration_log |
| SensitiveFieldPolicy | 敏感字段脱敏策略;引用来源:SEC / sec_sensitive_field_policy |
| Guardian | 监护人/家长资料;引用来源:CRM / crm_guardian |
| Student | 学员基础档案;引用来源:CRM / stu_student |
| Contract | 合同主表;引用来源:CON / con_contract |
| Order | 订单和应收;引用来源:CON / ord_order |
| LiveRoom | 直播间;引用来源:LIVE / live_room |
| FaceAttendanceEvent | 人脸识别回传事件;引用来源:FAC / dev_face_event |
| ServiceTicket | 服务工单;引用来源:SER / ser_service_ticket |
完整字段字典
| 对象 | 字段 | 类型 | 必填 | 规则 | 数据级别 |
|---|---|---|---|---|---|
| Course/Product | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| Course/Product | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| Course/Product | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| Course/Product | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| Course/Product | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| Course/Product | created_at | DATETIME | 是 | 创建时间 | 普通 |
| Course/Product | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| Course/Product | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| Course/Product | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| Course/Product | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| Course/Product | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| Course/Product | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| Course/Product | course_code | VARCHAR(64) | 是 | 课程编码,唯一 | 普通 |
| Course/Product | course_name | VARCHAR(128) | 是 | 课程名称 | 普通 |
| Course/Product | subject | VARCHAR(32) | 是 | 学科 | 普通 |
| Course/Product | course_type | VARCHAR(32) | 是 | 班课/一对一/直播/录播 | 普通 |
| Course/Product | grade_scope | JSON | 否 | 适用年级 | 普通 |
| Course/Product | enabled | TINYINT | 是 | 是否启用 | 普通 |
| CoursePackage | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| CoursePackage | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| CoursePackage | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| CoursePackage | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| CoursePackage | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| CoursePackage | created_at | DATETIME | 是 | 创建时间 | 普通 |
| CoursePackage | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| CoursePackage | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| CoursePackage | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| CoursePackage | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| CoursePackage | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| CoursePackage | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| CoursePackage | package_code | VARCHAR(64) | 是 | 课包编码,唯一 | 普通 |
| CoursePackage | course_id | BIGINT | 是 | 课程 ID | 普通 |
| CoursePackage | lesson_hours | DECIMAL(8,2) | 是 | 课时数 | 普通 |
| CoursePackage | sale_price | DECIMAL(18,2) | 是 | 销售价格 | 普通 |
| CoursePackage | valid_days | INT | 是 | 有效期天数 | 普通 |
| CoursePackage | campus_scope | JSON | 否 | 适用校区 | 普通 |
| Class | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| Class | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| Class | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| Class | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| Class | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| Class | created_at | DATETIME | 是 | 创建时间 | 普通 |
| Class | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| Class | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| Class | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| Class | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| Class | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| Class | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| Class | class_no | VARCHAR(64) | 是 | 班级编号,唯一 | 普通 |
| Class | course_id | BIGINT | 是 | 课程 ID | 普通 |
| Class | teacher_id | BIGINT | 否 | 主讲教师 ID | 普通 |
| Class | classroom_id | BIGINT | 否 | 默认教室 ID | 普通 |
| Class | capacity | INT | 是 | 班级容量 | 普通 |
| Class | class_status | VARCHAR(32) | 是 | 筹备中/开班/结课/停课 | 普通 |
| Schedule/Lesson | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| Schedule/Lesson | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| Schedule/Lesson | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| Schedule/Lesson | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| Schedule/Lesson | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| Schedule/Lesson | created_at | DATETIME | 是 | 创建时间 | 普通 |
| Schedule/Lesson | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| Schedule/Lesson | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| Schedule/Lesson | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| Schedule/Lesson | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| Schedule/Lesson | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| Schedule/Lesson | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| Schedule/Lesson | lesson_no | VARCHAR(64) | 是 | 课次编号,唯一 | 普通 |
| Schedule/Lesson | class_id | BIGINT | 是 | 班级 ID | 普通 |
| Schedule/Lesson | teacher_id | BIGINT | 是 | 授课教师 ID | 普通 |
| Schedule/Lesson | classroom_id | BIGINT | 否 | 教室 ID | 普通 |
| Schedule/Lesson | start_at | DATETIME | 是 | 上课开始时间 | 普通 |
| Schedule/Lesson | end_at | DATETIME | 是 | 上课结束时间 | 普通 |
| Schedule/Lesson | lesson_status | VARCHAR(32) | 是 | 待上课/上课中/已下课/已取消/需补课 | 普通 |
| Attendance | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| Attendance | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| Attendance | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| Attendance | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| Attendance | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| Attendance | created_at | DATETIME | 是 | 创建时间 | 普通 |
| Attendance | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| Attendance | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| Attendance | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| Attendance | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| Attendance | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| Attendance | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| Attendance | lesson_id | BIGINT | 是 | 课次 ID | 普通 |
| Attendance | student_id | BIGINT | 是 | 学员 ID | 普通 |
| Attendance | checkin_type | VARCHAR(32) | 是 | 人工/人脸/补签/家长确认 | 普通 |
| Attendance | checkin_at | DATETIME | 否 | 签到时间 | 普通 |
| Attendance | attendance_status | VARCHAR(32) | 是 | 到课/请假/旷课/迟到/待确认 | 普通 |
| Attendance | source_event_id | BIGINT | 否 | 来源设备或操作事件 | 普通 |
| Consumption | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| Consumption | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| Consumption | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| Consumption | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| Consumption | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| Consumption | created_at | DATETIME | 是 | 创建时间 | 普通 |
| Consumption | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| Consumption | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| Consumption | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| Consumption | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| Consumption | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| Consumption | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| Consumption | lesson_id | BIGINT | 是 | 课次 ID | 普通 |
| Consumption | student_id | BIGINT | 是 | 学员 ID | 普通 |
| Consumption | contract_id | BIGINT | 是 | 合同 ID | 普通 |
| Consumption | consumed_hours | DECIMAL(8,2) | 是 | 消耗课时 | 普通 |
| Consumption | consume_amount | DECIMAL(18,2) | 否 | 课消金额 | 普通 |
| Consumption | consume_status | VARCHAR(32) | 是 | 待确认/已课消/已冲销/异常 | 普通 |
| LeaveRequest | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| LeaveRequest | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| LeaveRequest | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| LeaveRequest | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| LeaveRequest | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| LeaveRequest | created_at | DATETIME | 是 | 创建时间 | 普通 |
| LeaveRequest | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| LeaveRequest | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| LeaveRequest | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| LeaveRequest | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| LeaveRequest | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| LeaveRequest | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| LeaveRequest | leave_no | VARCHAR(64) | 是 | 请假编号,唯一 | 普通 |
| LeaveRequest | student_id | BIGINT | 是 | 学员 ID | 普通 |
| LeaveRequest | lesson_id | BIGINT | 是 | 课次 ID | 普通 |
| LeaveRequest | leave_reason | VARCHAR(512) | 是 | 请假原因 | 普通 |
| LeaveRequest | proof_file_ids | JSON | 否 | 证明附件 | 普通 |
| LeaveRequest | leave_status | VARCHAR(32) | 是 | 待审核/已通过/已驳回/已撤销 | 普通 |
| LeaveRequest | approval_status | VARCHAR(32) | 否 | 审批状态,未发起为空 | 普通 |
| LeaveRequest | approval_instance_id | BIGINT | 否 | 关联审批实例 ID | 普通 |
| MakeupArrangement | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| MakeupArrangement | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| MakeupArrangement | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| MakeupArrangement | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| MakeupArrangement | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| MakeupArrangement | created_at | DATETIME | 是 | 创建时间 | 普通 |
| MakeupArrangement | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| MakeupArrangement | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| MakeupArrangement | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| MakeupArrangement | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| MakeupArrangement | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| MakeupArrangement | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| MakeupArrangement | arrangement_no | VARCHAR(64) | 是 | 补课安排编号,唯一 | 普通 |
| MakeupArrangement | leave_request_id | BIGINT | 否 | 关联请假单 | 普通 |
| MakeupArrangement | student_id | BIGINT | 是 | 学员 ID | 普通 |
| MakeupArrangement | candidate_lessons | JSON | 否 | 候选补课课次 | 普通 |
| MakeupArrangement | makeup_preference | JSON | 否 | 家长期望时间 | 普通 |
| MakeupArrangement | confirm_deadline | DATETIME | 否 | 确认截止时间 | 普通 |
| MakeupArrangement | arrange_status | VARCHAR(32) | 是 | 待安排/待确认/已确认/已完成/已取消 | 普通 |
| Homework | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| Homework | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| Homework | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| Homework | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| Homework | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| Homework | created_at | DATETIME | 是 | 创建时间 | 普通 |
| Homework | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| Homework | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| Homework | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| Homework | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| Homework | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| Homework | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| Homework | homework_no | VARCHAR(64) | 是 | 作业编号,唯一 | 普通 |
| Homework | lesson_id | BIGINT | 是 | 课次 ID | 普通 |
| Homework | title | VARCHAR(128) | 是 | 作业标题 | 普通 |
| Homework | content_schema | JSON | 是 | 题目、附件、提交要求 | 普通 |
| Homework | deadline_at | DATETIME | 否 | 截止时间 | 普通 |
| Homework | publish_status | VARCHAR(32) | 是 | 草稿/已发布/已关闭 | 普通 |
| HomeworkReview | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| HomeworkReview | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| HomeworkReview | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| HomeworkReview | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| HomeworkReview | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| HomeworkReview | created_at | DATETIME | 是 | 创建时间 | 普通 |
| HomeworkReview | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| HomeworkReview | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| HomeworkReview | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| HomeworkReview | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| HomeworkReview | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| HomeworkReview | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| HomeworkReview | submit_id | BIGINT | 是 | 作业提交 ID | 普通 |
| HomeworkReview | teacher_id | BIGINT | 是 | 批改教师 ID | 普通 |
| HomeworkReview | score | DECIMAL(6,2) | 否 | 得分 | 普通 |
| HomeworkReview | comment | TEXT | 否 | 评语 | 普通 |
| HomeworkReview | wrong_question_json | JSON | 否 | 错题记录 | 普通 |
| HomeworkReview | review_status | VARCHAR(32) | 是 | 待批改/已批改/需订正 | 普通 |
| GrowthRecord | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| GrowthRecord | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| GrowthRecord | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| GrowthRecord | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| GrowthRecord | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| GrowthRecord | created_at | DATETIME | 是 | 创建时间 | 普通 |
| GrowthRecord | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| GrowthRecord | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| GrowthRecord | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| GrowthRecord | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| GrowthRecord | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| GrowthRecord | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| GrowthRecord | student_id | BIGINT | 是 | 学员 ID | 普通 |
| GrowthRecord | record_type | VARCHAR(32) | 是 | 课堂/作业/测评/签到/教师评价 | 普通 |
| GrowthRecord | biz_type | VARCHAR(64) | 是 | 来源业务类型 | 普通 |
| GrowthRecord | biz_id | BIGINT | 是 | 来源业务 ID | 普通 |
| GrowthRecord | record_content | JSON | 是 | 成长记录内容 | 普通 |
| GrowthRecord | visible_to_parent | TINYINT | 是 | 家长端是否可见 | 普通 |
引用对象字段字典
| 引用表 | 对象 | 字段 | 类型 | 必填 | 规则 | 数据级别 |
|---|---|---|---|---|---|---|
| sys_organization | Organization | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| sys_organization | Organization | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| sys_organization | Organization | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| sys_organization | Organization | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| sys_organization | Organization | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| sys_organization | Organization | created_at | DATETIME | 是 | 创建时间 | 普通 |
| sys_organization | Organization | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| sys_organization | Organization | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| sys_organization | Organization | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| sys_organization | Organization | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| sys_organization | Organization | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| sys_organization | Organization | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| sys_organization | Organization | org_code | VARCHAR(64) | 是 | 组织编码,租户内唯一 | 普通 |
| sys_organization | Organization | org_name | VARCHAR(128) | 是 | 组织名称 | 普通 |
| sys_organization | Organization | org_type | VARCHAR(32) | 是 | 集团/区域/校区/部门/法人主体 | 普通 |
| sys_organization | Organization | parent_id | BIGINT | 否 | 上级组织 ID,根节点为空 | 普通 |
| sys_organization | Organization | sort_no | INT | 否 | 同级排序 | 普通 |
| sys_organization | Organization | enabled | TINYINT | 是 | 是否启用 | 普通 |
| sys_user | User/Employee | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| sys_user | User/Employee | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| sys_user | User/Employee | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| sys_user | User/Employee | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| sys_user | User/Employee | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| sys_user | User/Employee | created_at | DATETIME | 是 | 创建时间 | 普通 |
| sys_user | User/Employee | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| sys_user | User/Employee | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| sys_user | User/Employee | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| sys_user | User/Employee | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| sys_user | User/Employee | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| sys_user | User/Employee | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| sys_user | User/Employee | user_no | VARCHAR(64) | 是 | 账号编号,唯一 | 普通 |
| sys_user | User/Employee | login_name | VARCHAR(64) | 是 | 登录名,唯一 | 普通 |
| sys_user | User/Employee | mobile | VARCHAR(32) | 否 | 手机号,敏感脱敏展示 | 敏感 |
| sys_user | User/Employee | password_hash | VARCHAR(255) | 否 | 密码哈希,禁止前端返回 | 高敏 |
| sys_user | User/Employee | user_type | VARCHAR(32) | 是 | 员工/学员/家长/外部账号 | 普通 |
| sys_user | User/Employee | login_status | VARCHAR(32) | 是 | 正常/锁定/停用/待激活 | 普通 |
| sys_employee | Employee | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| sys_employee | Employee | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| sys_employee | Employee | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| sys_employee | Employee | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| sys_employee | Employee | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| sys_employee | Employee | created_at | DATETIME | 是 | 创建时间 | 普通 |
| sys_employee | Employee | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| sys_employee | Employee | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| sys_employee | Employee | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| sys_employee | Employee | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| sys_employee | Employee | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| sys_employee | Employee | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| sys_employee | Employee | employee_no | VARCHAR(64) | 是 | 工号,唯一 | 普通 |
| sys_employee | Employee | user_id | BIGINT | 否 | 关联账号 ID | 普通 |
| sys_employee | Employee | employee_name | VARCHAR(64) | 是 | 员工姓名 | 普通 |
| sys_employee | Employee | primary_campus_id | BIGINT | 否 | 主校区 ID | 普通 |
| sys_employee | Employee | job_title | VARCHAR(64) | 否 | 岗位名称 | 普通 |
| sys_employee | Employee | hire_status | VARCHAR(32) | 是 | 在职/试用/离职/停用 | 普通 |
| sys_role | Role | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| sys_role | Role | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| sys_role | Role | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| sys_role | Role | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| sys_role | Role | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| sys_role | Role | created_at | DATETIME | 是 | 创建时间 | 普通 |
| sys_role | Role | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| sys_role | Role | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| sys_role | Role | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| sys_role | Role | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| sys_role | Role | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| sys_role | Role | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| sys_role | Role | role_code | VARCHAR(64) | 是 | 角色编码,唯一 | 普通 |
| sys_role | Role | role_name | VARCHAR(128) | 是 | 角色名称 | 普通 |
| sys_role | Role | role_level | VARCHAR(32) | 是 | 总部/区域/校区/个人 | 普通 |
| sys_role | Role | data_scope_type | VARCHAR(32) | 是 | 数据范围类型 | 普通 |
| sys_role | Role | enabled | TINYINT | 是 | 是否启用 | 普通 |
| sys_approval_flow | ApprovalFlow | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| sys_approval_flow | ApprovalFlow | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| sys_approval_flow | ApprovalFlow | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| sys_approval_flow | ApprovalFlow | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| sys_approval_flow | ApprovalFlow | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| sys_approval_flow | ApprovalFlow | created_at | DATETIME | 是 | 创建时间 | 普通 |
| sys_approval_flow | ApprovalFlow | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| sys_approval_flow | ApprovalFlow | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| sys_approval_flow | ApprovalFlow | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| sys_approval_flow | ApprovalFlow | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| sys_approval_flow | ApprovalFlow | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| sys_approval_flow | ApprovalFlow | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| sys_approval_flow | ApprovalFlow | flow_code | VARCHAR(64) | 是 | 审批流编码,唯一 | 普通 |
| sys_approval_flow | ApprovalFlow | biz_type | VARCHAR(64) | 是 | 业务类型 | 普通 |
| sys_approval_flow | ApprovalFlow | flow_name | VARCHAR(128) | 是 | 审批流名称 | 普通 |
| sys_approval_flow | ApprovalFlow | condition_json | JSON | 否 | 触发条件 | 普通 |
| sys_approval_flow | ApprovalFlow | node_json | JSON | 是 | 节点、审批人和超时规则 | 普通 |
| sys_approval_flow | ApprovalFlow | version_no | INT | 是 | 审批流版本号 | 普通 |
| sys_approval_flow | ApprovalFlow | enabled | TINYINT | 是 | 是否启用 | 普通 |
| sys_message_template | MessageTemplate | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| sys_message_template | MessageTemplate | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| sys_message_template | MessageTemplate | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| sys_message_template | MessageTemplate | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| sys_message_template | MessageTemplate | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| sys_message_template | MessageTemplate | created_at | DATETIME | 是 | 创建时间 | 普通 |
| sys_message_template | MessageTemplate | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| sys_message_template | MessageTemplate | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| sys_message_template | MessageTemplate | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| sys_message_template | MessageTemplate | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| sys_message_template | MessageTemplate | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| sys_message_template | MessageTemplate | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| sys_message_template | MessageTemplate | template_code | VARCHAR(64) | 是 | 模板编码,唯一 | 普通 |
| sys_message_template | MessageTemplate | template_name | VARCHAR(128) | 是 | 模板名称 | 普通 |
| sys_message_template | MessageTemplate | channel | VARCHAR(32) | 是 | 站内信/短信/微信小程序/企微/Push | 普通 |
| sys_message_template | MessageTemplate | receiver_rule | JSON | 是 | 接收人规则 | 普通 |
| sys_message_template | MessageTemplate | content_template | TEXT | 是 | 模板内容 | 普通 |
| sys_message_template | MessageTemplate | enabled | TINYINT | 是 | 是否启用 | 普通 |
| sys_audit_log | AuditLog | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| sys_audit_log | AuditLog | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| sys_audit_log | AuditLog | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| sys_audit_log | AuditLog | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| sys_audit_log | AuditLog | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| sys_audit_log | AuditLog | created_at | DATETIME | 是 | 创建时间 | 普通 |
| sys_audit_log | AuditLog | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| sys_audit_log | AuditLog | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| sys_audit_log | AuditLog | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| sys_audit_log | AuditLog | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| sys_audit_log | AuditLog | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| sys_audit_log | AuditLog | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| sys_audit_log | AuditLog | operator_id | BIGINT | 是 | 操作人 ID | 普通 |
| sys_audit_log | AuditLog | biz_type | VARCHAR(64) | 是 | 业务类型 | 普通 |
| sys_audit_log | AuditLog | biz_id | BIGINT | 否 | 业务主键 ID | 普通 |
| sys_audit_log | AuditLog | action_code | VARCHAR(64) | 是 | 操作编码 | 普通 |
| sys_audit_log | AuditLog | before_snapshot | JSON | 否 | 变更前快照 | 普通 |
| sys_audit_log | AuditLog | after_snapshot | JSON | 否 | 变更后快照 | 普通 |
| sys_audit_log | AuditLog | ip_address | VARCHAR(64) | 否 | 操作 IP | 普通 |
| int_integration_log | IntegrationLog | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| int_integration_log | IntegrationLog | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| int_integration_log | IntegrationLog | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| int_integration_log | IntegrationLog | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| int_integration_log | IntegrationLog | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| int_integration_log | IntegrationLog | created_at | DATETIME | 是 | 创建时间 | 普通 |
| int_integration_log | IntegrationLog | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| int_integration_log | IntegrationLog | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| int_integration_log | IntegrationLog | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| int_integration_log | IntegrationLog | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| int_integration_log | IntegrationLog | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| int_integration_log | IntegrationLog | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| int_integration_log | IntegrationLog | request_id | VARCHAR(128) | 是 | 请求 ID,幂等键 | 普通 |
| int_integration_log | IntegrationLog | system_code | VARCHAR(64) | 是 | 外部系统编码 | 普通 |
| int_integration_log | IntegrationLog | api_path | VARCHAR(512) | 是 | 接口路径 | 普通 |
| int_integration_log | IntegrationLog | biz_type | VARCHAR(64) | 否 | 业务类型 | 普通 |
| int_integration_log | IntegrationLog | biz_id | BIGINT | 否 | 业务 ID | 普通 |
| int_integration_log | IntegrationLog | request_payload | JSON | 否 | 请求报文,敏感字段脱敏 | 敏感 |
| int_integration_log | IntegrationLog | response_payload | JSON | 否 | 响应报文 | 普通 |
| int_integration_log | IntegrationLog | call_status | VARCHAR(32) | 是 | 成功/失败/超时/重试中 | 普通 |
| sec_sensitive_field_policy | SensitiveFieldPolicy | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| sec_sensitive_field_policy | SensitiveFieldPolicy | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| sec_sensitive_field_policy | SensitiveFieldPolicy | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| sec_sensitive_field_policy | SensitiveFieldPolicy | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| sec_sensitive_field_policy | SensitiveFieldPolicy | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| sec_sensitive_field_policy | SensitiveFieldPolicy | created_at | DATETIME | 是 | 创建时间 | 普通 |
| sec_sensitive_field_policy | SensitiveFieldPolicy | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| sec_sensitive_field_policy | SensitiveFieldPolicy | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| sec_sensitive_field_policy | SensitiveFieldPolicy | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| sec_sensitive_field_policy | SensitiveFieldPolicy | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| sec_sensitive_field_policy | SensitiveFieldPolicy | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| sec_sensitive_field_policy | SensitiveFieldPolicy | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| sec_sensitive_field_policy | SensitiveFieldPolicy | field_code | VARCHAR(128) | 是 | 字段编码,唯一 | 普通 |
| sec_sensitive_field_policy | SensitiveFieldPolicy | biz_type | VARCHAR(64) | 是 | 业务类型 | 普通 |
| sec_sensitive_field_policy | SensitiveFieldPolicy | mask_rule | VARCHAR(64) | 是 | 脱敏规则 | 普通 |
| sec_sensitive_field_policy | SensitiveFieldPolicy | view_requires_approval | TINYINT | 是 | 明文查看是否需审批 | 普通 |
| sec_sensitive_field_policy | SensitiveFieldPolicy | watermark_required | TINYINT | 是 | 是否加水印 | 普通 |
| crm_guardian | Guardian | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| crm_guardian | Guardian | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| crm_guardian | Guardian | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| crm_guardian | Guardian | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| crm_guardian | Guardian | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| crm_guardian | Guardian | created_at | DATETIME | 是 | 创建时间 | 普通 |
| crm_guardian | Guardian | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| crm_guardian | Guardian | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| crm_guardian | Guardian | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| crm_guardian | Guardian | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| crm_guardian | Guardian | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| crm_guardian | Guardian | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| crm_guardian | Guardian | family_id | BIGINT | 是 | 家庭 ID | 普通 |
| crm_guardian | Guardian | guardian_name | VARCHAR(64) | 是 | 监护人姓名 | 普通 |
| crm_guardian | Guardian | mobile | VARCHAR(32) | 是 | 手机号,敏感 | 敏感 |
| crm_guardian | Guardian | relationship | VARCHAR(32) | 是 | 与学员关系 | 普通 |
| crm_guardian | Guardian | wechat_openid | VARCHAR(128) | 否 | 微信 OpenID,敏感 | 敏感 |
| crm_guardian | Guardian | verify_status | VARCHAR(32) | 是 | 未验证/已验证/已解绑 | 普通 |
| stu_student | Student | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| stu_student | Student | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| stu_student | Student | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| stu_student | Student | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| stu_student | Student | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| stu_student | Student | created_at | DATETIME | 是 | 创建时间 | 普通 |
| stu_student | Student | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| stu_student | Student | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| stu_student | Student | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| stu_student | Student | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| stu_student | Student | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| stu_student | Student | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| stu_student | Student | student_no | VARCHAR(64) | 是 | 学员编号,唯一 | 普通 |
| stu_student | Student | family_id | BIGINT | 否 | 家庭 ID | 普通 |
| stu_student | Student | student_name | VARCHAR(64) | 是 | 学员姓名 | 普通 |
| stu_student | Student | gender | VARCHAR(16) | 否 | 性别 | 普通 |
| stu_student | Student | birthday | DATE | 否 | 出生日期 | 普通 |
| stu_student | Student | grade | VARCHAR(32) | 否 | 年级 | 普通 |
| stu_student | Student | school_name | VARCHAR(128) | 否 | 学校名称 | 普通 |
| stu_student | Student | biz_status | VARCHAR(32) | 是 | 业务状态,取值来自状态机字典 | 普通 |
| stu_student | Student | remark | VARCHAR(512) | 否 | 业务备注,敏感内容按权限脱敏 | 普通 |
| con_contract | Contract | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| con_contract | Contract | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| con_contract | Contract | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| con_contract | Contract | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| con_contract | Contract | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| con_contract | Contract | created_at | DATETIME | 是 | 创建时间 | 普通 |
| con_contract | Contract | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| con_contract | Contract | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| con_contract | Contract | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| con_contract | Contract | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| con_contract | Contract | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| con_contract | Contract | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| con_contract | Contract | contract_no | VARCHAR(64) | 是 | 合同编号,唯一 | 普通 |
| con_contract | Contract | student_id | BIGINT | 是 | 学员 ID | 普通 |
| con_contract | Contract | family_id | BIGINT | 否 | 客户家庭 ID | 普通 |
| con_contract | Contract | template_id | BIGINT | 是 | 合同模板 ID | 普通 |
| con_contract | Contract | employee_id | BIGINT | 否 | 创建合同的销售/市场/课程顾问员工 ID | 普通 |
| con_contract | Contract | source_terminal | VARCHAR(32) | 是 | 来源终端,教师端 App/小程序或 PC 管理端 | 普通 |
| con_contract | Contract | simulation_id | BIGINT | 否 | 关联优惠试算 ID | 普通 |
| con_contract | Contract | extra_discount_apply_id | BIGINT | 否 | 关联额外折扣申请 ID | 普通 |
| con_contract | Contract | hand_sign_status | VARCHAR(32) | 是 | 待手写签字/已手写签字/签字作废 | 普通 |
| con_contract | Contract | sign_status | VARCHAR(32) | 是 | 待家长签署/已手写签字/已作废 | 普通 |
| con_contract | Contract | payment_status | VARCHAR(32) | 是 | 待支付/支付中/支付成功/支付失败/已关闭 | 普通 |
| con_contract | Contract | enterprise_seal_status | VARCHAR(32) | 是 | 未触发/盖章中/已盖章/盖章失败/已归档 | 普通 |
| con_contract | Contract | contract_status | VARCHAR(32) | 是 | 草稿/生效/履约中/已终止/已退费 | 普通 |
| con_contract | Contract | supervision_status | VARCHAR(32) | 否 | 监管报送状态 | 普通 |
| con_contract | Contract | currency | VARCHAR(8) | 是 | 币种,默认 CNY | 普通 |
| con_contract | Contract | amount | DECIMAL(18,2) | 是 | 含税金额,必须大于等于 0 | 普通 |
| con_contract | Contract | tax_amount | DECIMAL(18,2) | 否 | 税额,按发票或税率计算 | 普通 |
| con_contract | Contract | approval_status | VARCHAR(32) | 否 | 审批状态,未发起为空 | 普通 |
| con_contract | Contract | approval_instance_id | BIGINT | 否 | 关联审批实例 ID | 普通 |
| ord_order | Order | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| ord_order | Order | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| ord_order | Order | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| ord_order | Order | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| ord_order | Order | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| ord_order | Order | created_at | DATETIME | 是 | 创建时间 | 普通 |
| ord_order | Order | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| ord_order | Order | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| ord_order | Order | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| ord_order | Order | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| ord_order | Order | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| ord_order | Order | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| ord_order | Order | order_no | VARCHAR(64) | 是 | 订单编号,唯一 | 普通 |
| ord_order | Order | contract_id | BIGINT | 是 | 合同 ID | 普通 |
| ord_order | Order | student_id | BIGINT | 是 | 学员 ID | 普通 |
| ord_order | Order | receivable_amount | DECIMAL(18,2) | 是 | 应收金额 | 普通 |
| ord_order | Order | discount_amount | DECIMAL(18,2) | 否 | 优惠金额 | 普通 |
| ord_order | Order | paid_amount | DECIMAL(18,2) | 是 | 已收金额 | 普通 |
| ord_order | Order | order_status | VARCHAR(32) | 是 | 待支付/支付中/已支付/已关闭 | 普通 |
| live_room | LiveRoom | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| live_room | LiveRoom | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| live_room | LiveRoom | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| live_room | LiveRoom | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| live_room | LiveRoom | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| live_room | LiveRoom | created_at | DATETIME | 是 | 创建时间 | 普通 |
| live_room | LiveRoom | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| live_room | LiveRoom | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| live_room | LiveRoom | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| live_room | LiveRoom | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| live_room | LiveRoom | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| live_room | LiveRoom | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| live_room | LiveRoom | room_no | VARCHAR(64) | 是 | 直播间编号,唯一 | 普通 |
| live_room | LiveRoom | live_type | VARCHAR(32) | 是 | 教学直播/活动直播/集团会议直播 | 普通 |
| live_room | LiveRoom | provider_code | VARCHAR(32) | 是 | 启用供应商 | 普通 |
| live_room | LiveRoom | biz_type | VARCHAR(64) | 是 | 绑定业务类型 | 普通 |
| live_room | LiveRoom | biz_id | BIGINT | 是 | 绑定业务 ID | 普通 |
| live_room | LiveRoom | start_at | DATETIME | 否 | 计划开始时间 | 普通 |
| live_room | LiveRoom | end_at | DATETIME | 否 | 计划结束时间 | 普通 |
| live_room | LiveRoom | room_status | VARCHAR(32) | 是 | 待开播/直播中/已结束/异常 | 普通 |
| dev_face_event | FaceAttendanceEvent | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| dev_face_event | FaceAttendanceEvent | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| dev_face_event | FaceAttendanceEvent | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| dev_face_event | FaceAttendanceEvent | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| dev_face_event | FaceAttendanceEvent | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| dev_face_event | FaceAttendanceEvent | created_at | DATETIME | 是 | 创建时间 | 普通 |
| dev_face_event | FaceAttendanceEvent | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| dev_face_event | FaceAttendanceEvent | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| dev_face_event | FaceAttendanceEvent | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| dev_face_event | FaceAttendanceEvent | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| dev_face_event | FaceAttendanceEvent | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| dev_face_event | FaceAttendanceEvent | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| dev_face_event | FaceAttendanceEvent | device_id | BIGINT | 是 | 设备 ID | 普通 |
| dev_face_event | FaceAttendanceEvent | device_event_id | VARCHAR(128) | 是 | 设备侧事件号 | 普通 |
| dev_face_event | FaceAttendanceEvent | person_id | BIGINT | 否 | 匹配人员 ID | 普通 |
| dev_face_event | FaceAttendanceEvent | lesson_id | BIGINT | 否 | 匹配课次 ID | 普通 |
| dev_face_event | FaceAttendanceEvent | event_time | DATETIME | 是 | 识别时间 | 普通 |
| dev_face_event | FaceAttendanceEvent | confidence | DECIMAL(8,4) | 是 | 识别置信度 | 普通 |
| dev_face_event | FaceAttendanceEvent | match_status | VARCHAR(32) | 是 | 已匹配/低置信/未匹配/重复 | 普通 |
| dev_face_event | FaceAttendanceEvent | raw_payload | JSON | 是 | 设备原始报文 | 敏感 |
| ser_service_ticket | ServiceTicket | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| ser_service_ticket | ServiceTicket | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| ser_service_ticket | ServiceTicket | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| ser_service_ticket | ServiceTicket | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| ser_service_ticket | ServiceTicket | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| ser_service_ticket | ServiceTicket | created_at | DATETIME | 是 | 创建时间 | 普通 |
| ser_service_ticket | ServiceTicket | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| ser_service_ticket | ServiceTicket | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| ser_service_ticket | ServiceTicket | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| ser_service_ticket | ServiceTicket | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| ser_service_ticket | ServiceTicket | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| ser_service_ticket | ServiceTicket | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| ser_service_ticket | ServiceTicket | ticket_no | VARCHAR(64) | 是 | 工单编号,唯一 | 普通 |
| ser_service_ticket | ServiceTicket | student_id | BIGINT | 否 | 学员 ID | 普通 |
| ser_service_ticket | ServiceTicket | guardian_id | BIGINT | 否 | 家长 ID | 普通 |
| ser_service_ticket | ServiceTicket | ticket_type | VARCHAR(32) | 是 | 咨询/投诉/风险/售后/转介绍 | 普通 |
| ser_service_ticket | ServiceTicket | ticket_content | TEXT | 是 | 工单内容 | 普通 |
| ser_service_ticket | ServiceTicket | priority | VARCHAR(32) | 是 | 普通/紧急/高风险 | 普通 |
| ser_service_ticket | ServiceTicket | ticket_status | VARCHAR(32) | 是 | 待处理/处理中/待确认/已关闭 | 普通 |
JSON 字段结构与校验
| 表名 | 对象 | 字段 | 结构编码 | 结构定义 | 校验规则 | 示例 |
|---|---|---|---|---|---|---|
| edu_course | Course/Product | grade_scope | GENERIC | object | array | 必须符合字段说明中的业务结构;保存前进行 JSON Schema 校验并记录版本 | {"version":1,"items":[]} |
| edu_product_package | CoursePackage | campus_scope | ORG_SCOPE | {scopeType:string, orgIds:number[], campusIds:number[], includeChildren:boolean} | 组织和校区必须在当前租户授权范围内 | {"scopeType":"CAMPUS","campusIds":[101,102],"includeChildren":false} |
| edu_leave_request | LeaveRequest | proof_file_ids | ID_LIST | array<number> | 数组长度 1-500;元素必须为已存在且未逻辑删除的业务 ID | [10001,10002] |
| edu_makeup_arrangement | MakeupArrangement | candidate_lessons | LESSON_CANDIDATES | [{lessonId:number, startAt:string, teacherId:number, capacityLeft:number, conflict:boolean}] | 候选课次必须已排课、未满班且无时间冲突 | [{"lessonId":9001,"capacityLeft":3,"conflict":false}] |
| edu_makeup_arrangement | MakeupArrangement | makeup_preference | LESSON_CANDIDATES | [{lessonId:number, startAt:string, teacherId:number, capacityLeft:number, conflict:boolean}] | 候选课次必须已排课、未满班且无时间冲突 | [{"lessonId":9001,"capacityLeft":3,"conflict":false}] |
| edu_homework | Homework | content_schema | HOMEWORK_CONTENT | {questions:[{questionId:number,type:string,score:number}], attachments:number[], submitRule:object} | 题目必须引用已发布版本;附件必须来自文件中心 | {"questions":[{"questionId":1,"type":"single","score":5}],"submitRule":{"allowDraft":true}} |
| edu_homework_review | HomeworkReview | wrong_question_json | GENERIC | object | array | 必须符合字段说明中的业务结构;保存前进行 JSON Schema 校验并记录版本 | {"version":1,"items":[]} |
| edu_growth_record | GrowthRecord | record_content | LEARNING_PROFILE | {ability:[{code:string, score:number}], weakPoints:string[], lastReportId?:number} | 能力分 0-100;来源必须可追溯到课程、作业、测评或直播 | {"ability":[{"code":"LISTENING","score":82}],"weakPoints":["过去式"]} |
状态/枚举标准字典
| 表名 | 对象 | 字段 | 枚举编码 | 取值 | 终态/流转规则 | 字段说明 |
|---|---|---|---|---|---|---|
| edu_course | Course/Product | tenant_id | TENANT_ID | 集团、租户隔离字段 | 非终态,可按状态机或字典规则流转 | 集团/租户隔离字段,所有查询必须带租户上下文 |
| edu_course | Course/Product | is_deleted | BOOL_DELETED | 0 未删除、1 已删除 | 非终态,可按状态机或字典规则流转 | 是否已删除,0 未删除,1 已删除 |
| edu_course | Course/Product | course_type | COURSE_TYPE | 班课、一对一、直播、录播 | 非终态,可按状态机或字典规则流转 | 班课/一对一/直播/录播 |
| edu_course | Course/Product | grade_scope | GRADE_SCOPE | PRE_K 幼小、PRIMARY_LOW 小学低年级、PRIMARY_HIGH 小学高年级、JUNIOR 初中、SENIOR 高中、CUSTOM 自定义 | 非终态,可按状态机或字典规则流转 | 适用年级 |
| edu_course | Course/Product | enabled | ENABLED_STATUS | 0 停用、1 启用 | 非终态,可按状态机或字典规则流转 | 是否启用 |
| edu_product_package | CoursePackage | tenant_id | TENANT_ID | 集团、租户隔离字段 | 非终态,可按状态机或字典规则流转 | 集团/租户隔离字段,所有查询必须带租户上下文 |
| edu_product_package | CoursePackage | is_deleted | BOOL_DELETED | 0 未删除、1 已删除 | 非终态,可按状态机或字典规则流转 | 是否已删除,0 未删除,1 已删除 |
| edu_product_package | CoursePackage | campus_scope | CAMPUS_SCOPE | ALL_CAMPUS 全部校区、REGION_CAMPUS 区域校区、SELECTED_CAMPUS 指定校区、CURRENT_CAMPUS 当前校区、NONE 不限定校区 | 非终态,可按状态机或字典规则流转 | 适用校区 |
| edu_class | Class | tenant_id | TENANT_ID | 集团、租户隔离字段 | 非终态,可按状态机或字典规则流转 | 集团/租户隔离字段,所有查询必须带租户上下文 |
| edu_class | Class | is_deleted | BOOL_DELETED | 0 未删除、1 已删除 | 非终态,可按状态机或字典规则流转 | 是否已删除,0 未删除,1 已删除 |
| edu_class | Class | class_status | CLASS_STATUS | 筹备中、开班、结课、停课 | 非终态,可按状态机或字典规则流转 | 筹备中/开班/结课/停课 |
| edu_lesson | Schedule/Lesson | tenant_id | TENANT_ID | 集团、租户隔离字段 | 非终态,可按状态机或字典规则流转 | 集团/租户隔离字段,所有查询必须带租户上下文 |
| edu_lesson | Schedule/Lesson | is_deleted | BOOL_DELETED | 0 未删除、1 已删除 | 非终态,可按状态机或字典规则流转 | 是否已删除,0 未删除,1 已删除 |
| edu_lesson | Schedule/Lesson | lesson_status | LESSON_STATUS | 待上课、上课中、已下课、已取消、需补课 | 包含终态,终态禁止直接编辑,需走变更/红冲/撤回流程 | 待上课/上课中/已下课/已取消/需补课 |
| edu_attendance | Attendance | tenant_id | TENANT_ID | 集团、租户隔离字段 | 非终态,可按状态机或字典规则流转 | 集团/租户隔离字段,所有查询必须带租户上下文 |
| edu_attendance | Attendance | is_deleted | BOOL_DELETED | 0 未删除、1 已删除 | 非终态,可按状态机或字典规则流转 | 是否已删除,0 未删除,1 已删除 |
| edu_attendance | Attendance | checkin_type | CHECKIN_TYPE | 人工、人脸、补签、家长确认 | 非终态,可按状态机或字典规则流转 | 人工/人脸/补签/家长确认 |
| edu_attendance | Attendance | attendance_status | ATTENDANCE_STATUS | 到课、请假、旷课、迟到、待确认 | 非终态,可按状态机或字典规则流转 | 到课/请假/旷课/迟到/待确认 |
| edu_consumption | Consumption | tenant_id | TENANT_ID | 集团、租户隔离字段 | 非终态,可按状态机或字典规则流转 | 集团/租户隔离字段,所有查询必须带租户上下文 |
| edu_consumption | Consumption | is_deleted | BOOL_DELETED | 0 未删除、1 已删除 | 非终态,可按状态机或字典规则流转 | 是否已删除,0 未删除,1 已删除 |
| edu_consumption | Consumption | consume_status | CONSUME_STATUS | 待确认、已课消、已冲销、异常 | 非终态,可按状态机或字典规则流转 | 待确认/已课消/已冲销/异常 |
| edu_leave_request | LeaveRequest | tenant_id | TENANT_ID | 集团、租户隔离字段 | 非终态,可按状态机或字典规则流转 | 集团/租户隔离字段,所有查询必须带租户上下文 |
| edu_leave_request | LeaveRequest | is_deleted | BOOL_DELETED | 0 未删除、1 已删除 | 非终态,可按状态机或字典规则流转 | 是否已删除,0 未删除,1 已删除 |
| edu_leave_request | LeaveRequest | leave_status | LEAVE_STATUS | 待审核、已通过、已驳回、已撤销 | 非终态,可按状态机或字典规则流转 | 待审核/已通过/已驳回/已撤销 |
| edu_leave_request | LeaveRequest | approval_status | APPROVAL_STATUS | NOT_STARTED 未发起、PENDING 审批中、APPROVED 已通过、REJECTED 已驳回、REVOKED 已撤回 | 非终态,可按状态机或字典规则流转 | 审批状态,未发起为空 |
| edu_makeup_arrangement | MakeupArrangement | tenant_id | TENANT_ID | 集团、租户隔离字段 | 非终态,可按状态机或字典规则流转 | 集团/租户隔离字段,所有查询必须带租户上下文 |
| edu_makeup_arrangement | MakeupArrangement | is_deleted | BOOL_DELETED | 0 未删除、1 已删除 | 非终态,可按状态机或字典规则流转 | 是否已删除,0 未删除,1 已删除 |
| edu_makeup_arrangement | MakeupArrangement | arrange_status | ARRANGE_STATUS | 待安排、待确认、已确认、已完成、已取消 | 包含终态,终态禁止直接编辑,需走变更/红冲/撤回流程 | 待安排/待确认/已确认/已完成/已取消 |
| edu_homework | Homework | tenant_id | TENANT_ID | 集团、租户隔离字段 | 非终态,可按状态机或字典规则流转 | 集团/租户隔离字段,所有查询必须带租户上下文 |
| edu_homework | Homework | is_deleted | BOOL_DELETED | 0 未删除、1 已删除 | 非终态,可按状态机或字典规则流转 | 是否已删除,0 未删除,1 已删除 |
| edu_homework | Homework | publish_status | PUBLISH_STATUS | DRAFT 草稿、PUBLISHING 发布中、PUBLISHED 已发布、FAILED 发布失败、OFFLINE 已下线、ARCHIVED 已归档 | 包含终态,终态禁止直接编辑,需走变更/红冲/撤回流程 | 草稿/已发布/已关闭 |
| edu_homework_review | HomeworkReview | tenant_id | TENANT_ID | 集团、租户隔离字段 | 非终态,可按状态机或字典规则流转 | 集团/租户隔离字段,所有查询必须带租户上下文 |
| edu_homework_review | HomeworkReview | is_deleted | BOOL_DELETED | 0 未删除、1 已删除 | 非终态,可按状态机或字典规则流转 | 是否已删除,0 未删除,1 已删除 |
| edu_homework_review | HomeworkReview | review_status | REVIEW_STATUS | DRAFT 草稿、PENDING 审核中、APPROVED 已通过、REJECTED 已驳回、DISABLED 已停用 | 包含终态,终态禁止直接编辑,需走变更/红冲/撤回流程 | 待批改/已批改/需订正 |
| edu_growth_record | GrowthRecord | tenant_id | TENANT_ID | 集团、租户隔离字段 | 非终态,可按状态机或字典规则流转 | 集团/租户隔离字段,所有查询必须带租户上下文 |
| edu_growth_record | GrowthRecord | is_deleted | BOOL_DELETED | 0 未删除、1 已删除 | 非终态,可按状态机或字典规则流转 | 是否已删除,0 未删除,1 已删除 |
| edu_growth_record | GrowthRecord | record_type | RECORD_TYPE | 课堂、作业、测评、签到、教师评价 | 非终态,可按状态机或字典规则流转 | 课堂/作业/测评/签到/教师评价 |
| edu_growth_record | GrowthRecord | biz_type | BIZ_TYPE | LEAD 线索、CUSTOMER 客户、CONTRACT 合同、ORDER 订单、PAYMENT 收款、REFUND 退费、LESSON 课次、CONSUMPTION 课消、EXPENSE 报销、VOUCHER 凭证、INVOICE 发票、LIVE 直播、PATROL 巡课、DEVICE 设备、MATERIAL 物料、PAYROLL 工资 | 非终态,可按状态机或字典规则流转 | 来源业务类型 |
敏感字段与数据安全策略
| 来源 | 表名 | 对象 | 字段 | 数据级别 | 脱敏/返回策略 | 明文查看条件 | 导出策略 | 审计要求 | 端侧展示规则 |
|---|---|---|---|---|---|---|---|---|---|
| 本模块对象 | edu_attendance | Attendance | checkin_type | 普通 | FACE_IMAGE_PROTECTED | 默认只返回受控文件 ID/缩略图;人脸照片查看、下发、删除需授权和审计 | 禁止常规导出;仅设备下发、授权撤回和合规取证场景允许 | 人脸采集、下发、识别、撤回、删除、失败重试全链路留痕 | 未授权端不展示原图;设备端按任务有效期拉取 |
| 引用对象 | sys_user | User/Employee | mobile | 敏感 | MOBILE_MASK | 默认展示 138****0000;明文查看需字段权限或敏感字段查看审批 | 导出手机号必须触发导出审批、下载水印和有效期控制 | 明文查看、复制、导出和批量下载均写入 SensitiveAccessLog | PC 管理端按字段权限展示;移动端仅展示本人授权范围内脱敏信息 |
| 引用对象 | sys_user | User/Employee | password_hash | 高敏 | NEVER_RETURN | 禁止接口返回明文;仅密钥中心/鉴权服务按服务身份读取密钥引用 | 禁止导出;配置导出只允许导出脱敏引用和启停状态 | 配置新增、修改、启停、轮换和失败读取均记录安全审计 | 前端只展示已配置/未配置、到期时间和连通性状态,不展示密钥值 |
| 引用对象 | int_integration_log | IntegrationLog | request_payload | 敏感 | PAYLOAD_DESENSITIZE | 接口报文、快照和文件地址默认脱敏;排障查看需运维/安全授权 | 导出日志或报文时自动清理手机号、证件号、密钥、票据和人脸字段 | 查看报文、下载附件、失败重放和人工补偿均记录审计 | 业务端展示摘要和状态,完整报文仅运维/安全后台查看 |
| 引用对象 | int_integration_log | IntegrationLog | response_payload | 普通 | PAYLOAD_DESENSITIZE | 接口报文、快照和文件地址默认脱敏;排障查看需运维/安全授权 | 导出日志或报文时自动清理手机号、证件号、密钥、票据和人脸字段 | 查看报文、下载附件、失败重放和人工补偿均记录审计 | 业务端展示摘要和状态,完整报文仅运维/安全后台查看 |
| 引用对象 | sec_sensitive_field_policy | SensitiveFieldPolicy | mask_rule | 普通 | BIZ_FIELD_MASK | 按字段权限、数据范围和业务角色展示;明文查看按敏感字段审批规则执行 | 导出时按数据级别触发审批、水印、下载有效期和日志 | 查看、修改、删除、导出、下载和审批均记录操作审计 | 默认遵循总部、区域、校区、团队、本人数据范围和端侧最小可见原则 |
| 引用对象 | crm_guardian | Guardian | mobile | 敏感 | MOBILE_MASK | 默认展示 138****0000;明文查看需字段权限或敏感字段查看审批 | 导出手机号必须触发导出审批、下载水印和有效期控制 | 明文查看、复制、导出和批量下载均写入 SensitiveAccessLog | PC 管理端按字段权限展示;移动端仅展示本人授权范围内脱敏信息 |
| 引用对象 | crm_guardian | Guardian | wechat_openid | 敏感 | BIZ_FIELD_MASK | 按字段权限、数据范围和业务角色展示;明文查看按敏感字段审批规则执行 | 导出时按数据级别触发审批、水印、下载有效期和日志 | 查看、修改、删除、导出、下载和审批均记录操作审计 | 默认遵循总部、区域、校区、团队、本人数据范围和端侧最小可见原则 |
| 引用对象 | stu_student | Student | remark | 普通 | BIZ_FIELD_MASK | 按字段权限、数据范围和业务角色展示;明文查看按敏感字段审批规则执行 | 导出时按数据级别触发审批、水印、下载有效期和日志 | 查看、修改、删除、导出、下载和审批均记录操作审计 | 默认遵循总部、区域、校区、团队、本人数据范围和端侧最小可见原则 |
| 引用对象 | con_contract | Contract | tax_amount | 普通 | TAX_INVOICE_MASK | 默认按税号/发票号局部脱敏;发票原图、OCR 结果和国税回执按财务权限查看 | 财务导出需审批并加水印;国税官方回执随业务单归档 | OCR、核验、查重、人工校正、导出和付款阻断均留痕 | 移动端可上传和查看本人报销结果,不展示其他人员票据明文 |
| 引用对象 | dev_face_event | FaceAttendanceEvent | raw_payload | 敏感 | PAYLOAD_DESENSITIZE | 接口报文、快照和文件地址默认脱敏;排障查看需运维/安全授权 | 导出日志或报文时自动清理手机号、证件号、密钥、票据和人脸字段 | 查看报文、下载附件、失败重放和人工补偿均记录审计 | 业务端展示摘要和状态,完整报文仅运维/安全后台查看 |
核心数据表完整字段
| 表名 | 对象 | 字段 | 类型 | 必填 | 规则 | 数据级别 |
|---|---|---|---|---|---|---|
| edu_course | Course/Product | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| edu_course | Course/Product | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| edu_course | Course/Product | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| edu_course | Course/Product | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| edu_course | Course/Product | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| edu_course | Course/Product | created_at | DATETIME | 是 | 创建时间 | 普通 |
| edu_course | Course/Product | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| edu_course | Course/Product | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| edu_course | Course/Product | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| edu_course | Course/Product | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| edu_course | Course/Product | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| edu_course | Course/Product | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| edu_course | Course/Product | course_code | VARCHAR(64) | 是 | 课程编码,唯一 | 普通 |
| edu_course | Course/Product | course_name | VARCHAR(128) | 是 | 课程名称 | 普通 |
| edu_course | Course/Product | subject | VARCHAR(32) | 是 | 学科 | 普通 |
| edu_course | Course/Product | course_type | VARCHAR(32) | 是 | 班课/一对一/直播/录播 | 普通 |
| edu_course | Course/Product | grade_scope | JSON | 否 | 适用年级 | 普通 |
| edu_course | Course/Product | enabled | TINYINT | 是 | 是否启用 | 普通 |
| edu_product_package | CoursePackage | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| edu_product_package | CoursePackage | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| edu_product_package | CoursePackage | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| edu_product_package | CoursePackage | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| edu_product_package | CoursePackage | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| edu_product_package | CoursePackage | created_at | DATETIME | 是 | 创建时间 | 普通 |
| edu_product_package | CoursePackage | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| edu_product_package | CoursePackage | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| edu_product_package | CoursePackage | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| edu_product_package | CoursePackage | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| edu_product_package | CoursePackage | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| edu_product_package | CoursePackage | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| edu_product_package | CoursePackage | package_code | VARCHAR(64) | 是 | 课包编码,唯一 | 普通 |
| edu_product_package | CoursePackage | course_id | BIGINT | 是 | 课程 ID | 普通 |
| edu_product_package | CoursePackage | lesson_hours | DECIMAL(8,2) | 是 | 课时数 | 普通 |
| edu_product_package | CoursePackage | sale_price | DECIMAL(18,2) | 是 | 销售价格 | 普通 |
| edu_product_package | CoursePackage | valid_days | INT | 是 | 有效期天数 | 普通 |
| edu_product_package | CoursePackage | campus_scope | JSON | 否 | 适用校区 | 普通 |
| edu_class | Class | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| edu_class | Class | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| edu_class | Class | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| edu_class | Class | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| edu_class | Class | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| edu_class | Class | created_at | DATETIME | 是 | 创建时间 | 普通 |
| edu_class | Class | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| edu_class | Class | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| edu_class | Class | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| edu_class | Class | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| edu_class | Class | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| edu_class | Class | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| edu_class | Class | class_no | VARCHAR(64) | 是 | 班级编号,唯一 | 普通 |
| edu_class | Class | course_id | BIGINT | 是 | 课程 ID | 普通 |
| edu_class | Class | teacher_id | BIGINT | 否 | 主讲教师 ID | 普通 |
| edu_class | Class | classroom_id | BIGINT | 否 | 默认教室 ID | 普通 |
| edu_class | Class | capacity | INT | 是 | 班级容量 | 普通 |
| edu_class | Class | class_status | VARCHAR(32) | 是 | 筹备中/开班/结课/停课 | 普通 |
| edu_lesson | Schedule/Lesson | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| edu_lesson | Schedule/Lesson | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| edu_lesson | Schedule/Lesson | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| edu_lesson | Schedule/Lesson | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| edu_lesson | Schedule/Lesson | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| edu_lesson | Schedule/Lesson | created_at | DATETIME | 是 | 创建时间 | 普通 |
| edu_lesson | Schedule/Lesson | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| edu_lesson | Schedule/Lesson | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| edu_lesson | Schedule/Lesson | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| edu_lesson | Schedule/Lesson | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| edu_lesson | Schedule/Lesson | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| edu_lesson | Schedule/Lesson | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| edu_lesson | Schedule/Lesson | lesson_no | VARCHAR(64) | 是 | 课次编号,唯一 | 普通 |
| edu_lesson | Schedule/Lesson | class_id | BIGINT | 是 | 班级 ID | 普通 |
| edu_lesson | Schedule/Lesson | teacher_id | BIGINT | 是 | 授课教师 ID | 普通 |
| edu_lesson | Schedule/Lesson | classroom_id | BIGINT | 否 | 教室 ID | 普通 |
| edu_lesson | Schedule/Lesson | start_at | DATETIME | 是 | 上课开始时间 | 普通 |
| edu_lesson | Schedule/Lesson | end_at | DATETIME | 是 | 上课结束时间 | 普通 |
| edu_lesson | Schedule/Lesson | lesson_status | VARCHAR(32) | 是 | 待上课/上课中/已下课/已取消/需补课 | 普通 |
| edu_attendance | Attendance | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| edu_attendance | Attendance | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| edu_attendance | Attendance | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| edu_attendance | Attendance | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| edu_attendance | Attendance | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| edu_attendance | Attendance | created_at | DATETIME | 是 | 创建时间 | 普通 |
| edu_attendance | Attendance | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| edu_attendance | Attendance | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| edu_attendance | Attendance | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| edu_attendance | Attendance | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| edu_attendance | Attendance | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| edu_attendance | Attendance | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| edu_attendance | Attendance | lesson_id | BIGINT | 是 | 课次 ID | 普通 |
| edu_attendance | Attendance | student_id | BIGINT | 是 | 学员 ID | 普通 |
| edu_attendance | Attendance | checkin_type | VARCHAR(32) | 是 | 人工/人脸/补签/家长确认 | 普通 |
| edu_attendance | Attendance | checkin_at | DATETIME | 否 | 签到时间 | 普通 |
| edu_attendance | Attendance | attendance_status | VARCHAR(32) | 是 | 到课/请假/旷课/迟到/待确认 | 普通 |
| edu_attendance | Attendance | source_event_id | BIGINT | 否 | 来源设备或操作事件 | 普通 |
| edu_consumption | Consumption | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| edu_consumption | Consumption | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| edu_consumption | Consumption | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| edu_consumption | Consumption | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| edu_consumption | Consumption | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| edu_consumption | Consumption | created_at | DATETIME | 是 | 创建时间 | 普通 |
| edu_consumption | Consumption | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| edu_consumption | Consumption | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| edu_consumption | Consumption | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| edu_consumption | Consumption | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| edu_consumption | Consumption | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| edu_consumption | Consumption | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| edu_consumption | Consumption | lesson_id | BIGINT | 是 | 课次 ID | 普通 |
| edu_consumption | Consumption | student_id | BIGINT | 是 | 学员 ID | 普通 |
| edu_consumption | Consumption | contract_id | BIGINT | 是 | 合同 ID | 普通 |
| edu_consumption | Consumption | consumed_hours | DECIMAL(8,2) | 是 | 消耗课时 | 普通 |
| edu_consumption | Consumption | consume_amount | DECIMAL(18,2) | 否 | 课消金额 | 普通 |
| edu_consumption | Consumption | consume_status | VARCHAR(32) | 是 | 待确认/已课消/已冲销/异常 | 普通 |
| edu_leave_request | LeaveRequest | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| edu_leave_request | LeaveRequest | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| edu_leave_request | LeaveRequest | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| edu_leave_request | LeaveRequest | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| edu_leave_request | LeaveRequest | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| edu_leave_request | LeaveRequest | created_at | DATETIME | 是 | 创建时间 | 普通 |
| edu_leave_request | LeaveRequest | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| edu_leave_request | LeaveRequest | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| edu_leave_request | LeaveRequest | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| edu_leave_request | LeaveRequest | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| edu_leave_request | LeaveRequest | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| edu_leave_request | LeaveRequest | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| edu_leave_request | LeaveRequest | leave_no | VARCHAR(64) | 是 | 请假编号,唯一 | 普通 |
| edu_leave_request | LeaveRequest | student_id | BIGINT | 是 | 学员 ID | 普通 |
| edu_leave_request | LeaveRequest | lesson_id | BIGINT | 是 | 课次 ID | 普通 |
| edu_leave_request | LeaveRequest | leave_reason | VARCHAR(512) | 是 | 请假原因 | 普通 |
| edu_leave_request | LeaveRequest | proof_file_ids | JSON | 否 | 证明附件 | 普通 |
| edu_leave_request | LeaveRequest | leave_status | VARCHAR(32) | 是 | 待审核/已通过/已驳回/已撤销 | 普通 |
| edu_leave_request | LeaveRequest | approval_status | VARCHAR(32) | 否 | 审批状态,未发起为空 | 普通 |
| edu_leave_request | LeaveRequest | approval_instance_id | BIGINT | 否 | 关联审批实例 ID | 普通 |
| edu_makeup_arrangement | MakeupArrangement | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| edu_makeup_arrangement | MakeupArrangement | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| edu_makeup_arrangement | MakeupArrangement | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| edu_makeup_arrangement | MakeupArrangement | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| edu_makeup_arrangement | MakeupArrangement | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| edu_makeup_arrangement | MakeupArrangement | created_at | DATETIME | 是 | 创建时间 | 普通 |
| edu_makeup_arrangement | MakeupArrangement | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| edu_makeup_arrangement | MakeupArrangement | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| edu_makeup_arrangement | MakeupArrangement | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| edu_makeup_arrangement | MakeupArrangement | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| edu_makeup_arrangement | MakeupArrangement | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| edu_makeup_arrangement | MakeupArrangement | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| edu_makeup_arrangement | MakeupArrangement | arrangement_no | VARCHAR(64) | 是 | 补课安排编号,唯一 | 普通 |
| edu_makeup_arrangement | MakeupArrangement | leave_request_id | BIGINT | 否 | 关联请假单 | 普通 |
| edu_makeup_arrangement | MakeupArrangement | student_id | BIGINT | 是 | 学员 ID | 普通 |
| edu_makeup_arrangement | MakeupArrangement | candidate_lessons | JSON | 否 | 候选补课课次 | 普通 |
| edu_makeup_arrangement | MakeupArrangement | makeup_preference | JSON | 否 | 家长期望时间 | 普通 |
| edu_makeup_arrangement | MakeupArrangement | confirm_deadline | DATETIME | 否 | 确认截止时间 | 普通 |
| edu_makeup_arrangement | MakeupArrangement | arrange_status | VARCHAR(32) | 是 | 待安排/待确认/已确认/已完成/已取消 | 普通 |
| edu_homework | Homework | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| edu_homework | Homework | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| edu_homework | Homework | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| edu_homework | Homework | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| edu_homework | Homework | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| edu_homework | Homework | created_at | DATETIME | 是 | 创建时间 | 普通 |
| edu_homework | Homework | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| edu_homework | Homework | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| edu_homework | Homework | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| edu_homework | Homework | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| edu_homework | Homework | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| edu_homework | Homework | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| edu_homework | Homework | homework_no | VARCHAR(64) | 是 | 作业编号,唯一 | 普通 |
| edu_homework | Homework | lesson_id | BIGINT | 是 | 课次 ID | 普通 |
| edu_homework | Homework | title | VARCHAR(128) | 是 | 作业标题 | 普通 |
| edu_homework | Homework | content_schema | JSON | 是 | 题目、附件、提交要求 | 普通 |
| edu_homework | Homework | deadline_at | DATETIME | 否 | 截止时间 | 普通 |
| edu_homework | Homework | publish_status | VARCHAR(32) | 是 | 草稿/已发布/已关闭 | 普通 |
| edu_homework_review | HomeworkReview | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| edu_homework_review | HomeworkReview | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| edu_homework_review | HomeworkReview | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| edu_homework_review | HomeworkReview | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| edu_homework_review | HomeworkReview | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| edu_homework_review | HomeworkReview | created_at | DATETIME | 是 | 创建时间 | 普通 |
| edu_homework_review | HomeworkReview | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| edu_homework_review | HomeworkReview | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| edu_homework_review | HomeworkReview | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| edu_homework_review | HomeworkReview | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| edu_homework_review | HomeworkReview | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| edu_homework_review | HomeworkReview | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| edu_homework_review | HomeworkReview | submit_id | BIGINT | 是 | 作业提交 ID | 普通 |
| edu_homework_review | HomeworkReview | teacher_id | BIGINT | 是 | 批改教师 ID | 普通 |
| edu_homework_review | HomeworkReview | score | DECIMAL(6,2) | 否 | 得分 | 普通 |
| edu_homework_review | HomeworkReview | comment | TEXT | 否 | 评语 | 普通 |
| edu_homework_review | HomeworkReview | wrong_question_json | JSON | 否 | 错题记录 | 普通 |
| edu_homework_review | HomeworkReview | review_status | VARCHAR(32) | 是 | 待批改/已批改/需订正 | 普通 |
| edu_growth_record | GrowthRecord | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| edu_growth_record | GrowthRecord | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| edu_growth_record | GrowthRecord | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| edu_growth_record | GrowthRecord | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| edu_growth_record | GrowthRecord | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| edu_growth_record | GrowthRecord | created_at | DATETIME | 是 | 创建时间 | 普通 |
| edu_growth_record | GrowthRecord | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| edu_growth_record | GrowthRecord | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| edu_growth_record | GrowthRecord | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| edu_growth_record | GrowthRecord | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| edu_growth_record | GrowthRecord | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| edu_growth_record | GrowthRecord | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| edu_growth_record | GrowthRecord | student_id | BIGINT | 是 | 学员 ID | 普通 |
| edu_growth_record | GrowthRecord | record_type | VARCHAR(32) | 是 | 课堂/作业/测评/签到/教师评价 | 普通 |
| edu_growth_record | GrowthRecord | biz_type | VARCHAR(64) | 是 | 来源业务类型 | 普通 |
| edu_growth_record | GrowthRecord | biz_id | BIGINT | 是 | 来源业务 ID | 普通 |
| edu_growth_record | GrowthRecord | record_content | JSON | 是 | 成长记录内容 | 普通 |
| edu_growth_record | GrowthRecord | visible_to_parent | TINYINT | 是 | 家长端是否可见 | 普通 |
数据表与对象映射
| 表名 | 对象 | 用途 | 完整字段 | 索引建议 |
|---|---|---|---|---|
| edu_course | Course/Product | 课程产品 | id(BIGINT,必填)、tenant_id(BIGINT,必填)、org_id(BIGINT)、campus_id(BIGINT)、created_by(BIGINT,必填)、created_at(DATETIME,必填)、updated_by(BIGINT)、updated_at(DATETIME)、is_deleted(TINYINT,必填)、deleted_at(DATETIME)、deleted_by(BIGINT)、version(INT,必填)、course_code(VARCHAR(64),必填)、course_name(VARCHAR(128),必填)、subject(VARCHAR(32),必填)、course_type(VARCHAR(32),必填)、grade_scope(JSON)、enabled(TINYINT,必填) | uk_course_code、idx_subject_type |
| edu_product_package | CoursePackage | 课包与价格 | id(BIGINT,必填)、tenant_id(BIGINT,必填)、org_id(BIGINT)、campus_id(BIGINT)、created_by(BIGINT,必填)、created_at(DATETIME,必填)、updated_by(BIGINT)、updated_at(DATETIME)、is_deleted(TINYINT,必填)、deleted_at(DATETIME)、deleted_by(BIGINT)、version(INT,必填)、package_code(VARCHAR(64),必填)、course_id(BIGINT,必填)、lesson_hours(DECIMAL(8,2),必填)、sale_price(DECIMAL(18,2),必填)、valid_days(INT,必填)、campus_scope(JSON) | uk_package_code、idx_course |
| edu_class | Class | 班级 | id(BIGINT,必填)、tenant_id(BIGINT,必填)、org_id(BIGINT)、campus_id(BIGINT)、created_by(BIGINT,必填)、created_at(DATETIME,必填)、updated_by(BIGINT)、updated_at(DATETIME)、is_deleted(TINYINT,必填)、deleted_at(DATETIME)、deleted_by(BIGINT)、version(INT,必填)、class_no(VARCHAR(64),必填)、course_id(BIGINT,必填)、teacher_id(BIGINT)、classroom_id(BIGINT)、capacity(INT,必填)、class_status(VARCHAR(32),必填) | uk_class_no、idx_course_campus |
| edu_lesson | Schedule/Lesson | 课次和排课 | id(BIGINT,必填)、tenant_id(BIGINT,必填)、org_id(BIGINT)、campus_id(BIGINT)、created_by(BIGINT,必填)、created_at(DATETIME,必填)、updated_by(BIGINT)、updated_at(DATETIME)、is_deleted(TINYINT,必填)、deleted_at(DATETIME)、deleted_by(BIGINT)、version(INT,必填)、lesson_no(VARCHAR(64),必填)、class_id(BIGINT,必填)、teacher_id(BIGINT,必填)、classroom_id(BIGINT)、start_at(DATETIME,必填)、end_at(DATETIME,必填)、lesson_status(VARCHAR(32),必填) | uk_lesson_no、idx_class_time、idx_teacher_time |
| edu_attendance | Attendance | 上课签到记录 | id(BIGINT,必填)、tenant_id(BIGINT,必填)、org_id(BIGINT)、campus_id(BIGINT)、created_by(BIGINT,必填)、created_at(DATETIME,必填)、updated_by(BIGINT)、updated_at(DATETIME)、is_deleted(TINYINT,必填)、deleted_at(DATETIME)、deleted_by(BIGINT)、version(INT,必填)、lesson_id(BIGINT,必填)、student_id(BIGINT,必填)、checkin_type(VARCHAR(32),必填)、checkin_at(DATETIME)、attendance_status(VARCHAR(32),必填)、source_event_id(BIGINT) | uk_lesson_student、idx_student_status |
| edu_consumption | Consumption | 课消记录 | id(BIGINT,必填)、tenant_id(BIGINT,必填)、org_id(BIGINT)、campus_id(BIGINT)、created_by(BIGINT,必填)、created_at(DATETIME,必填)、updated_by(BIGINT)、updated_at(DATETIME)、is_deleted(TINYINT,必填)、deleted_at(DATETIME)、deleted_by(BIGINT)、version(INT,必填)、lesson_id(BIGINT,必填)、student_id(BIGINT,必填)、contract_id(BIGINT,必填)、consumed_hours(DECIMAL(8,2),必填)、consume_amount(DECIMAL(18,2))、consume_status(VARCHAR(32),必填) | uk_lesson_student_contract、idx_contract_status |
| edu_leave_request | LeaveRequest | 学员请假申请 | id(BIGINT,必填)、tenant_id(BIGINT,必填)、org_id(BIGINT)、campus_id(BIGINT)、created_by(BIGINT,必填)、created_at(DATETIME,必填)、updated_by(BIGINT)、updated_at(DATETIME)、is_deleted(TINYINT,必填)、deleted_at(DATETIME)、deleted_by(BIGINT)、version(INT,必填)、leave_no(VARCHAR(64),必填)、student_id(BIGINT,必填)、lesson_id(BIGINT,必填)、leave_reason(VARCHAR(512),必填)、proof_file_ids(JSON)、leave_status(VARCHAR(32),必填)、approval_status(VARCHAR(32))、approval_instance_id(BIGINT) | uk_leave_no、idx_student_status |
| edu_makeup_arrangement | MakeupArrangement | 补课安排兜底入口 | id(BIGINT,必填)、tenant_id(BIGINT,必填)、org_id(BIGINT)、campus_id(BIGINT)、created_by(BIGINT,必填)、created_at(DATETIME,必填)、updated_by(BIGINT)、updated_at(DATETIME)、is_deleted(TINYINT,必填)、deleted_at(DATETIME)、deleted_by(BIGINT)、version(INT,必填)、arrangement_no(VARCHAR(64),必填)、leave_request_id(BIGINT)、student_id(BIGINT,必填)、candidate_lessons(JSON)、makeup_preference(JSON)、confirm_deadline(DATETIME)、arrange_status(VARCHAR(32),必填) | uk_arrangement_no、idx_student_status |
| edu_homework | Homework | 作业任务 | id(BIGINT,必填)、tenant_id(BIGINT,必填)、org_id(BIGINT)、campus_id(BIGINT)、created_by(BIGINT,必填)、created_at(DATETIME,必填)、updated_by(BIGINT)、updated_at(DATETIME)、is_deleted(TINYINT,必填)、deleted_at(DATETIME)、deleted_by(BIGINT)、version(INT,必填)、homework_no(VARCHAR(64),必填)、lesson_id(BIGINT,必填)、title(VARCHAR(128),必填)、content_schema(JSON,必填)、deadline_at(DATETIME)、publish_status(VARCHAR(32),必填) | uk_homework_no、idx_lesson |
| edu_homework_review | HomeworkReview | 作业批改与点评 | id(BIGINT,必填)、tenant_id(BIGINT,必填)、org_id(BIGINT)、campus_id(BIGINT)、created_by(BIGINT,必填)、created_at(DATETIME,必填)、updated_by(BIGINT)、updated_at(DATETIME)、is_deleted(TINYINT,必填)、deleted_at(DATETIME)、deleted_by(BIGINT)、version(INT,必填)、submit_id(BIGINT,必填)、teacher_id(BIGINT,必填)、score(DECIMAL(6,2))、comment(TEXT)、wrong_question_json(JSON)、review_status(VARCHAR(32),必填) | idx_submit、idx_teacher_status |
| edu_growth_record | GrowthRecord | 学习成长档案 | id(BIGINT,必填)、tenant_id(BIGINT,必填)、org_id(BIGINT)、campus_id(BIGINT)、created_by(BIGINT,必填)、created_at(DATETIME,必填)、updated_by(BIGINT)、updated_at(DATETIME)、is_deleted(TINYINT,必填)、deleted_at(DATETIME)、deleted_by(BIGINT)、version(INT,必填)、student_id(BIGINT,必填)、record_type(VARCHAR(32),必填)、biz_type(VARCHAR(64),必填)、biz_id(BIGINT,必填)、record_content(JSON,必填)、visible_to_parent(TINYINT,必填) | idx_student_type、idx_biz |
12 · 状态机与业务规则
约束业务对象如何流转、何时可编辑、何时触发审批
原型需要把状态标签、可操作按钮和禁用原因展示清楚。| 对象 | 状态 | 触发与说明 |
|---|---|---|
| 线索 | 新建 -> 已分配 -> 跟进中 -> 已邀约 -> 已试听 -> 待签约 -> 已成交 -> 已流失 | 顾问跟进、试听反馈、合同创建、流失原因 |
| 课次 | 未开始 -> 待签到 -> 已签到 -> 已课消 -> 请假 -> 补课 -> 旷课 -> 异常待确认 | 排课发布、签到、课消、请假、补课和人工确认 |
| 积分兑换 | 待锁库 -> 已锁库 -> 待核销 -> 已核销 -> 已取消 -> 已退回 | 学员兑换、库存锁定、前台核销、出库、取消和积分退回 |
| 工单 | 新建 -> 已分派 -> 处理中 -> 待家长确认 -> 已关闭 -> 已升级 -> 已驳回 | 投诉建议、服务请求、教学反馈和退费咨询 |
| 作业草稿 | 无草稿 -> 编辑中 -> 自动保存中 -> 已保存 -> 待提交 -> 已提交 -> 已删除 -> 已过期 -> 冲突待恢复 | 学员进入作业后可自动或手动保存草稿,提交成功后关闭草稿;删除、过期和多端冲突必须可提示、可审计、可恢复到安全状态 |
| 直播连麦请求 | 未举手 -> 已举手排队 -> 教师邀请中 -> 连接中 -> 上麦中 -> 已下麦 -> 已拒绝 -> 已取消 -> 已超时 -> 连接失败 | 学员举手进入队列,教师处理后进入邀请和连接;取消、拒绝、超时、失败、下麦均写入互动事件和连麦请求记录 |
| 请假补课 | 草稿 -> 待审批 -> 已同意 -> 已驳回 -> 已取消 -> 补课待安排 -> 补课待确认 -> 补课已预约 -> 已补课 -> 已关闭 | 家长请假、教务审批、课消冻结或回滚、补课安排、家长确认和补课完成 |
| 转班转课 | 待测算 -> 待确认 -> 审批中 -> 补差待收 -> 退差待退 -> 已生效 -> 已驳回 -> 已取消 | 顾问或教务发起,完成权益重算、家长确认、审批、收退差和课表变更 |
| 试听课 | 已预约 -> 已提醒 -> 已到访 -> 已试听 -> 待反馈 -> 已反馈 -> 已转化 -> 未到访 -> 已关闭 | 预约、提醒、到访签到、教师反馈、家长评价、未到访唤醒和转化 |
| 补课改期取消 | 已确认 -> 改期申请中 -> 取消申请中 -> 教务处理中 -> 已重新安排 -> 已拒绝 -> 已关闭 -> 待冲正 -> 已冲正 | 家长发起改期或取消,教务处理候选课次和课消冲正,最终回到补课安排或关闭 |
| 课堂端会话 | 待绑定 -> 已绑定 -> 待开课 -> 授课中 -> 暂停中 -> 已结束 -> 异常断开 | 教师或教室设备创建课堂会话,TV 与教师端完成绑定后同步课件、互动和课堂状态;断开后可重连,结束后归档审计。 |
教务教学中心涉及该规则时,必须在前端提示、后端校验、审计日志和测试用例中同时覆盖。
教务教学中心涉及该规则时,必须在前端提示、后端校验、审计日志和测试用例中同时覆盖。
教务教学中心涉及该规则时,必须在前端提示、后端校验、审计日志和测试用例中同时覆盖。
教务教学中心涉及该规则时,必须在前端提示、后端校验、审计日志和测试用例中同时覆盖。
教务教学中心涉及该规则时,必须在前端提示、后端校验、审计日志和测试用例中同时覆盖。
教务教学中心涉及该规则时,必须在前端提示、后端校验、审计日志和测试用例中同时覆盖。
13 · 权限、审批与消息
动作权限、数据范围、审批触发和消息触达必须闭环
权限需要覆盖菜单、按钮、字段、接口和导出。动作权限
- 维护课程:需映射菜单、按钮、接口和字段权限
- 排课调课:需映射菜单、按钮、接口和字段权限
- 请假审批:需映射菜单、按钮、接口和字段权限
- 补课安排:需映射菜单、按钮、接口和字段权限
- 转班转课:需映射菜单、按钮、接口和字段权限
- 签到确认:需映射菜单、按钮、接口和字段权限
- 课消确认:需映射菜单、按钮、接口和字段权限
- 发布作业:需映射菜单、按钮、接口和字段权限
- 生成成长档案:需映射菜单、按钮、接口和字段权限
数据范围
- 总部全量
- 区域辖区
- 校区本地
- 部门/岗位
- 本人负责
- 授权班级/学员
审批配置
| 审批名称 | 触发条件 | 流程 | 结果 | 留痕 |
|---|---|---|---|---|
| 退费审批 | 任意退费或转课产生金额冲减 | 学管师确认 -> 校长审批 -> 财务复核 | 通过后进入监管退款,驳回后关闭退费单 | 保留测算明细、附件和退款回执 |
| 转校审批 | 学员权益跨校区转移 | 原校区校长 -> 目标校区校长 -> 财务确认 | 权益和服务归属迁移 | 记录转出转入校区和余额 |
| 数据导出审批 | 导出客户、学员、人脸、工资、利润等敏感数据 | 申请人 -> 部门主管 -> 数据管理员 | 生成限时下载链接 | 记录用途、字段、下载人和 IP |
| 请假审批与补课安排 | 家长请假通过但未确认补课时间,或补课候选课次需家长确认 | 家长 -> 教务 -> 校长 | 通过后生成补课安排或回到待安排池 | 保留请假原因、课消处理、补课偏好和确认记录 |
| 转班转课审批 | 涉及补差、退差、跨校区、班级容量例外或优惠反算 | 课程顾问/教务 -> 校长 -> 财务 | 通过后调整权益、课表和收退差任务 | 保留测算版本、家长确认和生效记录 |
| 补课改期取消审批 | 已确认补课需要改期、取消或已课消后冲正 | 家长/教务 -> 班主任/学管师 -> 教务负责人 | 通过后释放原课次资源、重新安排或进入冲正 | 保留原因、课次、课消、消息和处理结果 |
消息模板
| 消息 | 接收人 | 触发 | 渠道 | 变量 |
|---|---|---|---|---|
| 新线索分配提醒 | 课程顾问 | 线索分配成功 | 站内信、App、企微 | 学员姓名、来源渠道、校区、保护期 |
| 试听预约通知 | 家长/教师/顾问 | 试听课预约成功或变更 | 小程序、短信、App | 上课时间、校区、教室、教师 |
| 积分兑换核销通知 | 学员/家长/校区前台 | 兑换成功、即将过期或核销完成 | 小程序、App、站内信 | 礼品名称、兑换码、核销校区、有效期 |
| 到校签到通知 | 家长 | 人脸或人工签到成功 | 小程序、App | 学员姓名、签到时间、校区、课程 |
| 签到异常提醒 | 教务/前台 | 识别未匹配或低置信度 | 站内信、App | 设备、时间、候选学员、置信度 |
| 摄像头离线告警 | 设备管理员/校区前台 | 摄像头心跳超时或拉流失败 | 站内信、App | 校区、教室、摄像头编号、品牌、异常时间 |
| 作业发布通知 | 学员/家长 | 教师发布作业 | 小程序、App | 作业名称、截止时间、课程 |
| 作业批改通知 | 学员/家长 | 教师完成批改 | 小程序、App | 得分、评语、需订正状态 |
14 · 接口与技术细节
接口需支持幂等、权限、审计、重试和回执
每个写接口必须有 requestId 或业务幂等键,外部回调必须验签和去重。| 接口 | 方法 | 方向 | 请求字段 | 响应字段 | 幂等/权限 |
|---|---|---|---|---|---|
| /api/v1/edu/schedules | POST/GET | PC Web 到教务 | classId, teacherId, classroomId, lessonTime | scheduleId, conflictResult | 教师/教室/班级冲突校验 |
| /api/v1/edu/leaves | POST/GET | 家长端/PC Web 到教务 | studentId, lessonId, leaveReason, attachments, makeupPreference, requestId | leaveId, leaveStatus, makeupArrangeStatus | studentId + lessonId 单活跃请假 |
| /api/v1/edu/makeup-arrangements | POST/GET | PC Web 到教务/家长端 | leaveId, candidateLessonIds, arrangedAt, confirmDeadline, ownerId | arrangementId, confirmStatus, notifyStatus | leaveId 单活跃补课安排 |
| /api/v1/edu/transfers | POST/GET | PC Web 到教务合同 | studentId, sourceClassId, targetClassId, transferType, requestId | transferId, rightsRecalculateResult, transferStatus | 班级容量和权益校验 |
| /api/v1/edu/attendance | POST | 教师端到教务 | lessonId, studentId, attendanceStatus, source | attendanceId, lessonStatus | lessonId + studentId 幂等 |
| /api/v1/edu/consumptions | POST | 教务到财务监管 | lessonId, contractNo, consumedHours, teacherId | consumeId, reportStatus | 课次 + 合同幂等 |
| /api/v1/edu/homework | POST/GET | 教师端到学习中心 | classId, taskType, content, deadline | taskId, publishStatus | 班级权限校验 |
| /api/v1/live/rooms/{id}/join | POST | 学员端到直播 | roomId, userId, clientType | playUrl, token, interactionConfig | 课程权益校验 |
前端约束
- 统一登录态和租户校区上下文
- 列表分页、筛选、排序、列显隐
- 表单本地校验与服务端错误映射
- 移动/平板/TV 按终端适配交互
后端约束
- 领域服务封装业务规则
- 写操作事务一致性
- 关键操作审计快照
- 异步任务失败重试和告警
集成约束
- 第三方接口统一走开放集成中心
- 回执文件归档
- 接口日志可按业务单号追踪
- 密钥和回调地址按环境隔离
15 · 数据库与存储设计
核心表建议、关键字段和索引方向
详细 DDL 已在平台技术设计文档中统一展开,本处保留模块核心表、关键字段和索引方向。| 表名 | 用途 | 核心字段 | 索引建议 |
|---|---|---|---|
| edu_course | 课程产品 | id、tenant_id、org_id、campus_id、created_by、created_at、updated_by、updated_at、is_deleted、deleted_at、deleted_by、version、course_code、course_name、subject、course_type、grade_scope、enabled | uk_course_code、idx_subject_type |
| edu_product_package | 课包与价格 | id、tenant_id、org_id、campus_id、created_by、created_at、updated_by、updated_at、is_deleted、deleted_at、deleted_by、version、package_code、course_id、lesson_hours、sale_price、valid_days、campus_scope | uk_package_code、idx_course |
| edu_class | 班级 | id、tenant_id、org_id、campus_id、created_by、created_at、updated_by、updated_at、is_deleted、deleted_at、deleted_by、version、class_no、course_id、teacher_id、classroom_id、capacity、class_status | uk_class_no、idx_course_campus |
| edu_lesson | 课次和排课 | id、tenant_id、org_id、campus_id、created_by、created_at、updated_by、updated_at、is_deleted、deleted_at、deleted_by、version、lesson_no、class_id、teacher_id、classroom_id、start_at、end_at、lesson_status | uk_lesson_no、idx_class_time、idx_teacher_time |
| edu_attendance | 上课签到记录 | id、tenant_id、org_id、campus_id、created_by、created_at、updated_by、updated_at、is_deleted、deleted_at、deleted_by、version、lesson_id、student_id、checkin_type、checkin_at、attendance_status、source_event_id | uk_lesson_student、idx_student_status |
| edu_consumption | 课消记录 | id、tenant_id、org_id、campus_id、created_by、created_at、updated_by、updated_at、is_deleted、deleted_at、deleted_by、version、lesson_id、student_id、contract_id、consumed_hours、consume_amount、consume_status | uk_lesson_student_contract、idx_contract_status |
| edu_leave_request | 学员请假申请 | id、tenant_id、org_id、campus_id、created_by、created_at、updated_by、updated_at、is_deleted、deleted_at、deleted_by、version、leave_no、student_id、lesson_id、leave_reason、proof_file_ids、leave_status、approval_status、approval_instance_id | uk_leave_no、idx_student_status |
| edu_makeup_arrangement | 补课安排兜底入口 | id、tenant_id、org_id、campus_id、created_by、created_at、updated_by、updated_at、is_deleted、deleted_at、deleted_by、version、arrangement_no、leave_request_id、student_id、candidate_lessons、makeup_preference、confirm_deadline、arrange_status | uk_arrangement_no、idx_student_status |
| edu_homework | 作业任务 | id、tenant_id、org_id、campus_id、created_by、created_at、updated_by、updated_at、is_deleted、deleted_at、deleted_by、version、homework_no、lesson_id、title、content_schema、deadline_at、publish_status | uk_homework_no、idx_lesson |
| edu_homework_review | 作业批改与点评 | id、tenant_id、org_id、campus_id、created_by、created_at、updated_by、updated_at、is_deleted、deleted_at、deleted_by、version、submit_id、teacher_id、score、comment、wrong_question_json、review_status | idx_submit、idx_teacher_status |
| edu_growth_record | 学习成长档案 | id、tenant_id、org_id、campus_id、created_by、created_at、updated_by、updated_at、is_deleted、deleted_at、deleted_by、version、student_id、record_type、biz_type、biz_id、record_content、visible_to_parent | idx_student_type、idx_biz |
DDL 草案
edu_courseCourse/Product
CREATE TABLE `edu_course` (
`id` BIGINT NOT NULL COMMENT '主键,雪花或号段生成,禁止复用;数据级别:普通',
`tenant_id` BIGINT NOT NULL COMMENT '集团/租户隔离字段,所有查询必须带租户上下文;数据级别:普通',
`org_id` BIGINT NULL COMMENT '所属组织,集团级或公共配置为空;数据级别:普通',
`campus_id` BIGINT NULL COMMENT '所属校区,跨校区或总部级数据为空;数据级别:普通',
`created_by` BIGINT NOT NULL COMMENT '创建人账号 ID;数据级别:普通',
`created_at` DATETIME NOT NULL COMMENT '创建时间;数据级别:普通',
`updated_by` BIGINT NULL COMMENT '最后更新人账号 ID;数据级别:普通',
`updated_at` DATETIME NULL COMMENT '最后更新时间;数据级别:普通',
`is_deleted` TINYINT NOT NULL DEFAULT 0 COMMENT '是否已删除,0 未删除,1 已删除;数据级别:普通',
`deleted_at` DATETIME NULL COMMENT '删除时间,未删除为空;数据级别:普通',
`deleted_by` BIGINT NULL COMMENT '删除人账号 ID,未删除为空;数据级别:普通',
`version` INT NOT NULL DEFAULT 1 COMMENT '乐观锁版本号,写操作必须校验;数据级别:普通',
`course_code` VARCHAR(64) NOT NULL COMMENT '课程编码,唯一;数据级别:普通',
`course_name` VARCHAR(128) NOT NULL COMMENT '课程名称;数据级别:普通',
`subject` VARCHAR(32) NOT NULL COMMENT '学科;数据级别:普通',
`course_type` VARCHAR(32) NOT NULL COMMENT '班课/一对一/直播/录播;数据级别:普通',
`grade_scope` JSON NULL COMMENT '适用年级;数据级别:普通',
`enabled` TINYINT NOT NULL COMMENT '是否启用;数据级别:普通',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_course_code` (`course_code`),
KEY `idx_subject_type` (`subject`, `course_type`),
KEY `idx_tenant_deleted` (`tenant_id`, `is_deleted`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='Course/Product:课程产品';
edu_product_packageCoursePackage
CREATE TABLE `edu_product_package` (
`id` BIGINT NOT NULL COMMENT '主键,雪花或号段生成,禁止复用;数据级别:普通',
`tenant_id` BIGINT NOT NULL COMMENT '集团/租户隔离字段,所有查询必须带租户上下文;数据级别:普通',
`org_id` BIGINT NULL COMMENT '所属组织,集团级或公共配置为空;数据级别:普通',
`campus_id` BIGINT NULL COMMENT '所属校区,跨校区或总部级数据为空;数据级别:普通',
`created_by` BIGINT NOT NULL COMMENT '创建人账号 ID;数据级别:普通',
`created_at` DATETIME NOT NULL COMMENT '创建时间;数据级别:普通',
`updated_by` BIGINT NULL COMMENT '最后更新人账号 ID;数据级别:普通',
`updated_at` DATETIME NULL COMMENT '最后更新时间;数据级别:普通',
`is_deleted` TINYINT NOT NULL DEFAULT 0 COMMENT '是否已删除,0 未删除,1 已删除;数据级别:普通',
`deleted_at` DATETIME NULL COMMENT '删除时间,未删除为空;数据级别:普通',
`deleted_by` BIGINT NULL COMMENT '删除人账号 ID,未删除为空;数据级别:普通',
`version` INT NOT NULL DEFAULT 1 COMMENT '乐观锁版本号,写操作必须校验;数据级别:普通',
`package_code` VARCHAR(64) NOT NULL COMMENT '课包编码,唯一;数据级别:普通',
`course_id` BIGINT NOT NULL COMMENT '课程 ID;数据级别:普通',
`lesson_hours` DECIMAL(8,2) NOT NULL COMMENT '课时数;数据级别:普通',
`sale_price` DECIMAL(18,2) NOT NULL COMMENT '销售价格;数据级别:普通',
`valid_days` INT NOT NULL COMMENT '有效期天数;数据级别:普通',
`campus_scope` JSON NULL COMMENT '适用校区;数据级别:普通',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_package_code` (`package_code`),
KEY `idx_course` (`course_id`),
KEY `idx_tenant_deleted` (`tenant_id`, `is_deleted`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='CoursePackage:课包与价格';
edu_classClass
CREATE TABLE `edu_class` (
`id` BIGINT NOT NULL COMMENT '主键,雪花或号段生成,禁止复用;数据级别:普通',
`tenant_id` BIGINT NOT NULL COMMENT '集团/租户隔离字段,所有查询必须带租户上下文;数据级别:普通',
`org_id` BIGINT NULL COMMENT '所属组织,集团级或公共配置为空;数据级别:普通',
`campus_id` BIGINT NULL COMMENT '所属校区,跨校区或总部级数据为空;数据级别:普通',
`created_by` BIGINT NOT NULL COMMENT '创建人账号 ID;数据级别:普通',
`created_at` DATETIME NOT NULL COMMENT '创建时间;数据级别:普通',
`updated_by` BIGINT NULL COMMENT '最后更新人账号 ID;数据级别:普通',
`updated_at` DATETIME NULL COMMENT '最后更新时间;数据级别:普通',
`is_deleted` TINYINT NOT NULL DEFAULT 0 COMMENT '是否已删除,0 未删除,1 已删除;数据级别:普通',
`deleted_at` DATETIME NULL COMMENT '删除时间,未删除为空;数据级别:普通',
`deleted_by` BIGINT NULL COMMENT '删除人账号 ID,未删除为空;数据级别:普通',
`version` INT NOT NULL DEFAULT 1 COMMENT '乐观锁版本号,写操作必须校验;数据级别:普通',
`class_no` VARCHAR(64) NOT NULL COMMENT '班级编号,唯一;数据级别:普通',
`course_id` BIGINT NOT NULL COMMENT '课程 ID;数据级别:普通',
`teacher_id` BIGINT NULL COMMENT '主讲教师 ID;数据级别:普通',
`classroom_id` BIGINT NULL COMMENT '默认教室 ID;数据级别:普通',
`capacity` INT NOT NULL COMMENT '班级容量;数据级别:普通',
`class_status` VARCHAR(32) NOT NULL COMMENT '筹备中/开班/结课/停课;数据级别:普通',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_class_no` (`class_no`),
KEY `idx_course_campus` (`course_id`, `campus_id`),
KEY `idx_tenant_deleted` (`tenant_id`, `is_deleted`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='Class:班级';
edu_lessonSchedule/Lesson
CREATE TABLE `edu_lesson` (
`id` BIGINT NOT NULL COMMENT '主键,雪花或号段生成,禁止复用;数据级别:普通',
`tenant_id` BIGINT NOT NULL COMMENT '集团/租户隔离字段,所有查询必须带租户上下文;数据级别:普通',
`org_id` BIGINT NULL COMMENT '所属组织,集团级或公共配置为空;数据级别:普通',
`campus_id` BIGINT NULL COMMENT '所属校区,跨校区或总部级数据为空;数据级别:普通',
`created_by` BIGINT NOT NULL COMMENT '创建人账号 ID;数据级别:普通',
`created_at` DATETIME NOT NULL COMMENT '创建时间;数据级别:普通',
`updated_by` BIGINT NULL COMMENT '最后更新人账号 ID;数据级别:普通',
`updated_at` DATETIME NULL COMMENT '最后更新时间;数据级别:普通',
`is_deleted` TINYINT NOT NULL DEFAULT 0 COMMENT '是否已删除,0 未删除,1 已删除;数据级别:普通',
`deleted_at` DATETIME NULL COMMENT '删除时间,未删除为空;数据级别:普通',
`deleted_by` BIGINT NULL COMMENT '删除人账号 ID,未删除为空;数据级别:普通',
`version` INT NOT NULL DEFAULT 1 COMMENT '乐观锁版本号,写操作必须校验;数据级别:普通',
`lesson_no` VARCHAR(64) NOT NULL COMMENT '课次编号,唯一;数据级别:普通',
`class_id` BIGINT NOT NULL COMMENT '班级 ID;数据级别:普通',
`teacher_id` BIGINT NOT NULL COMMENT '授课教师 ID;数据级别:普通',
`classroom_id` BIGINT NULL COMMENT '教室 ID;数据级别:普通',
`start_at` DATETIME NOT NULL COMMENT '上课开始时间;数据级别:普通',
`end_at` DATETIME NOT NULL COMMENT '上课结束时间;数据级别:普通',
`lesson_status` VARCHAR(32) NOT NULL COMMENT '待上课/上课中/已下课/已取消/需补课;数据级别:普通',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_lesson_no` (`lesson_no`),
KEY `idx_class_time` (`class_id`),
KEY `idx_teacher_time` (`teacher_id`),
KEY `idx_tenant_deleted` (`tenant_id`, `is_deleted`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='Schedule/Lesson:课次和排课';
edu_attendanceAttendance
CREATE TABLE `edu_attendance` (
`id` BIGINT NOT NULL COMMENT '主键,雪花或号段生成,禁止复用;数据级别:普通',
`tenant_id` BIGINT NOT NULL COMMENT '集团/租户隔离字段,所有查询必须带租户上下文;数据级别:普通',
`org_id` BIGINT NULL COMMENT '所属组织,集团级或公共配置为空;数据级别:普通',
`campus_id` BIGINT NULL COMMENT '所属校区,跨校区或总部级数据为空;数据级别:普通',
`created_by` BIGINT NOT NULL COMMENT '创建人账号 ID;数据级别:普通',
`created_at` DATETIME NOT NULL COMMENT '创建时间;数据级别:普通',
`updated_by` BIGINT NULL COMMENT '最后更新人账号 ID;数据级别:普通',
`updated_at` DATETIME NULL COMMENT '最后更新时间;数据级别:普通',
`is_deleted` TINYINT NOT NULL DEFAULT 0 COMMENT '是否已删除,0 未删除,1 已删除;数据级别:普通',
`deleted_at` DATETIME NULL COMMENT '删除时间,未删除为空;数据级别:普通',
`deleted_by` BIGINT NULL COMMENT '删除人账号 ID,未删除为空;数据级别:普通',
`version` INT NOT NULL DEFAULT 1 COMMENT '乐观锁版本号,写操作必须校验;数据级别:普通',
`lesson_id` BIGINT NOT NULL COMMENT '课次 ID;数据级别:普通',
`student_id` BIGINT NOT NULL COMMENT '学员 ID;数据级别:普通',
`checkin_type` VARCHAR(32) NOT NULL COMMENT '人工/人脸/补签/家长确认;数据级别:普通',
`checkin_at` DATETIME NULL COMMENT '签到时间;数据级别:普通',
`attendance_status` VARCHAR(32) NOT NULL COMMENT '到课/请假/旷课/迟到/待确认;数据级别:普通',
`source_event_id` BIGINT NULL COMMENT '来源设备或操作事件;数据级别:普通',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_lesson_student` (`lesson_id`, `student_id`),
KEY `idx_student_status` (`student_id`, `attendance_status`),
KEY `idx_tenant_deleted` (`tenant_id`, `is_deleted`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='Attendance:上课签到记录';
edu_consumptionConsumption
CREATE TABLE `edu_consumption` (
`id` BIGINT NOT NULL COMMENT '主键,雪花或号段生成,禁止复用;数据级别:普通',
`tenant_id` BIGINT NOT NULL COMMENT '集团/租户隔离字段,所有查询必须带租户上下文;数据级别:普通',
`org_id` BIGINT NULL COMMENT '所属组织,集团级或公共配置为空;数据级别:普通',
`campus_id` BIGINT NULL COMMENT '所属校区,跨校区或总部级数据为空;数据级别:普通',
`created_by` BIGINT NOT NULL COMMENT '创建人账号 ID;数据级别:普通',
`created_at` DATETIME NOT NULL COMMENT '创建时间;数据级别:普通',
`updated_by` BIGINT NULL COMMENT '最后更新人账号 ID;数据级别:普通',
`updated_at` DATETIME NULL COMMENT '最后更新时间;数据级别:普通',
`is_deleted` TINYINT NOT NULL DEFAULT 0 COMMENT '是否已删除,0 未删除,1 已删除;数据级别:普通',
`deleted_at` DATETIME NULL COMMENT '删除时间,未删除为空;数据级别:普通',
`deleted_by` BIGINT NULL COMMENT '删除人账号 ID,未删除为空;数据级别:普通',
`version` INT NOT NULL DEFAULT 1 COMMENT '乐观锁版本号,写操作必须校验;数据级别:普通',
`lesson_id` BIGINT NOT NULL COMMENT '课次 ID;数据级别:普通',
`student_id` BIGINT NOT NULL COMMENT '学员 ID;数据级别:普通',
`contract_id` BIGINT NOT NULL COMMENT '合同 ID;数据级别:普通',
`consumed_hours` DECIMAL(8,2) NOT NULL COMMENT '消耗课时;数据级别:普通',
`consume_amount` DECIMAL(18,2) NULL COMMENT '课消金额;数据级别:普通',
`consume_status` VARCHAR(32) NOT NULL COMMENT '待确认/已课消/已冲销/异常;数据级别:普通',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_lesson_student_contract` (`lesson_id`, `student_id`, `contract_id`),
KEY `idx_contract_status` (`contract_id`, `consume_status`),
KEY `idx_tenant_deleted` (`tenant_id`, `is_deleted`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='Consumption:课消记录';
edu_leave_requestLeaveRequest
CREATE TABLE `edu_leave_request` (
`id` BIGINT NOT NULL COMMENT '主键,雪花或号段生成,禁止复用;数据级别:普通',
`tenant_id` BIGINT NOT NULL COMMENT '集团/租户隔离字段,所有查询必须带租户上下文;数据级别:普通',
`org_id` BIGINT NULL COMMENT '所属组织,集团级或公共配置为空;数据级别:普通',
`campus_id` BIGINT NULL COMMENT '所属校区,跨校区或总部级数据为空;数据级别:普通',
`created_by` BIGINT NOT NULL COMMENT '创建人账号 ID;数据级别:普通',
`created_at` DATETIME NOT NULL COMMENT '创建时间;数据级别:普通',
`updated_by` BIGINT NULL COMMENT '最后更新人账号 ID;数据级别:普通',
`updated_at` DATETIME NULL COMMENT '最后更新时间;数据级别:普通',
`is_deleted` TINYINT NOT NULL DEFAULT 0 COMMENT '是否已删除,0 未删除,1 已删除;数据级别:普通',
`deleted_at` DATETIME NULL COMMENT '删除时间,未删除为空;数据级别:普通',
`deleted_by` BIGINT NULL COMMENT '删除人账号 ID,未删除为空;数据级别:普通',
`version` INT NOT NULL DEFAULT 1 COMMENT '乐观锁版本号,写操作必须校验;数据级别:普通',
`leave_no` VARCHAR(64) NOT NULL COMMENT '请假编号,唯一;数据级别:普通',
`student_id` BIGINT NOT NULL COMMENT '学员 ID;数据级别:普通',
`lesson_id` BIGINT NOT NULL COMMENT '课次 ID;数据级别:普通',
`leave_reason` VARCHAR(512) NOT NULL COMMENT '请假原因;数据级别:普通',
`proof_file_ids` JSON NULL COMMENT '证明附件;数据级别:普通',
`leave_status` VARCHAR(32) NOT NULL COMMENT '待审核/已通过/已驳回/已撤销;数据级别:普通',
`approval_status` VARCHAR(32) NULL COMMENT '审批状态,未发起为空;数据级别:普通',
`approval_instance_id` BIGINT NULL COMMENT '关联审批实例 ID;数据级别:普通',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_leave_no` (`leave_no`),
KEY `idx_student_status` (`student_id`, `leave_status`),
KEY `idx_tenant_deleted` (`tenant_id`, `is_deleted`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='LeaveRequest:学员请假申请';
edu_makeup_arrangementMakeupArrangement
CREATE TABLE `edu_makeup_arrangement` (
`id` BIGINT NOT NULL COMMENT '主键,雪花或号段生成,禁止复用;数据级别:普通',
`tenant_id` BIGINT NOT NULL COMMENT '集团/租户隔离字段,所有查询必须带租户上下文;数据级别:普通',
`org_id` BIGINT NULL COMMENT '所属组织,集团级或公共配置为空;数据级别:普通',
`campus_id` BIGINT NULL COMMENT '所属校区,跨校区或总部级数据为空;数据级别:普通',
`created_by` BIGINT NOT NULL COMMENT '创建人账号 ID;数据级别:普通',
`created_at` DATETIME NOT NULL COMMENT '创建时间;数据级别:普通',
`updated_by` BIGINT NULL COMMENT '最后更新人账号 ID;数据级别:普通',
`updated_at` DATETIME NULL COMMENT '最后更新时间;数据级别:普通',
`is_deleted` TINYINT NOT NULL DEFAULT 0 COMMENT '是否已删除,0 未删除,1 已删除;数据级别:普通',
`deleted_at` DATETIME NULL COMMENT '删除时间,未删除为空;数据级别:普通',
`deleted_by` BIGINT NULL COMMENT '删除人账号 ID,未删除为空;数据级别:普通',
`version` INT NOT NULL DEFAULT 1 COMMENT '乐观锁版本号,写操作必须校验;数据级别:普通',
`arrangement_no` VARCHAR(64) NOT NULL COMMENT '补课安排编号,唯一;数据级别:普通',
`leave_request_id` BIGINT NULL COMMENT '关联请假单;数据级别:普通',
`student_id` BIGINT NOT NULL COMMENT '学员 ID;数据级别:普通',
`candidate_lessons` JSON NULL COMMENT '候选补课课次;数据级别:普通',
`makeup_preference` JSON NULL COMMENT '家长期望时间;数据级别:普通',
`confirm_deadline` DATETIME NULL COMMENT '确认截止时间;数据级别:普通',
`arrange_status` VARCHAR(32) NOT NULL COMMENT '待安排/待确认/已确认/已完成/已取消;数据级别:普通',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_arrangement_no` (`arrangement_no`),
KEY `idx_student_status` (`student_id`, `arrange_status`),
KEY `idx_tenant_deleted` (`tenant_id`, `is_deleted`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='MakeupArrangement:补课安排兜底入口';
edu_homeworkHomework
CREATE TABLE `edu_homework` (
`id` BIGINT NOT NULL COMMENT '主键,雪花或号段生成,禁止复用;数据级别:普通',
`tenant_id` BIGINT NOT NULL COMMENT '集团/租户隔离字段,所有查询必须带租户上下文;数据级别:普通',
`org_id` BIGINT NULL COMMENT '所属组织,集团级或公共配置为空;数据级别:普通',
`campus_id` BIGINT NULL COMMENT '所属校区,跨校区或总部级数据为空;数据级别:普通',
`created_by` BIGINT NOT NULL COMMENT '创建人账号 ID;数据级别:普通',
`created_at` DATETIME NOT NULL COMMENT '创建时间;数据级别:普通',
`updated_by` BIGINT NULL COMMENT '最后更新人账号 ID;数据级别:普通',
`updated_at` DATETIME NULL COMMENT '最后更新时间;数据级别:普通',
`is_deleted` TINYINT NOT NULL DEFAULT 0 COMMENT '是否已删除,0 未删除,1 已删除;数据级别:普通',
`deleted_at` DATETIME NULL COMMENT '删除时间,未删除为空;数据级别:普通',
`deleted_by` BIGINT NULL COMMENT '删除人账号 ID,未删除为空;数据级别:普通',
`version` INT NOT NULL DEFAULT 1 COMMENT '乐观锁版本号,写操作必须校验;数据级别:普通',
`homework_no` VARCHAR(64) NOT NULL COMMENT '作业编号,唯一;数据级别:普通',
`lesson_id` BIGINT NOT NULL COMMENT '课次 ID;数据级别:普通',
`title` VARCHAR(128) NOT NULL COMMENT '作业标题;数据级别:普通',
`content_schema` JSON NOT NULL COMMENT '题目、附件、提交要求;数据级别:普通',
`deadline_at` DATETIME NULL COMMENT '截止时间;数据级别:普通',
`publish_status` VARCHAR(32) NOT NULL COMMENT '草稿/已发布/已关闭;数据级别:普通',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_homework_no` (`homework_no`),
KEY `idx_lesson` (`lesson_id`),
KEY `idx_tenant_deleted` (`tenant_id`, `is_deleted`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='Homework:作业任务';
edu_homework_reviewHomeworkReview
CREATE TABLE `edu_homework_review` (
`id` BIGINT NOT NULL COMMENT '主键,雪花或号段生成,禁止复用;数据级别:普通',
`tenant_id` BIGINT NOT NULL COMMENT '集团/租户隔离字段,所有查询必须带租户上下文;数据级别:普通',
`org_id` BIGINT NULL COMMENT '所属组织,集团级或公共配置为空;数据级别:普通',
`campus_id` BIGINT NULL COMMENT '所属校区,跨校区或总部级数据为空;数据级别:普通',
`created_by` BIGINT NOT NULL COMMENT '创建人账号 ID;数据级别:普通',
`created_at` DATETIME NOT NULL COMMENT '创建时间;数据级别:普通',
`updated_by` BIGINT NULL COMMENT '最后更新人账号 ID;数据级别:普通',
`updated_at` DATETIME NULL COMMENT '最后更新时间;数据级别:普通',
`is_deleted` TINYINT NOT NULL DEFAULT 0 COMMENT '是否已删除,0 未删除,1 已删除;数据级别:普通',
`deleted_at` DATETIME NULL COMMENT '删除时间,未删除为空;数据级别:普通',
`deleted_by` BIGINT NULL COMMENT '删除人账号 ID,未删除为空;数据级别:普通',
`version` INT NOT NULL DEFAULT 1 COMMENT '乐观锁版本号,写操作必须校验;数据级别:普通',
`submit_id` BIGINT NOT NULL COMMENT '作业提交 ID;数据级别:普通',
`teacher_id` BIGINT NOT NULL COMMENT '批改教师 ID;数据级别:普通',
`score` DECIMAL(6,2) NULL COMMENT '得分;数据级别:普通',
`comment` TEXT NULL COMMENT '评语;数据级别:普通',
`wrong_question_json` JSON NULL COMMENT '错题记录;数据级别:普通',
`review_status` VARCHAR(32) NOT NULL COMMENT '待批改/已批改/需订正;数据级别:普通',
PRIMARY KEY (`id`),
KEY `idx_submit` (`submit_id`),
KEY `idx_teacher_status` (`teacher_id`, `review_status`),
KEY `idx_tenant_deleted` (`tenant_id`, `is_deleted`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='HomeworkReview:作业批改与点评';
edu_growth_recordGrowthRecord
CREATE TABLE `edu_growth_record` (
`id` BIGINT NOT NULL COMMENT '主键,雪花或号段生成,禁止复用;数据级别:普通',
`tenant_id` BIGINT NOT NULL COMMENT '集团/租户隔离字段,所有查询必须带租户上下文;数据级别:普通',
`org_id` BIGINT NULL COMMENT '所属组织,集团级或公共配置为空;数据级别:普通',
`campus_id` BIGINT NULL COMMENT '所属校区,跨校区或总部级数据为空;数据级别:普通',
`created_by` BIGINT NOT NULL COMMENT '创建人账号 ID;数据级别:普通',
`created_at` DATETIME NOT NULL COMMENT '创建时间;数据级别:普通',
`updated_by` BIGINT NULL COMMENT '最后更新人账号 ID;数据级别:普通',
`updated_at` DATETIME NULL COMMENT '最后更新时间;数据级别:普通',
`is_deleted` TINYINT NOT NULL DEFAULT 0 COMMENT '是否已删除,0 未删除,1 已删除;数据级别:普通',
`deleted_at` DATETIME NULL COMMENT '删除时间,未删除为空;数据级别:普通',
`deleted_by` BIGINT NULL COMMENT '删除人账号 ID,未删除为空;数据级别:普通',
`version` INT NOT NULL DEFAULT 1 COMMENT '乐观锁版本号,写操作必须校验;数据级别:普通',
`student_id` BIGINT NOT NULL COMMENT '学员 ID;数据级别:普通',
`record_type` VARCHAR(32) NOT NULL COMMENT '课堂/作业/测评/签到/教师评价;数据级别:普通',
`biz_type` VARCHAR(64) NOT NULL COMMENT '来源业务类型;数据级别:普通',
`biz_id` BIGINT NOT NULL COMMENT '来源业务 ID;数据级别:普通',
`record_content` JSON NOT NULL COMMENT '成长记录内容;数据级别:普通',
`visible_to_parent` TINYINT NOT NULL COMMENT '家长端是否可见;数据级别:普通',
PRIMARY KEY (`id`),
KEY `idx_student_type` (`student_id`, `record_type`),
KEY `idx_biz` (`biz_type`),
KEY `idx_tenant_deleted` (`tenant_id`, `is_deleted`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='GrowthRecord:学习成长档案';
16 · 异常、指标、测试与初始化
保证模块上线后可运营、可追踪、可验收
测试要覆盖主流程、异常流、权限流、接口失败和数据一致性。异常状态
指标埋点
测试用例
| 编号 | 场景 | 前置 | 步骤 | 预期 | 优先级 |
|---|---|---|---|---|---|
| TC-003 | 试听预约和反馈 | 线索已分配并选择体验课 | 预约试听、教师填写反馈 | 客户状态更新,生成报价任务 | 高 |
| TC-008 | 人脸签到自动课消 | 学员已授权人脸且课次待签到 | 模拟设备回传识别事件 | 签到成功、课消成功、家长收到通知 | 高 |
| TC-010 | 家长撤回人脸授权 | 学员已授权并下发设备 | 家长撤回授权 | 系统停止识别并生成设备删除任务 | 高 |
| TC-011 | 学员端访问授权资源 | 合同权益生效 | 学员登录微信小程序或 App 打开课程资源 | 资源可访问并记录学习进度,家长端仅查看学习报告摘要 | 高 |
| TC-012 | 合同到期资源自动失效 | 合同有效期已过 | 学员访问课程资源 | 提示权限过期,不再播放资源 | 高 |
| TC-013 | 教师发布作业并批改 | 课次已完成 | 教师发布作业,学员提交,教师批改 | 学员端展示批改结果和成长档案 | 中 |
| TC-014 | 学管风险预警生成 | 学员剩余课时低于阈值 | 刷新风险学员池 | 生成续费培育任务并通知学管 | 高 |
| TC-018 | 活码动态内容切换 | 同一二维码配置不同班级资源 | 不同学员扫码 | 返回对应授权资源并记录扫码数据 | 高 |
| TC-020 | 移动端兼容检查 | 准备家长小程序/H5、学员小程序、iPhone、iPad、安卓 App 环境 | 分别登录家长端和学员端执行核心学习、缴费、授权、审批流程 | 两个端的首页、权限、任务和通知互不混淆,关键操作可完成 | 中 |
| TC-024 | 无权限页面状态 | 学员账号访问管理后台 URL | 直接访问页面地址 | 展示无权限状态且不泄露数据 | 高 |
| TC-EDU-ENH-001 | 补课兜底交付闭环验收 | 请假详情、补课安排池、家长确认页相关基础数据、权限、审批流、消息模板和接口配置已初始化 | 按新增补课安排池、候选课次、确认截止、超时提醒、教务代安排和家长确认流程。执行前端提交、后端处理、状态流转、异常重试和消息触达 | 请假后未确认时间的学员不会丢失,均进入补课待安排状态。;同时产生审计日志、指标埋点和必要的补偿任务 | 高 |
| TC-EDU-ENH-002 | 课消回滚交付闭环验收 | 课次详情、考勤异常、课消确认相关基础数据、权限、审批流、消息模板和接口配置已初始化 | 按补齐课消冻结、自动课消、人工确认、冲正审批和财务监管报送联动。执行前端提交、后端处理、状态流转、异常重试和消息触达 | 任何课消变更均可追溯原因、审批、财务影响和监管状态。;同时产生审计日志、指标埋点和必要的补偿任务 | 高 |
| TC-EDU-ENH-003 | 教学反馈交付闭环验收 | 课后点评、作业批改、测评报告、成长档案相关基础数据、权限、审批流、消息模板和接口配置已初始化 | 按补齐课堂点评、作业批改、阶段测评、成长档案更新和家长端通知。执行前端提交、后端处理、状态流转、异常重试和消息触达 | 学习结果能回写学员端、家长端、教师端和服务中心。;同时产生审计日志、指标埋点和必要的补偿任务 | 高 |
上线初始化
| 初始化项 | 动作 | 数据 | 验收 |
|---|---|---|---|
| 账号与权限 | 初始化总部、区域、校区、顾问、教务、教师、财务、家长、学员角色 | 账号、角色、菜单、按钮、字段、数据范围 | 测试账号可按角色访问指定页面 |
| 审批规则 | 配置优惠、退费、转课、导出、薪资、课消撤销审批流 | 审批对象、条件、节点、超时提醒 | 测试单据可进入正确审批链 |
| 远程巡课 | 导入存量教室摄像头并配置品牌接入、地图点位和录像留存策略 | 摄像头编号、品牌型号、网关配置、校区教室、楼层点位、存储策略 | 摄像头可在地图中显示状态,直播和回放链路可抽检通过 |
| 微信与 App | 配置小程序、公众号、App 推送和登录参数 | AppID、Secret、模板消息、包名、证书 | 家长、学员、教师可正常登录和收消息 |
| 教研资源 | 导入首批课程资源、题库、作业、测评和活码规则 | 资源分类、课次、权限、有效期、版本 | 学员端可按权益访问资源 |
| 积分商城 | 配置积分规则、礼品 SKU、兑换积分、核销校区和库存联动 | 积分来源、积分有效期、礼品库存、兑换规则、核销权限 | 学员兑换后可锁库,前台核销后可出库 |
| 数据迁移 | 迁移客户、学员、合同、剩余课时、课表、教师、员工基础数据 | 源系统字段映射、校验结果、差异清单 | 关键业务对象数量和余额一致 |
| 直播角色与权限 | 初始化直播管理员、教务直播运营、教师主播、助教、学员、员工参会、市场运营等权限 | 菜单、按钮、数据范围、导出审批、回放权限 | 各角色只能访问授权直播房间和回放 |
| 补课兜底交付配置 | 初始化新增补课安排池、候选课次、确认截止、超时提醒、教务代安排和家长确认流程。所需的页面入口、功能开关、审批流、消息模板、状态枚举、异常原因和角色权限 | 请假详情、补课安排池、家长确认页 | 请假后未确认时间的学员不会丢失,均进入补课待安排状态。 |
| 课消回滚交付配置 | 初始化补齐课消冻结、自动课消、人工确认、冲正审批和财务监管报送联动。所需的页面入口、功能开关、审批流、消息模板、状态枚举、异常原因和角色权限 | 课次详情、考勤异常、课消确认 | 任何课消变更均可追溯原因、审批、财务影响和监管状态。 |
| 教学反馈交付配置 | 初始化补齐课堂点评、作业批改、阶段测评、成长档案更新和家长端通知。所需的页面入口、功能开关、审批流、消息模板、状态枚举、异常原因和角色权限 | 课后点评、作业批改、测评报告、成长档案 | 学习结果能回写学员端、家长端、教师端和服务中心。 |