一、核心协作规则重申


    任务拆分：严格按照《学生管理系统（测试用例适配）开发任务计划表》执行，每个会话仅完成 1 个最小粒度的任务（如 1.1、1.2），确保任务足够简单、无遗漏；
    计划表更新：每完成 1 个任务后，在输出末尾更新计划表，标注对应任务 “完成状态” 为 “已完成”，并在 “备注” 栏记录执行细节、遇到的问题、后续注意点（规避遗忘 / 幻觉）；
    代码要求：所有开发代码仅满足测试用例覆盖需求，尽可能简洁，无冗余逻辑、无过度设计 / 优化（如密码无需加密、并发仅保证接收请求即可）；
    协作模式：由助手主导任务拆解与代码编写，用户负责实际操作（创建项目、粘贴代码、运行调试），助手需提供 “复制即用” 的代码及清晰的操作指引；
    输出结构：每个任务的输出需包含「操作指引」「核心代码」「验证方式」「更新后的计划表」四部分，确保用户可直接落地。


二、任务计划表引用
所有操作均基于下方《学生管理系统（测试用例适配）开发任务计划表》，每次会话需携带该计划表的最新版本（含已完成任务标注）：
阶段	任务 ID	任务名称	核心目标	关键提示词	完成状态	备注（仅保留执行结果和后续影响）
1. 项目初始化与环境搭建	1.1	创建 SpringBoot 后端基础项目	搭建后端工程骨架，引入核心依赖	SpringBoot、MySQL 驱动、MyBatis、JWT、lombok	已完成	Spring Boot 3.4.12，包名 top.awinx.stu01，Java 25；依赖：MyBatis-Plus 3.5.15、JJWT 0.13.0；启动方式：./mvnw spring-boot:run
1. 项目初始化与环境搭建	1.3	设计 MySQL 数据库表结构	设计核心实体表	用户表、学生表、教师表、课程表、学分表	已完成	数据库 stu01_db（MariaDB），用户 stu01/123456；核心表结构更新：teacher 表移除 major/title，仅保留 tea_no/name/user_id，外键关联 sys_user.id；预置测试数据：teacher 表 tea001 关联 user_id=3（tea001）
1. 项目初始化与环境搭建	1.4	后端基础配置	配置数据库、跨域、JWT 参数	application.yml、跨域、JWT 密钥	已完成	数据库连接正常；跨域允许 5173 端口（独立 CorsConfig）；JWT：32 位密钥、1 小时过期；context-path=/api，端口 8080；MyBatis-Plus 开启下划线转驼峰、SQL 日志
2. 用户登录模块开发	2.1	后端用户登录核心逻辑	实现账号密码校验	合法账号、缺少账号 / 密码、错误账号密码	已完成	接口：POST /api/login；校验逻辑：空值 + 存在性 + 密码匹配；返回格式：Result（code/message/data）
2. 用户登录模块开发	2.2	JWT 令牌生成与校验	生成 token、校验 token、令牌刷新	合法 token、token 拦截、令牌刷新	已完成	接口：① POST /api/login（返回 token+user）；② GET /api/login/refresh（刷新 token）；JWT 拦截器放行登录 / 刷新接口，拦截其他 /api/**；token 载荷含 user_type（1 - 学生 / 2 - 教师 / 3 - 管理员）
2. 用户登录模块开发	2.4	登录异常处理	统一异常返回格式，明确异常信息	缺少账号 / 密码、错误账号密码、token 无效 / 过期	已完成	全局异常处理器捕获业务 / 参数 / 系统异常；返回统一 Result 格式：业务异常 code=400、系统异常 code=500；支持空参数、账号密码错误、token 异常等场景，提示信息简洁
2. 用户登录模块开发	2.5	多用户登录性能基础支持	支持高并发请求	多用户登陆性能测试	已完成	依赖 Spring Boot 3.x 默认线程池
3. 学生信息模块开发	3.1	后端学生基础 CRUD	实现学生添加 / 查询接口（支持模糊查询）	学生添加、学生查询（学号 / 姓名 / 专业筛选）	已完成	1. 接口：① POST /api/student/add（添加，校验学号唯一）；② GET/POST/api/student/query（查询，学号精确、姓名 / 专业模糊）；2. 依赖 JWT 拦截器，需携带合法 token；3. 返回格式统一为 Result，兼容全局异常处理；4. 支持组合条件筛选
3. 学生信息模块开发	3.2	学生添加参数校验	校验学号、专业合法性	缺少学号、不合法学号、非法专业	已完成	学号规则：8 位纯数字、非空、唯一；专业限计算机 / 数学 / 英语；用 3.x 参数校验注解；添加 spring-boot-starter-validation 依赖，修复 Long 类型 @Pattern 注解误用问题，校验正常触发
3. 学生信息模块开发	3.3	学生查询参数校验	校验 ID 合法性、防 SQL 注入	合法 ID、非法 ID、SQL 注入拦截	已完成	1. 跳过分组校验设计（留作软件测试工程实践报告素材，后续忽略）；2. 仅保留基础校验：ID 非负整数 + 存在性、MyBatis-Plus 参数预编译防 SQL 注入；3. 简化代码，无分组相关逻辑
3. 学生信息模块开发	3.5	学生并发测试基础支持	支持添加 / 查询接口并发请求	学生查询 / 添加并发测试	未完成	依赖 3.x 默认配置
4. 教师信息模块开发	4.1	后端教师基础 CRUD	实现教师添加 / 更新 / 删除接口	教师添加、更新、删除	已完成	1. 适配新数据库结构：teacher 表移除 major/title，仅保留 tea_no/name/user_id，外键关联 sys_user.id；2. 校验逻辑：教师编号 8 位纯数字 + 唯一、姓名非空、关联 userId 存在且为教师类型（user_type=2）；3. 仅支持更新教师姓名；4. 接口路径：POST /api/teacher/add、PUT /api/teacher/update、DELETE /api/teacher/delete/{id}；5. 依赖 JWT 拦截器，需携带合法 token
4. 教师信息模块开发	4.2	教师删除关联拦截	教师关联课程 / 学分时拦截删除	删除关联拦截	未完成	校验逻辑：查询 course 表关联关系，存在则拦截；可选 @Transactional 事务处理
4. 教师信息模块开发	4.3	教师查询防 SQL 注入	校验查询参数、防 SQL 注入	教师查询、SQL 注入拦截	未完成	接口：/api/teacher/query；防注入：MyBatis-Plus 参数绑定
4. 教师信息模块开发	4.5	教师查询并发基础支持	确保教师查询接口支持并发请求	老师查询接口并发测试	未完成	依赖 3.x 默认配置
5. 课程与学分模块开发	5.1	后端课程 / 学分基础 CRUD	编写课程 / 学分实体 / DAO/Service/Controller	课程添加、学分添加	未完成	接口路径：POST /api/course/add、POST /api/score/add
5. 课程与学分模块开发	5.2	课程参数校验	校验课程名称合法性、实现课程查询	课程查询、不合法名称	未完成	课程名规则：2-20 字符（中文 / 数字 / 字母）；接口路径：/api/course/query
5. 课程与学分模块开发	5.3	学分参数校验	校验分数合法性、实现学分更新	学分更新、错误分数	未完成	分数规则：0-100，超范围返回校验失败；接口路径：PUT /api/score/update
5. 课程与学分模块开发	5.5	课程查询并发基础支持	确保课程查询接口支持并发请求	课程查询并发测试	未完成	依赖 3.x 默认配置
6. 权限控制模块开发	6.1	JWT 权限标识	令牌中添加用户类型	访问权限 - 未登录、权限标识	已完成	用户类型：1 - 学生、2 - 教师、3 - 管理员；JWT 载荷已包含 user_type
6. 权限控制模块开发	6.2	后端接口权限拦截	拦截未登录请求、越权访问请求	越权访问 - 学生 - 老师、学生 - 管理员、老师 - 管理员	未完成	基于 JWT 的 user_type 判断权限；拦截器扩展：学生禁访 /api/teacher/、/api/admin/，教师禁访 /api/admin/**

三、执行反馈模块（每次会话必填）
