基于SpringBoot+MyBatis的餐饮点餐系统

简介: 本文介绍了一个基于SpringBoot和MyBatis开发的餐饮点餐系统,包括系统的主控制器`IndexController`的代码实现,该控制器负责处理首页、点餐、登录、注册、订单管理等功能,适用于毕业设计项目。

基于SpringBoot+MyBatis的餐饮点餐系统,适用于毕业设计。

package com.example.zxdmeal.controller;

import com.alibaba.fastjson.JSONObject;
import com.example.zxdmeal.model.*;
import com.example.zxdmeal.service.IndexService;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import java.sql.Timestamp;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;

@Controller
@RequestMapping("/Home")
public class IndexController {
   
   
    @Autowired
    private IndexService indexService;

    /**
     * 跳转首页
     */
    @RequestMapping("/")
    public String home (Model model){
   
   
        return "redirect:/Home/index";
    }

    /**
     * 跳转首页
     */
    @RequestMapping("/index")
    public String index (Model model){
   
   
        List<Desk> deskList = indexService.getDeskList();
        model.addAttribute("deskList",deskList);
        return "home/index";
    }

    /**
     * 跳转点餐
     */
    @RequestMapping("/desk")
    public String desk (Model model, HttpServletRequest request,HttpSession session){
   
   
        User user = (User) session.getAttribute("user");
        int id = Integer.parseInt(request.getParameter("id"));
        if (user!=null){
   
   
            if (id>0){
   
   
                Desk desk = indexService.getDeskById(id);
                List<Catalog> catalogList = indexService.getCatalogList();
                ArrayList<List<Product>> productLists = new ArrayList<>();
                for (int i = 0;i<catalogList.size();i++){
   
   
                    List<Product> productList = indexService.getProductListByCatalog(catalogList.get(i).getTypename());
                    productLists.add(productList);
                }
                model.addAttribute("deskid",id);
                model.addAttribute("desk",desk);
                model.addAttribute("catalogList",catalogList);
                model.addAttribute("productLists",productLists);
                return "home/desk";
            }else{
   
   
                return "redirect:/Home/index";
            }
        }else{
   
   
            return "redirect:/Home/loginAndRegist?deskid="+id;
        }

    }

    /**
     * 去登录注册页面
     */
    @RequestMapping("/loginAndRegist")
    public String loginAndRegist() {
   
   
        return "home/loginAndRegist";
    }

    /**
     * 登录方法
     */
    @ResponseBody
    @RequestMapping(value = "/loginAction",method = RequestMethod.POST)
    public JSONObject loginAction(@RequestBody String request, HttpSession session) {
   
   
        JSONObject jsonObject = JSONObject.parseObject(request);
        Map<String,Object> map = (Map<String,Object>)jsonObject;
        String userName = String.valueOf(map.get("userName"));
        String password = String.valueOf(map.get("password"));
        User user = new User();
        user = indexService.LoginAction(userName,password);
        if (user!=null){
   
   
            session.setAttribute("user",user);
            System.out.println(user);
            jsonObject.put("status", "success");
        }else{
   
   
            jsonObject.put("status", "fail");
        }
        return jsonObject;
    }

    /**
     * 退出登录方法
     */
    @RequestMapping("/loginOut")
    public String loginOut(HttpSession session){
   
   
        session.removeAttribute("user");
        return "redirect:/Home/index";
    }

    /**
     * 注册方法
     */
    @ResponseBody
    @RequestMapping(value = "/registAction",method = RequestMethod.POST)
    public JSONObject registAction(@RequestBody String request, HttpSession session){
   
   
        JSONObject jsonObject = JSONObject.parseObject(request);
        Map<String,Object> map = (Map<String,Object>)jsonObject;
        String username = String.valueOf(map.get("username"));
        String password = String.valueOf(map.get("password"));
        String email = String.valueOf(map.get("email"));
        User u = new User();
        u.setEmail(email);
        u.setUsername(username);
        u.setPassword(password);
        User u1 = indexService.getUserByUsername(username);
        System.out.println(u1);
        if (null == u1){
   
   
            try {
   
   
                int status = indexService.RegistAction(u);
                if(status>0){
   
   
                    jsonObject.put("status", "success");
                }else{
   
   
                    jsonObject.put("status", "fail");
                }
            }catch (Exception e){
   
   
                jsonObject.put("status", "fail");
            }
        }else{
   
   
            jsonObject.put("status", "redo");
        }
        return jsonObject;
    }

