外卖点餐APP-03(后台--菜品分类管理)
(一)新增
实现思路:
- 直接调用MyBatis-Plus里面的save保存
- 返回执行成功信息
@PostMapping
public R<String> save(@RequestBody Category category){categoryService.save(category);return R.success("新增成功");
}
(二)分页查询
实现思路:
- MyBatisPlus分页查询拦截器在公共部分已经配置
- 根据当前页码和每页显示条数 对category表进行分页查询
- 调用service处理
- 创建wrapper对象 设置排序字段
- 响应处理结果
@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层
实现思路:
- 调用service处理
- 响应处理结果
@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层
实现思路:
- 判断用户提交的分类修改数据中分类名称不能和其他分类名称重复
- 查询条件:name:分类名称 id:分类id
- 根据名称为name且id不等于当前这个分类id进行查询统计
- 执行修改操作
@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层
实现思路:
- 调用service处理
- 响应处理结果
@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层
实现思路:
- 判断id不为null
- 根据分类id查询菜品表dish进行统计 看当前分类下有没有菜品数据 有,则不能删除
- 根据分类id查询套餐表setmeal进行统计 看当前分类下有没有套餐数据 有,则不能删除
- 以上都通过了 该分类下没有菜品或套餐数据 则可以删除
@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);}
}
(五)条件查询
思路:
- 根据类型type查询指定菜品分类或套餐分类数据
- 创建条件构造器
- 添加查询条件
- 执行查询方法
- 返回结果
@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(后台--菜品分类管理)相关推荐
- 外卖点餐APP-04(后台--菜品管理)
(一)新增 controller层思路: 调用service处理 响应处理结果 @PostMapping public R<String> save(@RequestBody DishDt ...
- 开题报告-基于Android的外卖点餐APP的设计与实现
目录 1.课题研究立项依据 2.文献综述 3.课题研究的基本内容及预期目标或成果 4.课题的研究方案 5.研究进度安排 6.主要参考文献 1.课题研究立项依据 (内容格式要求:字体为5号宋体,行距为固 ...
- java计算机毕业设计基于安卓Android的校园外卖点餐APP
项目介绍 餐饮行业是一个传统的行业.根据当前发展现状,网络信息时代的全面普及,餐饮行业也在发生着变化,单就点餐这一方面,利用手机点单正在逐步进入人们的生活.传统的点餐方式,不仅会耗费大量的人力.时间, ...
- 校园外卖点餐系统——Day04【菜品管理业务开发】
❤ 作者主页:欢迎来到我的技术博客
- app毕业设计 基于uni-app框架 在线外卖点餐app毕设题目课题选题作品源码(1)app功能和界面
- 外卖点餐APP-02(后台--员工管理)
(一)登录 实现思路: 接收到用户登录输入的用户名和密码,封装到了emp对象中 对密码进行MD5加密 创建条件构造器 添加sql查询判断条件,emp对象中的Username等于Employee数据表中 ...
- 基于Android的校园外卖点餐系统
本文主要概述了如何开发一个基于Android 的校园外卖系统,使用者可以通过手机下载校园外卖系统,可以通过手机下单系统进行点餐,用户的功能有:点菜.我的订单.地址管理等功能,管理员功能有:菜品管理.类 ...
- 干货| 外卖点餐系统(App及后台)
简单总结一下,这个系统是一个外卖点餐系统,也就是仿美团饿了么,也是当时我的毕业设计,花费了我很多精力,主要包括了移动端App.服务端(中台)和商家的后台管理.答辩完后我就将移动端源码放到了GitHub ...
- 外卖点餐 堂食点餐 扫码点餐源码 点餐APP源码
外卖点餐 堂食点餐 扫码点餐 支持店内扫码点餐.外卖点餐配送于一体的微餐饮系统,支持手机端商家管理,支持商家创建优惠券,支持商家自定义打印机功能,支持商家财务管理,支持商户菜品管理,支持菜品自定义分类 ...
最新文章
- Apache Spark 技术团队开源机器学习平台 MLflow
- 创建型模式——单例模式
- Tomcat集群session复制与Oracle的坑
- c++ 模板类实现堆栈实验报告_C++类模板实现栈
- KTween 补间引擎
- mysql datapump_mysqlpump - 一个数据库备份程序
- 29.优化 MySQL Server
- Active Diretory 全攻略(一)--目录服务
- sdut3138: N!(计算n!中结尾零的个数)
- 《深入解析Windows操作系统》要点整理
- 是非人生 — 一个菜鸟程序员的5年职场路 第30节
- 干货|浅谈iOS端短视频SDK技术实现
- Android开发---图片渲染问题----真的很严重
- transforms.Compose,transforms.ToTensor(),transforms.Normalize()的含义与原理
- 数仓建设 | ODS、DWD、DWM等理论实战(好文收藏)
- 免外围电路ESP32/ESP8266系列单片机串口一键下载方案
- 使用 WordPress快速个人建站指南
- -march= 所带参数(armv4)不正确(2018-07-01)
- 陪伴我走过春夏秋冬的校园
- 「SQL面试题库」 No_42 学生地理信息报告