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