    /**
     * 购买
     */
    @ResponseBody
    @RequestMapping(value = "/buy",method = RequestMethod.POST)
    public JSONObject buy(@RequestBody String request, HttpSession session) {
   
   
        User user = (User) session.getAttribute("user");
        JSONObject jsonObject = JSONObject.parseObject(request);
        Map<String,Object> map = (Map<String,Object>)jsonObject;
        int userid = Integer.parseInt(String.valueOf(map.get("userid")));
        int deskid = Integer.parseInt(String.valueOf(map.get("deskid")));
        int sum = Integer.parseInt(String.valueOf(map.get("sum")));
        String items = String.valueOf(map.get("items"));
        Timestamp ts=new Timestamp(new Date().getTime());
        Orders orders = new Orders();
        orders.setCreateat(ts);
        orders.setUserid(userid);
        orders.setDeskid(deskid);
        orders.setItems(items);
        orders.setSum(sum);
        orders.setStatus(0);
        if (user!=null){
   
   
            Desk desk_usess = indexService.getDeskByIdUess(deskid);
            if (desk_usess != null){
   
   
                try {
   
   
                    System.out.println(indexService.buy(orders));
                    System.out.println(indexService.updateDesk(deskid));
                    jsonObject.put("status", "success");
                }catch (Exception e){
   
   
                    jsonObject.put("status", "fail");
                }
            }else{
   
   
                jsonObject.put("status", "redo");
            }
        }else{
   
   
            jsonObject.put("status", "unlogin");
        }
        return jsonObject;
    }

    @RequestMapping("/myorders")
    public String myorders (HttpServletRequest request, HttpSession session, @RequestParam(defaultValue = "1") int pageNo, @RequestParam(defaultValue = "10") int pageSize, Model model){
   
   
        User user = (User) session.getAttribute("user");
        if (user!=null){
   
   
            PageHelper.startPage(pageNo,pageSize);
            PageInfo<Map<String, Object>> pageInfo = new PageInfo<>(indexService.getOrdersByUserid(user.getId()));
            System.out.println(pageInfo);
            model.addAttribute(pageInfo);
            return "home/myorders";
        }else{
   
   
            return "redirect:/Home/loginAndRegist";
        }
    }

    /**
     * 订单详情
     */
    @RequestMapping("/myordersdetail")
    public String myordersdetail(HttpSession session,HttpServletRequest request,Model model){
   
   
        int id = Integer.parseInt(request.getParameter("id"));
        User user = (User) session.getAttribute("user");
        if (user!=null){
   
   
            Orders orders = indexService.myordersdetail(id);

            ArrayList ordersList = new ArrayList<>();

            String[] itemsLists = orders.getItems().split(";");
            for (int i = 0;i<itemsLists.length;i++){
   
   
                String itemsList = itemsLists[i];
                String[] items = itemsList.split(":");
                Item item = new Item();
                item.setPic(items[4]);
                item.setPrice(Integer.parseInt(items[3]));
                item.setNum(Integer.parseInt(items[2]));
                item.setTitle(items[1]);
                item.setId(Integer.parseInt(items[0]));
                System.out.println(item);
                ordersList.add(item);
            }

            model.addAttribute("orders",orders);
            model.addAttribute("ordersList",ordersList);
            return "home/myorders_detail";
        }else {
   
   
            return "redirect:/Home/loginAndRegist";
        }
    }

    /**
     * 查看用户
     */
    @RequestMapping("/myinfo")
    public String myinfo(HttpServletRequest request,HttpSession session, Model model){
   
   
        User user = (User) session.getAttribute("user");
        if (user==null){
   
   
            return "redirect:/Home/loginAndRegist";
        }
        if (user!=null){
   
   
            return "home/user_info";
        }else{
   
   
            return "redirect:/Home/loginAndRegist";
        }
    }

    /**
     * 修改用户信息
     */
    @RequestMapping("/myinfoAction")
    public String myinfoAction(HttpServletRequest request,HttpSession session, Model model){
   
   
        User user = (User) session.getAttribute("user");
        String email = request.getParameter("email");
        String password = request.getParameter("password");
        String truename = request.getParameter("truename");
        String sex = request.getParameter("sex");
        if (user==null){
   
   
            return "redirect:/Home/loginAndRegist";
        }
        if (user!=null){
   
   
            User u1 = new User();
            u1.setId(user.getId());
            u1.setPassword(password);
            u1.setEmail(email);
            u1.setTruename(truename);
            u1.setSex(sex);
            User u2 = new User();
            System.out.println(indexService.myinfoAction(u1));
            u2 = indexService.getUserById(user.getId());
            session.removeAttribute("user");
            session.setAttribute("user",u2);
            return "redirect:/Home/myorders";
        }else{
   
   
            return "redirect:/Home/loginAndRegist";
        }
    }
}

