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.
SDMS/src/com/itheima/controller/DormitoryController.java

143 lines
7.7 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.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";
}
}