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

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

保存菜品

菜品管理页面提供了一个"+新增菜品"按钮,单击该按钮时,会打开新增菜品页面。

请求路径/dish,请求方法POST,参数使用DishDto类接收。

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

java 复制代码
@Data
public class DishDto extends Dish {
    private String categoryName;
    private List<DishFlavor> flavors;
}

添加菜品口味的通用类

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

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

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

java 复制代码
    @PostMapping
    public R<String> save(@RequestBody DishDto dishDto){
        dishService.saveWithFlavor(dishDto);
        return R.success("新增菜品成功");
    }

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

添加saveWithFlavor接口。

java 复制代码
public interface DishService extends IService<Dish> {

    public Page<DishDto> selectDishDtoPage(Page page);

    public void saveWithFlavor(DishDto dishDto);

}

DishServiceImpl 实现类添加实现方法。

java 复制代码
    @Autowired
    private DishFlavorService dishFlavorService;

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

运行测试

输入测试数据

新增菜品成功

相关推荐
vx-程序开发18 小时前
django汽车租赁系统---附源码25360
java·javascript·spring boot·python·eclipse·django·php
2601_9538246119 小时前
【计算机毕业设计】基于Spring Boot的宠物领养救助平台的设计与实现
spring boot·课程设计·宠物
RuoyiOffice19 小时前
SpringBoot3+Vue3 会议室预订系统:时段冲突三模式检测 + 会前定时提醒与 cancelByBiz
spring boot·vue3·flowable·消息中心·spring boot 3·会议室·时段冲突
万亿少女的梦16820 小时前
基于Spring Boot、Java与MySQL的同城宠物服务系统设计与实现
java·spring boot·mysql·系统设计·协同过滤
andongni20320 小时前
SpringBoot RESTful API 设计与实现
spring boot·后端·restful
万亿少女的梦16820 小时前
基于Spring Boot、Vue与MySQL的私人健身教练预约管理系统设计
java·spring boot·mysql·vue·预约管理
云烟成雨TD20 小时前
Micrometer 系列【59】统一观测:Spring Boot 集成指南
spring boot·云原生·链路追踪
山荷枝2 天前
04-框架--SpringBoot
java·spring boot·后端
用户3126874877202 天前
你的配置真的绑定上了吗?Spring Boot @ConfigurationProperties 全链路拆解
spring boot
2601_963870222 天前
【计算机毕业设计】基于Spring Boot+Vue的高考志愿填报系统的设计与实现
spring boot·课程设计·高考