一、核心协作规则重申 任务拆分:严格按照《学生管理系统(测试用例适配)开发任务计划表》执行,每个会话仅完成 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;核心表含 sys_user(预置 admin/stu001/tea001,密码 123456);字段约束:学号 / 教师编号 8 位纯数字,专业限 3 类,课程名 2-20 字符,分数 0-100 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 参数校验注解 3. 学生信息模块开发 3.3 学生查询参数校验 校验 ID 合法性、防 SQL 注入 合法 ID、非法 ID、SQL 注入拦截 未完成 防注入:MyBatis-Plus 参数绑定;ID 校验:非负整数 + 存在性 3. 学生信息模块开发 3.5 学生并发测试基础支持 支持添加 / 查询接口并发请求 学生查询 / 添加并发测试 未完成 依赖 3.x 默认配置 4. 教师信息模块开发 4.1 后端教师基础 CRUD 实现教师添加 / 更新 / 删除接口 教师添加、更新、删除 未完成 接口路径:POST /api/teacher/add、PUT /api/teacher/update、DELETE /api/teacher/delete 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/** 7. 测试适配与代码精简 7.1 测试用例全覆盖核对 逐一核对测试用例,确保功能点无遗漏 用例全覆盖、功能校验 未完成 核对类别:登录 / 学生 / 教师 / 课程学分 / 权限 / 并发 / 注入;适配 3.x、MariaDB 7. 测试适配与代码精简 7.2 代码精简 移除冗余逻辑,仅保留测试必需功能 代码简洁、无冗余 未完成 删除冗余代码,简化逻辑;移除无用配置依赖;统一异常处理逻辑 7. 测试适配与代码精简 7.3 基础联调 确保后端接口通信正常,核心功能可运行 联调、接口通联 未完成 测试核心接口(登录、增删改查、权限、刷新);前后端跨域正常;数据库读写正常 三、执行反馈模块(每次会话必填) 问题解决:核心是添加了一个springboot的关于validation的starter依赖。 确认3.2完成,开始3.3