基于 SpringBoot + MyBatis 实现点餐系统

点餐系统的实现页面详情
1.管理员登录页面
在这里插入图片描述
2.管理员菜品页
在这里插入图片描述
3.管理员查看订单页
在这里插入图片描述
4.订单详情页
在这里插入图片描述

5.普通用户页面

在这里插入图片描述
6.普通用户下单页面
在这里插入图片描述
7.普通用户订单页面
在这里插入图片描述

1.创建数据库和表

CREATE DATABASE IF NOT EXISTS ordersysdb CHARACTER SET utf8;

USE ordersysdb;
#创建用户表
CREATE TABLE userinfo
(
   id                   INT NOT NULL AUTO_INCREMENT,
   username             VARCHAR(250),
   PASSWORD             VARCHAR(50),
   isadmin              INT COMMENT '0=顾客;1=商家',
   PRIMARY KEY (id)
);

#创建菜品表
CREATE TABLE dish(
   id                   INT NOT NULL AUTO_INCREMENT,
   NAME                 VARCHAR(250) NOT NULL,
   price                DECIMAL(0) NOT NULL,
   PRIMARY KEY (id)
);

#创建订单表
CREATE TABLE orderinfo
(
   id                   INT NOT NULL AUTO_INCREMENT,
   uid                  INT,
   createtime           DATETIME DEFAULT NOW(),
   STATUS               INT COMMENT '0=未完成;1=已完成',
   PRIMARY KEY (id)
);

#创建订单详情表
CREATE TABLE orderdetail(
   did                  INT NOT NULL,
   oid                  INT NOT NULL
);

2.创建项目
2.1添加引用
在这里插入图片描述
2.2 配置mysql数据库连接

spring.datasource.url=jdbc:mysql://127.0.0.1:3306/ordersysdb?characterEncoding=utf8&&useSSL=true
spring.datasource.username=root
spring.datasource.password=111111
spring.datasource.driver-class-name=com.mysql.jdbc.Driver

2.3 配置MyBatis 的xml的路径

mybatis.mapper-locations=classpath:mybatis/**Mapper.xml

在这里插入图片描述

3.创建实体类
在这里插入图片描述
4.实现详情(controller层)
4.1 用户信息操作

@RestController
@RequestMapping("/user")
public class UserInfoController {
    @Resource
    private UserMapper userMapper;
    /**
     * 用户注册
     */
    @RequestMapping("/reg")
    public ResponseBody<Integer> register(UserInfo userInfo) {
        int data = userMapper.register(userInfo);
        return new ResponseBody<>(0,"",data);
    }

    /**
     * 用户登录
     */
    @RequestMapping("/login")
    public ResponseBody<UserInfo> login(UserInfo userInfo,HttpServletRequest request) {
        UserInfo user = userMapper.login(userInfo);
        if (user != null && user.getId() > 0) {
            //登录成功
            HttpSession session = request.getSession();
            session.setAttribute(AppFinal.USERINFO_SESSION_KEY,user);
        }
        return new ResponseBody<>(0,"",user);
    }

    /**
     * 判断是否为登录状态
     */
    @RequestMapping("/islogin")
    public ResponseBody<UserInfo> isLogin(HttpServletRequest request) {
        UserInfo userInfo = null;
        HttpSession session = request.getSession(false);
        if (session != null && session.getAttribute(AppFinal.USERINFO_SESSION_KEY) != null) {
            userInfo = (UserInfo) session.getAttribute(AppFinal.USERINFO_SESSION_KEY);
        }
        return new ResponseBody<>(0,"",userInfo);
    }

    /**
     * 退出操作
     * @param request
     * @return
     */
    @RequestMapping("/logout")
    public ResponseBody<Integer> loGout(HttpServletRequest request){
        int data = 0;
        HttpSession session = request.getSession(false);
        if (session != null && (session.getAttribute(AppFinal.USERINFO_SESSION_KEY))!=null) {
            session.removeAttribute(AppFinal.USERINFO_SESSION_KEY);
            data = 1;
        }
        return new ResponseBody<>(0,"",data);
    }
}

4.2 菜品操作

@RestController
@RequestMapping("/dish")
public class DishController {
    @Resource
    private DishMapper dishMapper;

    /**
     * 得到菜品列表
     */
    @RequestMapping("/getlist")
    public ResponseBody<List<Dish>> getDishesList() {
        List<Dish> list = dishMapper.getAllList();
        return new ResponseBody<>(0,"",list);
    }

    /**
     * 删除单条菜品
     */
    @RequestMapping("/del")
    public ResponseBody<Integer> del(int id) {
        int data = 0;
        data = dishMapper.del(id);
        return new ResponseBody<>(0,"",data);
    }

    /**
     * 新增菜品
     */
    @RequestMapping("/add")
    public ResponseBody<Integer> add(String name, BigDecimal price) {
        int data = 0;
        data = dishMapper.add(name,price);
        return new ResponseBody<>(0,"",data);
    }
}

4.3 订单操作

public class OrderInfoController {

    @Resource
    public OrderInfoMapper orderInfoMapper;

    @Resource
    public OrderDetailMapper orderDetailMapper;

    @RequestMapping("/add")
    public ResponseBody<Integer> add(String dids, HttpServletRequest request) {
        int data = 0;
        HttpSession session = request.getSession(false);
        if (session != null && session.getAttribute(AppFinal.USERINFO_SESSION_KEY) != null) {
            //得到uid,存储订单列表
            int uid = ((UserInfo)session.getAttribute(AppFinal.USERINFO_SESSION_KEY)).getId();
            //将uid和status两个属性存储进订单表中,拿到订单表的订单主键
            OrderInfo orderInfo = new OrderInfo();
            orderInfo.setUid(uid);
            int oid = orderInfoMapper.add(orderInfo);
            if (oid > 0) {
                //将oid和菜品id存入订单详情表中
                data = orderDetailMapper.add(orderInfo.getId(), dids.split(","));
            }
        }
        return new ResponseBody<>(0,"",data);
    }

    /**
     * 获得订单列表(某个人)
     */
    @RequestMapping("/getlist")
    public ResponseBody<List<OrderInfo>> getList(HttpServletRequest request) {
        List<OrderInfo> list = null;
        HttpSession session = request.getSession(false);
        if (session != null && session.getAttribute(AppFinal.USERINFO_SESSION_KEY) != null) {
            int uid = ((UserInfo)session.getAttribute(AppFinal.USERINFO_SESSION_KEY)).getId();
            list = orderInfoMapper.getList(uid);
        }
        return new ResponseBody<>(0,"",list);
    }

    /**
     * 获得所有的订单列表
     */
    @RequestMapping("/listall")
    public ResponseBody<List<OrderInfo>> getListAll() {
        List<OrderInfo> list = null;
        list = orderInfoMapper.getAllList();
        return new ResponseBody<>(0,"",list);
    }

    /**
     * 修改订单的状态
     */
    @RequestMapping("/upstatus")
    public ResponseBody<Integer> upStatus(int oid,int status) {
        int data = 0;
        data = orderInfoMapper.upStatus(oid,status);
        return new ResponseBody<>(0,"",data);
    }
}

4.4 订单详情操作

public class OrderDetailController {

    @Resource
    private OrderDetailMapper orderDetailMapper;

    /**
     * 得到关联用户的所有订单详情
     */

    @RequestMapping("/list")
    public ResponseBody<List<OrderDetail>> getList(int oid) {
        List<OrderDetail> list = orderDetailMapper.getList(oid);
        return new ResponseBody<>(0,"",list);
    }
}
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值