|
|
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 makejava
|
|
|
* @since 2021-02-04 12:51:20
|
|
|
*/
|
|
|
@Controller
|
|
|
@RequestMapping("orders")
|
|
|
public class OrdersController {
|
|
|
/**
|
|
|
* 服务对象
|
|
|
*/
|
|
|
@Autowired
|
|
|
@Qualifier("ordersService")//指定注入名为orderService的Bean
|
|
|
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="";
|
|
|
|
|
|
//数据库操作页面
|
|
|
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{
|
|
|
//如果没有传递currentpage,默认第一页
|
|
|
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设置为一否则删除
|
|
|
@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);//将查询结果存入session,供前台页面使用
|
|
|
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();//获取session
|
|
|
request.setCharacterEncoding("utf-8");//设置请求编码为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";
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
//后台订单搜索(根据用户ID、菜单或日期)
|
|
|
@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";
|
|
|
}
|
|
|
|
|
|
//订单统计
|
|
|
@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();
|
|
|
//获取前端传递的菜单ID
|
|
|
String menuId = request.getParameter("menuId");
|
|
|
Integer id=Integer.parseInt(menuId);
|
|
|
//获取购物数量,默认为1
|
|
|
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();
|
|
|
//如果session中已有购物车
|
|
|
if(session.getAttribute("shoppingcar")!=null){
|
|
|
shoppingCarts=(List<ShoppingCart>)session.getAttribute("shoppingcar");
|
|
|
//遍历,判断是否有相同商品
|
|
|
for (ShoppingCart shoppingCart:shoppingCarts) {
|
|
|
if(name.equals(shoppingCart.getName())){
|
|
|
//如果有,数量加1,删除旧对象
|
|
|
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");
|
|
|
//判断用户是否已登录(session中是否有user_session)
|
|
|
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");//获取请求参数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";
|
|
|
}
|
|
|
|
|
|
} |