You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
ssgl/zsq/StudentController.java

77 lines
4.5 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

package com.yanzhen.controller;
import com.github.pagehelper.PageInfo;
import com.yanzhen.entity.Grade;
import com.yanzhen.entity.Org;
import com.yanzhen.entity.Student;
import com.yanzhen.service.GradeService;
import com.yanzhen.service.OrgService;
import com.yanzhen.service.StudentService;
import com.yanzhen.utils.Result;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.Map;
@RestController // 声明这是一个控制器,并且返回的数据直接写入 HTTP 响应体中,而不是解析为跳转路径。
@RequestMapping("/student") // 设置请求的根路径为 "/student",所有方法的请求路径都会以这个为基础。
public class StudentController { // 定义一个名为 StudentController 的类,用于处理学生相关的请求。
@Autowired // 自动注入 StudentService 对象,用于处理学生数据的业务逻辑。
private StudentService studentService;
@Autowired // 自动注入 GradeService 对象,用于处理年级数据的业务逻辑。
private GradeService gradeService;
@Autowired // 自动注入 OrgService 对象,用于处理班级数据的业务逻辑。
private OrgService orgService;
@PostMapping("create") // 映射 HTTP POST 请求到 create 方法,用于创建新的学生记录。
public Result create(@RequestBody Student student){ // 接收一个 JSON 格式的学生对象作为请求体。
int flag = studentService.create(student); // 调用 studentService 的 create 方法保存学生信息,并返回操作结果标志。
if(flag>0){ // 如果操作成功flag > 0
return Result.ok(); // 返回成功的 Result 对象。
}else{ // 如果操作失败flag <= 0
return Result.fail(); // 返回失败的 Result 对象。
}
}
@GetMapping("delete") // 映射 HTTP GET 请求到 delete 方法,用于删除学生记录。
public Result delete(String ids){ // 接收要删除的学生 ID 列表作为请求参数。
int flag = studentService.delete(ids); // 调用 studentService 的 delete 方法删除指定的学生记录,并返回操作结果标志。
if(flag>0){ // 如果操作成功flag > 0
return Result.ok(); // 返回成功的 Result 对象。
}else{ // 如果操作失败flag <= 0
return Result.fail(); // 返回失败的 Result 对象。
}
}
@PostMapping("update") // 映射 HTTP POST 请求到 update 方法,用于更新学生记录。
public Result update(@RequestBody Student student){ // 接收一个 JSON 格式的学生对象作为请求体。
int flag = studentService.updateSelective(student); // 调用 studentService 的 updateSelective 方法更新学生信息,并返回操作结果标志。
if(flag>0){ // 如果操作成功flag > 0
return Result.ok(); // 返回成功的 Result 对象。
}else{ // 如果操作失败flag <= 0
return Result.fail(); // 返回失败的 Result 对象。
}
}
@GetMapping("detail") // 映射 HTTP GET 请求到 detail 方法,用于获取单个学生的详细信息。
public Student detail(Integer id){ // 接收学生 ID 作为请求参数。
return studentService.detail(id); // 调用 studentService 的 detail 方法获取指定 ID 的学生信息,并返回该学生对象。
}
@PostMapping("query") // 映射 HTTP POST 请求到 query 方法,用于查询学生列表。
public Map<String,Object> query(@RequestBody Student student){ // 接收一个 JSON 格式的学生对象作为请求体,用于查询条件。
PageInfo<Student> pageInfo = studentService.query(student); // 调用 studentService 的 query 方法查询符合条件的学生列表,并返回分页信息。
pageInfo.getList().forEach(entity->{ // 遍历查询结果中的每个学生对象。
Grade grade = gradeService.detail(entity.getGradeId()); // 根据学生对象的年级 ID 获取对应的年级信息。
entity.setGrade(grade); // 将年级信息设置到学生对象中。
Org org = orgService.detail(entity.getClazzId()); // 根据学生对象的班级 ID 获取对应的班级信息。
entity.setOrg(org); // 将班级信息设置到学生对象中。
});
return Result.ok(pageInfo); // 返回包含分页信息的成功的 Result 对象。
}
}