基于SSM實(shí)現(xiàn)在線點(diǎn)餐系統(tǒng)
?項(xiàng)目編號(hào):BS-PT-022
本項(xiàng)目基于SSM框架實(shí)現(xiàn)在線點(diǎn)餐系統(tǒng),主要實(shí)現(xiàn)系統(tǒng)的在線點(diǎn)餐功能。
開(kāi)發(fā)工具:IDEA/ECLIPSE
數(shù)據(jù)庫(kù):MYSQL5.7
后臺(tái)技術(shù):SSM
前臺(tái)技術(shù):CSS,JS,JSP
應(yīng)用服務(wù)器:TOMCAT8.5
下面展示一下系統(tǒng)功能:

我的餐車

訂單

用戶中心

會(huì)員登陸

會(huì)員注冊(cè)

后臺(tái)登陸

菜單管理

菜單類別管理

公告信息管理

訂單管理

信息修改

核心代碼:
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 { ? ?/**
? ? * 服務(wù)對(duì)象
? ? */
? ?//自動(dòng)注入業(yè)務(wù)層的AdminService類
? ?
? ?
? ?private AdminService adminService; ? ?//修改管理員信息
? ?
? ?public String update(Admin admin) {
? ? ? ?adminService.update(admin); ? ? ? ?return "/admin/menus";
? ?} ? ?
? ?public String toLogin(){ ? ? ? ?return ?"/admin/index";
? ?} ? ?//login業(yè)務(wù)的訪問(wèn)位置為/admin/login
? ?
? ?public String login(Admin admin, HttpServletRequest request,HttpSession session){ ? ? ? ?//調(diào)用login方法來(lái)驗(yàn)證是否是注冊(cè)用戶
? ? ? ?boolean loginType = adminService.login(admin.getName(),admin.getPwd()); ? ? ? ?if(loginType){ ? ? ? ? ? ?//如果驗(yàn)證通過(guò),則將用戶信息傳到前臺(tái)
? ? ? ? ? ?request.setAttribute("admin",admin);
? ? ? ? ? ?session.setAttribute("admin_session",admin); ? ? ? ? ? ?//并跳轉(zhuǎn)到success.jsp頁(yè)面
? ? ? ? ? ?return "/admin/main";
? ? ? ?}else{ ? ? ? ? ? ?//若不對(duì),則返回
? ? ? ? ? ?request.setAttribute("message","用戶名密碼錯(cuò)誤"); ? ? ? ? ? ?return "/admin/index";
? ? ? ?}
? ?} ? ?//登出,地址/admin/logout
? ?
? ?public String logout(HttpSession session){ ? ? ? ?//清除session
? ? ? ?session.removeAttribute("admin_session"); ? ? ? ?//重定向到登錄頁(yè)面的跳轉(zhuǎn)方法
? ? ? ?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 { ? ?/**
? ? * 服務(wù)對(duì)象
? ? */
? ?
? ?
? ?private UsersService usersService; ? ?/**
? ? * 通過(guò)主鍵查詢單條數(shù)據(jù)
? ? *
? ? * @param id 主鍵
? ? * @return 單條數(shù)據(jù)
? ? */
? ? ("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","用戶名密碼錯(cuò)誤"); ? ? ? ? ? ?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 { ? ? ? ? ? ?//重定向到登錄頁(yè)面的跳轉(zhuǎn)方法
? ? ? ? ? ?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 { ? ?/**
? ? * 服務(wù)對(duì)象
? ? */
? ?
? ?
? ?private OrdersService ordersService; ? ?
? ?
? ?private MenusService menusService; ? ?
? ?
? ? ?private UsersService usersService; ? ?//獲取全部訂單信息
? ?
? ?public String ordergetall( HttpServletRequest request) { ? ? ? ?//傳給前端
? ? ? ?Pages page1=null; ? ? ? ?//總頁(yè)面
? ? ? ?Integer totalCount=null; ? ? ? ?//當(dāng)前頁(yè)面
? ? ? ?String currentpages="1"; ? ? ? ?//獲取上一頁(yè)還是下一頁(yè)標(biāo)識(shí)
? ? ? ?String s=""; ? ? ? ?//數(shù)據(jù)庫(kù)操作頁(yè)面
? ? ? ?String pagess="1"; ? ? ? ?//前端頁(yè)面總數(shù)
? ? ? ?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;
? ? ? ? ? ?} ? ? ? ? ? ?//設(shè)置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("錯(cuò)誤");
? ? ? ? ? ? ? ?}
? ? ? ? ? ?}
? ? ? ? ? ?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);
? ? ? ?} ? ? ? ?//判斷操作數(shù)據(jù)庫(kù)頁(yè)面是否突破限制
? ? ? ?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";
? ?} ? ?//確認(rèn)訂單 確認(rèn)則將deliverys設(shè)置為一否則刪除
? ?
? ?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("錯(cuò)誤");
? ? ? ?} ? ? ? ?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";
? ?} ? ?//跳轉(zhuǎn)到statistic頁(yè)面
? ?
? ?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";
? ?} ? ?//放入購(gòu)物車
? ?
? ?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";
? ?} ? ?//購(gòu)物車單個(gè)取消
? ?
? ?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";
? ?}
}