# Student-Manager **Repository Path**: yuancc_admin/student-manager ## Basic Information - **Project Name**: Student-Manager - **Description**: No description available - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-06-05 - **Last Updated**: 2026-06-05 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 学生管理系统 ## 项目简介 这是一个基于Spring Boot 3.4.7和JDK 21的学生管理系统,集成了权限管理功能。完全由AI制作。 ## 技术栈 - JDK 21 - Spring Boot 3.4.7 - MyBatis-Plus 3.5.9(ORM框架) - Redis + Redisson(缓存和分布式锁) - JWT(认证) - SpringDoc OpenAPI(API文档) - Hutool(工具库) - MySQL(数据库) ## 功能模块 1. **班级管理** - 班级的增删改查、班主任分配 2. **管理员管理** - 系统管理员的增删改查、权限分配 3. **学生管理** - 学生信息管理、班级分配 4. **教师管理** - 教师信息管理 5. **成绩管理** - 学生成绩录入、查询、统计 6. **科目管理** - 科目信息管理 7. **家长管理** - 家长信息管理、与学生关联 8. **权限管理** - 角色、权限管理、基于RBAC模型 ## 项目结构 ``` src/main/java/com/huopan/studentmanager/ ├── common/ # 通用类 │ ├── Result.java # 统一响应结果 │ ├── Constants.java # 常量定义 │ ├── BusinessException.java # 业务异常 │ └── GlobalExceptionHandler.java # 全局异常处理 ├── config/ # 配置类 │ ├── MyMetaObjectHandler.java # MyBatis-Plus自动填充 │ ├── RedisConfig.java # Redis配置 │ └── SwaggerConfig.java # Swagger配置 ├── controller/ # 控制器 │ ├── AuthController.java # 认证控制器 │ ├── AdminController.java # 管理员控制器 │ ├── TeacherController.java # 教师控制器 │ ├── StudentController.java # 学生控制器 │ ├── ParentController.java # 家长控制器 │ ├── ClassController.java # 班级控制器 │ ├── SubjectController.java # 科目控制器 │ ├── ScoreController.java # 成绩控制器 │ ├── RoleController.java # 角色控制器 │ └── PermissionController.java # 权限控制器 ├── dto/ # 数据传输对象 │ ├── LoginDTO.java # 登录请求DTO │ └── LoginVO.java # 登录响应DTO ├── entity/ # 实体类 │ ├── BaseEntity.java # 基础实体 │ ├── Admin.java # 管理员 │ ├── Teacher.java # 教师 │ ├── Student.java # 学生 │ ├── Parent.java # 家长 │ ├── ClassEntity.java # 班级 │ ├── Subject.java # 科目 │ ├── Score.java # 成绩 │ ├── Role.java # 角色 │ ├── Permission.java # 权限 │ ├── UserRole.java # 用户角色关联 │ └── RolePermission.java # 角色权限关联 ├── mapper/ # Mapper接口 ├── service/ # 服务类 │ ├── AuthService.java # 认证服务 │ ├── PermissionService.java # 权限服务 │ ├── AdminService.java # 管理员服务 │ ├── TeacherService.java # 教师服务 │ ├── StudentService.java # 学生服务 │ ├── ParentService.java # 家长服务 │ ├── ClassService.java # 班级服务 │ ├── SubjectService.java # 科目服务 │ └── ScoreService.java # 成绩服务 ├── util/ # 工具类 │ ├── JwtUtils.java # JWT工具类 │ └── RedisUtils.java # Redis工具类 └── StudentManagerApplication.java # 启动类 ``` ## 数据库初始化 1. 创建MySQL数据库 2. 执行 `src/main/resources/db/init.sql` 脚本初始化数据库表结构和基础数据 ## 配置说明 修改 `src/main/resources/application.yml` 配置文件: ```yaml spring: datasource: url: jdbc:mysql://localhost:3306/student_manager?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai username: root password: your_password data: redis: host: localhost port: 6379 password: your_redis_password jwt: secret: your_jwt_secret_key_at_least_256_bits_long expiration: 86400000 # 24小时 ``` ## 运行项目 1. 确保已安装JDK 21、MySQL、Redis 2. 初始化数据库 3. 修改配置文件 4. 运行 `StudentManagerApplication.java` ## API文档 启动项目后访问:http://localhost:8080/swagger-ui.html ## 默认账号 - 管理员:admin / 123456 - 用户类型:1-管理员 2-教师 ## 权限管理说明 系统采用RBAC(基于角色的访问控制)模型: - 用户 -> 角色 -> 权限 - 支持四种用户类型:管理员、教师 - 权限缓存在Redis中,使用Redisson管理 - 权限变更后自动清除缓存 ## 接口示例 ### 登录 ``` POST /auth/login { "userType": 1, "username": "admin", "password": "123456" } ``` ### 分页查询学生 ``` GET /student/page?page=1&size=10&name=张三 ``` ### 新增班级 ``` POST /class { "className": "一年级一班", "classCode": "2024-01-01", "grade": "一年级" } ``` ## 注意事项 1. 默认密码为 `123456`,可通过重置密码接口修改 2. JWT Token过期时间为24小时 3. 权限缓存时间为1小时 4. 所有接口返回统一的JSON格式