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

苍穹外卖——删除购物车信息

1. 删除购物车中一个商品

1.1 产品原型

在这里插入图片描述

1.2 接口设计

在这里插入图片描述

1.3 数据模型

shopping_cart表:

-- auto-generated definition
create table shopping_cart
(
    id          bigint auto_increment comment '主键'
        primary key,
    name        varchar(32)    null comment '商品名称',
    image       varchar(255)   null comment '图片',
    user_id     bigint         not null comment '主键',
    dish_id     bigint         null comment '菜品id',
    setmeal_id  bigint         null comment '套餐id',
    dish_flavor varchar(50)    null comment '口味',
    number      int default 1  not null comment '数量',
    amount      decimal(10, 2) not null comment '金额',
    create_time datetime       null comment '创建时间'
)
comment '购物车' collate = utf8_bin;


在这里插入图片描述

1.4 代码开发

1.4.1 ShoppingCartController
/**
     * 删除购物车中一个商品
     * @param shoppingCartDTO
     * @return
*/
@PostMapping("/sub")
@ApiOperation("删除购物车中一个商品")
public Result sub(@RequestBody ShoppingCartDTO shoppingCartDTO){
    log.info("删除购物车中一个商品,商品:{}", shoppingCartDTO);
    shoppingCartService.subShoppingCart(shoppingCartDTO);
    return Result.success();
}
1.4.2 ShoppingCartService
/**
     * 删除购物车中一个商品
     * @param shoppingCartDTO
*/
void subShoppingCart(ShoppingCartDTO shoppingCartDTO);
1.4.3 ShoppingCartServiceImpl
/**
     * 删除购物车中一个商品
     * @param shoppingCartDTO
*/
public void subShoppingCart(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 = list.get(0);

        Integer number = shoppingCart.getNumber();
        if(number == 1){
            //当前商品在购物车中的份数为1,直接删除当前记录
            shoppingCartMapper.deleteById(shoppingCart.getId());
        }else {
            //当前商品在购物车中的份数不为1,修改份数即可
            shoppingCart.setNumber(shoppingCart.getNumber() - 1);
            shoppingCartMapper.updateNumberById(shoppingCart);
        }
    }
}
1.4.4 ShoppingCartMapper
/**
     * 根据id删除购物车数据
     * @param id
*/
@Delete("delete from shopping_cart where id = #{id}")
void deleteById(Long id);

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

相关文章:

  • 推荐一个基于协程的C++(lua)游戏服务器
  • c# 调用c++ 的dll 出现找不到函数入口点
  • 酒店行业数据仓库
  • 代码随想录算法训练营第四十八天|Day48 单调栈
  • ADS项目笔记 1. 低噪声放大器LNA天线一体化设计
  • v-html 富文本中图片使用element-ui image-viewer组件实现预览,并且阻止滚动条
  • Java流Stream使用详解(下)
  • 【JavaSE】API(学习笔记)
  • 【Unity】Blender场景导入
  • Azure Machine Learning - 在 Azure AI 搜索中创建全文查询
  • mac修改默认shell为bash
  • 转载:利用Flask实现深度学习模型部署
  • 【C++干货铺】继承 | 多继承 | 虚继承
  • Mybatis-Plus实现乐观锁
  • TCA9548A I2C 多路复用器 Arduino 使用相同地址 I2C 设备
  • 【Pytorch 入门】DAY 4 损失函数 模型的保存与下载
  • 第十一节HarmonyOS 常用容器组件1-Row与Column
  • Linux的基本指令(五)
  • 【ArcGIS Pro微课1000例】0039:制作全球任意经纬网的两种方式
  • 为自己创建的游戏编程源码申请软件著作权详细流程(免费分享模板)
  • springboot数据格式验证——自定义日期格式验证及list验证
  • 大数据湖项目建设方案:文档全文101页,附下载
  • 判断是否有环形链表
  • 消息对列MQ
  • 【渗透】记录阿里云CentOS一次ddos攻击
  • 【Java 基础】16 泛型