接口分析
接口

-
DELETE:表示删除操作(REST 风格)
-
批量删除:一次可以删多个菜品
请求参数

该批量删除接口通过 Query 参数 ids 接收多个菜品 id,
id 之间用逗号分隔。
补充:针对其中的Query参数我们此处通过对应的@RequestParam注解来进行获取参数信息
返回响应

code:业务状态码
data:返回数据
msg:提示信息
代码开发
DIshController代码开发

@DeleteMapping:把 HTTP DELETE 请求映射到这个方法
方法参数:@RequestParam List<Long> ids
由于ids是Query参数信息(放在URL的?后面)
形参接受List集合
Spring MVC 会自动做两件事:
-
按逗号分割 :
"1,2,3"→["1","2","3"] -
类型转换:字符串 → Long
Service其中代码&实现类其中代码

这个方法是 Service 层对外暴露的"批量删除菜品"的业务入口,
用来承接 Controller 传下来的菜品 id 列表,
并在实现类中完成所有"删除前校验 + 实际删除"的业务逻辑。
实现类

1.优先来判断当前菜品是否处于起售其中状态,对于起售状态的菜品我们无法来进行删除操作

2.假设当前需要来删除的菜品被具体的某个套餐所关联了,我们无法来进行实际的具体删除操作

排除了两种无法来进行删除当前菜品的信息之后,对应来进行实际的删除即可对应删除该菜品信息之后,对应的去删除口味表其中所关联的口味信息数据
Mapper其中操作
根据id值去查询对应的dish对象

套餐Mapper其中来实际查询对应的套餐信息



根据对应的dish_id来删除实际的对应的菜品信息

对应的将dish菜品表其中所关联的口味表其中的信息数据来进行实际的删除
