|
|
|
@ -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<Teacher> teacherPage = new Page<>(pageNo, pageSize);
|
|
|
|
|
// 调用教师服务类的方法,传入分页对象和教师查询条件,获取分页的教师数据
|
|
|
|
|
Page<Teacher> 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<Integer> ids
|
|
|
|
|
// 从请求体中获取要删除的教师 ID 列表,并使用 Swagger 注解描述该参数
|
|
|
|
|
@ApiParam("要删除的教师 id 列表") @RequestBody List<Integer> ids
|
|
|
|
|
){
|
|
|
|
|
|
|
|
|
|
// 调用教师服务类的 removeByIds 方法,根据传入的教师 ID 列表删除教师信息
|
|
|
|
|
teacherService.removeByIds(ids);
|
|
|
|
|
// 将操作成功的信息封装到结果对象中,并返回给前端
|
|
|
|
|
return Result.ok();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|