1.添加
1.需求设计和分析
Path:/user/shoppingCart/add
Method:POST

数据库设计:
- 作用:暂时存放所选商品的地方
- 选的什么商品
- 每个商品的数量
- 不同用户的购物车需要区分

冗余字段会加快查询速度
2.代码开发
java
//判断当前加入购物车的商品是否在购物车中
ShoppingCart shoppingCart = new ShoppingCart();
BeanUtils.copyProperties(shoppingCartDTO,shoppingCart);
Long uesrId = BaseContext.getCurrentId();
shoppingCart.setUserId(uesrId);
List<ShoppingCart> list = shoppingCartMapper.list(shoppingCart);
//如果已经存在,则增加数量
if(list != null && list.size() > 0){
ShoppingCart cart = list.get(0);
cart.setNumber(cart.getNumber()+1);
shoppingCartMapper.updateNumberById(cart);
}else {
//否则,插入新的购物车数据
Long dishId = shoppingCartDTO.getDishId();
if(dishId != null) {
//添加到购物车中的是菜品
Dish dish = dishMapper.getById(dishId);
shoppingCart.setName(dish.getName());
shoppingCart.setImage(dish.getImage());
shoppingCart.setAmount(dish.getPrice());
}else {
//添加到购物车中的是套餐
Long setmealId = shoppingCartDTO.getSetmealId();
Setmeal setmeal = setmealMapper.getById(setmealId);
shoppingCart.setName(setmeal.getName());
shoppingCart.setImage(setmeal.getImage());
shoppingCart.setAmount(setmeal.getPrice());
}
shoppingCart.setNumber(1);
shoppingCart.setCreateTime(LocalDateTime.now());
shoppingCartMapper.insert(shoppingCart);
}
2.查看
1.需求设计和分析
Path:/user/shoppingCart/list
Method:GET

2.代码开发
java
Long userId = BaseContext.getCurrentId();
ShoppingCart shoppingCart = ShoppingCart.builder()
.userId(userId)
.build();
return shoppingCartMapper.list(shoppingCart);
3.清空
1.需求设计和分析
Path:/user/shoppingCart/clean
Method:DELETE
2.代码开发
Long userId = BaseContext.getCurrentId();
shoppingCartMapper.deleteByUserId(userId);
4.删除
1.需求设计和分析
Path/user/shoppingCart/sub
Method:POST
2.代码开发
java
ShoppingCart shoppingCart = new ShoppingCart();
BeanUtils.copyProperties(shoppingCartDTO,shoppingCart);
Long uesrId = BaseContext.getCurrentId();
shoppingCart.setUserId(uesrId);
List<ShoppingCart> list = shoppingCartMapper.list(shoppingCart);
if(list != null && list.size() > 0){
ShoppingCart cart = list.get(0);
Integer number = cart.getNumber();
if(number == 1){
shoppingCartMapper.deleteById(cart.getId());
}else {
cart.setNumber(number-1);
shoppingCartMapper.updateNumberById(cart);
}
}