购物车实现

1、主要分离线购物车和在线购物车(hash数据类型)

2、主要功能有(添加sku,删除,更新,合并,勾选购物项,排序,展示可用优惠券(最难)

3、离线购物车,当检查根据前端传来的token判断是否登录,如果没有登录就用离线购物车,然后判断有没有cartKey,有则直接使用(redis中存离线购物车数据key为:shop:cart:temp:XXXX )XXXX用UUID生成;没有则后天新创建离线购物车。

在线购物车是登录后的,与用户一一对应的。(redis中存离线购物车数据key为:shop:cart:user:userId )

4、离线购物车如何与在线购物车绑定?

首先来说是无法绑定用户的,因为加入离线购物车后,你不知道一会用谁的账号登录。所以就是与哪个在线购物和合并,在登录后确定。如果登录多个账号,则多个在线购物车都会收到离线购物车中的数据。

5、相关技术主要用了redis集群,redis持久化,fastJson做对象与json字符串之间的相互转换。

6、购物车数据结构

        private List  items;//购物项

        private Integer  total;//商品总数

        private BigDecimal  totalPrice;//商品总价格

你可能感兴趣的:(购物车实现)