欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

淘淘商城:直接修改购物车

程序员文章站 2022-03-04 20:01:10
...

淘淘商城项目视频中没有完成的功能,直接修改购物车的数量

淘淘商城:直接修改购物车

1、Service接口增加一个方法

淘淘商城:直接修改购物车 

2、实现该方法

淘淘商城:直接修改购物车

	@Override
	public TaotaoResult updateCartItem(long itemId, int num, HttpServletRequest request, HttpServletResponse response) {
		//取商品信息
				CartItem cartItem = null;
				//取购物车商品列表
				List<CartItem> itemList = getCartItemList(request);
				//判断购物车商品列表中是否存在此商品
				for (CartItem cItem : itemList) {
					//如果存在此商品
					if (cItem.getId() == itemId) {
						//增加商品数量
						cItem.setNum(num);
						cartItem = cItem;
						break;
					}
				}
				if (cartItem == null) {
					cartItem = new CartItem();
					//根据商品id查询商品基本信息。
					String json = HttpClientUtil.doGet(REST_BASE_URL + ITEM_INFO_URL + itemId); 
					//把json转换成java对象
					TaotaoResult taotaoResult = TaotaoResult.formatToPojo(json, TbItem.class);
					if (taotaoResult.getStatus() == 200) {
						TbItem item = (TbItem) taotaoResult.getData();
						cartItem.setId(item.getId());
						cartItem.setTitle(item.getTitle());
						cartItem.setImage(item.getImage() == null ? "":item.getImage().split(",")[0]);
						cartItem.setNum(num);
						cartItem.setPrice(item.getPrice());
					}
					//添加到购物车列表
					itemList.add(cartItem);
				}
				//把购物车列表写入cookie
				CookieUtils.setCookie(request, response, "TT_CART", JsonUtils.objectToJson(itemList), true);
				
				return TaotaoResult.ok();
	}

3、增加Controller中的方法

淘淘商城:直接修改购物车

	@RequestMapping("/update/{itemId}")
	public String updateCartItem(@PathVariable Long itemId, 
			@RequestParam(defaultValue="1")Integer num, 
			HttpServletRequest request, HttpServletResponse response) {
		TaotaoResult result = cartService.updateCartItem(itemId, num, request, response);
		return "redirect:/cart/cart.html";
	}

 4、修改cart.js文件

淘淘商城:直接修改购物车

5、测试

在文本框中输入数量回车,数量修改成功,总价也相应发生变化。

刷新页面,数量总价保持不变,cookie写入成功,测试完成。

相关标签: JAVA