目录
相关文章
|
25天前
|
缓存 Java 数据库连接
深入探讨:Spring与MyBatis中的连接池与缓存机制
Spring 与 MyBatis 提供了强大的连接池和缓存机制,通过合理配置和使用这些机制,可以显著提升应用的性能和可扩展性。连接池通过复用数据库连接减少了连接创建和销毁的开销,而 MyBatis 的一级缓存和二级缓存则通过缓存查询结果减少了数据库访问次数。在实际应用中,结合具体的业务需求和系统架构,优化连接池和缓存的配置,是提升系统性能的重要手段。
40 4
|
25天前
|
SQL Java 数据库连接
spring和Mybatis的各种查询
Spring 和 MyBatis 的结合使得数据访问层的开发变得更加简洁和高效。通过以上各种查询操作的详细讲解,我们可以看到 MyBatis 在处理简单查询、条件查询、分页查询、联合查询和动态 SQL 查询方面的强大功能。熟练掌握这些操作,可以极大提升开发效率和代码质量。
38 3
|
1月前
|
Java 数据库连接 数据库
spring和Mybatis的逆向工程
通过本文的介绍,我们了解了如何使用Spring和MyBatis进行逆向工程,包括环境配置、MyBatis Generator配置、Spring和MyBatis整合以及业务逻辑的编写。逆向工程极大地提高了开发效率,减少了重复劳动,保证了代码的一致性和可维护性。希望这篇文章能帮助你在项目中高效地使用Spring和MyBatis。
23 1
|
1月前
|
XML Java 数据库连接
SpringBoot集成Flowable:打造强大的工作流管理系统
在企业级应用开发中,工作流管理是一个核心组件,它能够帮助我们定义、执行和管理业务流程。Flowable是一个开源的工作流和业务流程管理(BPM)平台,它提供了强大的工作流引擎和建模工具。结合SpringBoot,我们可以快速构建一个高效、灵活的工作流管理系统。本文将探讨如何将Flowable集成到SpringBoot应用中,并展示其强大的功能。
233 1
|
2月前
|
Java 数据库连接 Maven
mybatis使用一:springboot整合mybatis、mybatis generator,使用逆向工程生成java代码。
这篇文章介绍了如何在Spring Boot项目中整合MyBatis和MyBatis Generator,使用逆向工程来自动生成Java代码,包括实体类、Mapper文件和Example文件,以提高开发效率。
148 2
mybatis使用一:springboot整合mybatis、mybatis generator,使用逆向工程生成java代码。
|
2月前
|
SQL JSON Java
mybatis使用三:springboot整合mybatis,使用PageHelper 进行分页操作,并整合swagger2。使用正规的开发模式:定义统一的数据返回格式和请求模块
这篇文章介绍了如何在Spring Boot项目中整合MyBatis和PageHelper进行分页操作,并且集成Swagger2来生成API文档,同时定义了统一的数据返回格式和请求模块。
78 1
mybatis使用三:springboot整合mybatis,使用PageHelper 进行分页操作,并整合swagger2。使用正规的开发模式:定义统一的数据返回格式和请求模块
|
1月前
|
JavaScript Java 项目管理
Java毕设学习 基于SpringBoot + Vue 的医院管理系统 持续给大家寻找Java毕设学习项目(附源码)
基于SpringBoot + Vue的医院管理系统,涵盖医院、患者、挂号、药物、检查、病床、排班管理和数据分析等功能。开发工具为IDEA和HBuilder X,环境需配置jdk8、Node.js14、MySQL8。文末提供源码下载链接。
|
2月前
|
存储 安全 Java
打造智能合同管理系统:SpringBoot与电子签章的完美融合
【10月更文挑战第7天】 在数字化转型的浪潮中,电子合同管理系统因其高效、环保和安全的特点,正逐渐成为企业合同管理的新宠。本文将分享如何利用SpringBoot框架实现一个集电子文件签字与合同管理于一体的智能系统,探索技术如何助力合同管理的现代化。
115 4
|
2月前
|
前端开发 Java Apache
SpringBoot实现电子文件签字+合同系统!
【10月更文挑战第15天】 在现代企业运营中,合同管理和电子文件签字成为了日常活动中不可或缺的一部分。随着技术的发展,电子合同系统因其高效性、安全性和环保性,逐渐取代了传统的纸质合同。本文将详细介绍如何使用SpringBoot框架实现一个电子文件签字和合同管理系统。
114 1
|
2月前
|
文字识别 安全 Java
SpringBoot3.x和OCR构建车牌识别系统
本文介绍了一个基于Java SpringBoot3.x框架的车牌识别系统,详细阐述了系统的设计目标、需求分析及其实现过程。利用Tesseract OCR库和OpenCV库,实现了车牌图片的识别与处理,确保系统的高准确性和稳定性。文中还提供了具体的代码示例,展示了如何构建和优化车牌识别服务,以及如何处理特殊和异常车牌。通过实际应用案例,帮助读者理解和应用这一解决方案。