10添加到购物车

图片.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;
    }

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 购物车是每个商城类的app必备的实现功能,然而购物车模块实现起来并不简单,需要考虑的地方也比较多,当初我实现起来也...
    爱猫的仙生阅读 7,531评论 1 26
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,196评论 4 61
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 172,916评论 25 708
  • 这是我第一次来北京,很平常的一个出差,这个年纪的我来到一个陌生的地方,仿佛已经没有什么害怕,迷茫,很淡定地出站,只...
    Feiya_阅读 194评论 0 0
  • 说多了都是泪,我说说我的情况,我们公司使用内购进行的产品购买,我全是按照网上(基本都一样)的流程进行了内购支付。支...
    younger_times阅读 2,646评论 1 3