基于SSM实现在线点餐系统
项目编号:BS-PT-022
本项目基于SSM框架实现在线点餐系统,主要实现系统的在线点餐功能。
开发工具:IDEA/ECLIPSE
数据库:MYSQL5.7
后台技术:SSM
前台技术:CSS,JS,JSP
应用服务器:TOMCAT8.5
下面展示一下系统功能:

我的餐车

订单

用户中心

会员登陆

会员注册

后台登陆

菜单管理

菜单类别管理

公告信息管理

订单管理

信息修改

核心代码:
package com.example.meal_ordering_system.controller;import com.example.meal_ordering_system.entity.Admin;import com.example.meal_ordering_system.entity.Menus;import com.example.meal_ordering_system.entity.Types;import com.example.meal_ordering_system.service.AdminService;import org.apache.ibatis.annotations.Param;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.beans.factory.annotation.Qualifier;import org.springframework.stereotype.Controller;import org.springframework.ui.Model;import org.springframework.web.bind.annotation.GetMapping;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestMethod;import org.springframework.web.bind.annotation.RestController;import javax.annotation.Resource;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpSession;import java.util.List;/**
* (Admin)表控制层
*
* @author znz
* @since 2021-02-04 12:51:19
*/public class AdminController { /**
* 服务对象
*/
//自动注入业务层的AdminService类
private AdminService adminService; //修改管理员信息
public String update(Admin admin) {
adminService.update(admin); return "/admin/menus";
}
public String toLogin(){ return "/admin/index";
} //login业务的访问位置为/admin/login
public String login(Admin admin, HttpServletRequest request,HttpSession session){ //调用login方法来验证是否是注册用户
boolean loginType = adminService.login(admin.getName(),admin.getPwd()); if(loginType){ //如果验证通过,则将用户信息传到前台
request.setAttribute("admin",admin);
session.setAttribute("admin_session",admin); //并跳转到success.jsp页面
return "/admin/main";
}else{ //若不对,则返回
request.setAttribute("message","用户名密码错误"); return "/admin/index";
}
} //登出,地址/admin/logout
public String logout(HttpSession session){ //清除session
session.removeAttribute("admin_session"); //重定向到登录页面的跳转方法
return "/admin/index";
}
}
package com.example.meal_ordering_system.controller;import com.example.meal_ordering_system.entity.Users;import com.example.meal_ordering_system.service.UsersService;import org.apache.ibatis.annotations.Param;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.beans.factory.annotation.Qualifier;import org.springframework.context.annotation.Scope;import org.springframework.stereotype.Controller;import org.springframework.ui.Model;import org.springframework.web.bind.annotation.GetMapping;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RestController;import javax.annotation.Resource;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import javax.servlet.http.HttpSession;import java.util.Random;import java.util.UUID;/**
* (Users)表控制层
*
* @author znz
* @since 2021-02-04 12:51:21
*/public class UsersController { /**
* 服务对象
*/
private UsersService usersService; /**
* 通过主键查询单条数据
*
* @param id 主键
* @return 单条数据
*/
("queryById") public Users queryById(Integer id) { return this.usersService.queryById(id);
} /**
* 登录方法
* @param user
* @param request
* @return
*/
public String login(Users user, HttpServletRequest request){ boolean loginType=usersService.login(user.getName(), user.getPwd());
HttpSession session=request.getSession(); if(loginType){
session.setAttribute("user_session",usersService.queryById(usersService.queryByname(user.getName()))); return "redirect:/menus/qiantai/allMenus";
}else{
session.setAttribute("message","用户名密码错误"); return "qiantai/userLoginFail";
}
} //登出,地址/users/logout
public String logout(String type,HttpSession session){ //清除session
session.removeAttribute("user_session"); if(type!=null&&type.equals("qiantai")){ return "redirect:/menus/qiantai/allMenus";
}else { //重定向到登录页面的跳转方法
return "/admin/index";
}
}
public String insert({
Users user= String name, String pwd, String realname, String sex, Integer age, String card, String address, String phone, String email, String code, Integer type)new Users(name,pwd,realname,sex,age,card,address,phone,email,code,type);
usersService.insert(user); return "redirect:../public/qiantai/login.jsp";
}
public String update(HttpSession session,{
Users user= Integer id, String name, String pwd, String realname, String sex, Integer age, String card, String address, String phone, String email, String code, Integer type)new Users(id,name,pwd,realname,sex,age,card,address,phone,email,code,type);
usersService.update(user);
session.removeAttribute("user_session"); return "redirect:/users/login";
}
}
package com.example.meal_ordering_system.controller;import com.example.meal_ordering_system.entity.*;import com.example.meal_ordering_system.service.MenusService;import com.example.meal_ordering_system.service.OrdersService;import com.example.meal_ordering_system.service.UsersService;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.beans.factory.annotation.Qualifier;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestMethod;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpSession;import java.io.UnsupportedEncodingException;import java.text.SimpleDateFormat;import java.util.ArrayList;import java.util.Date;import java.util.List;/**
* (Orders)表控制层
*
* @author znz
* @since 2021-02-04 12:51:20
*/public class OrdersController { /**
* 服务对象
*/
private OrdersService ordersService;
private MenusService menusService;
private UsersService usersService; //获取全部订单信息
public String ordergetall( HttpServletRequest request) { //传给前端
Pages page1=null; //总页面
Integer totalCount=null; //当前页面
String currentpages="1"; //获取上一页还是下一页标识
String s=""; //数据库操作页面
String pagess="1"; //前端页面总数
Integer allpage=null; //如果不为空则获取currentpage
if(request.getParameter("currentpage")!=null){
currentpages=request.getParameter("currentpage");
totalCount= ordersService.pageCount();
allpage=totalCount/5; if(totalCount%5!=0){
allpage++;
} if(Integer.parseInt(currentpages)<=0){
currentpages="1";
} if(Integer.parseInt(currentpages)>allpage){
currentpages=""+allpage;
} //设置pagess的值
if(request.getParameter("s")!=null){
s=request.getParameter("s"); if(s.equals("up")){
pagess=""+(Integer.parseInt(currentpages)-4);
}else if(s.equals("down")){
pagess=""+((Integer.parseInt(currentpages)-1)*5-1);
}else if (s.equals("first")){
pagess="0";
}else if(s.equals("last")){
pagess=""+(totalCount-(totalCount%5)-1);
}else {
System.out.println("错误");
}
}
page1=new Pages(currentpages,allpage);
request.setAttribute("pages",page1);
}else{
totalCount= ordersService.pageCount();
allpage=totalCount/5; if(ordersService.pageCount()%5!=0){
allpage++;
}
page1=new Pages("1", allpage);
request.setAttribute("pages",page1);
} //判断操作数据库页面是否突破限制
if(Integer.parseInt(pagess)<=0){
pagess="0";
} if(Integer.parseInt(pagess)>totalCount){
pagess=""+(totalCount-(totalCount%5)-1);
}
List<Orders> list= ordersService.pageList(Integer.parseInt(pagess),5);
request.setAttribute("list",list);
System.out.println("pagess="+pagess);
System.out.println("currentpages="+currentpages); return "/admin/order";
} //确认订单 确认则将deliverys设置为一否则删除
public String OrderComfirm( HttpServletRequest request){ int id=Integer.parseInt(request.getParameter("id"));
String reqtype=request.getParameter("reqtype"); if(reqtype.equals("delivery")){
ordersService.updatedeliveryById(id);
}else if(reqtype.equals("del")){
ordersService.deleteById(id);
}else{
System.out.println("错误");
} return "redirect:/orders/ordergetall";
}
public String order_search( HttpServletRequest request) { return "/admin/order_search";
}
public String ordergetallbydelivery(HttpServletRequest request){
String delivery=request.getParameter("delivery");
Integer d=Integer.parseInt(delivery);
List<Orders> list=ordersService.pageListByDelivery(d);
HttpSession session=request.getSession();
session.setAttribute("ordersearch", list); return "/qiantai/order";
}
public String order_qiantai( HttpServletRequest request) throws UnsupportedEncodingException {
List<Orders> list=null;
HttpSession session=request.getSession();
request.setCharacterEncoding("utf-8");
Integer id=null;
String menuname=null;
String day1=null; if(request.getParameter("menuname")!=null&&(!request.getParameter("menuname").equals(""))){
menuname=request.getParameter("menuname");
list=ordersService.pageListByMenue(menuname);
}else if(request.getParameter("date")!=null&&(!request.getParameter("date").equals(""))){
day1=request.getParameter("date");
Integer a=Integer.parseInt(day1.substring(9,10));
String aa=""+(a+1);
StringBuilder day=new StringBuilder(day1);
day.replace(9,10,aa);
String day2=day.toString();
list=ordersService.pageListByDate(day1,day2);
}else {
System.out.println("未提交");
}
session.setAttribute("ordersearch", list);
System.out.println(id);
System.out.println(menuname);
System.out.println(day1); return "/qiantai/order";
}
public String order_searchs( HttpServletRequest request) throws UnsupportedEncodingException {
List<Orders> list=null;
HttpSession session=request.getSession();
request.setCharacterEncoding("utf-8");
Integer id=null;
String menuname=null;
String day1=null; if(request.getParameter("userid")!=null&&(!request.getParameter("userid").equals(""))){
id=Integer.parseInt(request.getParameter("userid"));
list=ordersService.pageListByID(id);
}else if(request.getParameter("menuname")!=null&&(!request.getParameter("menuname").equals(""))){
menuname=request.getParameter("menuname");
list=ordersService.pageListByMenue(menuname);
}else if(request.getParameter("date")!=null&&(!request.getParameter("date").equals(""))){
day1=request.getParameter("date");
Integer a=Integer.parseInt(day1.substring(9,10));
String aa=""+(a+1);
StringBuilder day=new StringBuilder(day1);
day.replace(9,10,aa);
String day2=day.toString();
list=ordersService.pageListByDate(day1,day2);
}else {
System.out.println("未提交");
}
session.setAttribute("ordersearch", list);
System.out.println(id);
System.out.println(menuname);
System.out.println(day1); return "/admin/order_search";
} //跳转到statistic页面
public String order_statistic( HttpServletRequest request) throws UnsupportedEncodingException {
List<Orders> list=null;
HttpSession session=request.getSession();
request.setCharacterEncoding("utf-8");
SimpleDateFormat formatter= new SimpleDateFormat("yyyy-MM-dd"); Date date = new Date(System.currentTimeMillis());
String day1=formatter.format(date);
Integer a=Integer.parseInt(day1.substring(9,10));
String aa=""+(a+1);
StringBuilder day=new StringBuilder(day1);
day.replace(9,10,aa);
String day2=day.toString();
System.out.println(a);
System.out.println(day1);
System.out.println(day2);
list=ordersService.pageListByDate(day1,day2);
session.setAttribute("orderstatistic", list); return "/admin/order_statistic";
}
public String orderqiantai( HttpServletRequest request){ return "/qiantai/order";
} //放入购物车
public String order_addshoppingcar(HttpServletRequest request){
HttpSession session=request.getSession(); String menuId = request.getParameter("menuId");
Integer id=Integer.parseInt(menuId);
Integer sum=(Integer) session.getAttribute("sum"); if(sum==null){
sum=1;
session.setAttribute("sum",sum);
} Menus menus = menusService.queryById(id);
String name=menus.getName(); float price=menus.getPrice1();
ShoppingCart shoppingCart1=new ShoppingCart(id,name,price,sum);
List<ShoppingCart> shoppingCarts=new ArrayList(); if(session.getAttribute("shoppingcar")!=null){
shoppingCarts=(List<ShoppingCart>)session.getAttribute("shoppingcar"); for (ShoppingCart shoppingCart:shoppingCarts) { if(name.equals(shoppingCart.getName())){
sum=shoppingCart.getSums()+1;
shoppingCarts.remove(shoppingCart); break;
}
}
shoppingCart1=new ShoppingCart(id,name,price,sum);
shoppingCarts.add(shoppingCart1);
session.setAttribute("shoppingcar",shoppingCarts);
}else{
shoppingCart1=new ShoppingCart(id,name,price,sum);
shoppingCarts.add(shoppingCart1);
session.setAttribute("shoppingcar",shoppingCarts);
} return "redirect:/menus/qiantai/allMenus";
} //购物车单个取消
public String order_shoppingcardel(HttpServletRequest request){
HttpSession session=request.getSession();
List<ShoppingCart> shoppingCarts=(List<ShoppingCart>)session.getAttribute("shoppingcar");
Integer id=Integer.parseInt(request.getParameter("del"));
Integer i=0; for (ShoppingCart shoppingCart:shoppingCarts) { if(i.equals(id)){
shoppingCarts.remove(shoppingCart); break;
}
i++;
} return "redirect:/menus/qiantai/allMenus";
}
//提交或取消订单
public String order_addshoppingcartoOrder(HttpServletRequest request) {
HttpSession session=request.getSession();
List<ShoppingCart> shoppingCarts=(List<ShoppingCart>)session.getAttribute("shoppingcar"); if(session.getAttribute("user_session")!=null) { Users user = (Users) session.getAttribute("user_session"); Integer userid = usersService.queryByname(user.getName()); Integer delivery = 0; String remove = request.getParameter("remove"); SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date date = new Date(System.currentTimeMillis()); String day = formatter.format(date); Integer id = null; if (shoppingCarts != null) { for (ShoppingCart shoppingCart : shoppingCarts) { Integer sums = shoppingCart.getSums(); Integer menuid = shoppingCart.getId(); Orders orders = new Orders(id, userid, menuid, sums, day, delivery);
ordersService.insert(orders);
}
session.removeAttribute("shoppingcar");
} if(remove!=null) { if (remove.equals("1")) {
session.removeAttribute("shoppingcar");
}
}
}else{ return "redirect:../public/qiantai/login.jsp";
} return "redirect:/menus/qiantai/allMenus";
}
}