Files
RGKT/rg_admin/README.md
2025-10-10 19:44:14 +08:00

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 跨域访问