瑞吉外卖-套餐管理-修改操作

  1. 查看URL

首先查看网页请求的URL
在这里插入图片描述
如图所示,/后面跟的是setmeal的id
所以需要注意请求路径
2. 显示页面原来的数据(setmeal原来的数据先显示)
根据URL的id进行查询数据
需要注意的是如果只是根据id查询Setmeal的数据,那么菜品信息就不能查询到,所以需要使用到setmealDish这一张表,将Dish也查出来
具体的Service层如下:

@Override
    public SetmealDto getByIdWithDish(Long id) {
        Setmeal setmeal = this.getById(id);
        SetmealDto setmealDto=new SetmealDto();
        BeanUtils.copyProperties(setmeal,setmealDto);
        //查询Steam对应的Dish
        LambdaQueryWrapper<SetmealDish> queryWrapper=new LambdaQueryWrapper<>();
        queryWrapper.eq(SetmealDish::getSetmealId,setmeal.getId());
        List<SetmealDish> dishes = setmealDishService.list(queryWrapper);
        setmealDto.setSetmealDishes(dishes);
        return setmealDto;
    }

那么Controller层就直接调用就好

@GetMapping("/{id}")
    public R<SetmealDto> updata(@PathVariable Long id){
        SetmealDto setmealDto= setmealService.getByIdWithDish(id);
        return R.success(setmealDto);
    }

  1. 修改信息提交
    将原来的数据进行回显了之后,就需要将修改后的数据进行保存了
    方法一样,首先查看URL
    在这里插入图片描述
    接下来写Service层的实现类,对提交过来的数据进行保存,这里注意一下,提交过来的数据不仅仅有Setmeal还有Dish,所以需要保存SetmealDto这个类型
    service层的代码如下
@Override
    public void updataWithDish(SetmealDto setmealDto) {
        //保存当前的Setmeal基本信息
        this.updateById(setmealDto);
		//清理当前的表
        LambdaQueryWrapper<SetmealDish> queryWrapper=new LambdaQueryWrapper<>();
        queryWrapper.eq(SetmealDish::getSetmealId,setmealDto.getId());
        setmealDishService.remove(queryWrapper);
		//更新表
        List<SetmealDish> setmealDishes = setmealDto.getSetmealDishes();
        setmealDishes=setmealDishes.stream().map((item)->{
            item.setSetmealId(setmealDto.getId());
            return item;
        }).collect(Collectors.toList());

        setmealDishService.saveBatch(setmealDishes);


    }

接下来是controller进行直接调用就好

@PutMapping
    public R<String> updata(@RequestBody SetmealDto setmealDto){
        setmealService.updataWithDish(setmealDto);
        return R.success("修改成功!");
    }

完成(^-^)V

  • 7
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值