.1.1 跳板页 (1)创建跳板页:pinyougou-cart-web 工程新建 login.html ,页面添加脚本
<script type="text/javascript"> location.href="cart.html"; </script> (2)购物车页面链接到跳板页 请<a href="login.html">登录</a> 4.1 购物车合并 4.1.1 服务接口层 pinyougou-cart-interface 工程的 CartService.java 定义方法 /** *合并购物车 *@param *@param cartList2 *@return */ public List<Cart> mergeCartList(List<Cart> cartList1,List<Cart> cartList2); 4.1.1 服务实现层 pinyougou-cart-service 工程 CartServiceImpl.java 实现方法 public List<Cart> mergeCartList(List<Cart> cartList1, List<Cart> cartList2) { System.out.println("合并购物车"); for(Cart cart: cartList2){ for(TbOrderItem orderItem:cart.getOrderItemList()){ cartList1= addGoodsToCartList(cartList1,orderItem.getItemId(),orderItem.getNum()); } } return cartList1; } 4.1.1 控制层 修改 pinyougou-cart-web 工程 CartController 类的 findCartList 方法 @RequestMapping("/findCartList") public List<Cart> findCartList(){ String username = SecurityContextHolder.getContext().getAuthentication().getName(); String cartListString = util.CookieUtil.getCookieValue(request, "cartList", "UTF-8"); if(cartListString==null || cartListString.equals("")){ cartListString="[]"; } List<Cart> cartList_cookie = JSON.parseArray(cartListString, Cart.class); if(username.equals("anonymousUser")){//如果未登录 return cartList_cookie; }else{ List<Cart> cartList_redis =cartService.findCartListFromRedis(username);//从 redis 中提取 if(cartList_cookie.size()>0){//如果本地存在购物车 //合并购物车cartList_redis=cartService.mergeCartList(cartList_redis, cartList_cookie); //清除本地 cookie 的数据 util.CookieUtil.deleteCookie(request, response, "cartList"); // 将 合 并 后 的 数 据 存 入 redis cartService.saveCartListToRedis(username, cartList_redis); } return cartList_redis; } }