今天依旧学习了黑马的瑞吉外卖,以下是我跟着视频学习写的代码,关于添加购物车和清空购物车:
@PostMapping("/add") public R<ShoppingCart> add(@RequestBody ShoppingCart shoppingCart){ //设置用户id,指定当前是哪个用户的购物车数据 Long currentId = BaseContext.getCurrentId(); shoppingCart.setUserId(currentId); //查询当前菜品或者套餐是否在购物车中 Long dishId = shoppingCart.getDishId(); LambdaQueryWrapper<ShoppingCart> lqw = new LambdaQueryWrapper<>(); lqw.eq(ShoppingCart::getUserId,shoppingCart.getUserId()); if(dishId != null){ //添加到购物车的是菜品 lqw.eq(ShoppingCart::getDishId,dishId); }else { //添加到购物车的是套餐 lqw.eq(ShoppingCart::getSetmealId,shoppingCart.getSetmealId()); } //SQL:select * from shopping_cart where user_id = ? and dish_id/setmeal_id = ? ShoppingCart cartServiceOne = shoppingCartService.getOne(lqw); if(cartServiceOne != null){ //如果以及存在,就在原来数量基础上加一 Integer number = cartServiceOne.getNumber(); cartServiceOne.setNumber(number + 1); shoppingCartService.updateById(cartServiceOne); }else { //如果不存在,则添加到购物车,数量默认就是1 shoppingCart.setNumber(1); shoppingCart.setCreateTime(LocalDateTime.now()); shoppingCartService.save(shoppingCart); cartServiceOne = shoppingCart; } return R.success(cartServiceOne); }
@DeleteMapping("/clean") public R<String> clean(){ LambdaQueryWrapper<ShoppingCart> lqw = new LambdaQueryWrapper<>(); lqw.eq(ShoppingCart::getUserId,BaseContext.getCurrentId()); shoppingCartService.remove(lqw); return R.success("购物车清空成功"); }
欢迎大家一起学习,有不足的地方还请指出。