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;//商品总价格