您的位置:首页 > 科技 > IT业 > 魔域网页版_河北省石家庄疫情最新情况_关键词搜索排名查询_怎么在百度推广自己的公司

魔域网页版_河北省石家庄疫情最新情况_关键词搜索排名查询_怎么在百度推广自己的公司

2025/4/1 10:56:08 来源:https://blog.csdn.net/h2728677716/article/details/146407471  浏览:    关键词:魔域网页版_河北省石家庄疫情最新情况_关键词搜索排名查询_怎么在百度推广自己的公司
魔域网页版_河北省石家庄疫情最新情况_关键词搜索排名查询_怎么在百度推广自己的公司

需求分析

点击单个菜品的删除按钮或这边多选后点击批量删除可以将菜品进行删除。

接口涉及到的表

dish菜品表

dish_flavor口味表

setmeal_dish菜品与套餐的关系表

代码实现:

controller

@RequestParam:通过mvc框架动态解析前端传过来的字符串,比如这个ids时1,2,3,那么通过这个注解可以动态的将每个id提取出来。

@DeleteMappingpublic Result DishDelete(@RequestParam List<Long> ids){log.info("批量或单个删除菜品参数:{}",ids);dishService.DishDelete(ids);return Result.success();}

实现类

 /*** 菜品批量或单个删除* @param ids*/@Overridepublic void DishDelete(List<Long> ids) {//判断当前菜品是否能够删除--是否存在起售中的菜品for (Long id : ids){Dish dish = dishMapper.getDishbyId(id);if (dish.getStatus() == StatusConstant.ENABLE){throw new DeletionNotAllowedException(MessageConstant.DISH_ON_SALE);}}//判断当前菜品是否能够被删除--是否被关联的套餐//用菜品的id数组去查询菜品和套餐的关联表,如果返回一个套餐List类型的数组,如果这个数组中有值就代表有关联套餐的菜品,直接抛出异常List<Long> setmealIds = setMealsDishMapper.getSetMealByDishId(ids);if (setmealIds != null && setmealIds.size() > 0){throw new DeletionNotAllowedException(MessageConstant.CATEGORY_BE_RELATED_BY_SETMEAL);}//删除菜品for (Long id : ids){dishMapper.deleteBySetmealIds(id);//删除菜品关联的口味数据dishFlavorMapper.deleteByDishId(id);}}

第一个查询:查询dish表,根据菜品id查询菜品内容对象,实现类中根据这个菜品对象查看菜品的状态。

第二个查询:查询套菜和菜品的关系表,如果返回结果有内容说明有菜品关联了套餐,就不能删除。

在动态sql中注意循环的使用,还有返回值

第三个sql:根据dishid在菜品表里删除菜品

第四个sql:根据dishid在口味表里删除对应的口味

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com