/**
* 删除菜品,同时需要删除菜品和对应的口味的关联数据
* @param ids
*/@Transactional@OverridepublicvoidremoveWithFlavor(List<Long> ids){//select count(*) from dish where id in (1,2,3) and status = 1//查询菜品状态,确定是否可用删除LambdaQueryWrapper<Dish> queryWrapper =newLambdaQueryWrapper<>();
queryWrapper.in(Dish::getId,ids);
queryWrapper.eq(Dish::getStatus,1);int count =super.count(queryWrapper);if(count >0){//如果不能删除,抛出一个业务异常thrownewCustomException("套餐正在售卖中,不能删除");}//如果可以删除,先删除菜品表中的数据---dishsuper.removeByIds(ids);LambdaQueryWrapper<DishFlavor> lambdaQueryWrapper =newLambdaQueryWrapper<>();
lambdaQueryWrapper.in(DishFlavor::getDishId,ids);//删除关系表中的数据---dish_flavor
dishFlavorService.remove(lambdaQueryWrapper);}