黑马瑞吉外卖功能完善以及目前项目踩坑

Hello,大家好!今天我为大家分享瑞吉外卖day01~day04的学习心得,因个人能力有限,部分代码可能需要完善,希望各位大佬指正!

瑞吉外卖是b站 黑马程序员 的项目,视频链接:【黑马程序员Java项目实战《瑞吉外卖》,轻松掌握springboot + mybatis plus开发核心技术的真java实战项目】 https://www.bilibili.com/video/BV13a411q753/?p=69&share_source=copy_web&vd_source=242a4821489990eb26afcb7207799ad7

我在学习过程中发现菜品管理这一块黑马并未带着我们实现全部功能,单个停售,单个起售,单个删除,批量删除,批量起售以及批量停售是留给我们实战练手用的,所以这篇博客主要是提供这些未实现的功能思路以及代码,并且这个项目有两个坑。

菜品管理主页面

黑马瑞吉外卖功能完善以及目前项目踩坑_第1张图片

 第一个为批量停售,第二个为单个起售。

我们分析url请求可以看出单个操作为/dish/status/{status}?ids=x,批量操作为/dish/status/{status}?ids=x,y

黑马瑞吉外卖功能完善以及目前项目踩坑_第2张图片

黑马瑞吉外卖功能完善以及目前项目踩坑_第3张图片

这点我们也可以从food.js文件中得到证实

黑马瑞吉外卖功能完善以及目前项目踩坑_第4张图片

 

 两者区别为一个是单个值,一个是数组,所以我们可以使用一个方法来完成所有修改状态信息的操作

黑马瑞吉外卖功能完善以及目前项目踩坑_第5张图片

 下面我们用同样的方法来分析单个删除以及批量删除

黑马瑞吉外卖功能完善以及目前项目踩坑_第6张图片

可以看出单个删除的请求url为/dish?ids=x 批量删除的请求url为/dish?ids=x,y

所以我们仍然可以只用一个方法来完成单个删除以及批量删除操作

黑马瑞吉外卖功能完善以及目前项目踩坑_第7张图片 

由于删除菜品不仅要删除菜品信息还要删除菜品口味信息,要删除dish,dish_flavor两张表的信息

所以我们不采用mybatisplus封装好的方法,在dishService自定义一个删除方法

在dishServiceImpl实现这个方法

黑马瑞吉外卖功能完善以及目前项目踩坑_第8张图片 

然后我在测试中发现不管单个删除还是批量删除都是只能删除菜品信息,不能删除菜品口味信息。

后来发现ids是菜品的id并不是菜品口味的id ,所以我们直接调用removeById把ids是删除不了对应口味信息的

所以我们要先根据菜品id查询到菜品口味信息,然后获取菜品口味的id再调用方法删除信息

注意:每个菜品可能会对应多个口味,所以我们要用增强for循环删除

黑马瑞吉外卖功能完善以及目前项目踩坑_第9张图片

正确带代码如下:

黑马瑞吉外卖功能完善以及目前项目踩坑_第10张图片

项目踩坑 

 p44 category表没有is_delete字段

资料给的实体类有,所以我们需要注释掉

黑马瑞吉外卖功能完善以及目前项目踩坑_第11张图片

p46前端发的请求url为ids,要在controller把方法参数改为ids 

 黑马瑞吉外卖功能完善以及目前项目踩坑_第12张图片

 

 

 

你可能感兴趣的:(瑞吉外卖,spring,boot,mybatis,后端,restful)