基于javaweb+mysql的ssm+maven智能餐厅管理系统(java+ssm+jsp+bootstrap+mysql)

基于javaweb+mysql的ssm+maven智能餐厅管理系统(java+ssm+jsp+bootstrap+mysql)

运行环境

Java≥8、MySQL≥5.7、Tomcat≥8

开发工具

eclipse/idea/myeclipse/sts等均可配置运行

适用

课程设计,大作业,毕业设计,项目练习,学习演示等

功能说明

基于javaweb+mysql的SSM+Maven智能餐厅管理系统(java+ssm+jsp+bootstrap+mysql)

项目介绍

本项目主要分为服务员、厨师、收银员、经理四种角色; 主要功能包括: 客户可以根据自己的要求去选择菜品,厨师部会收到你点的菜单。你可以看到菜单的时时状况。 工作人员之间可以互相进行内部通讯,及时得到最新信息。经理可以群发通知、消息给每位员工。 系统会对所有菜品进行监视,当有菜品库存缺乏时,系统会自动提醒管理员。 管理员可以查看到餐厅的近期运营状况。包括最近的营业额,各个菜品的销售情况等。

环境需要

1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。 2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA; 3.tomcat环境:Tomcat 7.x,8.x,9.x版本均可 4.硬件环境:windows 7/8/10 1G内存以上;或者 Mac OS; 5.数据库:MySql 5.7版本; 6.是否Maven项目:是;

技术栈

  1. 后端:Spring+SpringMVC+Mybatis 2. 前端:JSP+CSS+JavaScript+bootstrap

使用说明

  1. 使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件; 2. 使用IDEA/Eclipse/MyEclipse导入项目,Eclipse/MyEclipse导入时,若为maven项目请选择maven; 若为maven项目,导入成功后请执行maven clean;maven install命令,然后运行; 3. 将项目中db.properties配置文件中的数据库配置改为自己的配置; 4. 运行项目,在浏览器中输入http://localhost:8080/DiningRoom 登录 服务员账号/密码: 20144206169/123456 厨师账号/密码:20144206170/123456 经理账号/密码:20144206171/123456 收银账号/密码:20144206172/123456
        HttpServletResponse servletResponse = (HttpServletResponse) response;
        HttpSession session = servletRequest.getSession();
        // 获得用户请求的URI
        String path = servletRequest.getRequestURI();
//        System.out.println(path);
        // 从session里取员信息
        User admin = (User) session.getAttribute("user");
        //创建类Constants.java,里面写的是无需过滤的页面
        for (int i = 0; i < Constant.NoFilter_Pages.length; i++) {
            if (path.indexOf(Constant.NoFilter_Pages[i]) > -1) {
                chain.doFilter(servletRequest, servletResponse);
                return;
            }
        }
        // 登陆页面无需过滤
        if (path.indexOf("/login.do") > -1) {
            chain.doFilter(servletRequest, servletResponse);
            return;
        }
        if (path.indexOf("/login.do.do") > -1) {
            chain.doFilter(servletRequest, servletResponse);
            return;
        }

        // 判断如果没有取到员工信息,就跳转到登陆页面
        if (admin == null || "".equals(admin)) {
            // 跳转到登陆页面
            servletResponse.sendRedirect("index.jsp");
        } else {
            // 已经登陆,继续此次请求
            chain.doFilter(request, response);
        }
    }

    public void destroy() {
        // TODO Auto-generated method stub
    }
}


/**
 * 功能描述:消息模块控制层
 *
 * http://www.goodym.cn
 */
@Controller
@RequestMapping("/trade")
public class MessageController {

	@Autowired
	private IMessageService messageService;
	

	@RequestMapping("/getChatMessageNum")
	@ResponseBody
	public String getChatMessageNum(HttpServletRequest request,
								  HttpServletResponse response) throws ServletException, IOException {
		HttpSession session = request.getSession();
		User user = (User) session.getAttribute("user");
		long num = messageService.getMessageNum(user.getId());
		session.setAttribute("messageNum", num);
		return json;
	}

	/**
	 * 功能描述:各大菜式销量
	 * @param request
	 * @param response
	 * @return
	 * @throws ServletException
	 * @throws IOException
	 */
	@RequestMapping("/getSaleDishType")
	@ResponseBody
	public String getSaleDishType(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		Map<String, Object> map = new HashMap<String, Object>();
		ObjectMapper mapper = new ObjectMapper();
		String json = null;
		List<DishTypeSale> list =dishService.getDishTypeSales();
		json = mapper.writeValueAsString(list);
		return json;
	}

}


