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