package com.jyw.classinfo.controller;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.jyw.classinfo.service.ClassInfoService;
import com.jyw.classinfo.service.ClassroomInfoService;
import com.jyw.classinfo.service.DisciplineInfoService;
import com.jyw.classinfo.service.SyllabusInfoService;
import com.jyw.model.*;
import com.jyw.system.service.StaffInfoService;
import org.springframework.beans.propertyeditors.CustomDateEditor;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.ServletRequestDataBinder;
import org.springframework.web.bind.annotation.InitBinder;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import javax.annotation.Resource;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
/**
* Created by XXXX on 2016-11-08.
*/
@Controller
@RequestMapping("/classinfo")
public class ClassInfoController {
@Resource
private ClassInfoService classInfoService;
@Resource
private ClassroomInfoService classroomInfoService;
@Resource
private StaffInfoService staffInfoService;
@Resource
private DisciplineInfoService disciplineInfoService;
@Resource
private SyllabusInfoService syllabusInfoService;
ClassInfoCriteria classInfoCriteria = null;
StaffInfoCriteria staffInfoCriteria = null;
/**
* 加载班级所有信息
* @param model
* @return
*/
@RequestMapping("/list.do")
public String list(Model model,String className,@RequestParam(required = false, defaultValue = "1")int pageNum) {
classInfoCriteria = new ClassInfoCriteria();
if(className!=null){
classInfoCriteria.or()
.andClassIsuesdEqualTo("1")
.andClassNameLike("%" + className + "%")
;
}else{
classInfoCriteria.or().andClassIsuesdEqualTo("1");
}
PageHelper.startPage(pageNum, 10);
List<ClassInfo> classInfos = classInfoService.selectByExample(classInfoCriteria);
PageInfo page = new PageInfo(classInfos);
model.addAttribute("page", page);
return "classinfo/classinfo/classinfo_list";
}
/**
* 添加班级信息
*
* @param classInfo
* @param model
* @return
*/
@RequestMapping("/add")
public String add(ClassInfo classInfo, Model model) {
classInfo.setClassIsuesd("1");
int count = classInfoService.insert(classInfo);
if (count > 0) {
model.addAttribute("info", "添加成功");
} else {
model.addAttribute("info", "添加失败");
}
return list(model,null,1);
}
/**
* 根据 id 删除班级信息
*
* @param id
* @return
*/
@RequestMapping("/delete/{id}")
public String delete(@PathVariable Integer id, Model model) {
ClassInfo classInfo = classInfoService.selectByPrimaryKey(id);
classInfo.setClassIsuesd("0");
int count = classInfoService.updateByPrimaryKeySelective(classInfo);
if (count > 0) {
model.addAttribute("info", "删除成功");
} else {
model.addAttribute("info", "删除失败");
}
return "forward:/classInfo/list";
}
/**
* 加载所有教室、学科、教师、课程名称,并根据id查找班级信息
*
* @param id
* @param model
* @return
*/
@RequestMapping("/selectById/{id}")
public String selectById(@PathVariable Integer id, Model model) {
//查询所有教师信息
staffInfoCriteria = new StaffInfoCriteria();
staffInfoCriteria.or().andStaffStateEqualTo("2");
List<StaffInfo> staffInfos = staffInfoService.selectByExample(staffInfoCriteria);
model.addAttribute("staffInfo", staffInfos);
//查询所有教室信息
List<ClassroomInfo> classroomInfos = classroomInfoService.selectByExample(null);
model.addAttribute("classroomInfo", classroomInfos);
//查询所有学科信息
List<DisciplineInfo> disciplineInfos = disciplineInfoService.selectByExample(null);
model.addAttribute("disciplineInfo", disciplineInfos);
//查询所有课程名称
List<SyllabusInfo> syllabusInfos = syllabusInfoService.selectByExample(null);
model.addAttribute("syllabusInfo", syllabusInfos);
//根据id查询班级信息
ClassInfo classInfo = classInfoService.selectByPrimaryKey(id);
model.addAttribute("classInfo", classInfo);
return "classinfo/classinfo/classinfo_update";
}
/**
* 加载所有教室、学科、教师、课程名称
*
* @param model
* @return
*/
@RequestMapping("/addload")
public String addload(Model model) {
//查询所有教师名称
staffInfoCriteria = new StaffInfoCriteria();
staffInfoCriteria.or().andStaffStateEqualTo("2");
List<StaffInfo> staffInfos = staffInfoService.selectByExample(staffInfoCriteria);
model.addAttribute("staffInfo", staffInfos);
//查询所有教室名称
List<ClassroomInfo> classroomInfos = classroomInfoService.selectByExample(null);
model.addAttribute("classroomInfo", classroomInfos);
//查询所有学科名称
List<DisciplineInfo> disciplineInfos = disciplineInfoService.selectByExample(null);
model.addAttribute("disciplineInfo", disciplineInfos);
//查询所有课程名称
List<SyllabusInfo> syllabusInfos = syllabusInfoService.selectByExample(null);
model.addAttribute("syllabusInfo", syllabusInfos);
return "classinfo/classinfo/classinfo_add";
}
/**
* 修改班级信息
*
* @param classInfo
* @param model
* @return
*/
@RequestMapping("/update")
public String update(ClassInfo classInfo, Model model) {
classInfo.setClassIsuesd("1");
int count = classInfoService.updateByPrimaryKey(classInfo);
if (count > 0) {
model.addAttribute("info", "修改成功");
} else {
model.addAttribute("info", "修改失败");
}
return list(model,null,1);
}
/**
* 时间属性的编辑器
*/
@InitBinder
public void initBinder(ServletRequestDataBinder bin) {
bin.registerCustomEditor(Date.class, new CustomDateEditor(
new SimpleDateFormat("yyyy-MM-dd"), true));
}
}