基于 Spring Boot 瑞吉外卖系统开发(十二)

基于 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("删除成功");
    }

运行测试

删除"辣子鸡",显示启售菜品不能删除。

"辣子鸡"修改为停售,删除成功。

相关推荐
星轨zb7 小时前
LangChain4j 集成 Spring Boot:会话记忆 NPE 的根源与 ChatMemoryProvider 正确配置
java·spring boot·后端·langchain4j
混凝土拌意大利面7 小时前
TG-BOOT springboot 功能集散开发框架(AI 协作友好)
人工智能·spring boot·后端
北城以北88888 小时前
Quartz定时任务
java·spring boot·intellij-idea
sxlishaobin12 小时前
SpringBoot集成MyBatis的SQL拦截器实战
spring boot·sql·mybatis
码客日记13 小时前
Spring Boot 全局跨域配置与前后端联调避坑
java·spring boot·后端
闪电悠米13 小时前
黑马点评-Redisson-02_reentrant_lock
java·spring boot·redis·分布式·缓存
我登哥MVP14 小时前
Spring Boo从“会用”到“精通”:Spring Boot 入门
java·spring boot·后端·spring·maven·intellij-idea·mybatis
biubiubiu070614 小时前
SpringBoot3.5.4 AOP环绕通知使用
java·spring boot
砍材农夫15 小时前
物联网实战:Spring Boot MQTT | 模拟器Paho客户端拆解核心点
java·javascript·网络·spring boot·后端·物联网
我登哥MVP15 小时前
Spring Boot 从“会用”到“精通”:自动装配原理
java·spring boot·后端·spring·tomcat·maven·intellij-idea