(一)新增

实现思路:

  1. 直接调用MyBatis-Plus里面的save保存
  2. 返回执行成功信息
@PostMapping
public R<String> save(@RequestBody Category category){categoryService.save(category);return R.success("新增成功");
}

(二)分页查询

实现思路:

  1. MyBatisPlus分页查询拦截器在公共部分已经配置
  2. 根据当前页码和每页显示条数 对category表进行分页查询
  3. 调用service处理
  4. 创建wrapper对象 设置排序字段
  5. 响应处理结果
@GetMapping("/page")
public R<Page<Category>> page(@RequestParam(defaultValue="1") int page, @RequestParam(defaultValue="10") int pageSize){Page<Category> categoryPage = new Page<>(page, pageSize);LambdaQueryWrapper<Category> wrapper = new LambdaQueryWrapper<>();wrapper.orderByAsc(Category::getSort);categoryService.page(categoryPage,wrapper);return R.success(categoryPage);
}

(三)修改

Controller层

实现思路:

  1. 调用service处理
  2. 响应处理结果
@PutMapping
public R<String> update(@RequestBody Category category){categoryService.updateCategory(category);return R.success("修改成功!");
}

service层

public interface CategoryService extends IService<Category> {void updateCategory(Category category);
}

serviceImpl层

实现思路:

  1. 判断用户提交的分类修改数据中分类名称不能和其他分类名称重复
  2. 查询条件:name:分类名称  id:分类id
  3. 根据名称为name且id不等于当前这个分类id进行查询统计
  4. 执行修改操作
@Service
public class CategoryServiceImpl extends ServiceImpl<CategoryDao,Category> implements CategoryService {@Autowiredprivate CategoryDao categoryDao;@Overridepublic void updateCategory(Category category) {LambdaQueryWrapper<Category> wrapper = new LambdaQueryWrapper<>();wrapper.eq(Category::getName,category.getName());wrapper.ne(Category::getId,category.getId());       //ne:不等于Integer count = categoryDao.selectCount(wrapper);if(count>0){throw  new  CustomException(0,"当前分类名称已存在,请设置为其他的!");}categoryDao.updateById(category);}
}

(四)删除

Controller层

实现思路:

  1. 调用service处理
  2. 响应处理结果
@DeleteMapping("/{id}")
public R<String> delete(@PathVariable Long id){categoryService.deleteById(id);return R.success("删除成功!");
}

service层

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

serviceImpl层

实现思路:

  1. 判断id不为null
  2. 根据分类id查询菜品表dish进行统计 看当前分类下有没有菜品数据 有,则不能删除
  3. 根据分类id查询套餐表setmeal进行统计 看当前分类下有没有套餐数据 有,则不能删除
  4. 以上都通过了 该分类下没有菜品或套餐数据 则可以删除
@Service
public class CategoryServiceImpl extends ServiceImpl<CategoryDao,Category> implements CategoryService {@Autowiredprivate CategoryDao categoryDao;@Autowiredprivate DishDao dishDao;@Autowiredprivate SetmealDao setmealDao;/*** 根据id删除分类* @param id*/@Overridepublic void deleteById(Long id) {if(id==null){throw  new  CustomException(0,"分类删除id不能为空!");}LambdaQueryWrapper<Dish> wrapper1 = new LambdaQueryWrapper<>();wrapper1.eq(Dish::getCategoryId,id);Integer count = dishDao.selectCount(wrapper1);if(count>0){throw  new  CustomException(0,"当前分类下存在关联菜品,无法删除!");}LambdaQueryWrapper<Setmeal> wrapper2 = new LambdaQueryWrapper<>();wrapper2.eq(Setmeal::getCategoryId,id);Integer count1 = setmealDao.selectCount(wrapper2);if(count1>0){throw  new  CustomException(0,"当前分类下存在关联套餐,无法删除!");}System.out.println("count1 = " + count1);categoryDao.deleteById(id);}
}

(五)条件查询

思路:

  1. 根据类型type查询指定菜品分类或套餐分类数据
  2. 创建条件构造器
  3. 添加查询条件
  4. 执行查询方法
  5. 返回结果
@GetMapping("/list")
public R<List<Category>> list(Integer type){LambdaQueryWrapper<Category> wrapper = new LambdaQueryWrapper<>();wrapper.eq(type!=null,Category::getType,type);List<Category> list = categoryService.list(wrapper);return R.success(list);
}

外卖点餐APP-03(后台--菜品分类管理)相关推荐

