首页>代码>ssm淘淘网电子商城项目源码>/source/taotao-cart-web/src/main/java/com/taotao/cart/controller/CartController.java
package com.taotao.cart.controller; import java.util.ArrayList; import java.util.List; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; import com.taotao.common.pojo.TaotaoResult; import com.taotao.common.utils.CookieUtils; import com.taotao.common.utils.JsonUtils; import com.taotao.pojo.TbItem; import com.taotao.service.ItemService; /** * 购物车管理Controller * <p>Title: CartController</p> * <p>Description: </p> * <p>Company: www.itcast.cn</p> * @version 1.0 */ @Controller public class CartController { @Value("${CART_KEY}") private String CART_KEY; @Value("${CART_EXPIER}") private Integer CART_EXPIER; @Autowired private ItemService itemService; @RequestMapping("/cart/add/{itemId}") public String addItemCart(@PathVariable Long itemId, @RequestParam(defaultValue="1")Integer num, HttpServletRequest request, HttpServletResponse response) { //取购物车商品列表 List<TbItem> cartItemList = getCartItemList(request); //判断商品在购物车中是否存在 boolean flag = false; for (TbItem tbItem : cartItemList) { if (tbItem.getId() == itemId.longValue()) { //如果存在数量相加 tbItem.setNum(tbItem.getNum() + num); flag = true; break; } } //如果不存在,添加一个新的商品 if (!flag) { //需要调用服务取商品信息 TbItem tbItem = itemService.getItemById(itemId); //设置购买的商品数量 tbItem.setNum(num); //取一张图片 String image = tbItem.getImage(); if (StringUtils.isNotBlank(image)) { String[] images = image.split(","); tbItem.setImage(images[0]); } //把商品添加到购物车 cartItemList.add(tbItem); } //把购物车列表写入cookie CookieUtils.setCookie(request, response, CART_KEY, JsonUtils.objectToJson(cartItemList), CART_EXPIER, true); //返回添加成功页面 return "cartSuccess"; } private List<TbItem> getCartItemList(HttpServletRequest request) { //从cookie中取购物车商品列表 String json = CookieUtils.getCookieValue(request, CART_KEY, true); if (StringUtils.isBlank(json)) { //如果没有内容,返回一个空的列表 return new ArrayList<>(); } List<TbItem> list = JsonUtils.jsonToList(json, TbItem.class); return list; } @RequestMapping("/cart/cart") public String showCartList(HttpServletRequest request) { //从cookie中取购物车列表 List<TbItem> cartItemList = getCartItemList(request); //把购物车列表传递给jsp request.setAttribute("cartList", cartItemList); //返回逻辑视图 return "cart"; } @RequestMapping("/cart/update/num/{itemId}/{num}") @ResponseBody public TaotaoResult updateItemNum(@PathVariable Long itemId, @PathVariable Integer num, HttpServletRequest request, HttpServletResponse response) { //从cookie中取购物车列表 List<TbItem> cartList = getCartItemList(request); //查询到对应的商品 for (TbItem tbItem : cartList) { if (tbItem.getId() == itemId.longValue()) { //更新商品数量 tbItem.setNum(num); break; } } //把购车列表写入 cookie CookieUtils.setCookie(request, response, CART_KEY, JsonUtils.objectToJson(cartList), CART_EXPIER, true); //返回成功 return TaotaoResult.ok(); } @RequestMapping("/cart/delete/{itemId}") public String deleteCartItem(@PathVariable Long itemId, HttpServletRequest request , HttpServletResponse response) { //从cookie中取购物车列表 List<TbItem> cartItemList = getCartItemList(request); //找到对应的商品 for (TbItem tbItem : cartItemList) { if (tbItem.getId() == itemId.longValue()) { //删除商品 cartItemList.remove(tbItem); break; } } //把购车列表写入cookie CookieUtils.setCookie(request, response, CART_KEY, JsonUtils.objectToJson(cartItemList), CART_EXPIER, true); //重定向到购物车列表页面 return "redirect:/cart/cart.html"; } }
最近下载更多
170751967 LV5
2022年6月13日
wangyunhao LV10
2022年6月3日
lijianxin321 LV1
2022年4月25日
zhechu123 LV4
2022年3月18日
找找找找找 LV4
2022年3月16日
wanglinddad LV55
2021年12月26日
凯文 LV5
2021年12月6日
LCFTSZ LV3
2021年10月8日
2000103 LV4
2021年9月24日
739086737 LV5
2021年9月20日
最近浏览更多
zouzou123 LV3
10月18日
799743530 LV11
7月10日
微信网友_5986558820093952 LV4
6月29日
微信网友_7051335135711232
6月24日
暂无贡献等级
xiaoxia1012 LV1
6月12日
lh1234DGF LV2
6月3日
lilitu LV6
5月29日
MrDuan LV2
5月15日
lihao0217 LV1
2月4日
zhangjilu LV18
1月7日