苍穹外卖-Day08(购物车)

1.添加

1.需求设计和分析

Path:/user/shoppingCart/add

Method:POST

数据库设计:

  • 作用:暂时存放所选商品的地方
  • 选的什么商品
  • 每个商品的数量
  • 不同用户的购物车需要区分

冗余字段会加快查询速度

2.代码开发

java 复制代码
  //判断当前加入购物车的商品是否在购物车中
        ShoppingCart shoppingCart = new ShoppingCart();
        BeanUtils.copyProperties(shoppingCartDTO,shoppingCart);
        Long uesrId = BaseContext.getCurrentId();
        shoppingCart.setUserId(uesrId);
        List<ShoppingCart> list = shoppingCartMapper.list(shoppingCart);

        //如果已经存在,则增加数量
        if(list != null && list.size() > 0){
            ShoppingCart cart = list.get(0);
            cart.setNumber(cart.getNumber()+1);
            shoppingCartMapper.updateNumberById(cart);
        }else {

            //否则,插入新的购物车数据

            Long dishId = shoppingCartDTO.getDishId();
            if(dishId != null) {
                //添加到购物车中的是菜品
                Dish dish = dishMapper.getById(dishId);
                shoppingCart.setName(dish.getName());
                shoppingCart.setImage(dish.getImage());
                shoppingCart.setAmount(dish.getPrice());

            }else {
                //添加到购物车中的是套餐
                Long setmealId = shoppingCartDTO.getSetmealId();
                Setmeal setmeal = setmealMapper.getById(setmealId);
                shoppingCart.setName(setmeal.getName());
                shoppingCart.setImage(setmeal.getImage());
                shoppingCart.setAmount(setmeal.getPrice());

            }
            shoppingCart.setNumber(1);
            shoppingCart.setCreateTime(LocalDateTime.now());
            shoppingCartMapper.insert(shoppingCart);
        }

2.查看

1.需求设计和分析

Path:/user/shoppingCart/list

Method:GET

2.代码开发

java 复制代码
   Long userId = BaseContext.getCurrentId();
        ShoppingCart shoppingCart = ShoppingCart.builder()
                .userId(userId)
                .build();
        return shoppingCartMapper.list(shoppingCart);

3.清空

1.需求设计和分析

Path:/user/shoppingCart/clean

Method:DELETE

2.代码开发

复制代码
Long userId = BaseContext.getCurrentId();

shoppingCartMapper.deleteByUserId(userId);

4.删除

1.需求设计和分析

Path/user/shoppingCart/sub

Method:POST

2.代码开发

java 复制代码
 ShoppingCart shoppingCart = new ShoppingCart();
        BeanUtils.copyProperties(shoppingCartDTO,shoppingCart);
        Long uesrId = BaseContext.getCurrentId();
        shoppingCart.setUserId(uesrId);
        List<ShoppingCart> list = shoppingCartMapper.list(shoppingCart);


        if(list != null && list.size() > 0){
            ShoppingCart cart = list.get(0);
            Integer number = cart.getNumber();
           if(number == 1){
               shoppingCartMapper.deleteById(cart.getId());
           }else {
               cart.setNumber(number-1);
               shoppingCartMapper.updateNumberById(cart);
           }

        }
相关推荐
oddsand12 小时前
AI应用开发学习步骤-java
java·人工智能·学习
莫***妞2 小时前
2026年java后端开发还有未来吗? 就业形式如何?
java·开发语言
wand codemonkey2 小时前
(三十三)【OA系统开发】实战-【开发规范】+【环境配置】
java
nickel3692 小时前
Qoder相关使用
java·开发语言·vue.js·spring boot
两年半的个人练习生^_^2 小时前
Java IO流之BIO
java·开发语言
笨蛋不要掉眼泪2 小时前
Java并发编程:深入剖析 ArrayBlockingQueue
java·开发语言·算法·并发
Refrain_zc2 小时前
Android 封装 BaseMultipleChoiceAdapter 快速实现列表多选编辑
java
波诺波2 小时前
最小 SOFA XML 场景结构 0-base.scn
xml·java·前端
李少兄3 小时前
深入理解 Web 服务器、Servlet 容器与现代 Java Web 架构
java·服务器·servlet