8.5-高并发下的互联网电商购物车实战-加入购物车接口开发—小滴课堂学习笔记


8.5-高并发下的互联网电商购物车实战-加入购物车接口开发


高并发下的互联网电商购物车实战-加入购物车接口开发

简介:电商购物车实现案例-加入购物车接口开发

添加购物车接口

  @RequestMapping("addCart")

   public JsonData addCart(int videoId,int buyNum){

       //获取购物车

       BoundHashOperations<String, Object, Object> myCart = getMyCartOps();

       Object cacheObj = myCart.get(videoId+"");

       String result = "";

       if (cacheObj != null) {

           result = (String) cacheObj;

       }

       if (cacheObj == null) {

           //不存在则新建一个购物项

           CartItemVO cartItem = new CartItemVO();

           //从数据库查询详情,我们这边直接随机写个

           VideoDO videoDO = videoDao.findDetailById(videoId);

           videoDO.setId(videoId);

           cartItem.setPrice(videoDO.getPrice());

           cartItem.setBuyNum(buyNum);

           cartItem.setProductId(videoId);

           cartItem.setProductImg(videoDO.getImg());

           cartItem.setProductTitle(videoDO.getTitle());

           myCart.put(videoId+"", JsonUtil.objectToJson(cartItem));

       } else {

           //存在则新增数量

           CartItemVO cartItem = JsonUtil.jsonToPojo(result, CartItemVO.class);

           cartItem.setBuyNum(cartItem.getBuyNum() + buyNum);

           myCart.put(videoId+"", JsonUtil.objectToJson(cartItem));

       }

       return JsonData.buildSuccess();

   }

购物车方法抽取

  /**

    * 抽取我的购物车通用方法

    *

    * @return

    */

   private BoundHashOperations<String, Object, Object> getMyCartOps() {

       String cartKey = getCartKey();

       return redisTemplate.boundHashOps(cartKey);

   }

   /**

    * 获取购物车的key

    *

    * @return

    */

   private String getCartKey() {

        //从拦截器获取 ,这里写死即可,每个用户不一样

        int userId = 88;

       String cartKey = String.format("product:cart:%s", userId);

       return cartKey;

   }

《小滴课堂-Redis6学习笔记》

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

推荐阅读更多精彩内容