Go to file
2026-05-15 17:11:28 +08:00
.mvn/wrapper Initial commit of backend project 2026-01-22 10:20:02 +08:00
.trae/documents feat(notification): 实现通知功能,支持角色层级发送和课程群发 2026-05-15 16:57:07 +08:00
db feat(notification): 实现通知功能,支持角色层级发送和课程群发 2026-05-15 16:57:07 +08:00
src feat(notification): 实现通知功能,支持角色层级发送和课程群发 2026-05-15 16:57:07 +08:00
.gitignore Merge and resolve conflicts in README.md and .gitignore 2026-01-22 10:54:39 +08:00
pom.xml feat(notification): 实现通知功能,支持角色层级发送和课程群发 2026-05-15 16:57:07 +08:00
README.md docs(readme): 更新README.md文档,添加通知系统说明和角色层级权限 2026-05-15 17:11:28 +08:00
实训平台客户端完整需求文档(V2.0).md feat(notification): 实现通知功能,支持角色层级发送和课程群发 2026-05-15 16:57:07 +08:00
数据导入模板-学生批量绑定到课程.xlsx feat(notification): 实现通知功能,支持角色层级发送和课程群发 2026-05-15 16:57:07 +08:00

可学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 初始化权限数据

启动项目

# 编译项目
mvn clean compile

# 运行项目
mvn spring-boot:run

访问地址

主要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部署

  1. 构建Docker镜像
docker build -t sxwz-backend .
  1. 运行Docker容器
docker run -p 8080:8080 --name sxwz-backend sxwz-backend

生产环境部署

  1. 打包项目
mvn clean package -DskipTests
  1. 部署jar包
java -jar sxwz-backend.jar --spring.profiles.active=prod

注意事项

  1. 项目使用Redis作为缓存需要确保Redis服务正常运行
  2. 项目使用阿里云短信服务,需要配置相关参数
  3. 项目使用AI模型API需要配置相关API密钥

许可证

本项目仅供内部使用,未经授权不得用于商业用途。

联系方式

如有问题,请联系项目维护人员。