1.新增菜品
/**
* 根据条件查询菜品分类
*
* @param category
* @return
*/
@GetMapping("/list")
public R<List<Category>> list(Category category) {
log.info("{}",category.getType());
LambdaQueryWrapper<Category> queryWrapper = new LambdaQueryWrapper<>();
if(category.getType() != null){
queryWrapper.eq(Category::getType, category.getType());
}
queryWrapper.orderByAsc(Category::getSort).orderByDesc(Category::getUpdateTime);
List<Category> list = categoryService.list();
return R.success(list);
}
实现新增菜品的下拉复选框
由于接收的参数除了菜品表还有口味表,所以封装成一个dto类
@Data
public class DishDto extends Dish {
private List<DishFlavor> flavors = new ArrayList<>();
private String categoryName;
private Integer copies;
}
保存口味信息以及菜品基本信息
/**
* 保存菜品(口味和基本信息)
* @param dishDto
*/
@Override
public void saveWithFlavor(DishDto dishDto) {
this.save(dishDto);
List<DishFlavor> flavors = dishDto.getFlavors();
flavors = flavors.stream().map((item) ->{
item.setDishId(dishDto.getId());
return item;
}).collect(Collectors.toList());
dishFlavorService.saveBatch(flavors);
}
2.菜品分页查询
/**
* 菜品的分頁查詢
*
* @param size
* @param pageSize
* @param name
* @return
*/
@GetMapping("/page")
public R<Page> page(Integer page, Integer pageSize, String name) {
//构造分页构造器对象
Page<Dish> pageInfo = new Page<>(page,pageSize);
Page<DishDto> dishDtoPage = new Page<>();
//条件构造器
LambdaQueryWrapper<Dish> queryWrapper = new LambdaQueryWrapper<>();
//添加过滤条件
queryWrapper.like(name != null,Dish::getName,name);
//添加排序条件
queryWrapper.orderByDesc(Dish::getUpdateTime);
//执行分页查询
dishService.page(pageInfo,queryWrapper);
//对象拷贝
BeanUtils.copyProperties(pageInfo,dishDtoPage,"records");
List<Dish> records = pageInfo.getRecords();
List<DishDto> list = records.stream().map((item) -> {
DishDto dishDto = new DishDto();
BeanUtils.copyProperties(item,dishDto);
Long categoryId = item.getCategoryId();//分类id
//根据id查询分类对象
Category category = categoryService.getById(categoryId);
if(category != null){
String categoryName = category.getName();
dishDto.setCategoryName(categoryName);
}
return dishDto;
}).collect(Collectors.toList());
dishDtoPage.setRecords(list);
return R.success(dishDtoPage);
}