基于javaweb+mysql的ssm在线餐饮管理系统(java+ssm+bootstrap+jsp+jquery+mysql)

基于javaweb+mysql的ssm在线餐饮管理系统(java+ssm+bootstrap+jsp+jquery+mysql)

运行环境

Java≥8、MySQL≥5.7、Tomcat≥8

开发工具

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

适用

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

功能说明

基于javaweb+mysql的SSM在线餐饮管理系统(java+ssm+bootstrap+jsp+jquery+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+jQuery+bootstrap

使用说明

  1. 使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件; 2. 使用IDEA/Eclipse/MyEclipse导入项目,Eclipse/MyEclipse导入时,若为maven项目请选择maven; 若为maven项目,导入成功后请执行maven clean;maven install命令,然后运行; 3. 将项目中WebContent/WEB-INF/config/config.properties配置文件中的数据库配置改为自己的配置; 4. 运行项目,在浏览器中输入 http://localhost:8080/ssm_restaurentsys/
	TableService tableService;
	
	@RequestMapping(value = "/list", method = RequestMethod.GET)
	public String get(HttpServletRequest request, ModelMap modelMap) {
		List<Table> tables = tableService.getAll();

		modelMap.addAttribute("tables", tables);
		
		return "restaurent/tablelist";
	}

	@RequestMapping(value="/save", method = RequestMethod.POST)
	public String save(Table table, ModelMap modelMap, HttpSession session) {
		if(table.getId() == null) {
			tableService.insert(table);
		} else {
			tableService.update(table);
		}
		
		return "redirect:list.html";
	}
	
	@RequestMapping(value="/add", method = RequestMethod.GET)
	public String add(ModelMap modelMap) {
		
		return "restaurent/addtable";
	}
	
	
	@RequestMapping(value="/update", method = RequestMethod.GET)
	public String update(int id, ModelMap modelMap) {
		Table table = tableService.getTableById(id);
		
		modelMap.put("table", table);
		return "restaurent/addtable";
	}
	
	@RequestMapping(value="/delete", method = RequestMethod.GET)
	public String delete(int id, ModelMap modelMap) {
		tableService.deleteById(id);

	}

	@Override
	public void doFilter(ServletRequest request, ServletResponse response,
			FilterChain chain) throws IOException, ServletException {
		//控制用户访问权限
		HttpServletRequest req = (HttpServletRequest)request;
		HttpServletResponse res = (HttpServletResponse)response;
		HttpSession session=req.getSession();

		if ("/logout.html".equals(req.getServletPath())) {
			session.removeAttribute("user");
			res.sendRedirect(req.getContextPath()+"/login.jsp");
		} else if(session.getAttribute("user")!= null || "/login.html".equals(req.getServletPath())
				 || "/user/save.html".equals(req.getServletPath())){
			chain.doFilter(request, response);
		} else {
			res.sendRedirect(req.getContextPath()+"/error.jsp");
		}
	}

	@Override
	public void init(FilterConfig filterConfig) throws ServletException {
	

	}
}

public abstract class BaseController {
	
	protected Map<String, Object> getWhereMap(HttpServletRequest request)
	{
		Map<String, Object> map = new HashMap<String, Object>();

		int start = StringUtil.parseToInt(request.getParameter("start"), 0);
		int limit = StringUtil.parseToInt(request.getParameter("limit"), 50);

		map.put("start", start);
		map.put("limit", limit);

	@RequestMapping(value="/pay", method = RequestMethod.POST)
	public String pay(int id, double payment, ModelMap modelMap) {
		Orders order = orderService.getById(id);
		
		order.setPayment(payment);
		order.setStatus("已付款");
		
		orderService.update(order);
		
		return "redirect:list.html";
	}

	@RequestMapping(value="/daily", method = RequestMethod.GET)
	public String daily(ModelMap modelMap) {
		List<StatsVO> orders = orderService.getDaily(new HashMap<String, Object>());
		
		
		modelMap.put("orders", orders);
		return "restaurent/daily";
	}
	
	@RequestMapping(value="/monthly", method = RequestMethod.GET)
	public String monthly(ModelMap modelMap) {
		List<StatsVO> orders = orderService.getMonthly(new HashMap<String, Object>());
		
		
		modelMap.put("orders", orders);
		
		return "restaurent/monthly";
	}
}

	public String update(int id, ModelMap modelMap) {
		Dishes dish = dishService.getDishesById(id);
		List<DishType> dishtypes = dishTypeService.getAll();
		
		modelMap.put("dishtypes", dishtypes);
		modelMap.put("dish", dish);
		return "restaurent/adddish";
	}
	
