实现购物车的实现原理

1.在用户没有登陆的情况下,在商品详情界面,点击“加入购物车”把商品id传递给Controller,Controller接收id,Controller调用Service根据商品id查询商品基本信息。把商品写入cookie中,加入cookie之前先从cookie中把购物车的商品取出来判断当前购物车商品列表中是否有此商品,如果有数量加一,如果没有添加一个商品,数量为1。展示给用户购物车列表。

此时,点击提交订单按钮,服务器进行拦截,让我们进行强制登陆,登陆成功后,用我们的用户名作为redis中的key,取对应的value,此时的value是我们要在购物车中展示的商品集合。同时从cookie中取我们刚才添加进去的商品。遍历这个集合,把集合中的元素id和cookie的商品id进行比较,若相同,数量+1,若没有相同的,则作为新商品融合进从redis中取出来的value中,融合完毕后,再把这一对key-value重新存入redis中,因为前后两次的key相同,所以会对原来的value进行覆盖,同时,将cookie中的数据清除。然后再展示到购物车列表。

2.如果先进行登陆,在登陆的同时,根据用户名取redis中的value,同时取cookie中的数据,如果有的话,进行上述的操作:比较id,相同的加数量,没有相同的,则作为新商品融合进从redis中取出来的value中,融合完毕后,再把这一对key-value重新存入redis中,因为前后两次的key相同,所以会对原来的value进行覆盖,同时,将cookie中的数据清除。此时,

在商品详情界面,点击“加入购物车”把商品id传递给Controller,Controller接收id,Controller调用Service根据商品id查询商品基本信息。把商品写入redis中,加入redis之前先从redis中用户名这个key把购物车的商品取出来判断当前购物车商品列表中是否有此商品,如果有数量加一,如果没有添加一个商品,数量为1。展示给用户购物车列表。

猜你喜欢

转载自blog.csdn.net/Xiaodongge521/article/details/83010027
今日推荐