123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298 |
- package com.lesson.controller;
- import com.lesson.model.Menu;
- import com.lesson.service.CategoryManager;
- import com.lesson.service.MenuManager;
- import org.apache.log4j.Logger;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Controller;
- import org.springframework.ui.Model;
- import org.springframework.web.bind.annotation.PathVariable;
- import org.springframework.web.bind.annotation.RequestMapping;
- import org.springframework.web.bind.annotation.RequestMethod;
- import org.springframework.web.bind.annotation.RequestParam;
- import javax.servlet.http.Cookie;
- import javax.servlet.http.HttpServletRequest;
- import javax.servlet.http.HttpServletResponse;
- import javax.servlet.http.HttpSession;
- import java.io.IOException;
- import java.io.UnsupportedEncodingException;
- @Controller
- public class OrderEntryControllor {
- @Autowired
- MenuManager menuManager;
- @Autowired
- CategoryManager categoryManager;
- Logger logger = Logger.getLogger(OrderEntryControllor.class);
- /**
- * 展示菜品
- *
- * @param model
- * @param mid 菜品id (查询用)
- * @param cid 菜品分类id (查询用)
- * @param request
- * @return
- */
- @RequestMapping(value = "/showMenus")
- public String showMenus(Model model,
- @RequestParam(value = "mid", required = false) String mid,
- @RequestParam(value = "cid", required = false) String cid,
- @RequestParam(value = "useCookie", required = false) String useCookie,
- HttpServletRequest request,
- HttpServletResponse response) {
- logger.info("mid = " + mid);
- logger.info("cid = " + cid);
- logger.info("useCookie = " + useCookie);
- //判断mid cid为空的情形
- if (mid == null || mid.equalsIgnoreCase("") || mid.equalsIgnoreCase("all")) {
- mid = "%";
- }
- if (cid == null || cid.equalsIgnoreCase("") || cid.equalsIgnoreCase("all")) {
- cid = "%";
- }
- HttpSession session = request.getSession();
- String sessionId = session.getId();
- model.addAttribute("menus", menuManager.getMenusByMidCid(mid, cid));
- session.setAttribute("categoryManager", categoryManager);
- //配置cookie
- if(useCookie != null && useCookie.equalsIgnoreCase("on")){
- int expire = 3600 * 24 * 30; //如果使用cookie,则将过期时间设为1个月
- logger.info("用户选择使用cookie,进入使用cookies的控制逻辑!");
- Cookie ckUseCookie = new Cookie("ckUseCookie","on");
- Cookie ckCid = new Cookie("ckCid",cid);
- ckUseCookie.setMaxAge(expire);
- ckCid.setMaxAge(expire);
- response.addCookie(ckUseCookie);
- response.addCookie(ckCid);
- }else{
- int expire = -1; //如果使用cookie,则将过期时间设为-1 控制该cookie立刻过期
- logger.info("用户没有选择使用cookie,进入不使用cookies的控制逻辑!");
- Cookie ckUseCookie =new Cookie("ckUseCookie","");
- Cookie ckCid =new Cookie("ckCid","");
- ckUseCookie.setMaxAge(expire);
- ckCid.setMaxAge(expire);
- response.addCookie(ckUseCookie);
- response.addCookie(ckCid);
- }
- logger.info("Session Id = " + sessionId);
- return "jsp/menuList.jsp";
- }
- /**
- * 展示编辑菜品页
- *
- * @param model
- * @param mid 菜品id
- * @param request
- * @return
- */
- @RequestMapping(value = "/editMenu/{mid}", method = RequestMethod.GET)
- public String editMenu(Model model,
- @PathVariable String mid,
- HttpServletRequest request) {
- logger.info("Start editMenu!");
- Menu menu = menuManager.getMenuByMid(mid);
- HttpSession session = request.getSession();
- model.addAttribute("menu", menu);
- session.setAttribute("categoryManager", categoryManager);
- return "jsp/menuEdit.jsp";
- }
- /**
- * 展示添加菜品页
- *
- * @param model
- * @param request
- * @return
- */
- @RequestMapping(value = "/addMenu", method = RequestMethod.GET)
- public String addMenu(Model model, HttpServletRequest request) {
- logger.info("Start addMenu!");
- HttpSession session = request.getSession();
- session.setAttribute("categoryManager", categoryManager);
- return "jsp/menuAdd.jsp";
- }
- /**
- * 保存菜品 (新建或更新)
- *
- * @param model
- * @param request
- * @param mid -1 代表新建菜品,其他代表更新菜品
- * @param cid 分类ID
- * @param mname 菜品名称
- * @param price 菜品价格
- * @return
- * @throws UnsupportedEncodingException
- */
- @RequestMapping(value = "/saveMenu", method = RequestMethod.POST)
- public String saveMenu(Model model,
- HttpServletRequest request,
- @RequestParam(value = "mid", required = true) int mid,
- @RequestParam(value = "new_cid", required = true) int cid,
- @RequestParam(value = "mname", required = true) String mname,
- @RequestParam(value = "price", required = true) float price) throws UnsupportedEncodingException {
- if (mname != null && !mname.equalsIgnoreCase("")) {
- mname = new String(mname.getBytes("ISO-8859-1"), "utf8");
- }
- if (mid >= 1) {
- logger.info("保存菜品更新!");
- logger.info("Request Param: mid = " + mid);
- logger.info("Request Param: cid = " + cid);
- logger.info("Request Param: mname = " + mname);
- logger.info("Request Param: price = " + price);
- menuManager.updateMenuByMid(mid, cid, mname, price);
- } else if (mid == -1) {
- logger.info("添加新菜品!");
- logger.info("Request Param: cid = " + cid);
- logger.info("Request Param: mname = " + mname);
- logger.info("Request Param: price = " + price);
- menuManager.addMenu(cid, mname, price);
- } else {
- logger.error("出错了,mid 不正确!");
- }
- HttpSession session = request.getSession();
- model.addAttribute("menus", menuManager.getAllMenus());
- session.setAttribute("categoryManager", categoryManager);
- return "jsp/menuList.jsp";
- }
- /**
- * 删除菜品
- *
- * @param model
- * @param mid 菜品id
- * @param request
- * @return
- */
- @RequestMapping(value = "/delete/{mid}", method = RequestMethod.GET) //按照ID展示
- public String deleteMenu(Model model,
- @PathVariable int mid,
- HttpServletRequest request,
- HttpServletResponse response) {
- menuManager.deleteMenuByMid(mid); //删除对应menu
- HttpSession session = request.getSession();
- model.addAttribute("menus", menuManager.getAllMenus());
- session.setAttribute("categoryManager", categoryManager);
- return "/showMenus";
- }
- /**
- * 展示所有菜品分类
- *
- * @param model
- * @return
- */
- @RequestMapping(value = "/showCategories")
- public String showCategories(Model model) {
- model.addAttribute("categories", categoryManager.getAllCategories());
- return "jsp/categoryList.jsp";
- }
- /**
- * 展示添加菜品分类页面
- *
- * @param model
- * @return
- */
- @RequestMapping(value = "/addCategory", method = RequestMethod.GET)
- public String addCategory(Model model) {
- logger.info("Start addCategory!");
- return "jsp/categoryAdd.jsp";
- }
- /**
- * 修改菜品分类
- *
- * @param model
- * @param cid 菜品分类id
- * @return
- */
- @RequestMapping(value = "/editCategory/{cid}")
- public String editCategory(Model model, @PathVariable int cid) {
- model.addAttribute("category", categoryManager.getCategoryById(cid));
- return "jsp/categoryEdit.jsp";
- }
- /**
- * 保存菜品分类
- *
- * @param model
- * @param cid 菜品分类id
- * @param cname 菜品分类名称
- * @return
- * @throws UnsupportedEncodingException
- */
- @RequestMapping(value = "/saveCategory", method = RequestMethod.POST)
- public String saveCategory(Model model,
- @RequestParam(value = "cid", required = true) int cid,
- @RequestParam(value = "cname", required = true) String cname) throws UnsupportedEncodingException {
- if (cname != null && !cname.equalsIgnoreCase("")) {
- cname = new String(cname.getBytes("ISO-8859-1"), "utf8");
- }
- if (cid >= 1) {
- logger.info("更新保存菜品分类!");
- logger.info("cid = " + cid);
- logger.info("cname = " + cname);
- categoryManager.updateCategoryById(cid, cname);
- } else if (cid == -1) {
- logger.info("添加新菜品分类!");
- logger.info("cname = " + cname);
- categoryManager.addCategory(cname);
- } else {
- logger.info("出错了,id 不正确!");
- }
- model.addAttribute("categories", categoryManager.getAllCategories());
- return "jsp/categoryList.jsp";
- }
- /**
- * 删除菜品分类
- *
- * @param model
- * @param cid 菜品分类id
- * @return
- */
- @RequestMapping(value = "/deleteCategory/{cid}")
- public String deleteCategoryById(Model model,
- @PathVariable int cid,
- HttpServletRequest request) {
- try {
- categoryManager.deleteCategoryById(cid);
- } catch (Exception ex) {
- String errMsg = ex.getMessage();
- logger.info("发生错误无法删除!");
- logger.info(errMsg);
- if (errMsg.contains("MySQLIntegrityConstraintViolationException")) {
- logger.error("存在依赖,不能删除该值");
- String cname = categoryManager.getCategoryById(cid).getCname();
- HttpSession session = request.getSession();
- session.setAttribute("errMsg", "出错啦:\"" + cname + "\"下仍有菜品,不能删除该分类!");
- }
- }
- model.addAttribute("categories", categoryManager.getAllCategories());
- return "jsp/categoryList.jsp";
- }
- }
|