当前位置: 首页 > article >正文

小程序添加购物车业务逻辑

数据库设计

DTO设计

实现步骤

1 判断当前加入购物车中的的商品是否已经存在了

2 如果已经存在 只需要将数量加一

3 如果不存在 插入一条购物车数据

4 判断加到本次购物车的是菜品还是套餐

Impl代码实现

@Service
public class ShoppingCartServiceImpl implements ShoppingCartService {

    @Autowired
    private ShoppingCartMapper shoppingCartMapper;
    @Autowired
    private DishMapper dishMapper;
    @Autowired
    private SetmealMapper setmealMapper;
    /**
     * 添加购物车
     * @param shoppingCartDTO
     */
    @Override
    public void add(ShoppingCartDTO shoppingCartDTO) {

        //判断当前加入购物车中的的商品是否已经存在了
        ShoppingCart shoppingCart = new ShoppingCart();
        BeanUtils.copyProperties(shoppingCartDTO,shoppingCart);
        shoppingCart.setUserId(BaseContext.getCurrentId());
        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);
        }
    }

    @Override
    public List<ShoppingCart> showShoppingCart() {
        Long userId = BaseContext.getCurrentId();
        ShoppingCart shoppingCart = ShoppingCart.builder().userId(userId).build();
        List<ShoppingCart> list = shoppingCartMapper.list(shoppingCart);
        return list;
    }

    @Override
    public void clean() {
        shoppingCartMapper.deleteByUserId(BaseContext.getCurrentId());
    }
}

http://www.kler.cn/a/466934.html

相关文章:

  • C#设计模式(行为型模式):状态模式
  • Flutter 实现 列表滑动过程控件停靠效果 学习
  • 安卓入门十一 常用网络协议四
  • MetaGPT - 多Agent框架
  • 计算机网络 (15)宽带接入技术
  • springmvc--请求参数的绑定
  • 在ubuntu22.04中使用bear命令追踪内核编译报错的原因分析和解决方案
  • Three.js教程014:使用tween实现补间动画
  • Dubbo 关键知识点解析:负载均衡、容错、代理及相关框架对比
  • 浅谈分布式共识算法
  • springmvc--对日期类型如何处理
  • 三甲医院等级评审八维数据分析应用(二)--数据标准化体系篇
  • qt qss文件的使用
  • 数据挖掘——规则和最近邻分类器
  • 如何轻松关闭 iPhone 上的 HEIC [HEIC 图像技巧]
  • 嵌入式系统开发笔记112:通过有人云测试MQTT
  • 2023 年 3 月 GESP C++ 一级真题解析
  • springboot537农产品智慧物流系统(论文+源码)_kaic
  • Mysql 学习补充
  • Maven 详细配置:Maven 项目 POM 文件解读
  • Backend - C# 的日志 NLog日志
  • 机器学习经典算法——KNN算法
  • 记一个小程序的诞生与死亡
  • Rust 泛型、特征与生命周期详解
  • [CTF/网络安全] 攻防世界 supersqli 解题详析
  • 新手学习yolov8目标检测小记2--对比实验中经典模型库MMDetection使用方法(使用自己的数据集训练,并转换为yolo格式评价指标)