第十一天:完成购物车需求
一、购物车需求分析
1、天猫式添加购物车商品:在添加商品到购物车之前,要先判断用户是否已经登录,如果没有登录,要先记录下当前页所要添加的商品请求参数(购物车的请求URL+商品数量num),然后到登录页面登录后才能显示添加商品成功提示页
二、添加拦截器来增加购物车商品
1、先从Cookie中获取当前登录用户在redis中的key,如果获取不到,则进行2、;否则进行3
注意:再拦截器里,不能注入.properties文件设置的属性值,只能手动提前设置好要注入的属性值
2、先记录下购物车项目的请求URL和添加商品的数量,然后拼接成一个参数interurl;重定向到登录页面,等输入正确的用户密码后,再根据参数interurl重新发送到购物车对应的请求
3、显示添加商品到购物车成功
三、 添加购物车业务
1、先获取到Coookie中的token,根据token去redis数据库里获取用户的登录信息(username)
2、根据获取到的用户名,拼接购物车的key:(cart:用户名)如(cart:tidy)
3、根据购物车的key,去redis判断中是否已经存在对应的购物车商品
4、如果之前已经存在购物车,则继续判断购物车里是否已经有要添加的商品,如果有则直接修改商品的数量即可;如果没有,则根据TbItem去注入jsp所需要的属性,然后加入商品集合,更新到redis中
四、显示购物车业务
购物车里的商品不止一件,所以购物车里应该是一个存储TbItem的list集合
1、先获取Cookie里:用户存在redis中的token(key),然后去redis里查找已经添加到购物车里的商品集合
注意:购物车再redis存储的数据格式为<(cart:用户名),(商品List的json数据)>
2、再把商品集合json数据转化为list返回
五、修改购物车里的商品数量
1、先获取到购物车里的所有商品集合json数据,然后转换为list集合,遍历这个list集合,当遍历到要修改的商品时(商品id),直接更新要修改的商品数量
六、删除购物车里的商品
和五类似