当前位置: 首页 > web >正文

基于 Spring Boot 瑞吉外卖系统开发(九)

基于 Spring Boot 瑞吉外卖系统开发(九)

保存菜品

菜品管理页面提供了一个“+新增菜品”按钮,单击该按钮时,会打开新增菜品页面。
在这里插入图片描述
请求路径/dish,请求方法POST,参数使用DishDto类接收。
在这里插入图片描述
在这里插入图片描述

DishDto 添加flavors属性用来接收flavors数据。

@Data
public class DishDto extends Dish {private String categoryName;private List<DishFlavor> flavors;
}

添加菜品口味的通用类

新增菜品信息时,不仅需要新增菜品的基本信息,还需要新增菜品的口味信息,所以也需要操作菜品口味表。因此,需要创建DishFlavor通用类和接口。

@Mapper
public interface DishFlavorMapper extends BaseMapper<DishFlavor> {
}
public interface DishFlavorService extends IService<DishFlavor> {
}
@Service
public class DishFlavorServiceImpl extends ServiceImpl<DishFlavorMapper, DishFlavor> implements DishFlavorService {
}

在DishController类中定义新增菜品的方法

    @PostMappingpublic R<String> save(@RequestBody DishDto dishDto){dishService.saveWithFlavor(dishDto);return R.success("新增菜品成功");}

添加保存菜品和口味的接口

添加saveWithFlavor接口。

public interface DishService extends IService<Dish> {public Page<DishDto> selectDishDtoPage(Page page);public void saveWithFlavor(DishDto dishDto);}

DishServiceImpl 实现类添加实现方法。

    @Autowiredprivate DishFlavorService dishFlavorService;@Transactionalpublic void saveWithFlavor(DishDto dishDto) {//新增菜品的基本信息到菜品表dishthis.save(dishDto);Long dishId = dishDto.getId();//获取菜品id//菜品口味List<DishFlavor> flavors = dishDto.getFlavors();for(DishFlavor flavor:flavors){flavor.setDishId(dishId);}//新增菜品口味数据到菜品口味表dish_flavordishFlavorService.saveBatch(flavors);}

运行测试

输入测试数据

在这里插入图片描述

新增菜品成功

在这里插入图片描述

http://www.xdnf.cn/news/2642.html

相关文章:

  • 数据结构之顺序表
  • 【iOS】OC源码阅读——alloc源码分析
  • uni-app(vue3)动态获取swiper的区域高度以及通过scroll-view实现区域滚动和scroll-view的置顶功能
  • LangChain入门(二)安装开发环境
  • 【论文复现】SmoothQuant的安装与使用
  • (云计算HCIP)HCIP全笔记(十三)本篇介绍虚拟化技术,内容包含:虚拟化资源、虚拟化过程、I/O虚拟化、虚拟化架构KVM和Xen介绍、主流虚拟化技术介绍
  • 亚马逊云科技2025战略解析:AI驱动下的全球生态重塑
  • 链表相关——Python实现
  • 【Rust通用集合类型】Rust向量Vector、String、HashMap原理解析与应用实战
  • 使用 MQTT - C 访问 IoTDA 平台:一个完整的嵌入式示例
  • Java面试场景深度解析
  • 排序--数据结构初阶(4)(C/C++)
  • QT开发技术【qcustomplot 曲线与鼠标十字功能】
  • 【C++ Qt】快速上手 显⽰类控件(Label、LCDNumber、ProcessBar、CalendarWidget)
  • Java项目技术栈使用场景深度解析
  • el-Input输入数字自动转千分位进行展示
  • Golang|外观模式和具体逻辑
  • 前端:纯HTML、CSS和JS菜单样式
  • 如何免费把PPT的页面输出为透明的图片-快速制作图新说汇报内容
  • 【Java开发日记】OpenFeign 的 9 个坑
  • 【wpf】 WPF中实现动态加载图片浏览器(边滚动边加载)
  • GCC 15.1 发布,包含 COBOL 编译器及多项其他改进
  • FastAPI中使用Pydantic进行数据验证的示例与关键技术点分析
  • java Optional
  • 【vLLM 学习】CPU 离线处理
  • 通俗易懂一文讲透什么是 MCP?
  • 坐标转换:从WGS-84到国内坐标系(GCJ-02BD-09)
  • 大语言模型 - 运行、微调的显存计算详解与优化 全量微调、LoRA 优化策略
  • windows安装docker教程
  • PTA -L1-005 考试座位号(BufferedReader、Arraylist动态数组、Map)