Package com.ourlinc.conference.controller

Source Code of com.ourlinc.conference.controller.BookController

package com.ourlinc.conference.controller;

import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.Date;
import java.util.Iterator;
import java.util.List;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import com.ourlinc.conference.DateUtil;
import com.ourlinc.conference.book.Book;
import com.ourlinc.conference.book.BookService;
import com.ourlinc.swift.util.Misc;
import com.ourlinc.swift.util.ResultPage;

/**
*
* 预定会议室模块控制器
* @author pengchengji
*/
@Controller
public class BookController {
 
  @Resource(name="bookService")
  public BookService bookService;
 
  /**
   * 预定会议室
   * @return
   */
  @RequestMapping
  String addbook(HttpServletRequest request, HttpServletResponse response){
   
    //接收预定表单的预定信息
    String stringDate = request.getParameter("date");
    String strbeginTime = request.getParameter("beginTime");
    String strcontinueTime = request.getParameter("continueTime");
    String department = request.getParameter("department");
    String linkman = request.getParameter("linkman");
    String title = request.getParameter("title");
    String content = request.getParameter("content");
   
    //存放冲突的Book对象
    List<Book> books = new ArrayList<Book>();
   
    //防止用户直接访问addbook.jspx带来的问题
    if (null == stringDate || null == department){
      return "book/addbook";
    }else {
      strbeginTime = strbeginTime.replace(":", ":");
      String[] strbeginTimes = strbeginTime.split(":");
      int beginTime = Integer.parseInt(strbeginTimes[0])*60 + Integer.parseInt(strbeginTimes[1]);
      int continueTime = Integer.parseInt(strcontinueTime);
      Date date = DateUtil.strFormatDate(stringDate);
      books = bookService.getExistBook(date, beginTime, continueTime);
     
      //books中保存冲突的预定信息
      if(0 != books.size()){
        Iterator<Book> iter = books.iterator();
        StringBuilder msg = new StringBuilder();
        msg.append("预定失败 !<br />");
        Book book = null ;
        while (iter.hasNext()){
          book = iter.next();
          msg.append(stringDate + " ");
          msg.append(book.getStrBeginTime()+ " 至 ");
          msg.append(book.getStrEndTime()+ " 都已被");
          msg.append(" " + book.getDepartment() + " ");
          msg.append("占用 !<br />如有必要,请找预订人 "+book.getLinkman()+" 协商 !<br />");
        }
        //如果预定已经存在,那么就提示这个时间段已被某部门预定
        request.setAttribute("msg", msg);
        return "book/addbook";
      }else {
        //如果如果不存在冲突预定,就预定会议室,接着提示预定成功,并告知开会时间
        Book book = bookService.addBook(date, beginTime, continueTime, department, linkman);
        if ("".equals(title) || null == title){
          title = book.getDepartment() + "的会议" ;
        }
        if ("".equals(content) || null == content){
          content = book.getDepartment() + "的会议" ;
        }
        book.init(title, content);
        book.flush();//刷新对象
        request.setAttribute("msg", "预定成功,开会时间为 "+stringDate
            + " " + book.getStrBeginTime() + " 至 " + book.getStrEndTime()+" !");
        return "book/addbook";
      }
    }
  }
 
  /**
   * 取消预定
   * @return
   */
  @RequestMapping
  String delete(HttpServletRequest request, HttpServletResponse response){
    String id = request.getParameter("id");
    String from = request.getParameter("from");
    Book book = bookService.cancleBook(id);
    request.setAttribute("msg", "取消成功,"+ book.getStrDate()+" "+book.getStrBeginTime()+" 至 "+book.getStrEndTime()+" 的会议已被成功取消 !");
    if ("index".equals(from)){
      List<Book> todaybooks = bookService.searchBook(DateUtil.formatDate(new Date()));
      request.setAttribute("todaybooks", todaybooks);
      return "book/"+from;
    }
    return "book/"+from;
  }
 
  /**
   * 更改预定
   * @return
   */
  @RequestMapping
  String update(HttpServletRequest request, HttpServletResponse response){
    String id = request.getParameter("id");
    Book book = bookService.getBook(id);
    request.setAttribute("book", book);
    if (book.getDepartment().trim().equals("市场部")){
      request.setAttribute("market", "selected");
    }else if (book.getDepartment().trim().equals("数据部")){
      request.setAttribute("data", "selected");
    }else if (book.getDepartment().trim().equals("开发部")){
      request.setAttribute("dev", "selected");
    }else if (book.getDepartment().trim().equals("人事部")){
      request.setAttribute("hr", "selected");
    }else {
      request.setAttribute("finance", "selected");
    }
    return "book/update";
  }
 
