瑞吉外卖项目——修改菜品

需求分析

  • 在菜品管理页面点击修改按钮,跳转到修改菜品页面,在页面回显相关信息,并进行修改,最后点击保存完成修改。
前后端交互过程
  • 页面发送ajax请求,请求服务端获取分类信息,一遍展示菜品分类下拉框效果展示。
  • 页面发送ajax请求,请求服务端根据id进行查询数据库,将来进行菜品信息回显。
    控制层代码
  /**
   * 根据id查询菜品信息。
   *
   * @param id
   * @return
   */
  @GetMapping("/{id}")
  public R<DishDto> get(@PathVariable Long id) {
    //日志
    log.info("DishId:{}", id);
    //执行查询。
    DishDto dishDto = dishService.getByIdWithFlavor(id);
    return R.success(dishDto);
  }

业务层代码

  @Override
  public DishDto getByIdWithFlavor(Long id) {
    // 查询dish表中的基本信息。
    Dish dish = this.getById(id);
    DishDto dishDto = new DishDto();
    //对象拷贝
    BeanUtils.copyProperties(dish,dishDto);
    // 创建条件构造器。
    LambdaQueryWrapper<DishFlavor> lambdaQueryWrapper = new LambdaQueryWrapper<>();
    lambdaQueryWrapper.eq(DishFlavor::getDishId, dish.getId());
    // 查询dish_flavor表信息。
    List<DishFlavor> flavors = dishFlavorService.list(lambdaQueryWrapper);
    dishDto.setFlavors(flavors);
    return dishDto;
  }

  • 页面发送请求,请求服务端进行图片下载,用于页图片回显。
  • 当用户点击保存按钮时,将修改后的信息以json数据形式提交到服务端进一步保存到数据库。
    控制层代码
  /**
   * 更新菜品
   *
   * @param dishDto
   * @return
   */
  @PutMapping
  public R<String> update(@RequestBody DishDto dishDto) {
    log.info("更新菜品:{}", dishDto);
    //开始更新信息
    dishService.updateWithFlavor(dishDto);
    return R.success("更新菜品信息成功");
  }

业务层代码

  @Override
  public void updateWithFlavor(DishDto dishDto) {
    // 保存dish表中的基本数据。
    this.updateById(dishDto);
    // 清楚菜品对应的口味信息,在dish_flavor中的删除
    LambdaQueryWrapper<DishFlavor> queryWrapper = new LambdaQueryWrapper<>();
    queryWrapper.eq(DishFlavor::getDishId, dishDto.getId());
    dishFlavorService.remove(queryWrapper);
    // 插入页面提交的新的菜品的口味信息。
    List<DishFlavor> flavors = dishDto.getFlavors();
    // 函数式编程,stream流。
    flavors =
        flavors.stream()
            .map(
                (item) -> {
                  //设置dish_id
                  item.setDishId(dishDto.getId());
                  return item;
                })
            .collect(Collectors.toList());
    dishFlavorService.saveBatch(flavors);
  }

功能测试通过。

  • 祝你:吉时吉日喜如风,丰年丰月如风增,争富争财争长寿,寿山寿海寿长生,生富生才生贵子,子孝孙贤代代荣,荣华富贵年年有,有钱有势有前程!
  • 祝你:吃不愁穿不愁,不住平方住高楼,天天潇洒,夜夜温柔,买卖如同长江水,生活如同井上花,大财小财天天进,一顺百顺发发发!
  • 点点关注不迷路,感谢老铁的关注。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值