Java毕业设计点餐平台基于ssm+springboot+mybatisplus

简介

这是一个用于毕业设计的点餐平台,完全免费开源。编程不易,希望大家多多star。

后台管理页面展示

 前台页面展示

1.登录

代码

@PostMapping("/login")
    public R<User> login(@RequestBody Map map, HttpSession session){
        // 1.获取手机号和验证码
        String phone = map.get("phone").toString();
        String code = map.get("code").toString();
        // 判断验证码是否过期
        LocalDateTime nowTime = LocalDateTime.now();
        LocalDateTime oldTime = (LocalDateTime) session.getAttribute("now");

            if (oldTime !=null && nowTime.toEpochSecond(ZoneOffset.of("+8")) - oldTime.toEpochSecond(ZoneOffset.of("+8")) > 60) {
                // 验证码过期
                return R.error("验证码已经过期!");
            }


        // 2. 获取session中保存的验证码
        Object SessionSavedCode = session.getAttribute("code");
        // 3.比对提交的验证码和session中验证码比对
        if (SessionSavedCode !=null && SessionSavedCode.equals(code)){
            // 登录成功
            // 4.如果比对成功判断手机号是否在用户表中,如果不在就直接加入用户表
            LambdaQueryWrapper<User> wrapper = new LambdaQueryWrapper();
            wrapper.eq(User::getPhone, phone);
            User user = userService.getOne(wrapper);
            if (user==null){
                user = new User(phone,phone);
                // 新用户保存进表
                userService.save(user);
            }
            session.setAttribute("user", user.getId());
            return R.success(user);
        }
    return R.error("登录失败验证码错误");

    }

2.登录成功主页面

 

代码

 @GetMapping("/list")
    public R<List<DishDto>> list (Dish dish){
        LambdaQueryWrapper<Dish> wrapper = new LambdaQueryWrapper<>();
        wrapper.eq(dish.getCategoryId() != null,Dish::getCategoryId,dish.getCategoryId());
        // 添加排序条件
        wrapper.orderByDesc(Dish::getSort);
        wrapper.eq(Dish::getStatus,1).eq(Dish::getIsDeleted,0);
        List<Dish> dishList = dishService.list(wrapper);
        List<DishDto> dtoList = null;
        dtoList = dishList.stream().map((item)->{
            DishDto dishDto = new DishDto();
            BeanUtils.copyProperties(item, dishDto);
            Long id = item.getId();// 拿到菜品id
            LambdaQueryWrapper<DishFlavor> wrapper1 = new LambdaQueryWrapper<>();
            wrapper1.eq(DishFlavor::getDishId,id);
             List<DishFlavor> list = dishFlavorService.list(wrapper1);// 通过菜品id查到对应的口味
             dishDto.setFlavors(list);
             return dishDto;
        }).collect(Collectors.toList());

        return R.success(dtoList);

 3.点菜下单

代码

 public void submit(Orders orders) {
        // 1.获取用户id
        long currentId = BaseContext.getCurrentId();
        // 2.查询用户购物车中的商品
        LambdaQueryWrapper<ShoppingCart> wrapper = new LambdaQueryWrapper<>();
        wrapper.eq(ShoppingCart::getUserId,currentId);
        List<ShoppingCart> list = shoopingCartService.list(wrapper);
        if (list == null || list.size() == 0) {
            throw new CustomException("购物车为空");
        }

        // 查询用户数据
        User user = userService.getById(currentId);
        // 查询地址信息
        AddressBook addressBook = addressBookService.getById(orders.getAddressBookId());
        if (addressBook == null) {
            throw new CustomException("地址信息为空");
        }
        // 3.向订单表插入数据,一条数据
        long orderId = IdWorker.getId();
        AtomicInteger amount = new AtomicInteger(0);// 用来计算累加总价

 4.支付成功生成订单

5.我的信息

总结

话不多说,直接来实际的。希望大家多多支持天枢工作室,多多点赞收藏

仓库地址:仓库 - 协助者-D (Yang_Pengasd) - Gitee.com

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值