首页>代码>spring+spring mvc+hibernate开发java web宿舍后台管理系统>/DormitoryManager/src/com/bjpowernode/buss/controller/StudentController.java
package com.bjpowernode.buss.controller;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.log4j.Logger;
import org.hibernate.criterion.DetachedCriteria;
import org.hibernate.exception.ConstraintViolationException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.servlet.ModelAndView;

import org.json.JSONObject;
import com.bjpowernode.buss.entity.base.ClassEntity;
import com.bjpowernode.buss.entity.base.DormEntity;
import com.bjpowernode.buss.entity.base.StudentEntity;
import com.bjpowernode.buss.service.StudentService;
import com.bjpowernode.common.controller.BaseController;
import com.bjpowernode.common.util.AjaxJson;
import com.bjpowernode.common.util.Pagination;

@Controller
@RequestMapping("/studentController")
public class StudentController extends BaseController{

	private static final Logger logger = Logger.getLogger(StudentController.class);
	
	@Autowired
	private StudentService studentService;
	
	/**
	 * 初始访问
	 * @param 
	 * @param model
	 * @return
	 */
	@RequestMapping(params="goStudent")
    public ModelAndView goStudent(HttpServletRequest request){
        return new ModelAndView("buss/student");
    }
	
	@RequestMapping(params="save")
    @ResponseBody
	public AjaxJson save(HttpServletRequest request, HttpServletResponse response, StudentEntity student, String dormid,String classid) throws Exception {
		AjaxJson j = new AjaxJson();
		j.setMsg("保存成功!");
		j.setSuccess(true);
		try{
			DormEntity de = this.studentService.get(DormEntity.class, dormid);
			ClassEntity ce = this.studentService.get(ClassEntity.class, classid);
			student.setDorm(de);
			student.setClasses(ce);
			int surplus = Integer.parseInt(de.getUsed());
			if(surplus <= 0){
				j.setMsg("该宿舍床位已满");
				j.setSuccess(false);
				return j;
			}
			surplus--;
			de.setUsed(String.valueOf(surplus));
			this.studentService.update(de);
			this.studentService.save(student);
		}catch(Exception e){
			j.setMsg("保存失败!");
			j.setSuccess(false);
		}
		 return j;
		
	}
	
	@RequestMapping(params="update")
    @ResponseBody
	public AjaxJson update(HttpServletRequest request, HttpServletResponse response, StudentEntity student, String dormid,String classid) throws Exception {
		AjaxJson j = new AjaxJson();
		j.setMsg("更新成功!");
		j.setSuccess(true);
		try{
			StudentEntity se = this.studentService.get(StudentEntity.class, student.getId());
			DormEntity de = this.studentService.get(DormEntity.class, dormid);
			DormEntity beforeDorm = this.studentService.get(DormEntity.class, se.getDorm().getId());
			ClassEntity ce = this.studentService.get(ClassEntity.class, classid);
			student.setDorm(de);
			student.setClasses(ce);
			
			if(!de.getId().equals(beforeDorm.getId())){
				int surplus = Integer.parseInt(de.getUsed());
				if(surplus <= 0){
					j.setMsg("该宿舍床位已满");
					j.setSuccess(false);
					return j;
				}
				int beforeSurplus = Integer.parseInt(beforeDorm.getUsed());
				beforeSurplus++;
				surplus--;
				de.setUsed(String.valueOf(surplus));
				beforeDorm.setUsed(String.valueOf(beforeSurplus));
				this.studentService.update(de);
				this.studentService.update(beforeDorm);
			}
			se.setBirthday(student.getBirthday());
			se.setClasses(ce);
			se.setDorm(student.getDorm());
			se.setMobile(student.getMobile());
			se.setName(student.getName());
			se.setQq(student.getQq());
			se.setSex(student.getSex());
			this.studentService.update(se);
		}catch(Exception e){
			j.setMsg("更新失败!");
			j.setSuccess(false);
		}
		 return j;
		
	}
	
	@RequestMapping(params="checkOut")
    @ResponseBody
	public AjaxJson checkOut(HttpServletRequest request, HttpServletResponse response, String stuId) throws Exception {
		AjaxJson j = new AjaxJson();
		j.setMsg("退宿成功!");
		j.setSuccess(true);
		try{
			doCheckOut(stuId,true);
		}catch(Exception e){
			j.setMsg("退宿失败!");
			j.setSuccess(false);
		}
		 return j;
		
	}
	
	private void doCheckOut(String stuId,boolean delete){
		StudentEntity student = this.studentService.get(StudentEntity.class, stuId);
		DormEntity de = this.studentService.get(DormEntity.class, "1");
		DormEntity beforeDorm = this.studentService.get(DormEntity.class, student.getDorm().getId());
		student.setDorm(de);
		int surplus = Integer.parseInt(beforeDorm.getUsed());
		surplus++;
		beforeDorm.setUsed(String.valueOf(surplus));
		this.studentService.update(beforeDorm);
		if(!delete){
			this.studentService.update(student);
		}
		
	}
	
	@RequestMapping(params="delete",method=RequestMethod.POST)
    @ResponseBody
	public AjaxJson delete(HttpServletRequest request, HttpServletResponse response, String ids) throws Exception {
		AjaxJson j = new AjaxJson();
		j.setMsg("删除成功!");
		j.setSuccess(true);
		try{
			for(String id:ids.split(",")){
				StudentEntity student = this.studentService.get(StudentEntity.class, id);
				doCheckOut(id,false);
				this.studentService.delete(student);
			}
		}catch(ConstraintViolationException ce){
			ce.printStackTrace();
			j.setMsg("删除失败,存在外键引用,请查看其它数据项中是否有与当前数据有关的信息!");
			j.setSuccess(false);
		}catch(Exception e){
			j.setMsg("删除失败!");
			j.setSuccess(false);
		}
		 return j;
		
	}
	
	@RequestMapping(params="datagrid")
    @ResponseBody
	public void datagrid(HttpServletRequest request, HttpServletResponse response,StudentEntity student,String dormName) throws Exception {
		String page = request.getParameter("page");
		String rows = request.getParameter("rows");
		if(page == null){
			page = "0";
		}
		if(rows == null){
			rows = "0";
		}
		DetachedCriteria condition = DetachedCriteria.forClass(StudentEntity.class);
		Pagination<?> pagination = studentService.findPageData(condition,student,Integer.parseInt(page), Integer.parseInt(rows),dormName);
		JSONObject jobj = new JSONObject();
		jobj.put("total", pagination.getTotalCount());
		jobj.put("rows", pagination.getDatas());

        response.setCharacterEncoding("utf-8");
        response.getWriter().write(jobj.toString());  
		
	}
	
}
最近下载更多
柳咪华沙  LV7 6月28日
dev1ce123  LV4 2023年10月16日
泓鼎168  LV20 2023年6月30日
ziv5466123  LV7 2023年6月26日
li951753  LV2 2023年6月19日
迷迭香  LV10 2023年3月3日
朱朱啊哈  LV16 2023年2月1日
超炫爱  LV2 2022年12月5日
你是太阳  LV3 2022年11月27日
wylwylqq  LV6 2022年11月26日
最近浏览更多
暂无贡献等级
chn-lei  LV2 7月31日
quartz  LV8 7月1日
刘昊然  LV1 7月1日
wertjn 6月30日
暂无贡献等级
柳咪华沙  LV7 6月28日
TY0165  LV20 6月24日
123456cjj  LV1 6月2日
zolscy  LV12 4月12日
together love  LV2 3月24日
顶部 客服 微信二维码 底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友