# yudao-module-education 教育业务模块,提供课程、练习、题库、考试等教育业务功能。 ## 当前状态:应用外壳 (Shell) 此模块目前处于**应用外壳**阶段,仅提供: - 模块骨架与包结构 - 能力探测端点 (`/education/capability`) - 独立的功能开关配置 - 错误码常量 - 权限与菜单种子数据(角色授权由管理员按租户完成) - 增量 SQL 交付约定 无业务表,无虚假 CRUD。 ## 功能配置 在 `application.yaml` 或对应 profile 中配置: ```yaml yudao: education: enabled: true # 是否启用教育模块,默认 false version: 1.0.0 # 模块版本号 ``` - `yudao.education.enabled=true`:启用模块(Controller 注册、Swagger 分组可见) - `yudao.education.enabled=false`(默认):禁用模块,所有教育端点不可达 ## API ### 管理后台 - 能力信息 ``` GET /admin-api/education/capability ``` - 权限:`education:capability` - 响应示例: ```json { "code": 0, "msg": "成功", "data": { "module": "education", "enabled": true, "version": "1.0.0", "capabilities": ["shell"] } } ``` ### 错误码 | 错误码 | 说明 | |--------|------| | 1_005_001_000 | 教育模块未启用 | ## 构建与运行 ### 单独编译测试 ```bash # 编译 education 模块 mvn compile -pl yudao-module-education -am # 运行 education 模块单元测试 mvn test -pl yudao-module-education -am ``` ### 整体编译(含 server) ```bash # 编译全量(member + education + system + infra + server) mvn compile -pl yudao-server -am # 打包(跳过测试加速) mvn package -pl yudao-server -am -DskipTests ``` ### 启动验证 1. 确保 `yudao.education.enabled=true` 2. 启动 `yudao-server` 3. 访问 Swagger UI 查看 `education` 分组 4. 调用 `GET /admin-api/education/capability` ## SQL 应用 ```bash # 应用种子数据(菜单 + 权限定义;执行后由管理员为目标租户角色授权) mysql -u root -p ruoyi-vue-pro < sql/mysql/education/000-education-seed.sql # 回滚 mysql -u root -p ruoyi-vue-pro < sql/mysql/education/000-education-rollback.sql ``` ## SQL 交付约定 - 所有 Education SQL 文件存放在 `sql/mysql/education/` 目录下 - 文件命名:`NNN-描述.sql`(NNN 为三位递增序号) - 每个正向脚本应有对应的回滚脚本 - schema 文件仅包含 DDL,seed 文件仅包含 DML - **不修改**项目根目录的 `ruoyi-vue-pro.sql` 巨量全量转储 ## 前端状态 **当前工作区未检出完整的前端源码。** `yudao-ui/yudao-ui-admin-vue3/` 仅包含部分 MES 相关文件(`src/api/mes/`、`src/views/mes/`),缺少 `package.json`、`router/`、`store/`、`config/` 等核心框架文件。 因此: - **管理后台教育菜单项**:仅在后端通过 SQL 种子数据注册了 `system_menu` 记录(ID 6800-6801)。前端无路由/页面组件可渲染,菜单在管理后台不会显示。 - **Student Web/H5 应用外壳**:前端源码不存在,无法建立。 **阻塞项**:完整前端源码(含 router、store、package.json)是后续前端集成的必要前提。一旦前端源码就位,需: 1. 在 Vue3 admin 的路由中添加 `/education` 路由项,绑定 Education 菜单组件 2. 添加 `src/api/education/` API 封装层 3. Student Web/H5 端如需要独立入口,需新建对应前端项目