1. 程式人生 > >Java之品優購課程講義_day16(6)

Java之品優購課程講義_day16(6)

.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;

}

}