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/AbsenceController.java

85 lines
4.4 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.Absence; // 导入Absence实体类
import com.yanzhen.entity.Dormitory; // 导入Dormitory实体类
import com.yanzhen.entity.Student; // 导入Student实体类
import com.yanzhen.service.AbsenceService; // 导入AbsenceService服务接口
import com.yanzhen.service.DormitoryService宿; // 导入DormitoryService服务接口
import com.yanzhen.service.StudentService; // 导入StudentService服务接口
import com.yanzhen.utils.Result; // 导入Result工具类
import org.springframework.beans.factory.annotation.Autowired; // 导入Spring的自动装配注解
import org.springframework.web.bind.annotation.*; // 导入Spring MVC的注解
import java.util.Map; // 导入Map集合
@RestController // 声明这是一个控制器并且返回的数据直接写入HTTP响应体中
@RequestMapping("/absence") // 设置请求路径前缀为/absence
public class AbsenceController { // 定义AbsenceController类
@Autowired // 自动注入AbsenceService实例
private AbsenceService absenceService;
@Autowired // 自动注入StudentService实例
private StudentService studentService;
@Autowired // 自动注入DormitoryService实例
private DormitoryService宿 dormitoryService;
@PostMapping("create") // 映射HTTP POST请求到create方法
public Result create(@RequestBody Absence absence){ // 接收请求体中的Absence对象
int flag = absenceService.create(absence); // 调用服务层创建记录
if(flag>0){ // 如果创建成功
return Result.ok(); // 返回成功结果
}else{ // 如果创建失败
return Result.fail(); // 返回失败结果
}
}
@GetMapping("delete") // 映射HTTP GET请求到delete方法
public Result delete(String ids){ // 接收请求参数ids
int flag = absenceService.delete(ids); // 调用服务层删除记录
if(flag>0){ // 如果删除成功
return Result.ok(); // 返回成功结果
}else{ // 如果删除失败
return Result.fail(); // 返回失败结果
}
}
@PostMapping("update") // 映射HTTP POST请求到update方法
public Result update(@RequestBody Absence absence){ // 接收请求体中的Absence对象
int flag = absenceService.updateSelective(absence); // 调用服务层更新记录
if(flag>0){ // 如果更新成功
return Result.ok(); // 返回成功结果
}else{ // 如果更新失败
return Result.fail(); // 返回失败结果
}
}
@GetMapping("detail") // 映射HTTP GET请求到detail方法
public Absence detail(Integer id){ // 接收请求参数id
return absenceService.detail(id); // 调用服务层获取详情并返回
}
@PostMapping("query") // 映射HTTP POST请求到query方法
public Map<String,Object> query(@RequestBody Absence absence){ // 接收请求体中的Absence对象
PageInfo<Absence> pageInfo = new PageInfo<Absence>(); // 创建分页信息对象
if(absence.getName() != null){ // 如果请求体中的name属性不为空
Student detailId = studentService.detailByName(absence.getName()); // 根据name查询学生ID
if(detailId != null){ // 如果找到对应的学生ID
absence.setStudentId(detailId.getId()); // 设置学生ID到absence对象中
}else{ // 如果未找到对应的学生ID
pageInfo.setList(null); // 设置分页列表为空
pageInfo.setSize(0); // 设置分页大小为0
return Result.ok(pageInfo); // 返回空的分页结果
}
}
pageInfo = absenceService.query(absence); // 调用服务层查询记录
pageInfo.getList().forEach(entity->{ // 遍历查询结果列表
Student detail = studentService.detail(entity.getStudentId()); // 根据学生ID查询学生详情
entity.setStudent(detail); // 设置学生详情到absence对象中
Dormitory dormitory = dormitoryService.detail(entity.getDormitoryId()); // 根据宿舍ID查询宿舍详情
entity.setDormitory(dormitory); // 设置宿舍详情到absence对象中
});
return Result.ok(pageInfo); // 返回查询结果
}
}