基于 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);
}
运行测试
输入测试数据

新增菜品成功
