当前位置: 首页 > news >正文

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

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

删除分类

分类列表中每条分类信息右侧提供了一个“删除”按钮,当需要将已经存在的分类信息删除时,可以通过单击“删除”按钮实现。
在这里插入图片描述
请求路径为/category,携带参数id,请求方法DELETE
在这里插入图片描述

每个菜品表(dish)和套餐表(setmeal)都有与之关联分类,所以在删除分类时,需要先检查删除的分类是否关联了菜品或者套餐,如果关联了,此分类不允许删除。实现代码如下。

创建菜品和套餐的Mapper,service,serviceImpl通用接口

@Mapper
public interface DishMapper extends BaseMapper<Dish> {}
@Mapper
public interface SetmealMapper extends BaseMapper<Setmeal> {}
public interface DishService extends IService<Dish> {}
public interface SetmealService extends IService<Setmeal> {}
@Service
public class DishServiceImpl extends ServiceImpl<DishMapper, Dish>implements DishService {}
@Service
public class SetmealServiceImpl extends ServiceImpl<SetmealMapper, Setmeal> implements SetmealService {}

添加分类删除方法

在CategoryService接口中自定义根据分类id删除分类的方法。

public interface CategoryService extends IService<Category> {public void remove(Long id);}

在CategoryServiceImpl类中实现CategoryService接口的remove()方法。

@Service
public class CategoryServiceImplextends ServiceImpl<CategoryMapper, Category> implements CategoryService {@Autowiredprivate DishService dishService;@Autowiredprivate SetmealService setmealService;@Overridepublic void remove(Long id) {QueryWrapper<Dish> query = new QueryWrapper<>();query.eq("category_id", id);int count1 = dishService.count(query);if(count1>0){throw new CustomException("当前分类下关联了菜品,不能删除");}QueryWrapper<Setmeal> query2 = new QueryWrapper<>();query2.eq("category_id", id);int count2 = setmealService.count(query2);if(count2>0){throw new CustomException("当前分类下关联了套餐,不能删除");}super.removeById(id);}}

Controller类中定义删除分类的方法

调用categoryService中的删除自定义方法remove

    @DeleteMappingpublic R<String> remove(Long id) {categoryService.remove(id);return R.success("删除成功");}

功能测试

删除“湘菜”,提示当前分类下关联了菜品,不能删除。
在这里插入图片描述
删除“商务套餐”,提示删除成功,由于商务套餐分类信息没有被菜品或套餐关联。
在这里插入图片描述

相关文章:

  • typeScript基础(类型)
  • 2025年人工智能指数报告:技术突破与社会变革的全景透视
  • 011数论——算法备赛
  • webgl入门实例-矩阵在图形学中的作用
  • INFINI Console 系统集群状态异常修复方案
  • 开源的 PDF 文件翻译软件
  • 1.Vue自动化工具安装(Vue-cli)
  • STM32配置系统时钟
  • 【刷题Day21】TCP(浅)
  • [Windows] Adobe Camera Raw 17.2 win/Mac版本
  • 基于一致性哈希算法原理和分布式系统容错机制
  • 探秘C#用户定义类型:突破预定义的边界
  • QML--全局对象Qt
  • 一个Nuxt3 SSR服务端渲染简洁好用的开源个人博客系统 交互设计体验简单 腾讯markdown编辑器 支持drawio画图
  • 杨氏矩阵、字符串旋转、交换奇偶位,offsetof宏
  • 出差像是旅游?
  • Vue3具名插槽用法全解——从零到一的详细指南
  • 树莓派系统中设置固定 IP
  • SMTP发送邮件
  • 聊聊Spring AI Alibaba的FeiShuDocumentReader
  • 马上评|治理“龟速车”,也是一次驾驶文明的升级
  • 视觉周刊|第五届中国国际消费品博览会展现全球合作新格局
  • 俄“联盟MS-26”载人飞船安全返回地球
  • 泽连斯基称乌克兰全境响起防空警报
  • 人民日报读者点题·共同关注:今天,我们需要什么样的企业家?
  • 习近平圆满结束对柬埔寨国事访问