  /**
   * 更改预定信息
   * @return
   */
  @RequestMapping
  String updatebook(HttpServletRequest request, HttpServletResponse response){
    /**
     * 接收预定表单的预定信息
     */
    String stringDate = request.getParameter("date");
    String strbeginTime = request.getParameter("beginTime");
    String strcontinueTime = request.getParameter("continueTime");
    String linkman = request.getParameter("linkman");
    String department = request.getParameter("department");
    String title = request.getParameter("title");
    String content = request.getParameter("content");
    String id = request.getParameter("bookid");
    String from = request.getParameter("from");
   
    if (null == stringDate || null == department){
      return "book/addbook";
    }else {
      strbeginTime = strbeginTime.replace(":", ":");
      String[] strbeginTimes = strbeginTime.split(":");
      int beginTime = Integer.parseInt(strbeginTimes[0])*60 + Integer.parseInt(strbeginTimes[1]);
      int continueTime = Integer.parseInt(strcontinueTime);
      //存放冲突的Book对象
      List<Book> books = new ArrayList<Book>();
      Date date = DateUtil.strFormatDate(stringDate);
      Book oldBook = bookService.cancleBook(id);
      oldBook.flush();//刷新对象
      books = bookService.getExistBook(date, beginTime, continueTime);
      //如果books存在元素,那么说明存在冲突的预定信息
      if(0 != books.size()){
        oldBook = bookService.activateBook(id);
        oldBook.flush();//刷新对象
        Iterator<Book> iter = books.iterator();
        StringBuilder msg = new StringBuilder();
        msg.append("更改失败 !<br />");
        Book book = null;
        while (iter.hasNext()){
          book = iter.next();
          msg.append(stringDate + " ");
          msg.append(book.getStrBeginTime()+ " 至 ");
          msg.append(book.getStrEndTime()+ " 都已被");
          msg.append(" " + book.getDepartment() + " ");
          msg.append("占用 !<br />如有必要,请找预订人 "+book.getLinkman()+" 协商 !<br />");
        }
        //如果预定已经存在,那么就提示这个时间段已被某部门预定
        request.setAttribute("msg", msg);
        request.setAttribute("book",oldBook);
        return "book/update";
      }else {
        //如果如果不存在冲突预定,那么就提示预定成功,并告知开会时间
        Book book = bookService.addBook(date, beginTime, continueTime, department,linkman);
        if ("".equals(title) || null == title){
          title = book.getDepartment() + "的会议" ;
        }
        if ("".equals(content) || null == content){
          content = book.getDepartment() + "的会议" ;
        }
        book.init(title, content);
        book.flush();//刷新对象
        request.setAttribute("msg", "更改成功,开会时间更改为 "+stringDate
            + " " + book.getStrBeginTime() + " 至 " + book.getStrEndTime()+ " !");
        //如果来自index.jspx,那么操作后,跳转到原页面
        if ("index".equals(from)){
          List<Book> todaybooks = bookService.searchBook(DateUtil.formatDate(new Date()));
          request.setAttribute("todaybooks", todaybooks);
          return "book/"+from;
        }
        return "book/"+from;
      }
    }
  }
 
  /**
   * 显示当天的预定信息
   * @return
   */
  @RequestMapping
  String index(HttpServletRequest request, HttpServletResponse response){
    Date today = new Date ();
    today = DateUtil.formatDate(today);
    List<Book> todaybooks = bookService.searchBook(today);
    request.setAttribute("todaybooks", todaybooks);
    return "book/index";
  }
 
  /**
   * 显示某一天的预定信息
   * @return
   */
  @RequestMapping
  String onedate(HttpServletRequest request, HttpServletResponse response){
    String strOneDate = request.getParameter("date");
    if (null != strOneDate){
      Date oneDate = DateUtil.strFormatDate(strOneDate);
      List<Book> oneDateBooks = bookService.searchBook(oneDate);
      request.setAttribute("todaybooks", oneDateBooks);
      return "book/index";
    }
    return null ;
  }
 
  /**
   * 显示所有预定
   * @return
   */
  @RequestMapping
  String listall(){
    return "book/listall";
  }
 
