基于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";
        }
    }
}

目录
相关文章
|
18天前
|
SQL Java 数据库连接
对Spring、SpringMVC、MyBatis框架的介绍与解释
Spring 框架提供了全面的基础设施支持,Spring MVC 专注于 Web 层的开发,而 MyBatis 则是一个高效的持久层框架。这三个框架结合使用,可以显著提升 Java 企业级应用的开发效率和质量。通过理解它们的核心特性和使用方法,开发者可以更好地构建和维护复杂的应用程序。
108 29
|
27天前
|
前端开发 JavaScript Java
springboot图书馆管理系统前后端分离版本
springboot图书馆管理系统前后端分离版本
39 12
|
25天前
|
JavaScript NoSQL Java
基于SpringBoot+Vue实现的大学生就业服务平台设计与实现(系统源码+文档+数据库+部署等)
面向大学生毕业选题、开题、任务书、程序设计开发、论文辅导提供一站式服务。主要服务:程序设计开发、代码修改、成品部署、支持定制、论文辅导,助力毕设!
64 6
|
25天前
|
JavaScript Java 测试技术
基于Java+SpringBoot+Vue实现的车辆充电桩系统设计与实现(系统源码+文档+部署讲解等)
面向大学生毕业选题、开题、任务书、程序设计开发、论文辅导提供一站式服务。主要服务:程序设计开发、代码修改、成品部署、支持定制、论文辅导,助力毕设!
56 6
|
25天前
|
JavaScript NoSQL Java
基于SpringBoot+Vue的班级综合测评管理系统设计与实现(系统源码+文档+数据库+部署等)
✌免费选题、功能需求设计、任务书、开题报告、中期检查、程序功能实现、论文辅导、论文降重、答辩PPT辅导、会议视频一对一讲解代码等✌
40 4
|
25天前
|
JavaScript NoSQL Java
基于SpringBoot+Vue实现的大学生体质测试管理系统设计与实现(系统源码+文档+数据库+部署)
面向大学生毕业选题、开题、任务书、程序设计开发、论文辅导提供一站式服务。主要服务:程序设计开发、代码修改、成品部署、支持定制、论文辅导,助力毕设!
37 2
|
29天前
|
前端开发 Java 数据库连接
Java后端开发-使用springboot进行Mybatis连接数据库步骤
本文介绍了使用Java和IDEA进行数据库操作的详细步骤,涵盖从数据库准备到测试类编写及运行的全过程。主要内容包括: 1. **数据库准备**:创建数据库和表。 2. **查询数据库**:验证数据库是否可用。 3. **IDEA代码配置**:构建实体类并配置数据库连接。 4. **测试类编写**:编写并运行测试类以确保一切正常。
54 2
|
1月前
|
SQL JavaScript Java
Spring Boot 3 整合 Mybatis-Plus 实现数据权限控制
本文介绍了如何在Spring Boot 3中整合MyBatis-Plus实现数据权限控制,通过使用MyBatis-Plus提供的`DataPermissionInterceptor`插件,在不破坏原有代码结构的基础上实现了细粒度的数据访问控制。文中详细描述了自定义注解`DataScope`的使用方法、`DataPermissionHandler`的具体实现逻辑,以及根据用户的不同角色和部门动态添加SQL片段来限制查询结果。此外,还展示了基于Spring Boot 3和Vue 3构建的前后端分离快速开发框架的实际应用案例,包括项目的核心功能模块如用户管理、角色管理等,并提供Gitee上的开源仓库
242 11
|
1月前
|
存储 安全 Java
Spring Boot 3 集成Spring AOP实现系统日志记录
本文介绍了如何在Spring Boot 3中集成Spring AOP实现系统日志记录功能。通过定义`SysLog`注解和配置相应的AOP切面,可以在方法执行前后自动记录日志信息,包括操作的开始时间、结束时间、请求参数、返回结果、异常信息等,并将这些信息保存到数据库中。此外,还使用了`ThreadLocal`变量来存储每个线程独立的日志数据,确保线程安全。文中还展示了项目实战中的部分代码片段,以及基于Spring Boot 3 + Vue 3构建的快速开发框架的简介与内置功能列表。此框架结合了当前主流技术栈,提供了用户管理、权限控制、接口文档自动生成等多项实用特性。
82 8
|
25天前
|
JavaScript NoSQL Java
基于SpringBoot+Vue实现的冬奥会科普平台设计与实现(系统源码+文档+数据库+部署)
面向大学生毕业选题、开题、任务书、程序设计开发、论文辅导提供一站式服务。主要服务:程序设计开发、代码修改、成品部署、支持定制、论文辅导,助力毕设!
43 0

热门文章

最新文章