1, 需求
2,加入购物车的思路图
3,加入购物车的接口
4,配置公钥,加载公钥
5,获取token,用户信息
6,后台购物车——数据结构设计
当用户登录时,我们需要把购物车数据保存到后台,可以选择保存在数据库。但是购物车是一个读写频率很高的数据。因此我在这里选择读写效率比较高的Redis作为购物车存储。
Redis有5种不同数据结构,这里选择哪一种比较合适呢?
- 首先不同用户应该有独立的购物车,因此购物车应该以用户的作为key来存储,Value是用户的所有购物车信息。这样看来基本的k-v结构就可以了。
- 但是,我们对购物车中的商品进行增、删、改操作,基本都需要根据商品id进行判断,为了方便后期处理,我们的购物车也应该是k-v结构,key是商品id,value才是这个商品的购物车信息。
综上所述,我们的购物车结构是一个双层Map:Map<String,Map<String,String>>
- 第一层Map,Key是用户id
- 第二层Map,Key是购物车中商品id,值是购物车数据
7,添加购物车
@Service
public class CartService {
@Autowired
private RedisTemplate<String, String> redisTemplate;
@Autowired
private SkuClient skuClient;
@Autowired
private JwtProperties jwtProperties;
/**
* 用户登录的时候,可以一个一个添加商品进购物车
*
* @param cartRequest
* @param req
*/
public void addCart