未登陆下购物车的底层代码实现

本文主要探讨未登录情况下购物车的实现,特别是服务层的代码逻辑,允许用户在未登录状态下也能添加商品到购物车。
摘要由CSDN通过智能技术生成

购物车的实现

有两种购物车,一种是必须要登陆才能添加购物车,一种是未登陆下也可以添加购物车。这次主要讲未登陆下实现购物车。

未登录购物车的service层实现

@Autowired
private RedisTemplate redisTemplate;

@Autowired
private TProductMapper productMapper;


/**
 * 添加购物车
 *
 * @param id        用户id
 * @param productId 商品id
 * @param count     商品数量
 */
@Override
public ResultBean addProduct(String id, Long productId, int count) {

    String redisKey = StringUtil.getRedisKey(RedisConstant.USER_CART_PRE, id);

    Object o = redisTemplate.opsForValue().get(redisKey);
    if (o == null) {
        /*
        当前用户没有购物车
        封装购物车商品对象
        * */
        CartItem cartItem = new CartItem();
        cartItem.setUpdateTime(new Date());
        cartItem.setCount(count);
        cartItem.setProductId(productId);

        /*添加购物车中*/
        List<CartItem> carts = new ArrayList<>();
        carts.add(cartItem);
        /*放到redis里*/
        redisTemplate.opsForValue().set(redisKey, carts);
        return ResultBean.success(carts, "添加购物车成功!");
    }
    /*有购物车有商品*/
    List<CartItem> carts = (List<CartItem>) o;
    for (CartItem cartItem : carts) {
        if (cartItem.getProductId().longValue() == productId.longValue()) {

            cartItem.setCount(cartItem.getCount() + count);

            cartItem.setUpdateTime(new Date());

  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值