基于 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);
    }

运行测试

输入测试数据

新增菜品成功

相关推荐
好奇的菜鸟8 分钟前
Spring Boot 事务失效问题:同一个 Service 类中方法调用导致事务失效的原因及解决方案
数据库·spring boot·sql
来自宇宙的曹先生1 小时前
视频网站弹幕系统简易实现
spring boot·音视频
Super Rookie7 小时前
Spring Boot 企业项目技术选型
java·spring boot·后端
来自宇宙的曹先生7 小时前
用 Spring Boot + Redis 实现哔哩哔哩弹幕系统(上篇博客改进版)
spring boot·redis·后端
lzzy_lx_20898 小时前
Spring Boot登录认证实现学习心得:从皮肤信息系统项目中学到的经验
java·spring boot·后端
小七mod9 小时前
【Spring】Java SPI机制及Spring Boot使用实例
java·spring boot·spring·spi·双亲委派
上上迁10 小时前
分布式接口幂等性的演进和最佳实践,含springBoot 实现(Java版本)
java·spring boot·分布式
paopaokaka_luck10 小时前
基于SpringBoot+Vue的非遗文化传承管理系统(websocket即时通讯、协同过滤算法、支付宝沙盒支付、可分享链接、功能量非常大)
java·数据库·vue.js·spring boot·后端·spring·小程序
paopaokaka_luck12 小时前
智能推荐社交分享小程序(websocket即时通讯、协同过滤算法、时间衰减因子模型、热度得分算法)
数据库·vue.js·spring boot·后端·websocket·小程序
柒七爱吃麻辣烫13 小时前
八股文系列-----SpringBoot自动配置的流程
java·spring boot·rpc