|
|
package com.itheima.controller;
|
|
|
|
|
|
import com.itheima.po.Dormitory;
|
|
|
import com.itheima.po.PageInfo;
|
|
|
import com.itheima.service.DormitoryService;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Controller;
|
|
|
import org.springframework.ui.Model;
|
|
|
import org.springframework.web.bind.annotation.RequestBody;
|
|
|
import org.springframework.web.bind.annotation.RequestMapping;
|
|
|
import org.springframework.web.bind.annotation.RequestMethod;
|
|
|
import org.springframework.web.bind.annotation.ResponseBody;
|
|
|
|
|
|
import javax.servlet.http.HttpSession;
|
|
|
import java.util.List;
|
|
|
|
|
|
/**
|
|
|
* 用户控制器类,主要负责处理与宿舍相关的各类业务操作,比如查询宿舍信息、添加、删除、修改宿舍信息以及查询宿舍人员信息等,并且与相应的视图进行交互。
|
|
|
*/
|
|
|
@Controller
|
|
|
public class DormitoryController {
|
|
|
|
|
|
// 依赖注入,通过Spring框架自动装配DormitoryService的实例,方便后续在本类中调用其提供的业务方法,来处理具体的宿舍业务逻辑。
|
|
|
@Autowired
|
|
|
private DormitoryService dormitoryService;
|
|
|
|
|
|
/**
|
|
|
* 分页查询宿舍信息的方法
|
|
|
*
|
|
|
* @param a_name 宿舍相关的名称属性(具体含义可能根据业务而定,可为null,用于根据名称进行模糊或精确筛选宿舍记录,若为null则不按此条件筛选)。
|
|
|
* @param s_dormitoryid 宿舍的唯一标识ID(可为null,用于根据具体ID精确筛选宿舍记录,若为null则不按此条件筛选)。
|
|
|
* @param d_dormbuilding 宿舍楼栋信息(可为null,用于模糊或精确筛选对应楼栋的宿舍记录,若为null则不按此条件筛选)。
|
|
|
* @param pageIndex 当前页码,用于确定要显示的页面,比如pageIndex为1表示显示第一页的宿舍信息。
|
|
|
* @param pageSize 显示条数,即每页显示的宿舍记录数量,例如pageSize为10表示每页展示10条宿舍信息。
|
|
|
* @param model Spring框架的Model对象,用于向视图传递数据,比如将查询到的宿舍信息传递给视图进行展示。
|
|
|
* @return 返回视图名称 "dormitory_list",该视图会展示分页查询后的宿舍信息列表。
|
|
|
*/
|
|
|
@RequestMapping(value = "/findDormitory")
|
|
|
public String findDormitory(String a_name, Integer s_dormitoryid, String d_dormbuilding,
|
|
|
Integer pageIndex, Integer pageSize, Model model) {
|
|
|
|
|
|
// 调用DormitoryService的findPageInfo方法,传入相应的筛选参数,获取包含分页后的宿舍信息的PageInfo对象。
|
|
|
PageInfo<Dormitory> di = dormitoryService.findPageInfo(a_name, s_dormitoryid,
|
|
|
d_dormbuilding, pageIndex, pageSize);
|
|
|
// 将包含宿舍信息的PageInfo对象存入Model中,以便传递给视图(如"dormitory_list"页面)进行展示。
|
|
|
model.addAttribute("di", di);
|
|
|
return "dormitory_list";
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 导出Excel的方法,用于将宿舍信息导出为Excel文件。
|
|
|
* 此方法接收POST请求,使用@ResponseBody注解表示返回的数据会直接作为响应体内容,通常以JSON等格式返回给客户端(此处返回宿舍信息列表数据)。
|
|
|
*
|
|
|
* @return 返回宿舍信息的列表,便于后续进行Excel文件生成等相关操作。
|
|
|
*/
|
|
|
@RequestMapping(value = "/exportdormitorylist", method = RequestMethod.POST)
|
|
|
@ResponseBody
|
|
|
public List<Dormitory> exportDormitory() {
|
|
|
// 调用DormitoryService的getAll方法获取所有宿舍信息的列表。
|
|
|
List<Dormitory> dormitoryList = dormitoryService.getAll();
|
|
|
return dormitoryList;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 添加宿舍信息的方法
|
|
|
* 接收一个包含宿舍详细信息的Dormitory对象(通过@RequestBody注解从请求体中获取JSON等格式数据并转换为Dormitory对象),调用业务层方法进行添加操作,然后返回视图名称 "dormitory_list"。
|
|
|
*
|
|
|
* @param dormitory 包含要添加的宿舍详细信息的对象,例如宿舍编号、可容纳人数、所属楼栋等信息。
|
|
|
* @return 返回视图名称 "dormitory_list",用于页面刷新等操作,展示添加后的宿舍信息列表情况。
|
|
|
*/
|
|
|
@RequestMapping(value = "/addDormitory", method = RequestMethod.POST)
|
|
|
@ResponseBody
|
|
|
public String addDormitory(@RequestBody Dormitory dormitory) {
|
|
|
// 调用DormitoryService的addDormitory方法,传入包含宿舍信息的Dormitory对象,执行添加宿舍信息到数据库等存储介质的操作。
|
|
|
int d = dormitoryService.addDormitory(dormitory);
|
|
|
return "dormitory_list";
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 删除宿舍信息的方法
|
|
|
* 接收要删除的宿舍的ID作为参数,调用业务层方法进行删除操作,并返回视图名称 "dormitory_list"。
|
|
|
*
|
|
|
* @param d_id 要删除的宿舍的唯一标识ID。
|
|
|
* @return 返回视图名称 "dormitory_list",可能用于页面刷新等操作,展示删除后的宿舍信息列表情况。
|
|
|
*/
|
|
|
@RequestMapping("/deleteDormitory")
|
|
|
@ResponseBody
|
|
|
public String deleteDormitory(Integer d_id) {
|
|
|
// 调用DormitoryService的deleteDormitory方法,传入要删除的宿舍ID,执行删除操作。
|
|
|
int d = dormitoryService.deleteDormitory(d_id);
|
|
|
return "dormitory_list";
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 修改宿舍信息的方法
|
|
|
* 接收包含修改后宿舍信息的Dormitory对象,调用业务层方法进行更新操作,更新成功后重定向到分页查询宿舍信息的方法对应的请求路径("/findDormitory"),以便刷新页面展示最新的宿舍信息列表。
|
|
|
*
|
|
|
* @param dormitory 包含修改后的宿舍详细信息的对象,例如更新后的宿舍可容纳人数、宿舍设施情况等信息。
|
|
|
* @return 返回重定向的路径 "/findDormitory",实现页面刷新展示更新后的宿舍信息。
|
|
|
*/
|
|
|
@RequestMapping("/updateDormitory")
|
|
|
public String updateDormitory(Dormitory dormitory) {
|
|
|
// 调用DormitoryService的updateDormitory方法,传入包含修改后宿舍信息的Dormitory对象,执行更新宿舍信息到数据库等存储介质的操作。
|
|
|
int d = dormitoryService.updateDormitory(dormitory);
|
|
|
return "redirect:/findDormitory";
|
|
|
}
|
|
|
|
|
|
|
|
|
/**
|
|
|
* 根据宿舍ID查询宿舍信息的方法
|
|
|
* 将查询到的宿舍信息存入HttpSession中,方便在后续的操作中(比如在不同请求之间共享数据)使用,然后返回视图名称 "dormitory_edit",可能用于展示宿舍信息以便进行编辑等操作。
|
|
|
*
|
|
|
* @param d_id 要查询的宿舍的唯一标识ID。
|
|
|
* @param session HttpSession对象,用于存储和获取会话相关的数据,如将查询到的宿舍信息暂存于此,供后续编辑页面获取使用。
|
|
|
* @return 返回视图名称 "dormitory_edit",用于展示宿舍详细信息,可能是编辑页面等。
|
|
|
*/
|
|
|
@RequestMapping("/findDormitoryById")
|
|
|
public String findDormitoryById(Integer d_id, HttpSession session) {
|
|
|
|
|
|
Dormitory d = dormitoryService.findDormitoryById(d_id);
|
|
|
session.setAttribute("d", d);
|
|
|
return "dormitory_edit";
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 宿舍人员信息查询的方法
|
|
|
* 查询指定宿舍的人员信息,将查询到的宿舍人员信息列表存入Model对象中,以便传递给视图进行展示,最后返回视图名称 "dormitory_Studentlist"。
|
|
|
*
|
|
|
* @param dormitory 包含宿舍相关筛选条件等信息的对象,可用于精确查询某个宿舍的人员信息。
|
|
|
* @param model Spring框架的Model对象,用于向视图传递数据。
|
|
|
* @return 返回视图名称 "dormitory_Studentlist",用于展示宿舍人员信息列表。
|
|
|
*/
|
|
|
@RequestMapping(value = "/findDormitoryStudent")
|
|
|
public String findDormitoryStudent(Dormitory dormitory, Model model) {
|
|
|
// 调用DormitoryService的findDormitoryStudent方法,传入包含宿舍相关条件的Dormitory对象,查询对应宿舍的人员信息。
|
|
|
List<Dormitory> d = dormitoryService.findDormitoryStudent(dormitory);
|
|
|
// 将查询到的宿舍人员信息列表存入Model中,以便传递给视图进行展示。
|
|
|
model.addAttribute("ds", d);
|
|
|
return "dormitory_Studentlist";
|
|
|
}
|
|
|
|
|
|
|
|
|
} |