实现购物车/user/shoppingcart/sub接口
问题说明:
点击小程序端的减去号可使商品数量减一,减到0时将商品从购物车删除
代码实现:
修改用户端ShoppCartController代码
/**
* 减少购物车商品
* @param shoppingCartDTO
* @return
*/
@PostMapping("sub")
@ApiOperation("减少购物车商品")
public Result sub(@RequestBody ShoppingCartDTO shoppingCartDTO){
log.info("减少购物车,商品信息为:{}",shoppingCartDTO);
shoppingCartService.subShoppingCart(shoppingCartDTO);
return Result.success();
}
修改用户端ShoppCartService代码
/**
* 减少购物车商品
* @param shoppingCartDTO
*/
void subShoppingCart(ShoppingCartDTO shoppingCartDTO);
修改用户端ShoppCartServiceImpl代码
/**
* 减去购物车商品
* @param shoppingCartDTO
*/
public void subShoppingCart(ShoppingCartDTO shoppingCartDTO) {
//获取当前微信用户ID
Long userId = BaseContext.getCurrentId();
ShoppingCart shoppingCart = ShoppingCart.builder()
.userId(userId)
.build();
List<ShoppingCart> list = shoppingCartMapper.list(shoppingCart);
if(list != null && list.size()>0){
ShoppingCart cart = list.get(0);
if(cart.getNumber() > 1) {
cart.setNumber(cart.getNumber() - 1);
}else {
//本次操作减去购物车的是菜品
Long dishId = shoppingCartDTO.getDishId();
if(dishId != null) {
shoppingCartMapper.deleteByDishId(userId, dishId);
}else {
//本次操作减去购物车的是套餐
Long setmealId = shoppingCartDTO.getSetmealId();
shoppingCartMapper.deleteBySetmealId(userId, setmealId);
}
}
shoppingCartMapper.updateNumberById(cart);
}
}
修改用户端ShoppCartMapper代码
/**
* 根据用户ID及菜品ID删除购物车数据
* @param userId
*/
@Delete("delete from shopping_cart where user_id = #{userId} and dish_id = #{dishId}")
void deleteByDishId(Long userId, Long dishId);
/**
* 根据用户ID及套餐ID删除购物车数据
* @param userId
*/
@Delete("delete from shopping_cart where user_id = #{userId} and setmeal_id = #{setmealId}")
void deleteBySetmealId(Long userId, Long setmealId);