	@RequestMapping(value="/delete", method = RequestMethod.GET)
	public String delete(int id, ModelMap modelMap) {
		dishService.deleteById(id);
		
		return "redirect:list.html";
	}
}

@Controller
@RequestMapping(value="/dishtype")
public class DishTypeController extends BaseController {
	
	@Autowired
	DishTypeService dishTypeService;
	
	@RequestMapping(value = "/list", method = RequestMethod.GET)
	public String get(HttpServletRequest request, ModelMap modelMap) {
		List<DishType> dishtypes = dishTypeService.getAll();

		modelMap.addAttribute("dishtypes", dishtypes);
		
		return "restaurent/dishtypelist";
	}

				isContain = true;
			}
		}
		
		if (!isContain) {
			Dishes dish = dishService.getDishesById(dishId);
			
			OrderDetail detail = new OrderDetail();
			detail.setDishId(dishId);
			detail.setDishName(dish.getName());
			detail.setPrice(dish.getPrice());
			detail.setQuantity(number);

			orderDetails.add(detail);
		}
		
		session.setAttribute("orderDetails", orderDetails);
		
		return "success";
	}
	
	@RequestMapping(value="/order", method = RequestMethod.GET)
	public String order(@RequestParam(required = false) Integer dishType, @RequestParam(required = false) Integer number, HttpSession session, ModelMap modelMap) {
		List<OrderDetail> orderDetails = new ArrayList<OrderDetail>();
		
		if (session.getAttribute("orderDetails") != null) {
			orderDetails = (List<OrderDetail>) session.getAttribute("orderDetails");
		}
		
		int total = 0;
		for (OrderDetail orderDetail : orderDetails) {
			if (orderDetail.getDishId().equals(dishType) && number != null) {
				orderDetail.setQuantity(number);
			}
			total += orderDetail.getPrice().intValue() * orderDetail.getQuantity().intValue();
		}
		session.setAttribute("orderDetails", orderDetails);
		
		List<Table> tables = tableService.getAll();
		
		modelMap.put("tables", tables);
		modelMap.put("total", total);
		
		return "user/order";
	}
	
	@RequestMapping(value="/add", method = RequestMethod.GET)
	public String add(ModelMap modelMap) {

		return "register";
	}
	
	
	@RequestMapping(value="/update", method = RequestMethod.GET)
	public String update(int id, ModelMap modelMap) {
		User user = userService.getUserByID(id);
		
		modelMap.put("type", user.getType());
		modelMap.put("tempuser", user);
		return "register";
	}
	
	@RequestMapping(value="/delete", method = RequestMethod.GET)
	public String delete(int id, ModelMap modelMap) {
		User user = userService.getUserByID(id);
		userService.deleteByID(id);
		
		modelMap.put("type", user.getType());
		return "redirect:list.html";
	}
	
	@RequestMapping(value="/changePassword", method = RequestMethod.GET)
	public String changePassword(ModelMap modelMap) {
		
		return "restaurent/changepwd";
	}
	
	@RequestMapping(value="/savePassword", method = RequestMethod.POST)
	public String savePassword(HttpSession session, String mpass, String password, ModelMap modelMap) {
		User user = (User) session.getAttribute("user");
		User cuser = userService.getUserByID(user.getId());
		
		if (!cuser.getPassword().equals(mpass)) {
			modelMap.put("error", "旧密码错误,请重新输入!");
		} else {
			modelMap.put("message", "密码修改成功!");
		}
		
		cuser.setPassword(password);
		
		userService.update(cuser);
		

@Controller
@RequestMapping(value="/order")
public class OrderController extends BaseController {
	
	@Autowired
	OrderService orderService;
	
	@Autowired
	DishService dishService;
	
	@Autowired
	DishTypeService dishTypeService;
	
	@Autowired
	TableService tableService;
	
	@RequestMapping(value = "/list", method = RequestMethod.GET)
	public String get(HttpServletRequest request, ModelMap modelMap, SearchVO searchVO) {
		String pageNow = request.getParameter("pageNow");

		Page page = null;

		Map<String, Object> whereMap = new HashMap<String, Object>();

		if (!StringUtil.isEmpty(searchVO.getName())) {
			whereMap.put("account", searchVO.getName());
		}
		
		if (!StringUtil.isEmpty(searchVO.getStartDate())) {
			whereMap.put("startDate", searchVO.getStartDate());
		}
		
		if (!StringUtil.isEmpty(searchVO.getEndDate())) {
			whereMap.put("endDate", searchVO.getEndDate());
		}
		
		int totalCount = (int) orderService.getCount(whereMap);

		if (pageNow != null) {
			page = new Page(totalCount, Integer.parseInt(pageNow));
		} else {

@Controller
@RequestMapping(value="/order")
public class OrderController extends BaseController {
	
	@Autowired
	OrderService orderService;
	
	@Autowired
	DishService dishService;
	
	@Autowired
	DishTypeService dishTypeService;
	
	@Autowired
	TableService tableService;
	
	@RequestMapping(value = "/list", method = RequestMethod.GET)
		int total = 0;
		for (OrderDetail orderDetail : orderDetails) {
			if (orderDetail.getDishId().equals(dishType) && number != null) {
				orderDetail.setQuantity(number);
			}
			total += orderDetail.getPrice().intValue() * orderDetail.getQuantity().intValue();
		}
		session.setAttribute("orderDetails", orderDetails);
		
		List<Table> tables = tableService.getAll();
		
		modelMap.put("tables", tables);
		modelMap.put("total", total);
		
		return "user/order";
	}

	@RequestMapping(value="/save", method = RequestMethod.POST)
	public String save(Orders order, ModelMap modelMap, HttpSession session) {
		if (session.getAttribute("orderDetails") != null) {
			List<OrderDetail> orderDetails = (List<OrderDetail>) session.getAttribute("orderDetails");
			
			if (orderDetails.size() > 0) {
				User user = (User) session.getAttribute("user");
				order.setAccount(user.getAccount());
				order.setDealDate(new Date());
				order.setStatus("已下单");
				order.setUserId(user.getId());
				
				Table table = tableService.getTableById(order.getTableId());
				order.setTableNo(table.getTableNo());
				
				orderService.insertDetail(order, orderDetails);
			}
			
			session.removeAttribute("orderDetails");
		}
		
		
		return "redirect:order.html";
	}

	@RequestMapping(value="/cancel", method = RequestMethod.GET)
	public String cancel(int id, ModelMap modelMap) {
		Orders order = orderService.getById(id);
		
		order.setStatus("已取消");
		
	
	
	@RequestMapping(value="/update", method = RequestMethod.GET)
	public String update(int id, ModelMap modelMap) {
		Dishes dish = dishService.getDishesById(id);
		List<DishType> dishtypes = dishTypeService.getAll();
		
		modelMap.put("dishtypes", dishtypes);
		modelMap.put("dish", dish);
		return "restaurent/adddish";
	}
	
	@RequestMapping(value="/delete", method = RequestMethod.GET)
	public String delete(int id, ModelMap modelMap) {
		dishService.deleteById(id);
		
		return "redirect:list.html";
	}
}

@Controller
@RequestMapping(value="/dishtype")
public class DishTypeController extends BaseController {
	
	@Autowired
	DishTypeService dishTypeService;
	
	@RequestMapping(value = "/list", method = RequestMethod.GET)
	public String get(HttpServletRequest request, ModelMap modelMap) {
		List<DishType> dishtypes = dishTypeService.getAll();

		modelMap.addAttribute("dishtypes", dishtypes);
		
		return "restaurent/dishtypelist";
	}

	@RequestMapping(value="/save", method = RequestMethod.POST)
	public String save(DishType dishType, ModelMap modelMap, HttpSession session) {
		
		modelMap.put("type", user.getType());
		modelMap.put("tempuser", user);
		return "register";
	}
	
	@RequestMapping(value="/delete", method = RequestMethod.GET)
	public String delete(int id, ModelMap modelMap) {
		User user = userService.getUserByID(id);
		userService.deleteByID(id);
		
		modelMap.put("type", user.getType());
		return "redirect:list.html";
	}
	
	@RequestMapping(value="/changePassword", method = RequestMethod.GET)
	public String changePassword(ModelMap modelMap) {
		
		return "restaurent/changepwd";
	}
	
	@RequestMapping(value="/savePassword", method = RequestMethod.POST)
	public String savePassword(HttpSession session, String mpass, String password, ModelMap modelMap) {
		User user = (User) session.getAttribute("user");
		User cuser = userService.getUserByID(user.getId());
		
		if (!cuser.getPassword().equals(mpass)) {
			modelMap.put("error", "旧密码错误,请重新输入!");
		} else {
			modelMap.put("message", "密码修改成功!");
		}
		
		cuser.setPassword(password);
		
		userService.update(cuser);
		
		
		return "restaurent/changepwd";
	}
}

	
	
	@RequestMapping(value="/update", method = RequestMethod.GET)
	public String update(int id, ModelMap modelMap) {
		DishType dishType = dishTypeService.getDishTypeById(id);
		
		modelMap.put("dishtype", dishType);
		return "restaurent/adddishtype";
	}
	
	@RequestMapping(value="/delete", method = RequestMethod.GET)
	public String delete(int id, ModelMap modelMap) {
		dishTypeService.deleteById(id);
		
		return "redirect:list.html";
	}
}

@Controller
@RequestMapping(value="/table")
public class TableController extends BaseController {
	
	@Autowired
	TableService tableService;
	
	@RequestMapping(value = "/list", method = RequestMethod.GET)
	public String get(HttpServletRequest request, ModelMap modelMap) {
		List<Table> tables = tableService.getAll();

		modelMap.addAttribute("tables", tables);
		
		return "restaurent/tablelist";
	}

	@RequestMapping(value="/save", method = RequestMethod.POST)
	public String save(Table table, ModelMap modelMap, HttpSession session) {

	@Override
	public void destroy() {

	}

	@Override
	public void doFilter(ServletRequest request, ServletResponse response,
			FilterChain chain) throws IOException, ServletException {
		//控制用户访问权限
		HttpServletRequest req = (HttpServletRequest)request;
		HttpServletResponse res = (HttpServletResponse)response;
		HttpSession session=req.getSession();

		if ("/logout.html".equals(req.getServletPath())) {
			session.removeAttribute("user");
			res.sendRedirect(req.getContextPath()+"/login.jsp");
		} else if(session.getAttribute("user")!= null || "/login.html".equals(req.getServletPath())
				 || "/user/save.html".equals(req.getServletPath())){
			chain.doFilter(request, response);
		} else {
			res.sendRedirect(req.getContextPath()+"/error.jsp");
		}
	}

	@Override
	public void init(FilterConfig filterConfig) throws ServletException {
	

	}
}

public abstract class BaseController {
	
	protected Map<String, Object> getWhereMap(HttpServletRequest request)
	{
		Map<String, Object> map = new HashMap<String, Object>();

		int start = StringUtil.parseToInt(request.getParameter("start"), 0);

public class AuthenticationFilter implements Filter {

	@Override
	public void destroy() {

	}

	@Override
	public void doFilter(ServletRequest request, ServletResponse response,
			FilterChain chain) throws IOException, ServletException {
		//控制用户访问权限
		HttpServletRequest req = (HttpServletRequest)request;
		HttpServletResponse res = (HttpServletResponse)response;
		HttpSession session=req.getSession();

		if ("/logout.html".equals(req.getServletPath())) {
			session.removeAttribute("user");
			res.sendRedirect(req.getContextPath()+"/login.jsp");
		} else if(session.getAttribute("user")!= null || "/login.html".equals(req.getServletPath())
				 || "/user/save.html".equals(req.getServletPath())){
			chain.doFilter(request, response);
		} else {
			res.sendRedirect(req.getContextPath()+"/error.jsp");
		}
	}

	@Override
	public void init(FilterConfig filterConfig) throws ServletException {
	

	}
}

public abstract class BaseController {

@Controller
@RequestMapping(value="/dish")
public class DishController extends BaseController {
	
	@Autowired
	DishService dishService;
	
	@Autowired
	DishTypeService dishTypeService;
	
	@RequestMapping(value = "/list", method = RequestMethod.GET)
	public String get(SearchVO searchVO, HttpServletRequest request, ModelMap modelMap) {
		String pageNow = request.getParameter("pageNow");
		Page page = null;

		Map<String, Object> whereMap = new HashMap<String, Object>();
		if (!StringUtil.isEmpty(searchVO.getName())) {
			whereMap.put("name", " name like '%" + searchVO.getName() + "%'");
		}

		int totalCount = (int) dishService.getCount(whereMap);

		if (pageNow != null) {
			page = new Page(totalCount, Integer.parseInt(pageNow));
			Dishes dish = dishService.getDishesById(dishId);
			
			OrderDetail detail = new OrderDetail();
			detail.setDishId(dishId);
			detail.setDishName(dish.getName());
			detail.setPrice(dish.getPrice());
			detail.setQuantity(number);

			orderDetails.add(detail);
		}
		
		session.setAttribute("orderDetails", orderDetails);
		
		return "success";
	}
	
	@RequestMapping(value="/order", method = RequestMethod.GET)
	public String order(@RequestParam(required = false) Integer dishType, @RequestParam(required = false) Integer number, HttpSession session, ModelMap modelMap) {
		List<OrderDetail> orderDetails = new ArrayList<OrderDetail>();
		
		if (session.getAttribute("orderDetails") != null) {
			orderDetails = (List<OrderDetail>) session.getAttribute("orderDetails");
		}
		
		int total = 0;
		for (OrderDetail orderDetail : orderDetails) {
			if (orderDetail.getDishId().equals(dishType) && number != null) {
				orderDetail.setQuantity(number);
			}
			total += orderDetail.getPrice().intValue() * orderDetail.getQuantity().intValue();
		}
		session.setAttribute("orderDetails", orderDetails);
		
		List<Table> tables = tableService.getAll();
		
		modelMap.put("tables", tables);
		modelMap.put("total", total);
		
		return "user/order";
	}

	@RequestMapping(value="/save", method = RequestMethod.POST)
	public String save(Orders order, ModelMap modelMap, HttpSession session) {
		if (session.getAttribute("orderDetails") != null) {
			List<OrderDetail> orderDetails = (List<OrderDetail>) session.getAttribute("orderDetails");
			
			if (orderDetails.size() > 0) {
				User user = (User) session.getAttribute("user");

@Controller
public class PublicController extends BaseController {
	@Autowired
	private UserService userService;
	
	@RequestMapping(value = "/login", method = RequestMethod.POST) 
	public String handleLogin(@RequestParam("username") String username, 
				@RequestParam("password") String password, ModelMap modelMap, HttpSession session) {
		User user = userService.getUserByAccount(username);
		if (user != null && user.getPassword().equals(password)) {
			session.setAttribute("user", user);
			
			if ("admin".equals(user.getType())) {
				return "redirect:main.html";
			} else {
				return "redirect:usermain.html";
			}
		} else {
			modelMap.put("errors", "用户名或密码错误!");
			return "login";
		}
	}
	
	@RequestMapping(value = "/logout", method = RequestMethod.POST) 
	public String logout(HttpSession session) {
		session.removeAttribute("user");
		
		return "login";
	}
}

				
				orderService.insertDetail(order, orderDetails);
			}
			
			session.removeAttribute("orderDetails");
		}
		
		
		return "redirect:order.html";
	}

	@RequestMapping(value="/cancel", method = RequestMethod.GET)
	public String cancel(int id, ModelMap modelMap) {
		Orders order = orderService.getById(id);
		
		order.setStatus("已取消");
		
		orderService.update(order);
		
		return "redirect:list.html";
	}

	@RequestMapping(value="/pay", method = RequestMethod.POST)
	public String pay(int id, double payment, ModelMap modelMap) {
		Orders order = orderService.getById(id);
		
		order.setPayment(payment);
		order.setStatus("已付款");
		
		orderService.update(order);
		
		return "redirect:list.html";
	}

	@RequestMapping(value="/daily", method = RequestMethod.GET)
	public String daily(ModelMap modelMap) {
		List<StatsVO> orders = orderService.getDaily(new HashMap<String, Object>());
		
		
		modelMap.put("orders", orders);
		return "restaurent/daily";
	}
	
	@RequestMapping(value="/monthly", method = RequestMethod.GET)
	public String monthly(ModelMap modelMap) {

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

前端: 1.游客模式(可以观看店家信息) 2.用户登录后可以进行点餐,点餐后可以对菜和店家进行点评进行点评,结账 3.订座 4.个人信息管理 后端: 1.五表权限(员工登录做菜,老板登录观看用户记录和菜铺 管理,订单管理) 2.菜谱管理(增删查改),菜系管理 3.统计菜的点击次数,评价,用户消费总金额,最后一次消费时间 1.用户表:user userId(用户id),userName(用户名),password(密码), createTime(创建时间),lastTime(最后一次登录时间),number 预留号码 2.角色表:role roleId(角色id),roleName(角色名称) 3.权限表:authority 权限id(authorityId),权限名称(authorityId),权限地址(url) 4.用户角色表:user_role 用户id(userId),角色id(roleId) 5.角色权限表:role_authority 角色id(roleId),权限Id(authorityId) 6.消费记录表:record 用户id(userId),用户名称(userName), 消费时间(consumptionTime),消费金额(consumptionMoney) 7.订单表:indent 下单id(indentId),下单用户(userName),下单时间 (indentTime),下单菜谱(menuName) 8.菜谱表:menu 菜谱Id(menuId),菜谱名称(menuName),价格(price),菜系 Id(vegetableId), 图片地址(picture),用户购买量 (userCount),好评数量(good), 一 般数量(general),差 评数量(bad),增加时间(addTime) 9.菜系表:vegetableType 菜系id(vegetableId),菜系名称(vegetableName),增加时间 (addTime) 10.评价表:evaluate 用户id(userId),评价菜谱名(menuName),评价内容 (evaluateContent),评价时间(evaluateTime) 原生态系列,底层代码更好的了解整个项目所需要的哪些细节 具体功能还有很多,就不一一描述了, 希望能帮到大家。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值