苍穹外卖学习-----2024/03/010---修改套餐,套餐状态修改开发

修改套餐

4.1 需求分析和设计

产品原型:
在这里插入图片描述

接口设计(共涉及到5个接口):

  • 根据id查询套餐
  • 根据类型查询分类(已完成)
  • 根据分类id查询菜品(已完成)
  • 图片上传(已完成)
  • 修改套餐
    在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4.2 代码实现

4.2.1 SetmealController
/**
     * 根据id查询套餐,用于修改页面回显数据
     *
     * @param id
     * @return
*/
@GetMapping("/{id}")
@ApiOperation("根据id查询套餐")
public Result<SetmealVO> getById(@PathVariable Long id) {
    SetmealVO setmealVO = setmealService.getByIdWithDish(id);
    return Result.success(setmealVO);
}

/**
     * 修改套餐
     *
     * @param setmealDTO
     * @return
*/
@PutMapping
@ApiOperation("修改套餐")
public Result update(@RequestBody SetmealDTO setmealDTO) {
    setmealService.update(setmealDTO);
    return Result.success();
}
4.2.2 SetmealService
/**
     * 根据id查询套餐和关联的菜品数据
     * @param id
     * @return
*/
SetmealVO getByIdWithDish(Long id);

/**
     * 修改套餐
     * @param setmealDTO
*/
void update(SetmealDTO setmealDTO);
4.2.3 SetmealServiceImpl
/**
     * 根据id查询套餐和套餐菜品关系
     *
     * @param id
     * @return
*/
public SetmealVO getByIdWithDish(Long id) {
    Setmeal setmeal = setmealMapper.getById(id);
    List<SetmealDish> setmealDishes = setmealDishMapper.getBySetmealId(id);

    SetmealVO setmealVO = new SetmealVO();
    BeanUtils.copyProperties(setmeal, setmealVO);
    setmealVO.setSetmealDishes(setmealDishes);
  
    return setmealVO;
}

/**
     * 修改套餐
     *
     * @param setmealDTO
*/
@Transactional
public void update(SetmealDTO setmealDTO) {
    Setmeal setmeal = new Setmeal();
    BeanUtils.copyProperties(setmealDTO, setmeal);

    //1、修改套餐表,执行update
    setmealMapper.update(setmeal);

    //套餐id
    Long setmealId = setmealDTO.getId();

    //2、删除套餐和菜品的关联关系,操作setmeal_dish表,执行delete
    setmealDishMapper.deleteBySetmealId(setmealId);

    List<SetmealDish> setmealDishes = setmealDTO.getSetmealDishes();
    setmealDishes.forEach(setmealDish -> {
        setmealDish.setSetmealId(setmealId);
    });
    //3、重新插入套餐和菜品的关联关系,操作setmeal_dish表,执行insert
    setmealDishMapper.insertBatch(setmealDishes);
}
4.2.4 SetmealDishMapper
	/**
     * 根据套餐id查询套餐和菜品的关联关系
     * @param setmealId
     * @return
     */
    @Select("select * from setmeal_dish where setmeal_id = #{setmealId}")
    List<SetmealDish> getBySetmealId(Long setmealId);

修改套餐的开发

2.套餐状态修改

苍穹外卖–套餐的起售和禁售的开发

相关推荐

  1. 苍穹项目(黑马)学习笔记

    2024-03-15 17:08:03       230 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-03-15 17:08:03       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-15 17:08:03       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-15 17:08:03       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-15 17:08:03       20 阅读

热门阅读

  1. 数据分析入门,深入浅出的数据分析

    2024-03-15 17:08:03       21 阅读
  2. 【C#语言入门】20. 重写,多态

    2024-03-15 17:08:03       21 阅读
  3. Docker学习——容器

    2024-03-15 17:08:03       20 阅读
  4. Spring Boot 单元测试

    2024-03-15 17:08:03       18 阅读
  5. k8s学习笔记

    2024-03-15 17:08:03       17 阅读
  6. redis监控

    2024-03-15 17:08:03       19 阅读
  7. 22.SELECT基本查询

    2024-03-15 17:08:03       21 阅读
  8. 电脑监控软件未来发展趋势分析

    2024-03-15 17:08:03       21 阅读
  9. python实现websocket

    2024-03-15 17:08:03       22 阅读
  10. 提高分类或者预测模型的准确度

    2024-03-15 17:08:03       24 阅读