瑞吉外卖菜品售卖状态修改(停售、启售,批量)

一、需求

在这里插入图片描述
从上图看出前段请求的URL内包含的参数,一个是dish下的路径status,一个是后面跟上的0,?ids。响应方法是POST。

二、代码

接下来就是确定我们方法接收的参数形式是什么。
0是对应的路径上的参数,在PostMapping的路径上用{status}
后面的ids有两种思路,一个是用String[] 数组接收id,随后用foreach进行遍历修改菜品对应的状态;
另一个是使用@RequestParam接收Long型ids数组 Long[] ids,或者List<Long> ids都可以。代码如下

思路一

    /**
     * 菜品批量停售起售
     * @param status
     * @param ids
     * @return
     */
    @PostMapping("/status/{status}")
    public R<String> updateStatus(@PathVariable int status,String[] ids){
        log.info("id: {} {}", status, ids);
        for (String id: ids) {
             //添加条件构造器
            LambdaUpdateWrapper<Dish> updateWrapper = new LambdaUpdateWrapper<>();
            //根据id更新Dish表中的对应的菜品状态
            updateWrapper.set(Dish::getStatus,status).in(Dish::getId, id);
            dishService.update(updateWrapper);
        }
        return R.success("菜品信息修改成功");
        
    }

思路二

@PostMapping("/status/{status}")
    public R<String> updateStatus(@PathVariable int status,@RequestParam Long[] ids){
        log.info("id {} {}",status, ids);
        LambdaQueryWrapper<Dish> queryWrapper = new LambdaQueryWrapper<>();
        queryWrapper.in(Dish::getId,ids);
        List<Dish> list = dishService.list(queryWrapper);
        list.stream().map((item) ->{
            item.setStatus(status);
            return item;
        }).collect(Collectors.toList());
        dishService.updateBatchById(list);
        return R.success("菜品信息修改成功");
    }
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值