放在DishController类中:
/**
* 分页查找
* @param page
* @param pageSize
* @param name
* @return
*/
@GetMapping("/page")
public R<Page> page(int page,int pageSize,String name){
//构造分页对象
Page<Dish> dishPage = new Page<>(page, pageSize);
Page<DishDto> dishDtoPage = new Page<>();
//条件构造器:过滤和排序
LambdaQueryWrapper<Dish> like = Wrappers.lambdaQuery(Dish.class)
.like(StringUtils.isNotEmpty(name),Dish::getName, name)
.orderByDesc(Dish::getUpdateTime);
//执行分页查询
dishService.page(dishPage,like);
//对象拷贝:将第一个参数对象,拷贝到第二个参数的对象中,第三个参数表示忽略拷贝的内容
BeanUtils.copyProperties(dishPage,dishDtoPage,"records");
List<Dish> records = dishPage.getRecords();
List<DishDto> list = records.stream().map((item) -> {
DishDto dishDto = new DishDto();
BeanUtils.copyProperties(item,dishDto);
Long categoryId = item.getCategoryId(); //分类id
//根据id查询分类对象
Category byId = categoryService.getById(categoryId);
if(byId != null){
String byIdName = byId.getName();
dishDto.setCategoryName(byIdName);
}
return dishDto;
}).collect(Collectors.toList());
dishDtoPage.setRecords(list);
return R.success(dishDtoPage);
}