# 荣光课堂后端管理系统 ## 项目简介 这是一个基于 Spring Boot 的荣光课堂后端管理系统,用于管理课程数据、游戏数据和用户学习记录。 ## 技术栈 - Spring Boot 2.6.13 - Spring Data JPA - MySQL 8.0 - Maven ## 数据库设计 ### 主要表结构 1. **users** - 用户表 2. **courses** - 课程表 3. **games** - 游戏表 4. **user_access_records** - 用户访问记录表 5. **game_records** - 游戏记录表 ### 数据库初始化 1. 创建数据库: ```sql CREATE DATABASE rg_classroom CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; ``` 2. 执行数据库脚本: ```bash mysql -u root -p rg_classroom < database_schema.sql ``` ## 配置说明 ### 数据库配置 修改 `src/main/resources/application.yml` 中的数据库连接信息: ```yaml spring: datasource: url: jdbc:mysql://localhost:3306/rg_classroom?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true username: root password: 123456 ``` ## API 接口 ### 用户管理 - `GET /api/users` - 获取所有用户 - `GET /api/users/{id}` - 根据 ID 获取用户 - `POST /api/users/login` - 用户登录 - `POST /api/users` - 创建用户 - `PUT /api/users/{id}` - 更新用户 - `DELETE /api/users/{id}` - 删除用户 ### 课程管理 - `GET /api/courses` - 获取所有课程 - `GET /api/courses/{id}` - 根据 ID 获取课程 - `GET /api/courses/courseId/{courseId}` - 根据课程 ID 获取课程 - `GET /api/courses/category/{categoryId}` - 根据分类获取课程 - `GET /api/courses/grade/{gradeLevel}/semester/{semester}` - 根据年级学期获取课程 - `POST /api/courses` - 创建课程 - `PUT /api/courses/{id}` - 更新课程 - `DELETE /api/courses/{id}` - 删除课程 ### 游戏管理 - `GET /api/games` - 获取所有游戏 - `GET /api/games/{id}` - 根据 ID 获取游戏 - `GET /api/games/course/{courseId}` - 根据课程 ID 获取游戏 - `GET /api/games/category/{categoryId}` - 根据分类获取游戏 - `POST /api/games` - 创建游戏 - `PUT /api/games/{id}` - 更新游戏 - `DELETE /api/games/{id}` - 删除游戏 ### 记录管理 - `POST /api/records/access` - 记录用户访问 - `POST /api/records/game` - 记录游戏结果 - `GET /api/records/access/user/{userId}` - 获取用户访问记录 - `GET /api/records/access/course/{courseId}` - 获取课程访问统计 - `GET /api/records/game/user/{userId}` - 获取用户游戏记录 - `GET /api/records/game/stats/{gameId}` - 获取游戏统计 ### 数据同步 - `GET /api/data/courses` - 获取所有课程数据 - `GET /api/data/games` - 获取所有游戏数据 - `GET /api/data/complete` - 获取完整数据结构 - `GET /api/data/course/{courseId}/complete` - 获取课程完整数据 ### 统计分析 - `GET /api/stats/user/{userId}` - 获取用户学习统计 - `GET /api/stats/course/{courseId}` - 获取课程访问统计 - `GET /api/stats/game/{gameId}` - 获取游戏统计 - `GET /api/stats/user/{userId}/game/{gameId}` - 获取用户游戏统计 ## 运行项目 1. 确保 MySQL 数据库已启动 2. 执行数据库初始化脚本 3. 修改配置文件中的数据库连接信息 4. 运行项目: ```bash mvn spring-boot:run ``` 或者打包后运行: ```bash mvn clean package java -jar target/rg_admin-0.0.1-SNAPSHOT.jar ``` ## 前端集成 前端可以通过以下方式集成: 1. 使用 `/api/data/complete` 接口获取完整的课程和游戏数据 2. 用户访问课程或游戏时,调用 `/api/records/access` 记录访问 3. 游戏结束时,调用 `/api/records/game` 记录游戏结果 4. 使用统计接口获取学习数据分析 ## 注意事项 1. 确保数据库连接配置正确 2. 首次运行时会自动创建表结构 3. 建议在生产环境中修改默认的数据库密码 4. 所有 API 都支持 CORS 跨域访问