基于 Spring Boot 瑞吉外卖系统开发(十二)
菜品删除
单击"批量删除"和"删除"时,会携带需要删除的菜品的id以delete请求方式向"/dish"发送请求。
|------|----------------------------|
| URL | http://127.0.0.1:8080/dish |
| 调用方法 | DELETE |
| 参数 | ids |
DishController添加删除方法
在该方法中根据提交过来的菜品id删除菜品信息和对应的菜品口味信息。如果菜品售卖状态为启售状态的话,为确保不影响用户体验,则不允许删除。
java
@DeleteMapping
public R<String> delete(@RequestParam List<Long> ids){
QueryWrapper<Dish> query = new QueryWrapper<>();
query.in("id",ids);
query.eq("status",1);
int count = dishService.count(query);
if(count>0){
//如果不能删除,抛出一个业务异常
throw new CustomException("菜品正在售卖中,不能删除");
}
//删除dish表基本信息
dishService.removeByIds(ids);
//清理当前菜品对应口味数据---dish_flavor表的delete操作
QueryWrapper<DishFlavor> query2 = new QueryWrapper<>();
query2.in("dish_id",ids);
dishFlavorService.remove(query2);
return R.success("删除成功");
}
运行测试
删除"辣子鸡",显示启售菜品不能删除。
"辣子鸡"修改为停售,删除成功。