美文网首页
10添加到购物车

10添加到购物车

作者: Explorer_Mi | 来源:发表于2017-11-29 09:32 被阅读0次
图片.png
/**
     * 展示购物车列表
     * 已经登录,我们需要两个服务:一个是购物车合并,一个是//取出购物车列表
     */
    @RequestMapping("/cart/cart")
    public String showCatList(HttpServletRequest request,HttpServletResponse response){
        //从cookie中取购物车列表
        List<TbItem> cartList = getCartListFromCookie(request);
        //判断用户是否是登录状态
        TbUser user=(TbUser) request.getAttribute("user");
        //如果是登录状态
        if(user !=null){
            //如果不为空,把cookie中的购物车商品和服务端的购物车商品合并
            cartService.mergeCart(user.getId(), cartList);  
            //把cookie中的购物车删除
            CookieUtils.deleteCookie(request, response, "cart");
            }
        //从服务端取购物车列表
        cartList= cartService.getCartList(user.getId());
         
        //如果是未登录状态
        
        //把列表传递给页面
        request.setAttribute("cartList", cartList);
        //返回逻辑视图
        return "cart";
    }
    

购物车合并的服务

/**
     * 合并购物车
     */
    public E3Result mergeCart(long userId, List<TbItem> itemList) {
        //1.遍历商品列表
        //2.把列表添加到购物车
        //3.判断购物车中是否有此商品
        //4.如果有,数量相加
        //5.如果没有,添加新的商品
        for(TbItem item :itemList){
            addCart(userId,item.getId(), item.getNum());
        }
        //6.返回成功
        return E3Result.ok();
    }

//取出购物车列表

/**
     * 返回购物车列表
     */
    public List<TbItem> getCartList(long userId) {
        //根据用户id查询用户列表
        List<String> jsonList = jedisClient.hvals(REDIS_CART_PRE+":"+userId);
        List<TbItem> itemList =new ArrayList();
        for (String string : jsonList) {
            //创建一个TbItem对象
            TbItem item = JsonUtils.jsonToPojo(string, TbItem.class);
            itemList.add(item);
        }
        return itemList;
    }

相关文章

网友评论

      本文标题:10添加到购物车

      本文链接:https://www.haomeiwen.com/subject/aodkbxtx.html