/**
 * 功能描述:商品模块控制层
 *
 *http://www.goodym.cn
 */
@Controller
public class LoginController {

	
	@Autowired
	IUserService userService;

	@Autowired
	IDishService dishService;

	@Autowired
	ITradeService tradeService;

	@RequestMapping("/loginCheck")
	public void loginCheck(HttpServletRequest request,
						   HttpServletResponse response) throws ServletException, IOException {
		try {
			Thread.sleep(1000);
		} catch (InterruptedException e1) {
			// TODO Auto-generated catch block
			e1.printStackTrace();
		}

		String idStr = request.getParameter("id");
		String password = request.getParameter("password");
		String validation = request.getParameter("validation");
		HttpSession session = request.getSession();

		if (idStr == null || password == null || validation == null) {
			response.sendRedirect("index.jsp?message=error");
    /**
     * 修改交易状态
     * @param request
     * @param response
     * @return
     * @throws ServletException
     * @throws IOException
     */
    @RequestMapping("/changeState")
    @ResponseBody
    public String changeState(HttpServletRequest request,
                            HttpServletResponse response) throws ServletException, IOException {
        Map<String, Object> map = new HashMap<String, Object>();
        ObjectMapper mapper = new ObjectMapper();
        String json = null;
        String result = "0";
        String idStr = request.getParameter("id");
        Long id = 1l;
        try {
            id = Long.parseLong(idStr);
        } catch (NumberFormatException e) {
        }

        String nowState = tradeService.changeState(id);

        if (nowState != null) {
            result = nowState;
        }
        map.put("result",result);
        json = mapper.writeValueAsString(map);
        return json;
    }

	/**
	 * 功能描述:近期营业额
	 * @param request
	 * @param response
	 * @return
	 * @throws ServletException
	 * @throws IOException
	 */
	@RequestMapping("/getRecentTrade")
	@ResponseBody
	public String getRecentTrade(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
}

/**
 * 功能描述:交易模块控制层
 *
 * http://www.goodym.cn
 */
@Controller
@RequestMapping("/trade")
public class TradeController {

	@Autowired
	private ITradeService tradeService;

	@Autowired
	private IUserService userService;
	
	/**
	 * 查询所有 and 模糊搜索
	 * @param request
	 * @param response
	 * @throws ServletException
	 * @throws IOException
	 */
	@RequestMapping("/getList")
	@ResponseBody
	public String getList(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		String p = request.getParameter("page"); //需求页码
		String rows = request.getParameter("rows"); //每页多少条
		String sel = request.getParameter("s_userName"); //如果是查询这不为空
		System.out.println("收到请求:"+p+"  "+rows+"  "+sel);
		 Map<String, Object> map = new HashMap<String, Object>();
		 ObjectMapper mapper = new ObjectMapper(); 
		String json = null;	
		if(sel==null){			
			/*List<User> list = userService.getPageList(new User(),Integer.parseInt(p), Integer.parseInt(rows));
			PageInfo<User> pageInfo = new PageInfo<User>(list);*/
			/*map.put("rows", pageInfo.getList());
			map.put("total", pageInfo.getTotal());*/
		}
		
		json = mapper.writeValueAsString(map);
		return json;
	}

	/**
	 * 功能描述:个人中心
	 * @param request
	 * @param response
	 * @throws ServletException
	 * @throws IOException
	 */
	@RequestMapping("/toUserIndexUI")
	public ModelAndView toUserIndexUI(HttpServletRequest request,
									  HttpServletResponse response) throws ServletException, IOException {
		ModelAndView view = new ModelAndView();
		view.setViewName("jsp/user/userIndex");
		return view;
	}

	/**
	 * 跳转到修改密码页面
	 * @param request
	 * @param response
	 * @return
	 * @throws ServletException
	 * @throws IOException
	 */

    public void doFilter(ServletRequest request, ServletResponse response,
                         FilterChain chain) throws IOException, ServletException {
        // 获得在下面代码中要用的request,response,session对象
        HttpServletRequest servletRequest = (HttpServletRequest) request;
        HttpServletResponse servletResponse = (HttpServletResponse) response;
        HttpSession session = servletRequest.getSession();
        // 获得用户请求的URI
        String path = servletRequest.getRequestURI();
//        System.out.println(path);
        // 从session里取员信息
        User admin = (User) session.getAttribute("user");
        //创建类Constants.java,里面写的是无需过滤的页面
        for (int i = 0; i < Constant.NoFilter_Pages.length; i++) {
            if (path.indexOf(Constant.NoFilter_Pages[i]) > -1) {
                chain.doFilter(servletRequest, servletResponse);
                return;
            }
        }
        // 登陆页面无需过滤
        if (path.indexOf("/login.do") > -1) {
            chain.doFilter(servletRequest, servletResponse);
            return;
        }
        if (path.indexOf("/login.do.do") > -1) {
            chain.doFilter(servletRequest, servletResponse);
            return;
        }

        // 判断如果没有取到员工信息,就跳转到登陆页面
        if (admin == null || "".equals(admin)) {
            // 跳转到登陆页面
            servletResponse.sendRedirect("index.jsp");
        } else {
            // 已经登陆,继续此次请求
            chain.doFilter(request, response);
        }
    }

    public void destroy() {
        // TODO Auto-generated method stub
    }
}

	private ITradeService tradeService;

	@Autowired
	private IUserService userService;

	@RequestMapping("/toTradeUI")
	public ModelAndView toTradeUI(HttpServletRequest request,
						  HttpServletResponse response) throws ServletException, IOException {
		ModelAndView view = new ModelAndView();
		String pageNoStr = request.getParameter("pageNo");
		String stateStr = request.getParameter("state");
		int pageNo = 1;
		int state = 4;
		try {
			pageNo = Integer.parseInt(pageNoStr);
			state = Integer.parseInt(stateStr);
		} catch (NumberFormatException e) {
			// e.printStackTrace();
		}
		List<Trade> tradeList = tradeService.getPageList(pageNo, state);
		PageInfo<Trade> pageInfo = new PageInfo<Trade>(tradeList);

		if (pageInfo.getList() != null) {
			for (Trade t : pageInfo.getList()) {
				t.setTradeState(TradeStateUtil.getById(t.getState()));
				t.setUser(userService.getUserById(t.getUserId()));
			}
		}

		request.setAttribute("page", pageInfo);

		view.setViewName("jsp/trade/tradeIndex");
		return view;
	}

	/**
	 *
	 * @param request
	 * @param response
	 * @return
	 * @throws ServletException
	 * @throws IOException
	 */
	@RequestMapping("/getTimeTrade")
            // upload.setFileSizeMax(10*1024*1024);//单个文件最大字节
            // upload.setSizeMax(100*1024*1024);//总文件大小
            // 3、判断用户的表单有没有设置为multipart/form-data
            boolean b = upload.isMultipartContent(request);
            if (!b)
                return;

            // 4、如果设置了,解析request中的主体内容,List<FileItem>
            List<FileItem> items = upload.parseRequest(request);
            // 5、遍历List
            for (FileItem item : items) {
                if (item.isFormField()) {
                    // 6、如果是普通字段,打印
                    String fieldName = item.getFieldName();
                    String value = item.getString("UTF-8");// String value = new
                    // //
                    // String(item.getString().getBytes("ISO-8859-1"),"UTF-8");
                    //System.out.println(fieldName + "=" + value);
                } else {
                    // 7、上传:上传到哪个目录
                    String fileName = item.getName();// 获取文件名 C:\Documents and
                    if (fileName == null || fileName.trim().equals("")) {
                        continue;
                    }
                    fileName = fileName
                            .substring(fileName.lastIndexOf("\\") + 1);// a.txt
                    InputStream in = item.getInputStream();// 获取输入流
                    // 构建输出流
                    String newFilePath = uploadPath + "\\" + fileName;// UUID.randomUUID()+ fileName.substring(fileName.lastIndexOf("."));
                    //System.out.println(newFilePath);
                    FileOutputStream out = new FileOutputStream(newFilePath);
                    byte buf[] = new byte[1024];
                    int len = -1;
                    while ((len = in.read(buf)) != -1) {
                        out.write(buf, 0, len);
                    }
                    in.close();
                    out.close();
                    //  item.delete();

                }
            }

        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

/**
 */

	@RequestMapping("/addToCart")
	@ResponseBody
	public String addToCart(HttpServletRequest request,
						  HttpServletResponse response) throws ServletException, IOException {
		ServletContext servletContext = request.getSession()
				.getServletContext();
		Map<String, Object> map = new HashMap<String, Object>();
		ObjectMapper mapper = new ObjectMapper();
		String json = null;
		HttpSession session = request.getSession();
		String idStr = request.getParameter("id");
		Long id = null;
		Cart cart = (Cart) session.getAttribute("cart");
		Cart cartStock = (Cart) servletContext.getAttribute("cartStock");

		if (cart == null) {
			cart = new Cart();
			session.setAttribute("cart", cart);
		}
		String result = "false";
		try {
			id = Long.parseLong(idStr);

			Dish dish = dishService.getDishById(id);

			// 获取未付款正在购物车中的数目
			Integer stockNum = cartStock.getItemNum(id);

			if (dishService.checkStock(id, stockNum)) {
				result = "true";
				cartStock.addDish(dish);
				cart.addDish(dish);
			}

		} catch (NumberFormatException e) {
			e.printStackTrace();
		}
		if (result.equals("true")) {
			//result = cart.getTotalNumber() + "";
			map.put("totalnumber",cart.getTotalNumber());
		}

		json = mapper.writeValueAsString(map);
		return json;

        try {
            id = Long.parseLong(idStr);
        } catch (NumberFormatException e) {
        }
        Integer quantity = cart.getItemNum(id);
        cart.removeItem(id);
        Integer applocationQuantity = cartStock.getItemNum(id);
        cartStock.updateItemQuantity(id, applocationQuantity - quantity);
        //response.sendRedirect("cartServlet?method=toCartUI");
        view.setViewName("redirect:toCartUI.do");
        return view;
    }

	/**
	 * 取消购物车
	 * @param request
	 * @param response
	 * @throws ServletException
	 * @throws IOException
	 */
	@RequestMapping("/cancel")
	public ModelAndView cancel(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		ModelAndView view = new ModelAndView();
		HttpSession session = request.getSession();
		Cart cart = (Cart) session.getAttribute("cart");
		ServletContext servletContext = request.getSession()
				.getServletContext();
		Cart cartStock = (Cart) servletContext.getAttribute("cartStock");
		if(cart != null && cartStock!=null){
			for(CartItem c:cart.getItems()){
				Integer old = c.getQuantity();
				cartStock.updateItemQuantity(c.getDish().getId(), old-c.getQuantity());
			}
		}
		cart.clear();

		view.setViewName("redirect:/book/index.do");
		return view;
	}

	class ChangeResult {
		int num;
		int totalNumber;
		int pageSize = 10;
		String condition = null;
		String likeStr = null;
		HttpSession session = request.getSession();

		try {
			condition = (String) session.getAttribute("bookCondition");
			likeStr = (String) session.getAttribute("bookLikeStr");
		} catch (Exception e) {
			e.printStackTrace();
		}
		if (condition == null || ("".trim()).equals(condition)) {
			condition = "u.id";
		}
		if (likeStr == null) {
			likeStr = "";
		}

		Dish tempDish = new Dish();
        tempDish.setOrderByCondition(condition);
        tempDish.setSearchKeyWord(likeStr);
		List<Dish> dishList = dishService.getPageList(pageNo,pageSize ,tempDish);
		PageInfo<Dish> pageInfo = new PageInfo<Dish>(dishList);
		request.setAttribute("dishType", dishService.getDishTypeList());
		view.addObject("page",pageInfo);
		view.setViewName("jsp/book/book");
		return view;
	}

    /**
     * 功能描述:搜索菜单
     * @param request
     * @param response
     * @throws ServletException
     * @throws IOException
     */
    @RequestMapping("/searchDish")
    public ModelAndView searchDish(HttpServletRequest request,
                           HttpServletResponse response) throws ServletException, IOException {
        ModelAndView view = new ModelAndView();
        String likeStr = request.getParameter("likeStr");
        // likeStr = new String(likeStr.getBytes("iso-8859-1"), "utf-8");
        likeStr = likeStr.trim();
	public ModelAndView editUser(HttpServletRequest request,
						 HttpServletResponse response) throws ServletException, IOException {
		ModelAndView view = new ModelAndView();
		String name = request.getParameter("name");
		String typeStr = request.getParameter("type");
		String tell = request.getParameter("tell");
		String pageNum = request.getParameter("pageNum");
		Integer type = 2;
		String idStr = request.getParameter("id");
		Long id = null;
		try {
			id = Long.parseLong(idStr);
		} catch (NumberFormatException e) {
		}
		try {
			type = Integer.parseInt(typeStr);
		} catch (NumberFormatException e) {
		}
		userService.editUser(id, name, type, tell);

		view.setViewName("redirect:toUserManageUI.do?pageNum"+pageNum);
		return view;

	}

    /**
     * 功能描述:删除用户
     * @param request
     * @param response
     * @return
     * @throws ServletException
     * @throws IOException
     */
    @RequestMapping("/delUser")
    public ModelAndView delUser(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        ModelAndView view = new ModelAndView();
        String pageStr = request.getParameter("pageNum");
        String idStr = request.getParameter("id");
        Long id = null;
        try {
            id = Long.parseLong(idStr);
        } catch (NumberFormatException e) {
	    }

}

/**
 * 功能描述:文件上传控制层
 *
 * http://www.goodym.cn
 */
@Controller
@RequestMapping("/upload")
public class UploadController {

    @Autowired
    private ServletContext servletContext;

    @RequestMapping("/uploadImage")
    public void uploadImage(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        try {
            String uploadPath = servletContext.getRealPath(
	 * @param request
	 * @param response
	 * @return
	 * @throws ServletException
	 * @throws IOException
	 */
	@RequestMapping("/quit")
	public ModelAndView quit(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		HttpSession session = request.getSession();
		session.invalidate();

		ModelAndView view = new ModelAndView();
		view.setViewName("../index");
		return view;
	}

    /**
     * 功能描述:用户管理
     * @param request
     * @param response
     * @throws ServletException
     * @throws IOException
     */
    @RequestMapping("/toUserManageUI")
    public ModelAndView toUserManageUI(User tempUser,HttpServletRequest request,
                               HttpServletResponse response) throws ServletException, IOException {
        String pageStr = request.getParameter("pageNum");
        ModelAndView view = new ModelAndView();
        int pageNum = 1;
        int pageSize = 15;
        try {
            pageNum = Integer.parseInt(pageStr);
        } catch (NumberFormatException e) {
        }
        List<User> userList = userService.getPageList(tempUser,pageNum,pageSize);
        PageInfo<User> pageInfo = new PageInfo<User>(userList);
        request.setAttribute("page", pageInfo);

        view.setViewName("jsp/user/userManage");
        return view;
    }

    /**
     * 功能描述:跳转到新增用户页面
     * @param request
        String result = "0";
        String idStr = request.getParameter("id");
        Long id = 1l;
        try {
            id = Long.parseLong(idStr);
        } catch (NumberFormatException e) {
        }

        String nowState = tradeService.changeState(id);

        if (nowState != null) {
            result = nowState;
        }
        map.put("result",result);
        json = mapper.writeValueAsString(map);
        return json;
    }

	/**
	 * 功能描述:近期营业额
	 * @param request
	 * @param response
	 * @return
	 * @throws ServletException
	 * @throws IOException
	 */
	@RequestMapping("/getRecentTrade")
	@ResponseBody
	public String getRecentTrade(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		Map<String, Object> map = new HashMap<String, Object>();
		ObjectMapper mapper = new ObjectMapper();
		String json = null;
		List<DateSale> list =tradeService.getDSales();
		json = mapper.writeValueAsString(list);
		return json;

	}

    /**
			condition = (String) session.getAttribute("bookCondition");
			likeStr = (String) session.getAttribute("bookLikeStr");
		} catch (Exception e) {
			e.printStackTrace();
		}
		if (condition == null || ("".trim()).equals(condition)) {
			condition = "u.id";
		}
		if (likeStr == null) {
			likeStr = "";
		}

		Dish tempDish = new Dish();
        tempDish.setOrderByCondition(condition);
        tempDish.setSearchKeyWord(likeStr);
		List<Dish> dishList = dishService.getPageList(pageNo,pageSize ,tempDish);
		PageInfo<Dish> pageInfo = new PageInfo<Dish>(dishList);
		request.setAttribute("dishType", dishService.getDishTypeList());
		view.addObject("page",pageInfo);
		view.setViewName("jsp/book/book");
		return view;
	}

    /**
     * 功能描述:搜索菜单
     * @param request
     * @param response
     * @throws ServletException
     * @throws IOException
     */
    @RequestMapping("/searchDish")
    public ModelAndView searchDish(HttpServletRequest request,
                           HttpServletResponse response) throws ServletException, IOException {
        ModelAndView view = new ModelAndView();
        String likeStr = request.getParameter("likeStr");
        // likeStr = new String(likeStr.getBytes("iso-8859-1"), "utf-8");
        likeStr = likeStr.trim();
        HttpSession session = request.getSession();
        if (likeStr != null) {
            session.setAttribute("bookLikeStr", likeStr);
        } else {
            session.removeAttribute("bookLikeStr");
        }
        view.setViewName("redirect:index.do");
        return view;
    }

	/**
	 * 功能描述:查看更多
	 * @param request
	 * @param response
	 * @throws ServletException

请添加图片描述

请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值