第一步:![](https://img-blog.csdnimg.cn/d267fe0280ef427988fc3580b97b81d8.png)
两种方式做该下拉列表:
第一种:
/**
* 菜品分类下拉列表
* @param category
* @return
*/
@GetMapping("/list")
public R<List<Category>> list(Category category){
LambdaQueryWrapper<Category> eq = Wrappers.lambdaQuery(Category.class)
.eq(Category::getType, category.getType()).orderByAsc(Category::getSort);
List<Category> list = categoryService.list(eq);
return R.success(list);
}
第二种:
/**
* 菜品分类下拉列表
* @param type
* @return
*/
@GetMapping("/list")
public R<List<Category>> list(int type){
LambdaQueryWrapper<Category> eq = Wrappers.lambdaQuery(Category.class)
.eq(Category::getType, type).orderByAsc(Category::getSort);
List<Category> list = categoryService.list(eq);
return R.success(list);
}
第二步:两表关联怎么保存以及返回数据
红色框内 属于dish表的数据,红色框外属于dish_flavor表
@Data
public class DishDto extends Dish {
private List<DishFlavor> flavors = new ArrayList<>();
private String categoryName;
private Integer copies;
}
public interface DishService extends IService<Dish> {
//新增菜品,同时插入菜品对应的口味数据,需要操作两张表:dish、dish_flavor
public void saveWithFlavor(DishDto dishDto);
}
@Service
public class DishServicelmpl extends ServiceImpl<DishMapper, Dish> implements DishService {
@Autowired
private DishFlavorService dishFlavorService;
/**
* 新增菜品,同时保存对应的口味数据
* @param dishDto
*/
@Override
@Transactional
public void saveWithFlavor(DishDto dishDto) {
//保存菜品的基本信息到菜品表dish
this.save(dishDto);
//菜品id:两表的关联id
Long dishId = dishDto.getId();
//菜品口味
List<DishFlavor> flavors = dishDto.getFlavors();
flavors = flavors.stream().map((item) -> {
item.setDishId(dishId);
return item;
}).collect(Collectors.toList()); //将map类型再转换为List类型
//保存菜品口味数据到菜品口味表dish_flavor
dishFlavorService.saveBatch(flavors);
}
}
开启对@Transactional注解的扫描