瑞吉外卖,day4的批量删除和批量起售,停售的功能实现

瑞吉外卖,day4的批量删除和批量起售,停售的功能实现

根据f12的网络来看,发送请求的ids是一个字符串,

在这里插入图片描述
所有我们服务端就可以用String类型来接受它。

   /**
     * 批量删除
     */
    @DeleteMapping
    public Result<String> delete(String ids){
        List<Long> idList = StringToLong.stringToLong(ids); //调用封装好的类把String类型转化为Long类型
        dishService.removeWithFlavor(idList); //自定义的方法
        return Result.success("删除成功");
    }

    /**
     * 批量停售与起售
     * @param status
     * @param ids
     * @return
     */
    @PostMapping("/status/{status}")
    public  Result<String>  sell(@PathVariable int status,String ids){
        List<Long> idList = StringToLong.stringToLong(ids); //调用封装好的类把String类型转化为Long类型
        idList.stream().map(item->{ //遍历idList集合
            LambdaQueryWrapper<Dish> queryWrapper = new LambdaQueryWrapper<>(); //条件构造器
            queryWrapper.eq(Dish::getId,item);  //相当于where id = ???
            Dish dish =new Dish();  //创建一个dish对象
            dish.setStatus(status); //给dish对象的status属性赋值
            dishService.update(dish,queryWrapper);  //根据dish对象里的status值进行更新
            return  idList;
        }).collect(Collectors.toList());
        return Result.success("更改成功");
    }

dishServiceImpl类里自己新加的方法removeWithFlavor

 /**
     * 删除菜品,同时删除对应的口味数据
     * @param ids
     */
    @Override
    public void removeWithFlavor(List<Long> ids) {
        ids.stream().map(item->{
            //删除菜品
            this.removeById(item);
            //删除对应的口味数据
            LambdaQueryWrapper<DishFlavor> queryWrapper = new LambdaQueryWrapper<>();
            queryWrapper.eq(DishFlavor::getDishId,item);
            dishFlavorService.remove(queryWrapper);
            return ids;
        }).collect(Collectors.toList());



    }

自己定义的类,来实现String转化为Long的类

public class StringToLong {
    public static List<Long> stringToLong(String ids){
        List<Long> idList =new ArrayList<>();
        if (ids.contains(",")) {    //ids有多个值的时候

            String[] id1 = ids.split(",");

            for (String s : id1) {
                Long id = Long.valueOf(s);
                idList.add(id);
            }

        }else   //ids为单个值
        {
            Long value = Long.valueOf(ids);
            idList.add(value);
        }
        return idList;
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值