From 224017a40e4fc1851c7f1762932ec6e4e4808f4c Mon Sep 17 00:00:00 2001 From: pveayojnc <3273195329@qq.com> Date: Tue, 29 Apr 2025 17:51:31 +0800 Subject: [PATCH] Update TeacherController.java --- .../com/zsz/controller/TeacherController.java | 61 +++++++++++++++++-- 1 file changed, 55 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/zsz/controller/TeacherController.java b/src/main/java/com/zsz/controller/TeacherController.java index df477dc..e86b222 100644 --- a/src/main/java/com/zsz/controller/TeacherController.java +++ b/src/main/java/com/zsz/controller/TeacherController.java @@ -1,63 +1,112 @@ package com.zsz.controller; +// 导入 MyBatis-Plus 的分页插件中的 Page 类,用于实现分页功能 import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +// 导入教师实体类,用于封装教师相关的数据 import com.zsz.pojo.Teacher; +// 导入教师服务类,用于调用与教师相关的业务逻辑 import com.zsz.service.TeacherService; +// 导入 MD5 加密工具类,用于对教师密码进行加密处理 import com.zsz.util.MD5; +// 导入自定义的结果类,用于封装接口返回的结果信息 import com.zsz.util.Result; +// 导入 Swagger 相关注解,用于生成接口文档 import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; +// 导入 Spring 框架的自动注入注解和 Web 相关注解 import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import java.util.List; +/** + * 教师控制器类,用于处理与教师相关的 HTTP 请求 + */ @Api("教师管理器") +// 标识该类为一个 RESTful 风格的控制器 @RestController +// 设置该控制器处理的请求路径前缀 @RequestMapping("/sms/teacherController") public class TeacherController { + // 自动注入教师服务类的实例,以便在本控制器中调用教师相关的业务方法 @Autowired TeacherService teacherService; - // http://localhost:8080/sms/teacherController/getTeachers/1/3?clazzName=&name= + /** + * 根据分页条件获取教师信息的接口 + * 请求示例:http://localhost:8080/sms/teacherController/getTeachers/1/3?clazzName=&name= + * @param pageNo 分页查询的页码数,从请求路径中获取 + * @param pageSize 分页查询的页大小,从请求路径中获取 + * @param teacher 分页查询的条件,包含班级名称和教师名称等信息,从请求参数中获取 + * @return 封装了分页教师信息的结果对象 + */ @ApiOperation("根据分页条件获取教师信息") + // 处理 GET 请求,路径中包含页码和页大小的占位符 @GetMapping("/getTeachers/{pageNo}/{pageSize}") public Result getTeachers( + // 从路径中获取分页查询的页码数,并使用 Swagger 注解描述该参数 @ApiParam("分页查询的页码数") @PathVariable("pageNo") Integer pageNo, + // 从路径中获取分页查询的页大小,并使用 Swagger 注解描述该参数 @ApiParam("分页查询的页大小") @PathVariable("pageSize") Integer pageSize, + // 从请求参数中获取教师信息对象,用于查询条件,并使用 Swagger 注解描述该参数 @ApiParam("分页查询的班级名称和教师名称") Teacher teacher ){ + // 创建一个 Page 对象,用于封装分页信息,传入页码和页大小 Page teacherPage = new Page<>(pageNo, pageSize); + // 调用教师服务类的方法,传入分页对象和教师查询条件,获取分页的教师数据 Page teacherPage1 = teacherService.getTeacherData(teacherPage,teacher); + // 将获取到的分页教师数据封装到结果对象中,并返回给前端 return Result.ok(teacherPage1); } - // http://localhost:8080/sms/teacherController/saveOrUpdateTeacher + /** + * 新增或者更改教师信息的接口 + * 请求示例:http://localhost:8080/sms/teacherController/saveOrUpdateTeacher + * @param teacher 要提交的教师信息对象,从请求体中获取 + * @return 封装了操作结果的结果对象,操作成功返回成功信息 + */ @ApiOperation("新增或者更改教师信息") + // 处理 POST 请求,用于保存或更新教师信息 @PostMapping("/saveOrUpdateTeacher") public Result saveOrUpdateTeacher( + // 从请求体中获取要提交的教师信息对象,并使用 Swagger 注解描述该参数 @ApiParam("要提交的教师信息") @RequestBody Teacher teacher ){ + // 获取教师对象的 ID Integer id = teacher.getId(); + // 判断教师对象的 ID 是否为空或为 0,如果是则表示是新增教师信息 if (null == id || 0 == id){ + // 获取教师的密码 String password = teacher.getPassword(); + // 使用 MD5 加密工具对教师密码进行加密 String encrypt = MD5.encrypt(password); + // 将加密后的密码设置回教师对象中 teacher.setPassword(encrypt); } + // 调用教师服务类的 saveOrUpdate 方法,保存或更新教师信息 teacherService.saveOrUpdate(teacher); + // 将操作成功的信息封装到结果对象中,并返回给前端 return Result.ok(); } - // http://localhost:8080/sms/teacherController/deleteTeacher + /** + * 删除单个或多个老师信息的接口 + * 请求示例:http://localhost:8080/sms/teacherController/deleteTeacher + * @param ids 要删除的教师 ID 列表,从请求体中获取 + * @return 封装了操作结果的结果对象,操作成功返回成功信息 + */ @ApiOperation("删除单个或多个老师信息") + // 处理 DELETE 请求,用于删除教师信息 @DeleteMapping("/deleteTeacher") public Result deleteTeacher( - @ApiParam("要删除的教师id列表") @RequestBody List ids + // 从请求体中获取要删除的教师 ID 列表,并使用 Swagger 注解描述该参数 + @ApiParam("要删除的教师 id 列表") @RequestBody List ids ){ - + // 调用教师服务类的 removeByIds 方法,根据传入的教师 ID 列表删除教师信息 teacherService.removeByIds(ids); + // 将操作成功的信息封装到结果对象中,并返回给前端 return Result.ok(); } -} +} \ No newline at end of file