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