  1. 外卖点餐APP-04(后台--菜品管理)

    (一)新增 controller层思路: 调用service处理 响应处理结果 @PostMapping public R<String> save(@RequestBody DishDt ...

  2. 开题报告-基于Android的外卖点餐APP的设计与实现

    目录 1.课题研究立项依据 2.文献综述 3.课题研究的基本内容及预期目标或成果 4.课题的研究方案 5.研究进度安排 6.主要参考文献 1.课题研究立项依据 (内容格式要求:字体为5号宋体,行距为固 ...

  3. java计算机毕业设计基于安卓Android的校园外卖点餐APP

    项目介绍 餐饮行业是一个传统的行业.根据当前发展现状,网络信息时代的全面普及,餐饮行业也在发生着变化,单就点餐这一方面,利用手机点单正在逐步进入人们的生活.传统的点餐方式,不仅会耗费大量的人力.时间, ...

  4. 校园外卖点餐系统——Day04【菜品管理业务开发】

    ❤ 作者主页:欢迎来到我的技术博客

  5. app毕业设计 基于uni-app框架 在线外卖点餐app毕设题目课题选题作品源码(1)app功能和界面

  6. 外卖点餐APP-02(后台--员工管理)

    (一)登录 实现思路: 接收到用户登录输入的用户名和密码,封装到了emp对象中 对密码进行MD5加密 创建条件构造器 添加sql查询判断条件,emp对象中的Username等于Employee数据表中 ...

  7. 基于Android的校园外卖点餐系统

    本文主要概述了如何开发一个基于Android 的校园外卖系统,使用者可以通过手机下载校园外卖系统,可以通过手机下单系统进行点餐,用户的功能有:点菜.我的订单.地址管理等功能,管理员功能有:菜品管理.类 ...

  8. 干货| 外卖点餐系统(App及后台)

    简单总结一下,这个系统是一个外卖点餐系统,也就是仿美团饿了么,也是当时我的毕业设计,花费了我很多精力,主要包括了移动端App.服务端(中台)和商家的后台管理.答辩完后我就将移动端源码放到了GitHub ...

  9. 外卖点餐 堂食点餐 扫码点餐源码 点餐APP源码

    外卖点餐 堂食点餐 扫码点餐 支持店内扫码点餐.外卖点餐配送于一体的微餐饮系统,支持手机端商家管理,支持商家创建优惠券,支持商家自定义打印机功能,支持商家财务管理,支持商户菜品管理,支持菜品自定义分类 ...

最新文章

  1. Apache Spark 技术团队开源机器学习平台 MLflow
  2. 创建型模式——单例模式
  3. Tomcat集群session复制与Oracle的坑
  4. c++ 模板类实现堆栈实验报告_C++类模板实现栈
  5. KTween 补间引擎
  6. mysql datapump_mysqlpump - 一个数据库备份程序
  7. 29.优化 MySQL Server
  8. Active Diretory 全攻略(一)--目录服务
  9. sdut3138: N!(计算n!中结尾零的个数)
  10. 《深入解析Windows操作系统》要点整理
  11. 是非人生 — 一个菜鸟程序员的5年职场路 第30节
  12. 干货|浅谈iOS端短视频SDK技术实现
  13. Android开发---图片渲染问题----真的很严重
  14. transforms.Compose,transforms.ToTensor(),transforms.Normalize()的含义与原理
  15. 数仓建设 | ODS、DWD、DWM等理论实战(好文收藏)
  16. 免外围电路ESP32/ESP8266系列单片机串口一键下载方案
  17. 使用 WordPress快速个人建站指南
  18. -march= 所带参数(armv4)不正确(2018-07-01)
  19. 陪伴我走过春夏秋冬的校园
  20. 「SQL面试题库」 No_42 学生地理信息报告

热门文章

  1. 用于苹果分级的matlab,苹果的特征检测与MATLAB实现
  2. 蝶恋花·阅尽天涯离别苦
  3. Mac 内置最强WI-FI抓包工具 Airport
  4. 如何将Mac备份到外置硬盘?
  5. 100+ 超全的 web 开发工具和资源
  6. u盘中毒现象为哪般,如何营救
  7. 微信小游戏现在已不“小”了?
  8. 网上超级火的过年除夕倒计时,纯HTML源码,数据信息皆可以修改,今天免费分享给大家,供大家学习娱乐
  9. 彻底删除万能恢复大师
  10. MAC知识点004:pause帧处理流程