1. 购物车列表
1.1 需求分析
(1)实现购物车列表的显示。购物车必须登录后才可以访问。
(2)从商品详细页点击“加入购物车按钮”,将商品添加到购物车。
(3)点击购物车列表项中数量的加减按钮实现对数量的修改。
(4)删除购物车中某条记录。
使用 redis(hash类型数据) 实现购物车的存储。大key为 CacheKey.CART_LIST ,当 前登录名作为小key。购物车存储结构如下图:(购物车是个list,每一行(不同商品)作为一个map)
item是OrderItem类型

购物车实体是存在order表的
2.后端代码:
2.1根据用户名小key,返回该用户的购物车



同个工程用@Autowired,不同工程用远程调用@Reference
2.2 对购物车进行增删改(代码逻辑比较复杂)
CartServiceImpl实现此方法(有点多,但不难):
@Override
public void addItem(String username, String skuId, Integer num) {
//实现思路: 遍历购物车,如果购物车中存在该商品则累加数量,如果不存在则添加购物车项
//获取购物车
List<Map<String, Object>> cartList = findCartList(username);
boolean flag=false;//是否在购物车中存在
for( Map map:cartList ){
OrderItem orderItem= (OrderItem)map.get("item");
if(orderItem.getSkuId().equals(skuId)){
//购物车存在该商品
if( orderItem.getNum()<=0){
cartList.remove(map);
flag=true;
break;
}
int weight= orderItem.getWeight

本文档详细介绍了购物车模块的设计与实现,包括根据用户名获取购物车、增删改操作、购物车与商品详情页的对接、保存选中状态、合计金额计算。重点讲解了如何利用Stream删除选中商品以及满减优惠的计算方法,讨论了项目存在的效率问题,如优化分类查询和利用Stream提升删除操作的效率。
最低0.47元/天 解锁文章
609

被折叠的 条评论
为什么被折叠?



