204 lines
5.9 KiB
Markdown
204 lines
5.9 KiB
Markdown
# 可学AI-实训网站2.0
|
||
|
||
## 项目简介
|
||
|
||
平台是一个基于Spring Boot的智能技能实训管理系统,提供技能生成、课程管理、用户认证、通知系统等功能。
|
||
|
||
## 技术栈
|
||
|
||
- **基础框架**:Spring Boot 3.2.2
|
||
- **持久层**:MyBatis 3.0.3
|
||
- **数据库**:MySQL
|
||
- **缓存**:Redis
|
||
- **认证**:Sa-Token 1.38.0
|
||
- **API文档**:Swagger 3.0.0
|
||
- **短信服务**:SMS4J 3.3.5
|
||
- **分布式锁**:Redisson 3.23.5
|
||
- **AI集成**:DeepSeek、GLM-4.6v
|
||
|
||
## 项目结构
|
||
|
||
```
|
||
backend/
|
||
├── .mvn/ # Maven包装器
|
||
├── db/ # 数据库脚本
|
||
├── src/
|
||
│ ├── main/
|
||
│ │ ├── java/art/kexue/sxwz/ # 主源码
|
||
│ │ │ ├── annotation/ # 自定义注解
|
||
│ │ │ ├── aspect/ # AOP切面
|
||
│ │ │ ├── common/ # 通用工具和常量
|
||
│ │ │ ├── config/ # 配置类
|
||
│ │ │ ├── controller/ # 控制器
|
||
│ │ │ ├── entity/ # 实体类
|
||
│ │ │ │ ├── dto/ # 数据传输对象
|
||
│ │ │ │ └── request/ # 请求对象
|
||
│ │ │ ├── exception/ # 异常处理
|
||
│ │ │ ├── interceptor/ # 拦截器
|
||
│ │ │ ├── mapper/ # 数据访问层
|
||
│ │ │ ├── service/ # 服务层
|
||
│ │ │ │ └── impl/ # 服务实现
|
||
│ │ │ └── utils/ # 工具类
|
||
│ │ └── resources/ # 资源文件
|
||
│ │ ├── mapper/ # MyBatis映射文件
|
||
│ │ ├── static/ # 静态资源
|
||
│ │ ├── application-*.yml # 配置文件
|
||
│ │ └── logback-spring.xml # 日志配置
|
||
│ └── test/ # 测试代码
|
||
├── .gitignore # Git忽略文件
|
||
├── Dockerfile # Docker构建文件
|
||
├── README.md # 项目说明
|
||
├── mvnw.cmd # Maven包装器脚本
|
||
└── pom.xml # Maven依赖配置
|
||
```
|
||
|
||
## 核心功能
|
||
|
||
### 1. 用户认证与授权
|
||
- 基于Sa-Token的认证系统
|
||
- 支持账号密码登录
|
||
- 支持手机验证码登录
|
||
- 角色权限管理(多级管理员)
|
||
- 防重复提交
|
||
|
||
### 2. 通知系统
|
||
- 系统通知(管理员操作记录)
|
||
- 管理员对用户通知(支持多级发送)
|
||
- 课程通知(老师群发课程消息)
|
||
- 角色层级权限控制
|
||
- 已读状态管理
|
||
|
||
### 3. 用户管理
|
||
- 用户注册与登录
|
||
- 用户信息管理
|
||
- 角色分配(主要管理员、次级管理员、学校管理员、学院管理员、老师、学生)
|
||
- 用户权限验证
|
||
|
||
### 4. 课程管理
|
||
- 课程创建与管理
|
||
- 课程学生管理
|
||
- 课程作业管理
|
||
- 课程考试管理
|
||
|
||
### 5. 考勤系统
|
||
- 考勤记录管理
|
||
- 考勤统计
|
||
|
||
### 6. 优秀作品管理
|
||
- 作品展示与管理
|
||
- 作品点赞
|
||
|
||
### 7. 支付系统
|
||
- 微信支付集成
|
||
- 支付订单管理
|
||
- 账户余额管理
|
||
|
||
### 8. 系统管理
|
||
- 菜单管理
|
||
- 角色管理
|
||
- 字典管理
|
||
- 系统日志
|
||
|
||
## 快速开始
|
||
|
||
### 环境要求
|
||
- JDK 17+
|
||
- Maven 3.6+
|
||
- MySQL 5.7+
|
||
- Redis 5.0+
|
||
|
||
### 配置说明
|
||
1. 修改 `application-dev.yml` 文件中的数据库连接信息
|
||
2. 修改 `application.yml` 文件中的Redis连接信息
|
||
3. 修改 `application.yml` 文件中的AI模型API密钥
|
||
4. 修改 `application.yml` 文件中的短信服务配置
|
||
|
||
### 数据库初始化
|
||
1. 执行 `db/create_edu_tables.sql` 创建数据库表
|
||
2. 执行 `db/sys_role_permission_data_init_merged.sql` 初始化权限数据
|
||
|
||
### 启动项目
|
||
```bash
|
||
# 编译项目
|
||
mvn clean compile
|
||
|
||
# 运行项目
|
||
mvn spring-boot:run
|
||
```
|
||
|
||
### 访问地址
|
||
- 项目首页:http://localhost:8080
|
||
- Swagger文档:http://localhost:8080/doc.html
|
||
|
||
## 主要API
|
||
|
||
### 用户认证
|
||
- `POST /api/login` - 用户登录
|
||
- `POST /api/logout` - 用户登出
|
||
- `GET /api/currentUser` - 获取当前用户信息
|
||
|
||
### 通知管理
|
||
- `POST /api/notification/send-to-users` - 发送通知给指定用户
|
||
- `POST /api/notification/send-to-roles` - 发送通知给指定角色
|
||
- `POST /api/notification/send-to-course` - 发送课程通知
|
||
- `GET /api/notification/user` - 查询当前用户通知列表
|
||
- `PUT /api/notification/user/{userId}/read-all` - 全部标记为已读
|
||
|
||
### 用户管理
|
||
- `GET /api/user/list` - 获取用户列表
|
||
- `POST /api/user/save` - 保存用户
|
||
- `DELETE /api/user/delete/{id}` - 删除用户
|
||
|
||
### 课程管理
|
||
- `GET /api/course/list` - 获取课程列表
|
||
- `POST /api/course/save` - 保存课程
|
||
- `GET /api/course/students/{courseId}` - 获取课程学生列表
|
||
|
||
## 角色层级权限
|
||
|
||
| 角色 | 角色类型 | 可通知对象 |
|
||
|------|----------|-----------|
|
||
| 主要管理员(SUPER) | 1 | 次级管理员、学校管理员、学院管理员、老师、学生 |
|
||
| 次级管理员(SUPER1) | 1 | 学校管理员、学院管理员、老师、学生 |
|
||
| 学校管理员(SCHOOL_ADMIN) | 2 | 学院管理员、老师、学生 |
|
||
| 学院管理员(COLLEGE_ADMIN) | 3 | 老师、学生 |
|
||
| 老师(TEACHER) | 4 | 指定课程的学生 |
|
||
| 学生(STUDENT) | 5 | 仅收件箱 |
|
||
|
||
## 部署说明
|
||
|
||
### Docker部署
|
||
1. 构建Docker镜像
|
||
```bash
|
||
docker build -t sxwz-backend .
|
||
```
|
||
|
||
2. 运行Docker容器
|
||
```bash
|
||
docker run -p 8080:8080 --name sxwz-backend sxwz-backend
|
||
```
|
||
|
||
### 生产环境部署
|
||
1. 打包项目
|
||
```bash
|
||
mvn clean package -DskipTests
|
||
```
|
||
|
||
2. 部署jar包
|
||
```bash
|
||
java -jar sxwz-backend.jar --spring.profiles.active=prod
|
||
```
|
||
|
||
## 注意事项
|
||
|
||
1. 项目使用Redis作为缓存,需要确保Redis服务正常运行
|
||
2. 项目使用阿里云短信服务,需要配置相关参数
|
||
3. 项目使用AI模型API,需要配置相关API密钥
|
||
|
||
## 许可证
|
||
|
||
本项目仅供内部使用,未经授权不得用于商业用途。
|
||
|
||
## 联系方式
|
||
|
||
如有问题,请联系项目维护人员。 |