淘淘商城项⽬(IDEA版)之——购物车功能实现:redis+cookies实现购物车功
Redis+Cookie实现购物车功能
1、将淘淘商城原有cookie实现购物车⽅式修改为redis+cookie实现⽅式
2、新增登录之后⾃动同步cookie中未同步(就是未登录添加到购物车的商品)的购物车信息到redis
业务流程逻辑-加⼊购物车:
1、⾸先将jedis相关类和配置⽂件拷贝过来(我这⾥拷的是yougou-content-service⽬录下)
2、拷贝到yougou-cart-web中,并将l 修改为l,⾥边的配置不⽤改,因为我的jedis⽂件那个包还是那个名,看下图:
3、resource.properties属性⽂件中如下,有注解我就不解释了
resource.properties
#购物车在cookie中保存的key
CART_KEY=CART_KEY
#cookie购物车商品的有效期,默认为7天
CART_EXPIRE=604800
#登录系统的URL
SSO_BASE_URL=localhost:8089
#根据⽤户信息取url
SSO_USER_TOKEN=/user/token/
#购物车key
REDIS_CART_KEY=REDIS_CART_KEY
###cookie中保存token的key
TOKEN_KEY=TOKEN_KEY
#redis购物车商品的有效期,默认为30天
REDIS_CART_EXPIRE=2592000
4、添加属性⽂件中新增属性的注⼊
5、添加 到购物车⽅法代码(不贴图了,⼀个屏截不全)
/**
* 添加商品到购物车
* @param itemId
* @param num
* @param request
* @param response
* @return
*/
@RequestMapping("/cart/add/{itemId}")
public String addItemCart(@PathVariable Long itemId,
@RequestParam(defaultValue = "1") Integer num,
HttpServletRequest request,
HttpServletResponse response) {
//跨域请求获取⽤户信息(调⽤抽取⽅法⼀)
YougouResult result = getUserInfoJsonp(request);
//取购物车商品列表(调⽤抽取⽅法⼆)
List<TbItem> cartItemList = CartItemList(request, result);
网页购物车代码
//判断商品在购物车中是否存在
boolean flag = false;
for (TbItem tbItem : cartItemList) {
if (Id() == itemId.longValue()) {
/
/如果存在修改数量
tbItem.Num() + num);
flag = true;
break;
}
}
//如果不存在,添加⼀个新的商品
if (!flag) {
//需要调⽤服务获取商品信息
TbItem tbItem = ItemById(itemId);
//设置购买的商品数量
tbItem.setNum(num);
//取⼀张图⽚
String image = Image();
if (StringUtils.isNotBlank(image)) {
String[] images = image.split(",");
tbItem.setImage(images[0]);
}
//把商品添加到购物车
cartItemList.add(tbItem);
}
//保存购物车列表(调⽤抽取⽅法三)
saveCartItemList(request, response, cartItemList, result);
//返回添加成功页⾯
return"cartSuccess";
}
抽取⽅法⼀ 如下 :

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。