批量起售停售ServiceImpl层
@Transactional
public void startAndEnd(Integer status, Long[] ids) {
//将数组转换为list
ArrayList<Long> list = new ArrayList<>();
for (Long id : ids) {
list.add(id);
}
LambdaUpdateWrapper<Dish> objectLambdaUpdateWrapper = new LambdaUpdateWrapper<>();
objectLambdaUpdateWrapper.set(Dish::getStatus,status)
.in(Dish::getId,ids);
//更改菜品status
this.update(objectLambdaUpdateWrapper);
//如果菜品停售,包含此菜品的套餐也应该停售
if (status == 0 ){
LambdaQueryWrapper<SetmealDish> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.in(SetmealDish::getDishId,ids);
//查询套餐菜品表,根据菜品id查出套餐的id
List<SetmealDish> list1 = setmealDishService.list(lambdaQueryWrapper);
List<Long> setmealID = new ArrayList<>();
for (SetmealDish setmealDish : list1) {
setmealID.add(setmealDish.getSetmealId());
}
LambdaUpdateWrapper<Setmeal> objectLambdaUpdateWrapper1 = new LambdaUpdateWrapper<>();
objectLambdaUpdateWrapper1.set(Setmeal::getStatus,status)
.in(Setmeal::getId,setmealID);
//改变套餐status
setmealService.update(objectLambdaUpdateWrapper1);
}
}
批量删除ServiceImpl层
public void delete(Long[] ids) {
//将数组转为list集合
List<Long> idlist = new ArrayList<>();
for (Long id : ids) {
idlist.add(id);
}
//去套餐中查找,如果套餐中有此菜品,则此菜品不允许删除
LambdaQueryWrapper<SetmealDish> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.in(SetmealDish::getDishId,idlist);
List<SetmealDish> list = setmealDishService.list(lambdaQueryWrapper);
if (list !=null && list.size()>0){
throw new CustomException("此菜品已关联套餐,不能删除");
}else {
this.removeBatchByIds(idlist);
}
}