5.9 KiB
5.9 KiB
可学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+
配置说明
- 修改
application-dev.yml文件中的数据库连接信息 - 修改
application.yml文件中的Redis连接信息 - 修改
application.yml文件中的AI模型API密钥 - 修改
application.yml文件中的短信服务配置
数据库初始化
- 执行
db/create_edu_tables.sql创建数据库表 - 执行
db/sys_role_permission_data_init_merged.sql初始化权限数据
启动项目
# 编译项目
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 | 学校管理员、学院管理员、老师、学生 |
| 学校管理员(SCOOL_ADMIN) | 2 | 学院管理员、老师、学生 |
| 学院管理员(COLLEGE_ADMIN) | 3 | 老师、学生 |
| 老师(TEACHER) | 4 | 指定课程的学生 |
| 学生(STUDENT) | 5 | 仅收件箱 |
部署说明
Docker部署
- 构建Docker镜像
docker build -t sxwz-backend .
- 运行Docker容器
docker run -p 8080:8080 --name sxwz-backend sxwz-backend
生产环境部署
- 打包项目
mvn clean package -DskipTests
- 部署jar包
java -jar sxwz-backend.jar --spring.profiles.active=prod
注意事项
- 项目使用Redis作为缓存,需要确保Redis服务正常运行
- 项目使用阿里云短信服务,需要配置相关参数
- 项目使用AI模型API,需要配置相关API密钥
许可证
本项目仅供内部使用,未经授权不得用于商业用途。
联系方式
如有问题,请联系项目维护人员。