A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

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;


}

}


0 个回复

您需要登录后才可以回帖 登录 | 加入黑马