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

我的餐車

訂單

用戶中心

會員登陸

會員注冊

后臺登陸

菜單管理

菜單類別管理

公告信息管理

訂單管理

信息修改

核心代碼
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
*/
@Controller
@RequestMapping("admin")
public class AdminController {
/**
* 服務(wù)對象
*/
//自動注入業(yè)務(wù)層的AdminService類
@Autowired
@Qualifier("adminService")
private AdminService adminService;
//修改管理員信息
@RequestMapping("update")
public String update(Admin admin) {
adminService.update(admin);
return "/admin/menus";
}
@RequestMapping(value = "/login",method = RequestMethod.GET)
public String toLogin(){
return "/admin/index";
}
//login業(yè)務(wù)的訪問位置為/admin/login
@RequestMapping(value = "/login",method = RequestMethod.POST)
public String login(Admin admin, HttpServletRequest request,HttpSession session){
//調(diào)用login方法來驗證是否是注冊用戶
boolean loginType = adminService.login(admin.getName(),admin.getPwd());
if(loginType){
//如果驗證通過,則將用戶信息傳到前臺
request.setAttribute("admin",admin);
session.setAttribute("admin_session",admin);
//并跳轉(zhuǎn)到success.jsp頁面
return "/admin/main";
}else{
//若不對,則返回
request.setAttribute("message","用戶名密碼錯誤");
return "/admin/index";
}
}
//登出,地址/admin/logout
@RequestMapping("logout")
public String logout(HttpSession session){
//清除session
session.removeAttribute("admin_session");
//重定向到登錄頁面的跳轉(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
*/
@Controller("usersController")
@RequestMapping("users")
@Scope("prototype")
public class UsersController {
/**
* 服務(wù)對象
*/
@Autowired
@Qualifier("usersService")
private UsersService usersService;
/**
* 通過主鍵查詢單條數(shù)據(jù)
*
* @param id 主鍵
* @return 單條數(shù)據(jù)
*/
@RequestMapping ("queryById")
public Users queryById(Integer id) {
return this.usersService.queryById(id);
}
/**
* 登錄方法
* @param user
* @param request
* @return
*/
@RequestMapping("login")
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
@RequestMapping("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 {
//重定向到登錄頁面的跳轉(zhuǎn)方法
return "/admin/index";
}
}
@RequestMapping("insert")
public String insert(@Param("name") String name,@Param("pwd") String pwd,@Param("realname") String realname,@Param("sex") String sex,@Param("age") Integer age,@Param("card") String card,@Param("address") String address,@Param("Phone") String phone,@Param("email")String email,@Param("code")String code,@Param("type")Integer type){
Users user=new Users(name,pwd,realname,sex,age,card,address,phone,email,code,type);
usersService.insert(user);
return "redirect:../public/qiantai/login.jsp";
}
@RequestMapping("update")
public String update(HttpSession session,@Param("id")Integer id,@Param("name") String name,@Param("pwd") String pwd,@Param("realname") String realname,@Param("sex") String sex,@Param("age") Integer age,@Param("card") String card,@Param("address") String address,@Param("Phone") String phone,@Param("email")String email,@Param("code")String code,@Param("type")Integer type){
Users user=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
*/
@Controller
@RequestMapping("orders")
public class OrdersController {
/**
* 服務(wù)對象
*/
@Autowired
@Qualifier("ordersService")
private OrdersService ordersService;
@Autowired
@Qualifier("menusService")
private MenusService menusService;
@Autowired
@Qualifier("usersService")
private UsersService usersService;
//獲取全部訂單信息
@RequestMapping("ordergetall")
public String ordergetall( HttpServletRequest request) {
//傳給前端
Pages page1=null;
//總頁面
Integer totalCount=null;
//當前頁面
String currentpages="1";
//獲取上一頁還是下一頁標識
String s="";
//數(shù)據(jù)庫操作頁面
String pagess="1";
//前端頁面總數(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("錯誤");
}
}
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ù)庫頁面是否突破限制
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設(shè)置為一否則刪除
@RequestMapping("OrderComfirm")
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";
}
@RequestMapping("order_search")
public String order_search( HttpServletRequest request) {
return "/admin/order_search";
}
@RequestMapping("ordergetallbydelivery")
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";
}
@RequestMapping(value="order_qiantai",method = RequestMethod.POST)
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";
}
@RequestMapping(value="order_searchs",method = RequestMethod.POST)
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頁面
@RequestMapping("order_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";
}
@RequestMapping("orderqiantai")
public String orderqiantai( HttpServletRequest request){
return "/qiantai/order";
}
//放入購物車
@RequestMapping("order_addshoppingcar")
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";
}
//購物車單個取消
@RequestMapping("order_shoppingcardel")
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";
}
@RequestMapping("order_addshoppingcartoOrder")
//提交或取消訂單
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";
}
}以上就是基于Java SSM實現(xiàn)在線點餐系統(tǒng)的詳細內(nèi)容,更多關(guān)于Java SSM在線點餐系統(tǒng)的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
SpringAOP切入點規(guī)范及獲取方法參數(shù)的實現(xiàn)
這篇文章主要介紹了SpringAOP切入點規(guī)范及獲取方法參數(shù),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-06-06
java基礎(chǔ)之TreeMap實現(xiàn)類全面詳解
這篇文章主要為大家介紹了java基礎(chǔ)之TreeMap實現(xiàn)類全面詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-12-12
SpringBoot定制三種錯誤頁面及錯誤數(shù)據(jù)方法示例
Spring Boot提供的默認異常處理機制通常并不一定適合我們實際的業(yè)務(wù)場景,因此,我們通常會根據(jù)自身的需要對Spring Boot全局異常進行統(tǒng)一定制,例如定制錯誤頁面,定制錯誤數(shù)據(jù)等。本文主要介紹了SpringBoot三種自定義錯誤頁面的實現(xiàn),快來學(xué)習(xí)吧2021-12-12
關(guān)于HashMap 并發(fā)時會引起死循環(huán)的問題解析
JDK1.8之前采用頭插,即在鏈表結(jié)構(gòu)上每次都把數(shù)據(jù)放在鏈表頭部。JDK1.8采用尾插方法,很多朋友在學(xué)習(xí)Java并發(fā)容器和框架時,看到為什么要使用ConcurrentHashMap時不知道究其原因,今天小編通過本文給大家介紹下HashMap 并發(fā)死循環(huán)問題,一起看看吧2021-05-05
全面解析Java支持的數(shù)據(jù)類型及Java的常量和變量類型
這篇文章主要介紹了Java支持的數(shù)據(jù)類型及Java的常量和變量類型,是Java入門學(xué)習(xí)中的基礎(chǔ)知識,需要的朋友可以參考下2016-02-02
Java Arrays.sort和Collections.sort排序?qū)崿F(xiàn)原理解析
這篇文章主要介紹了Java Arrays.sort和Collections.sort排序?qū)崿F(xiàn)原理解析,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-02-02

