|
|
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); // 返回查询结果
|
|
|
}
|
|
|
|
|
|
} |