(一)新增
controller层思路:
- 调用service处理
- 响应处理结果
service层
serviceImpl层思路:
注意:由于新增菜品操作了两张表 进行了2个写操作,要保证插入菜品基本信息和口味信息同时成功 新增菜品才成功 所以需要添加事务管理,在方法上打上@Transactional注解以及在启动类上开启事务注解驱动管理即可
- 检查菜品名称不能重复
- 保存菜品基本信息到菜品口味表dish,可以直接传dishDto对象 因为dishDto继承了Dish 插入时只会根据Dish类中有的属性设置插入字段的值 多余的字段会自动忽略
- 获取菜品id MyBatisPlus中当完成了新增操作之后,会自动的将生成的id赋值到对象的主键属性上
- 保存菜品口味信息到菜品口味表dish_flavor
- 获取菜品口味信息列表
- 为当前的菜品口味设置关联的菜品id dish_id字段
(二)分页查询
controller层
service层
serviceImpl层
注意事项:
问题1:分页查询时 菜品图片没有显示
原因:没有将测试数据中 菜品对应图片放入 D:reggie目录下
解决:将资源中提供的图片资源放入D:reggie目录下
问题2:分页查询时 菜品所属的分类名称没有展示
原因:前端页面进行菜品所属分类展示时 需要的是菜品分类名称categoryName 而我们查询菜品表返回的数据只有菜品所属分类id 没有分类名称
解决:
- 分页查询返回菜品列表数据的同时 在每一条菜品数据中应该包含菜品的所属分类名称categoryName
- 将每一个菜品dish对象中的数据 封装到dishDto对象中,并且设置dishDto对象的categoryName属性即可实现前端的正常展示
- 响应的数据 Page<Dish>> ==》 Page<DishDto>>
- 原来响应的给前端的数据是 R<Page<Dish>> —–> Page<Dish>:封装分页相关的数据 records:当前页数据List<Dish> total:总条数
- 现在我们要响应给前端的数据是 R<Page<DishDto>> —-> Page<DishDto>:封装分页相关的数据 records:当前页数据 List<DishDto> total:总条数
实际实现步骤:
- 从dishPage对象中获取当前页数据列表 dishList List<Dish>
- 遍历dishList集合 将集合中的每一个dish对象中的数据赋值到DishDto对象中,并且为DishDto对象的categoryName属性赋值
- 在遍历dishList集合时,将每一个新创建出来的dishDto对象 存入到dishDtoList集合中 【这样就得到当前页要显示的数据集合了】
- 将当前页数据集合dishDtoList和总条数封装到dishDtoPage对象中返回即可
(三)ID条件查询
controller层
service层
serviceImpl层思路:
- 根据菜品id查询菜品的基本信息数据
- 根据菜品id查询菜品的口味信息数据
- 将菜品的基本信息及其口味信息封装到DishDto对象中返回
- 使用Spring提供的BeanUtils工具类 可以将一个源对象的属性数据赋值到一个目标对象属性上 要求属性名称前后一致
- 返回结果
(四)修改
controller层
来源:六根火柴头
声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!