Java之品優購課程講義_day16(6)
阿新 • • 發佈:2018-12-17
.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; } }