欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

购物车的设计

程序员文章站 2024-02-05 11:40:22
...

购物车模块文档

1 前言

购物车设计与功能模块文档笔记

总体流程图

购物车的设计

2 加减购物车

  • 添加购物车作用是:

    暂时存储用户下单之前想要购买的商品,对数据的可靠性并不是很高;

  • 购物车简单的展示商品信息:

所以我们的购物车需要商品Id,价格,商品规格数量;

  • 存储

    购物车存储,目前我们系统存储在redis中,期限是14天
    也可以存储在本地localstore中或者cookie中,用户登录后将数据存储在redis中;

    存储key规则是: 商户号:用户id:购物车类型 可以自行设计key

商品详情可以通过"商品Id"查询,不需要购物车保存;

对应到系统中

增加了全选,选中以及第一次加入相比购物车的价格差,规则参数,区分普通或者优惠的商品类型参数

加减购物车类

public class CartShoppingDto {
    //商品ID
    private int           goodsId;

    //是否选中
    private boolean       selectedFlag;

    //批量全选
    private boolean       selectAll;

    //数量
    private int           selectedNum;

    //商品类型
    private int           prom_type;

    /**
     * 加入购物车时候的价格
     */
    private BigDecimal    addCartPrice;

}


  • 加减购物车逻辑

1 先从redis中根据指定key获取购物车内容

2 如为空,则新建添加 ( 并且记录第一次添加时的价格 )

3 如不为空 则根据新添加进来的goodId进行更新

4 全选 : 如单个更新则全选为false,则表示单个更新;如更新全部全选为true,则更新购物车;

请求json规格

{
    "goodsId": 9747,
    "selectedFlag": false,
    "selectedNum": 5,
}

全选

全选按钮表示下单的时候需要下单的购物车中购买的商品

{"selectAll":true,"selectedFlag":true}

全不选

{"selectAll":true,"selectedFlag":false}
  • 删除购物车(单个删除)

删除购物车时候,我们只需要商品id,以及设置数量为0即可;

: 可以新增批量删除购物车商品接口

3 获取购物车

加减购物车之后,我们需要获取购物车列表返回给客户端

用来展示相应图片信息,活动信息,相比刚加入购物车时的价格变化,库存是否紧张,商品是否失效下架等;

4 清空失效商品

购物车中某些商品由于下架或者出售完导致商品失效,可以进行清除操作;

{"goodsIdList":[1,2,3]}
相关标签: 电商系统