37 lines
7.5 KiB
Plaintext
37 lines
7.5 KiB
Plaintext
一、核心协作规则重申
|
||
|
||
|
||
任务拆分:严格按照《学生管理系统(测试用例适配)开发任务计划表》执行,每个会话仅完成 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/**
|
||
|
||
三、执行反馈模块(每次会话必填)
|