140 lines
3.8 KiB
Markdown
140 lines
3.8 KiB
Markdown
|
|
# 荣光课堂后端管理系统
|
||
|
|
|
||
|
|
## 项目简介
|
||
|
|
|
||
|
|
这是一个基于 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 跨域访问
|