加入收藏 | 设为首页 | 会员中心 | 我要投稿 济南站长网 (https://www.0531zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 教程 > 正文

干货 | 京东购物车的Java架构实现及原理!

发布时间:2018-07-10 19:52:24 所属栏目:教程 来源:Java技术栈
导读:副标题#e# 【资讯】今天来写一下关于购物车的东西, 这里首先抛出四个问题: 1)用户没登陆用户名和密码,添加商品, 关闭浏览器再打开后 不登录用户名和密码 问:购物车商品还在吗? 2)用户登陆了用户名密码,添加商品,关闭浏览器再打开后 不登录用户名和密码 问:

  将购物车追加到Redis中的代码:insertBuyerCartToRedis(这里面包含了判断添加的是否是同款)

  干货 | 京东购物车的Java架构实现及原理!

  判断用户是否登录: String username =

  sessionProviderService.getAttributterForUsername(RequestUtils.getCSessionId(request, response));

  干货 | 京东购物车的Java架构实现及原理!

  干货 | 京东购物车的Java架构实现及原理!

  2、购物车展示页面

  最后 重定向到购物车展示页: return "redirect:/shopping/toCart"; 这里进入结算页有两种方式:

  1) 在商品详情页 点击加入购物车.

  2) 直接点击购物车按钮 进入购物车结算页.

  下面来看下结算页的代码:

  干货 | 京东购物车的Java架构实现及原理!

  干货 | 京东购物车的Java架构实现及原理!

  这里 就是 购物车详情展示页面, 这里需要注意, 如果是同一件商品连续添加, 是需要合并的.

  购物车详情展示页面就包括两大块, 1) 商品详情 2)总计(商品总额,运费)

  其中1)商品详情又包括 商品尺码,商品颜色, 商品购买数量, 是否有货.

  干货 | 京东购物车的Java架构实现及原理!

  取出Redis中的购物车: buyerCart = cartService.selectBuyerCartFromRedis(username);

  干货 | 京东购物车的Java架构实现及原理!

  将购物车装满, 前面只是将skuId装进购物车, 这里还需要查出sku详情: List<BuyerItem> items = buyerCart.getItems();

  buyerItem.setSku(cartService.selectSkuById(buyerItem.getSku().getId()));

  干货 | 京东购物车的Java架构实现及原理!

  接着就返回"cart.jsp", 这个就是购物车详情展示页面了.

  3、去结算页面

  到了这里就说明用户必须要 登录, 而且购物车中必须要有商品.

  所以这里我么你需要利用springmvc的过滤功能, 用户点击结算的时候必须要先登录, 如果没有登录的话就提示用户需要登录.

  干货 | 京东购物车的Java架构实现及原理!

  干货 | 京东购物车的Java架构实现及原理!

  取出 所指定的购物车, 因为我们结算之前在购物车详情页面会勾选 我们 需要购买的商品, 所以这里是根据所勾选的商品去结算的.

  BuyerCart buyerCart = cartService.selectBuyerCartFromRedisBySkuIds(skuIds, username);

  从购物车中取出指定商品:

  干货 | 京东购物车的Java架构实现及原理!

  1) 当我们购买的商品只要有一件是无货的状态, 那么刷新购物车详情页面, 回显无货的商品状态.

  2)当购物车中午商品时, 刷新当前页面.

  购物车就这么多东西, 可能有讲解不到或者错误的地方, 欢迎大家指出来.如果对你有帮助的话也请点个赞支持一下,谢谢~

(编辑:济南站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读