  /**
   * 显示所有预定信息方法
   */
  @RequestMapping
  String listotal(HttpServletRequest request, HttpServletResponse response){
    String strOneDate = request.getParameter("date");
    if (null != strOneDate){
      Date oneDate = DateUtil.strFormatDate(strOneDate);
      List<Book> oneDateBooks = bookService.searchBook(oneDate);
      response.setContentType("text/xml;charset=gbk");
      //设置不缓存
      response.setHeader("Cache-Control","no-cache");
      StringBuilder xmlDoc = new StringBuilder();
      Iterator<Book> iterbooks = oneDateBooks.iterator();
     
      if (0 == oneDateBooks.size()){
        xmlDoc.append("日期:"+strOneDate+"<br />");
        xmlDoc.append("暂无预定");
      }else {
        String url = "  <a href=\"onedate.jspx?date=" + strOneDate + "\">查看详细</a>";
        xmlDoc.append("日期:" + strOneDate + url + "<br />");
      }
      Book book = null ;
      while (iterbooks.hasNext()){
        book = iterbooks.next();
        xmlDoc.append("使用部门:"+book.getDepartment()+"<br />");
        xmlDoc.append("会议主题:"+book.getTitle()+ "<br />");
        xmlDoc.append("使用时间:"+book.getStrBeginTime()+" 至 ");
        xmlDoc.append(book.getStrEndTime()+"<br />");
        xmlDoc.append("<a href=\"javascript:show_confirm('"+book.getId().getIdentify()+"');\">" +
            "取 消</a> | <a href=\"update.jspx?id="+book.getId().getIdentify()+"&from=listall\">更 改</a><br />");
        xmlDoc.append("------------------------<br />");
      }
      try {
        Thread.sleep(100);
        response.getWriter().write(xmlDoc.toString());
      } catch (Exception e) {
        e.printStackTrace();
      }
    }
    return null;
  }
 
 
  /**
   * 根据用户的查询要求,查询符合条件的预定
   * @return
   * @throws UnsupportedEncodingException
   */
  @RequestMapping
  String search(HttpServletRequest request, HttpServletResponse response) throws UnsupportedEncodingException{
    String department = request.getParameter("department");
    String linkman = request.getParameter("linkman");
    String title = request.getParameter("title");
    String content = request.getParameter("content");
    String strBeginDate = request.getParameter("beginDate");
    String strEndDate = request.getParameter("endDate");
    Date beginDate = null ;
    Date endDate = null ;
    String msg = null ;
    ResultPage<Book> books = null ;
   
    if (("".equals(department) && "".equals(linkman) && "".equals(title)
        && "".equals(content) && "".equals(strBeginDate) && "".equals(strEndDate))
        ||(null == department && null == linkman && null == title && null == content
            && null == strBeginDate && null == strEndDate)){
      msg = "请输入搜索条件!" ;
      request.setAttribute("msg", msg);
      request.setAttribute("list", ResultPage.OnList.wrap(new ArrayList<Book>(0)));
      return "book/search";
    }
   
    msg = "搜索结果如下:" ;
    if ("".equals(strBeginDate)||null==strBeginDate){
      beginDate = null ;
    }else {
      beginDate = DateUtil.strFormatDate(strBeginDate);
    }
    if ("".equals(strEndDate)||null==strEndDate){
      endDate = null;
    }else {
      endDate = DateUtil.strFormatDate(strEndDate);
    }
    request.setAttribute("msg", msg);
    int p = Misc.toInt(request.getParameter("p"),1);
    books = bookService.searchBook(department, linkman, title, content,beginDate,endDate);
    books.setPageSize(3);
    books.gotoPage(p);
    if ("市场部".equals(department)){
      request.setAttribute("market", "selected");
    }else if ("数据部".equals(department)){
      request.setAttribute("data", "selected");
    }else if ("开发部".equals(department)){
      request.setAttribute("dev", "selected");
    }else if ("人事部".equals(department)){
      request.setAttribute("hr", "selected");
    }else if ("全部".equals(department)){
      request.setAttribute("all", "selected");
    }else if("财务部".equals(department)){
      request.setAttribute("finance", "selected");
    }
    request.setAttribute("department", URLEncoder.encode(department,"utf-8"));
    request.setAttribute("linkman", URLEncoder.encode(linkman,"utf-8"));
    request.setAttribute("title", URLEncoder.encode(title,"utf-8"));
    request.setAttribute("content", URLEncoder.encode(content,"utf-8"));
    request.setAttribute("beginDate",strBeginDate);
    request.setAttribute("endDate",strEndDate);
    request.setAttribute("p", p);
    request.setAttribute("list", books);
    return "book/search";
   
  }
}
TOP

Related Classes of com.ourlinc.conference.controller.BookController

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.