黑马瑞吉外卖之菜品的启售停售

这篇博客详细介绍了如何实现前端与后端交互以完成菜品的启售和停售功能。通过分析前端代码,了解到状态变更依赖于后端返回的status字段,其中0代表停售,非0(如1)代表启售。前端使用JS方法处理单个和批量操作,后端使用MyBatisPlus进行数据更新。批量操作时,后端接收List<Long> ids参数,通过LambdaQueryWrapper遍历并更新状态。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

黑马瑞吉外卖值菜品的启售卖、和停售


这一部分功能是课程没有去完成的,但是其实是比较简单的,我们需要去完成菜品的启售和停售。

线上网站点击访问

执行之前的项目,我们要完成的就是这里的这个售卖的状态的更改。
在这里插入图片描述

我们先去看一下前端页面代码。
可以从这里看到,这里其实对菜品信息的启用和禁用是根据前端这里scope.row的status返回值来进行设置停售和启售的。

在这里插入图片描述
scope.row是返回当前行的数据对象,那么status就是这个数据对象的字段。所以这个字段的值就是我们后端代码返回过来的。从这里看其实就是0是停售,非0的话就是启售。其实的话就是1就是启售。

所以其实在数据库的菜品的表的设计当中就有这样的一个字段。

在这里插入图片描述
所以我们需要知道它的来源。

然后我们继续往下看,去看前端写出的一些具体的方法。

其实这个状态的按钮就是绑定到了这里。

在这里插入图片描述
然后我们具体的去看这个方法的具体的内容。可以看到这里其实还是绑定了批量的人操作,我们可以去进行批量的去操作。

在这里插入图片描述
所以一定还有另外的按钮绑定到了这个方法。所以我们可以去看前端页面上面的代码。

我们可以发现这里其实也是调用到了同样的绑定的方法,只不过它这里其实传了一个字符串的1。
在这里插入图片描述
所以到这里我们其实需要完成售卖状态的修改,包含的就是批量售卖状态的修改,另外就是单个状态的修改。这样处理的话其实我们就可以在后端接收的时候一律用数组的形式去接收就好了。

我们这样就明白我们去实现了怎么样的功能。

在这里插入图片描述
然后我们继续向下面看方法。
在这里插入图片描述
然后我们点进去这个方法里面。
还是写在了一个js里面,这样我们就把具体的请求和参数传递看的清清楚楚。
在这里插入图片描述
然后我们去写后端的代码。

我们可以先去在浏览器看一下参数传递。选中批量。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
选单个
在这里插入图片描述
这样去在浏览器去看前端传来的数据也可以帮助我们更加清楚的看到参数的传递和请求路径。

现在我们开始写后端代码。用mybatisplus就十分简单。

之前写单个菜品的启售以及停售就是这样的。

  @PostMapping("/status/{status}")
    public R_<String> ban_status(@PathVariable("status") Integer status,long ids)
    {
        Dish dish = dishService.getById(ids);
        if(dish!=null)
        {
            dish.setStatus(status);
            dishService.updateById(dish);
            return  R_.success("状态修改成功");
        }
        return  R_.error("菜品状态修改异常");
    }

这里·我们需要统一的处理,那么就需要将ids这里接收形式设置为数组,我们可以用集合处理。我们可以这样去接收List ids。然后批量的话其实可以对集合遍历然后想更新。

那么具体就是这样写了。

  @PostMapping("/status/{status}")
    public R_<String> ban_status(@PathVariable("status") Integer status,List<Long> ids)
    {
        LambdaQueryWrapper<Dish> queryWrapper = new LambdaQueryWrapper<>();
        queryWrapper.in(ids!=null,Dish::getId,ids);
        List<Dish> list = dishService.list(queryWrapper);
        for (Dish dish : list) {
            if (dish!=null)
            {
                dish.setStatus(status);
                dishService.updateById(dish);
            }

        }
        return R_.success("售卖状态修改成功");
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

兰舟千帆

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值