电商购物车两种渲染方式

一、存redis:流程:购物车/立即购买–>结算界面–>支付界面

方法一

每一次添加单个商品商品到购物车或者直接购买商品,都需要调用后端接口,把数据存入redis里面

1 直接购买(前端需调用两个接口)–》进入结算界面

  • 接口一:直接创建一个实体类CartDTO,把商品的相关数据放入进去,然后存入缓存中
  • 接口二:获取刚刚存入缓存的数据,然后进行渲染购物车相应的操作返回给前端接口
  • 如果修改地址
    • 前端调用用户所有地址
    • 当用户选中好地址后,调用刚刚存入缓存的数据,把地址也给存进去
    • 这时前端再次请求缓存的数据,就是最新的数据了
  • 如果添加优惠券等活动,和修改地址一样操作

2.购物车购买

2.1 存入购物车
  • 首先获取缓存,判断购物车是否有数据。如果有则解析后再添加,如果没有则默认生成基础数据
  • 把新添加的商品放入缓存中
2.2 结算界面
  • 获取购物车缓存的数据,然后进行渲染购物车
  • 如果修改地址
    • 前端调用用户所有地址
    • 当用户选中好地址后,调用购物车缓存的数据,把地址也给存进去
    • 这时前端再次请求缓存的数据,就是最新的数据了
  • 如果添加优惠券等活动,和修改地址一样操作相应的操作返回给前端接口

方法二

前端把购物车数据全部计算完成后再传给后端

1 直接购买与购物车购买一样操作

  • 拿去前端传来的数据
  • 先判断有没有实体类CartDTO缓存数据,如果有则直接拿取,如果没有则默认生成基础数据
  • 判断CartDTO存有没有地址,如果有则不管,如果没有默认传一个用户地址(如果用户地址也没有则不传
  • 拿取前端传进来的数据覆盖原来缓存获取的数据,并且进行各种逻辑判断,再把数据存到缓存中,然后把数据返回给前端
  • 如果修改地址
    • 前端调用用户所有地址
    • 当用户选中好地址后,调用CartDTO缓存的数据,把地址也给存进去
    • 这时前端再次请求缓存的数据,就是最新的数据了

二、存数据库

数据库有购物车表,里面放商品的id,skuid,选择的数量,规格等信息

  • 当点击结算时,把勾选的商品的购物车id传到后端进行查询。
  • 当添加数量时,则把商品的购物车id和数量传到后端进行修改。
  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值