4.1.1 跳板页 (1)创建跳板页:pinyougou-cart-web 工程新建 login.html ,页面添加脚本 [AppleScript] 纯文本查看 复制代码 <script type="text/javascript"> location.href="cart.html";
</script> (2)购物车页面链接到跳板页 [AppleScript] 纯文本查看 复制代码 请<a href="login.html">登录</a> 4.1 购物车合并 4.1.1 服务接口层 pinyougou-cart-interface 工程的 CartService.java 定义方法 [AppleScript] 纯文本查看 复制代码 /**
*合并购物车
*@param
*@param cartList2
*@return
*/
public List<Cart> mergeCartList(List<Cart> cartList1,List<Cart> cartList2); 4.1.1 服务实现层 pinyougou-cart-service 工程 CartServiceImpl.java 实现方法 [AppleScript] 纯文本查看 复制代码 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 方法 [AppleScript] 纯文本查看 复制代码 @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="[]";
} [AppleScript] 纯文本查看 复制代码 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;
}
}
|