干货 | 京东购物车的Java架构实现及原理!
将购物车追加到Redis中的代码:insertBuyerCartToRedis(这里面包含了判断添加的是否是同款) 判断用户是否登录: String username = sessionProviderService.getAttributterForUsername(RequestUtils.getCSessionId(request, response)); 2、购物车展示页面 最后 重定向到购物车展示页: return "redirect:/shopping/toCart"; 这里进入结算页有两种方式: 1) 在商品详情页 点击加入购物车. 2) 直接点击购物车按钮 进入购物车结算页. 下面来看下结算页的代码: 这里 就是 购物车详情展示页面, 这里需要注意, 如果是同一件商品连续添加, 是需要合并的. 购物车详情展示页面就包括两大块, 1) 商品详情 2)总计(商品总额,运费) 其中1)商品详情又包括 商品尺码,商品颜色, 商品购买数量, 是否有货. 取出Redis中的购物车: buyerCart = cartService.selectBuyerCartFromRedis(username); 将购物车装满, 前面只是将skuId装进购物车, 这里还需要查出sku详情: List<BuyerItem> items = buyerCart.getItems(); buyerItem.setSku(cartService.selectSkuById(buyerItem.getSku().getId())); 接着就返回"cart.jsp", 这个就是购物车详情展示页面了. 3、去结算页面 到了这里就说明用户必须要 登录, 而且购物车中必须要有商品. 所以这里我么你需要利用springmvc的过滤功能, 用户点击结算的时候必须要先登录, 如果没有登录的话就提示用户需要登录. 取出 所指定的购物车, 因为我们结算之前在购物车详情页面会勾选 我们 需要购买的商品, 所以这里是根据所勾选的商品去结算的. BuyerCart buyerCart = cartService.selectBuyerCartFromRedisBySkuIds(skuIds, username); 从购物车中取出指定商品: 1) 当我们购买的商品只要有一件是无货的状态, 那么刷新购物车详情页面, 回显无货的商品状态. 2)当购物车中午商品时, 刷新当前页面. 购物车就这么多东西, 可能有讲解不到或者错误的地方, 欢迎大家指出来.如果对你有帮助的话也请点个赞支持一下,谢谢~ (编辑:威海站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |