sxwz2.0/README.md

204 lines
5.9 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 可学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密钥
## 许可证
本项目仅供内部使用,未经授权不得用于商业用途。
## 联系方式
如有问题,请联系项目维护人员。