@ -8,12 +8,12 @@ import cn.ppdxzz.service.DormService;
import cn.ppdxzz.service.StudentService ;
import cn.ppdxzz.service.StudentService ;
import com.github.pagehelper.PageInfo ;
import com.github.pagehelper.PageInfo ;
import org.apache.commons.io.IOUtils ;
import org.apache.commons.io.IOUtils ;
import org.springframework.beans.factory.annotation.Autowired ;
import org.springframework.beans.factory.annotation.Autowired ;
import org.springframework.stereotype.Controller ;
import org.springframework.stereotype.Controller ;
import org.springframework.web.bind.annotation.RequestMapping ;
import org.springframework.web.bind.annotation.RequestMapping ;
import org.springframework.web.bind.annotation.RequestParam ;
import org.springframework.web.bind.annotation.RequestParam ;
import org.springframework.web.servlet.ModelAndView ;
import org.springframework.web.servlet.ModelAndView ;
import javax.servlet.ServletOutputStream ;
import javax.servlet.ServletOutputStream ;
import javax.servlet.http.HttpServletRequest ;
import javax.servlet.http.HttpServletRequest ;
import javax.servlet.http.HttpServletResponse ;
import javax.servlet.http.HttpServletResponse ;
@ -21,110 +21,153 @@ import java.io.InputStream;
import java.io.PrintWriter ;
import java.io.PrintWriter ;
import java.util.List ;
import java.util.List ;
/ * *
* Description :
*
* @Date : 2020 / 2 / 19 21 : 01
* @Author : PeiChen
* /
@RequestMapping ( "/dorm" )
@RequestMapping ( "/dorm" )
@Controller
@Controller
public class DormController {
public class DormController
{
// 定义宿舍服务、学生服务和管理员服务的私有成员变量
private DormService dormService ;
private DormService dormService ;
private StudentService studentService ;
private StudentService studentService ;
private AdminService adminService ;
private AdminService adminService ;
// 使用@Autowired注解自动注入DormService实例
@Autowired
@Autowired
public void setStudentService ( StudentService studentService ) {
public void setStudentService ( StudentService studentService )
{
this . studentService = studentService ;
this . studentService = studentService ;
}
}
// 使用@Autowired注解自动注入StudentService实例
@Autowired
@Autowired
public void setDormService ( DormService dormService ) {
public void setDormService ( DormService dormService )
{
this . dormService = dormService ;
this . dormService = dormService ;
}
}
// 使用@Autowired注解自动注入AdminService实例
@Autowired
@Autowired
public void setAdminService ( AdminService adminService ) {
public void setAdminService ( AdminService adminService )
{
this . adminService = adminService ;
this . adminService = adminService ;
}
}
/ * *
/ * *
* 查 询 所 有 宿 舍 信 息
* 查 询 所 有 宿 舍 信 息
* @param page
* @param page 当 前 页 码
* @param size
* @param size 每 页 显 示 的 记 录 数
* @param request
* @param request HTTP 请 求 对 象
* @param response
* @param response HTTP 响 应 对 象
* @return
* @return ModelAndView 对 象 , 包 含 页 面 视 图 名 称 和 数 据 模 型
* @throws Exception
* @throws Exception 可 能 抛 出 的 异 常
* /
* /
@RequestMapping ( "/findAll" )
@RequestMapping ( "/findAll" )
public ModelAndView findAll ( @RequestParam ( name = "page" , required = true , defaultValue = "1" ) int page , @RequestParam ( name = "size" , required = true , defaultValue = "5" ) int size , HttpServletRequest request , HttpServletResponse response ) throws Exception {
public ModelAndView findAll ( @RequestParam ( name = "page" , required = true , defaultValue = "1"
) int page , @RequestParam ( name = "size" , required = true , defaultValue = "5" ) int size ,
HttpServletRequest request , HttpServletResponse response ) throws Exception
{
// 设置请求和响应的字符编码为UTF-8
request . setCharacterEncoding ( "utf-8" ) ;
request . setCharacterEncoding ( "utf-8" ) ;
response . setCharacterEncoding ( "utf-8" ) ;
response . setCharacterEncoding ( "utf-8" ) ;
// 创建ModelAndView对象
ModelAndView mv = new ModelAndView ( ) ;
ModelAndView mv = new ModelAndView ( ) ;
// 初始化宿舍列表
List < Dorm > dorms = null ;
List < Dorm > dorms = null ;
// 获取搜索关键字
String keyword = request . getParameter ( "keyword" ) ;
String keyword = request . getParameter ( "keyword" ) ;
if ( keyword = = null | | "" . trim ( ) . equals ( keyword ) ) {
if ( keyword = = null | | "" . trim ( ) . equals ( keyword ) )
{
// 根据分页参数查询所有宿舍信息
dorms = dormService . findAll ( page , size ) ;
dorms = dormService . findAll ( page , size ) ;
} else {
}
else
{
// 根据关键字进行搜索
dorms = dormService . search ( page , size , keyword ) ;
dorms = dormService . search ( page , size , keyword ) ;
}
}
// 创建PageInfo对象, 封装分页信息
PageInfo pageInfo = new PageInfo ( dorms ) ;
PageInfo pageInfo = new PageInfo ( dorms ) ;
// 将分页信息添加到ModelAndView对象中
mv . addObject ( "pageInfo" , pageInfo ) ;
mv . addObject ( "pageInfo" , pageInfo ) ;
// 设置视图名称为"dorm-list"
mv . setViewName ( "dorm-list" ) ;
mv . setViewName ( "dorm-list" ) ;
//返回ModelAndView对象
return mv ;
return mv ;
}
}
/ * *
/ * *
* 转 发 到 宿 舍 添 加 页 面
* 转 发 到 宿 舍 添 加 页 面
* @return
* @return 视 图 名 称 字 符 串
* @throws Exception
* @throws Exception 可 能 抛 出 的 异 常
* /
* /
@RequestMapping ( "/toAdd" )
@RequestMapping ( "/toAdd" )
public String addDorm ( ) throws Exception {
public String addDorm ( ) throws Exception
{
// 返回宿舍添加页面的视图名称
return "dorm-add" ;
return "dorm-add" ;
}
}
/ * *
/ * *
* 添 加 宿 舍
* 添 加 宿 舍 信 息
* @param dorm
* @param dorm 宿 舍 对 象 , 包 含 宿 舍 信 息
* @param response
* @param response HTTP 响 应 对 象
* @throws Exception
* @throws Exception 可 能 抛 出 的 异 常
* /
* /
@RequestMapping ( "/add" )
@RequestMapping ( "/add" )
public void add ( Dorm dorm , HttpServletResponse response ) throws Exception {
public void add ( Dorm dorm , HttpServletResponse response ) throws Exception
{
response . setCharacterEncoding ( "utf-8" ) ;
response . setCharacterEncoding ( "utf-8" ) ;
// 获取PrintWriter对象, 用于向客户端输出内容
PrintWriter writer = response . getWriter ( ) ;
PrintWriter writer = response . getWriter ( ) ;
// 检查宿舍对象及其必要属性是否为空
if ( dorm = = null | | dorm . getDorm_id ( ) = = null | | dorm . getDorm_intro ( ) = = null | | dorm . getDorm_rps ( ) = = null
if ( dorm = = null | | dorm . getDorm_id ( ) = = null | | dorm . getDorm_intro ( ) = = null | | dorm . getDorm_rps ( ) = = null
| | dorm . getDorm_leader ( ) = = null | | dorm . getTeacher ( ) = = null ) {
| | dorm . getDorm_leader ( ) = = null | | dorm . getTeacher ( ) = = null )
{
writer . write ( "false" ) ;
writer . write ( "false" ) ;
return ;
return ;
}
}
// 根据宿舍ID查询是否存在相同ID的宿舍
Dorm isNull = dormService . findByDormId ( dorm . getDorm_id ( ) ) ;
Dorm isNull = dormService . findByDormId ( dorm . getDorm_id ( ) ) ;
if ( isNull ! = null ) {
if ( isNull ! = null )
{
writer . write ( "false" ) ;
writer . write ( "false" ) ;
return ;
return ;
}
}
// 调用服务层方法添加宿舍信息
dormService . add ( dorm ) ;
dormService . add ( dorm ) ;
writer . write ( "true" ) ;
writer . write ( "true" ) ;
}
}
/ * *
/ * *
* 通 过 宿 舍 号 判 断 该 宿 舍 是 否 存 在 , 存 在 返 回 true
* 通 过 宿 舍 号 判 断 该 宿 舍 是 否 存 在 , 存 在 返 回 true
* @param request
* @param request HTTP 请 求 对 象
* @param response
* @param response HTTP 响 应 对 象
* @throws Exception
* @throws Exception 可 能 抛 出 的 异 常
* /
* /
@RequestMapping ( "/isExist" )
@RequestMapping ( "/isExist" )
public void isExist ( HttpServletRequest request , HttpServletResponse response ) throws Exception {
public void isExist ( HttpServletRequest request , HttpServletResponse response ) throws Exception
{
request . setCharacterEncoding ( "utf-8" ) ;
request . setCharacterEncoding ( "utf-8" ) ;
response . setCharacterEncoding ( "utf-8" ) ;
response . setCharacterEncoding ( "utf-8" ) ;
PrintWriter writer = response . getWriter ( ) ;
PrintWriter writer = response . getWriter ( ) ;
// 获取请求中的宿舍ID参数
String dorm_id = request . getParameter ( "dorm_id" ) ;
String dorm_id = request . getParameter ( "dorm_id" ) ;
Dorm isNull = dormService . findByDormId ( dorm_id ) ;
Dorm isNull = dormService . findByDormId ( dorm_id ) ;
if ( isNull ! = null ) {
if ( isNull ! = null )
{
// 如果存在相同ID的宿舍, 则返回"true"
writer . write ( "true" ) ;
writer . write ( "true" ) ;
return ;
return ;
}
}
@ -132,20 +175,26 @@ public class DormController {
/ * *
/ * *
* 通 过 id 查 询 宿 舍 信 息 用 以 修 改 宿 舍 信 息 操 作 之 前 的 信 息 回 显
* 通 过 id 查 询 宿 舍 信 息 用 以 修 改 宿 舍 信 息 操 作 之 前 的 信 息 回 显
* @param request
* @param request HTTP 请 求 对 象
* @return
* @return ModelAndView 对 象 , 包 含 宿 舍 信 息 和 视 图 名 称
* @throws Exception
* @throws Exception 可 能 抛 出 的 异 常
* /
* /
@RequestMapping ( "/toUpdate" )
@RequestMapping ( "/toUpdate" )
public ModelAndView toUpdate ( HttpServletRequest request ) throws Exception {
public ModelAndView toUpdate ( HttpServletRequest request ) throws Exception
{
request . setCharacterEncoding ( "utf-8" ) ;
request . setCharacterEncoding ( "utf-8" ) ;
ModelAndView mv = new ModelAndView ( ) ;
ModelAndView mv = new ModelAndView ( ) ;
String id = request . getParameter ( "id" ) ;
String id = request . getParameter ( "id" ) ;
if ( id = = null ) {
if ( id = = null )
{
return mv ;
return mv ;
}
}
Dorm dorm = dormService . findById ( id ) ;
Dorm dorm = dormService . findById ( id ) ;
// 将宿舍信息添加到ModelAndView对象中
mv . addObject ( "dorm" , dorm ) ;
mv . addObject ( "dorm" , dorm ) ;
// 设置视图名称为"dorm-edit"
mv . setViewName ( "dorm-edit" ) ;
mv . setViewName ( "dorm-edit" ) ;
return mv ;
return mv ;
@ -153,59 +202,85 @@ public class DormController {
/ * *
/ * *
* 修 改 宿 舍 信 息
* 修 改 宿 舍 信 息
* @param dorm
* @param dorm 宿 舍 对 象 , 包 含 要 修 改 的 宿 舍 信 息
* @param response
* @param response HTTP 响 应 对 象
* @throws Exception
* @throws Exception 可 能 抛 出 的 异 常
* /
* /
@RequestMapping ( "/update" )
@RequestMapping ( "/update" )
public void update ( Dorm dorm , HttpServletResponse response ) throws Exception {
public void update ( Dorm dorm , HttpServletResponse response ) throws Exception
{
response . setCharacterEncoding ( "utf-8" ) ;
response . setCharacterEncoding ( "utf-8" ) ;
PrintWriter writer = response . getWriter ( ) ;
PrintWriter writer = response . getWriter ( ) ;
if ( dorm = = null | | dorm . getId ( ) = = null | | dorm . getDorm_id ( ) = = null | | dorm . getDorm_intro ( ) = = null | | dorm . getDorm_rps ( ) = = null
if ( dorm = = null | | dorm . getId ( ) = = null | | dorm . getDorm_id ( ) = = null
| | dorm . getDorm_leader ( ) = = null | | dorm . getTeacher ( ) = = null ) {
| | dorm . getDorm_intro ( ) = = null | | dorm . getDorm_rps ( ) = = null
| | dorm . getDorm_leader ( ) = = null | | dorm . getTeacher ( ) = = null )
{
writer . write ( "false" ) ;
writer . write ( "false" ) ;
return ;
return ;
}
}
// 调用服务层方法更新宿舍信息
dormService . update ( dorm ) ;
dormService . update ( dorm ) ;
writer . write ( "true" ) ;
writer . write ( "true" ) ;
}
}
/ * *
/ * *
* 导 出 宿 舍 信 息
* 导 出 宿 舍 信 息
* @param response
* @param response HTTP 响 应 对 象
* @throws Exception
* @throws Exception 可 能 抛 出 的 异 常
* /
* /
@RequestMapping ( "/export" )
@RequestMapping ( "/export" )
public void export ( HttpServletResponse response ) throws Exception {
public void export ( HttpServletResponse response ) throws Exception
{
// 获取宿舍信息的输入流
InputStream is = dormService . getInputStream ( ) ;
InputStream is = dormService . getInputStream ( ) ;
// 设置响应的内容类型为Excel文件格式
response . setContentType ( "application/vnd.ms-excel" ) ;
response . setContentType ( "application/vnd.ms-excel" ) ;
// 设置响应头,指定下载的文件名
response . setHeader ( "contentDisposition" , "attachment;filename=dormInfo.xls" ) ;
response . setHeader ( "contentDisposition" , "attachment;filename=dormInfo.xls" ) ;
// 获取ServletOutputStream对象, 用于向客户端输出二进制数据
ServletOutputStream outputStream = response . getOutputStream ( ) ;
ServletOutputStream outputStream = response . getOutputStream ( ) ;
// 将输入流的数据复制到输出流中,实现文件下载
IOUtils . copy ( is , outputStream ) ;
IOUtils . copy ( is , outputStream ) ;
}
}
/ * *
/ * *
* 转 发 到 详 情 页
* 转 发 到 详 情 页
* @param request
* @param request HTTP 请 求 对 象
* @return
* @return ModelAndView 对 象 , 包 含 宿 舍 信 息 和 视 图 名 称
* @throws Exception
* @throws Exception 可 能 抛 出 的 异 常
* /
* /
@RequestMapping ( "/look" )
@RequestMapping ( "/look" )
public ModelAndView look ( HttpServletRequest request ) throws Exception {
public ModelAndView look ( HttpServletRequest request ) throws Exception
{
ModelAndView mv = new ModelAndView ( ) ;
ModelAndView mv = new ModelAndView ( ) ;
Dorm dorm = null ;
Dorm dorm = null ;
String id = request . getParameter ( "id" ) ;
String id = request . getParameter ( "id" ) ;
String uid = request . getParameter ( "uid" ) ;
String uid = request . getParameter ( "uid" ) ;
if ( id = = null & & uid ! = null ) {
// 根据不同的参数情况查询宿舍信息
if ( id = = null & & uid ! = null )
{
// 根据学生ID查询学生信息, 再根据学生的宿舍ID查询宿舍信息
Student stu = studentService . findBySno ( uid ) ;
Student stu = studentService . findBySno ( uid ) ;
dorm = dormService . findByDormId ( stu . getDorm_id ( ) ) ;
dorm = dormService . findByDormId ( stu . getDorm_id ( ) ) ;
} else if ( id ! = null ) {
}
else if ( id ! = null )
{
dorm = dormService . findById ( id ) ;
dorm = dormService . findById ( id ) ;
} else {
}
else
{
return mv ;
return mv ;
}
}
mv . addObject ( "dorm" , dorm ) ;
mv . addObject ( "dorm" , dorm ) ;
// 设置视图名称为"look-dorm"
mv . setViewName ( "look-dorm" ) ;
mv . setViewName ( "look-dorm" ) ;
return mv ;
return mv ;
@ -217,18 +292,33 @@ public class DormController {
* @return
* @return
* @throws Exception
* @throws Exception
* /
* /
@RequestMapping ( "/byDorm_leader" )
@RequestMapping ( "/byDorm_leader" )
public ModelAndView find ( HttpServletRequest request ) throws Exception {
//根据宿舍ID或学生ID查询宿舍学生信息
public ModelAndView find ( HttpServletRequest request ) throws Exception
{
request . setCharacterEncoding ( "utf-8" ) ;
request . setCharacterEncoding ( "utf-8" ) ;
// 创建ModelAndView对象, 用于返回视图和数据
ModelAndView mv = new ModelAndView ( ) ;
ModelAndView mv = new ModelAndView ( ) ;
// 从请求中获取参数uid
String uid = request . getParameter ( "uid" ) ;
String uid = request . getParameter ( "uid" ) ;
String dorm_id = request . getParameter ( "dorm_id" ) ;
String dorm_id = request . getParameter ( "dorm_id" ) ;
if ( dorm_id ! = null ) {
if ( dorm_id ! = null )
{
// 根据dorm_id查询学生信息
List < Student > studentsInfo = studentService . findByDormId ( dorm_id , 1 ) ;
List < Student > studentsInfo = studentService . findByDormId ( dorm_id , 1 ) ;
// 将学生信息添加到ModelAndView对象中
mv . addObject ( "studentsInfo" , studentsInfo ) ;
mv . addObject ( "studentsInfo" , studentsInfo ) ;
// 设置视图名称为"dormStudentsInfo"
mv . setViewName ( "dormStudentsInfo" ) ;
mv . setViewName ( "dormStudentsInfo" ) ;
return mv ;
return mv ;
}
}
// 根据uid查询学生信息
Student stu = studentService . findBySno ( uid ) ;
Student stu = studentService . findBySno ( uid ) ;
// Dorm dormInfo = dormService.findByDormId(stu.getDorm_id());
// Dorm dormInfo = dormService.findByDormId(stu.getDorm_id());
List < Student > studentsInfo = studentService . findByDormId ( stu . getDorm_id ( ) , 1 ) ;
List < Student > studentsInfo = studentService . findByDormId ( stu . getDorm_id ( ) , 1 ) ;
@ -239,12 +329,20 @@ public class DormController {
return mv ;
return mv ;
}
}
//根据教师ID查询该教师管理的宿舍信息
@RequestMapping ( "/byTeacher" )
@RequestMapping ( "/byTeacher" )
public ModelAndView find1 ( HttpServletRequest request ) throws Exception {
public ModelAndView find1 ( HttpServletRequest request ) throws Exception
{
ModelAndView mv = new ModelAndView ( ) ;
ModelAndView mv = new ModelAndView ( ) ;
String uid = request . getParameter ( "uid" ) ;
String uid = request . getParameter ( "uid" ) ;
// 根据uid查询管理员信息
Admin admin = adminService . checkUid ( uid ) ;
Admin admin = adminService . checkUid ( uid ) ;
// 根据管理员姓名查询宿舍信息
List < Dorm > dorms = dormService . findByTeacher ( admin . getName ( ) ) ;
List < Dorm > dorms = dormService . findByTeacher ( admin . getName ( ) ) ;
// 将宿舍信息添加到ModelAndView对象中
mv . addObject ( "dorms" , dorms ) ;
mv . addObject ( "dorms" , dorms ) ;
mv . setViewName ( "dormsTeacherInfo" ) ;
mv . setViewName ( "dormsTeacherInfo" ) ;
return mv ;
return mv ;
@ -252,33 +350,47 @@ public class DormController {
/ * *
/ * *
* 查 询 所 有 育 人 导 师 为 teacher 的 学 生 集 合
* 查 询 所 有 育 人 导 师 为 teacher 的 学 生 集 合
* @param page 当 前 页 码
* @param size 每 页 显 示 的 记 录 数
* @param request
* @param request
* @return
* @return
* @throws Exception
* @throws Exception
* /
* /
@RequestMapping ( "/findStudent" )
@RequestMapping ( "/findStudent" )
public ModelAndView findStudents ( @RequestParam ( name = "page" , required = true , defaultValue = "1" ) int page , @RequestParam ( name = "size" , required = true , defaultValue = "5" ) int size , HttpServletRequest request ) throws Exception {
//根据教师姓名和关键词分页查询学生集合
public ModelAndView findStudents ( @RequestParam ( name = "page" , required = true , defaultValue = "1" ) int page ,
@RequestParam ( name = "size" , required = true , defaultValue = "5" ) int size ,
HttpServletRequest request ) throws Exception
{
request . setCharacterEncoding ( "utf-8" ) ;
request . setCharacterEncoding ( "utf-8" ) ;
ModelAndView mv = new ModelAndView ( ) ;
ModelAndView mv = new ModelAndView ( ) ;
// 初始化学生列表
List < Student > students = null ;
List < Student > students = null ;
// 从请求中获取参数name( 教师姓名) 、keyword( 搜索关键词)
String teacher = request . getParameter ( "name" ) ;
String teacher = request . getParameter ( "name" ) ;
String keyword = request . getParameter ( "keyword" ) ;
String keyword = request . getParameter ( "keyword" ) ;
// 打印关键词到控制台
System . out . println ( keyword ) ;
System . out . println ( keyword ) ;
if ( keyword = = null | | "" . trim ( ) . equals ( keyword ) | | keyword . length ( ) = = 0 ) {
if ( keyword = = null | | "" . trim ( ) . equals ( keyword ) | | keyword . length ( ) = = 0 )
{
// 根据教师姓名分页查询学生信息
students = studentService . findByTeacher ( page , size , teacher ) ;
students = studentService . findByTeacher ( page , size , teacher ) ;
}
}
if ( keyword ! = null ) {
if ( keyword ! = null )
{
students = studentService . searchStudent ( page , size , teacher , keyword ) ;
students = studentService . searchStudent ( page , size , teacher , keyword ) ;
}
}
PageInfo pageInfo = new PageInfo ( students ) ;
PageInfo pageInfo = new PageInfo ( students ) ;
mv . addObject ( "pageInfo" , pageInfo ) ;
mv . addObject ( "pageInfo" , pageInfo ) ;
// 设置视图名称为"studentsTeacher"
mv . setViewName ( "studentsTeacher" ) ;
mv . setViewName ( "studentsTeacher" ) ;
return mv ;
return mv ;
}
}
}
}