1. for循环方法
2. stream流方法
@GetMapping("/page")
public R<Page> page(int page, int pageSize, String name) {
//构造分页构造器对象
Page<Setmeal> pageInfo = new Page<>(page, pageSize);
Page<SetmealDto> setmealDtoPage = new Page<>();
//条件构造器
LambdaQueryWrapper<Setmeal> queryWrapper = new LambdaQueryWrapper<>();
//添加过滤条件
queryWrapper.like(name != null, Setmeal::getName, name);
//添加排序条件
queryWrapper.orderByDesc(Setmeal::getUpdateTime);
//执行分页查询
setmealService.page(pageInfo, queryWrapper);
//对象拷贝
BeanUtils.copyProperties(pageInfo, setmealDtoPage, "records");
List<Setmeal> records = pageInfo.getRecords();
//1.for循环方式
ArrayList<SetmealDto> list = new ArrayList<>();
for (Setmeal record : records) {
SetmealDto setmealDto = new SetmealDto();
BeanUtils.copyProperties(record, setmealDto);
Long categoryId = record.getCategoryId();
Category category = categoryService.getById(categoryId);
setmealDto.setCategoryName(category.getName());
list.add(setmealDto);
}
//2.stream流方式
// List<SetmealDto> list = records.stream().map((item) -> {
// SetmealDto setmealDto = new SetmealDto();
// BeanUtils.copyProperties(item, setmealDto);
// Long categoryId = item.getCategoryId();//分类id
// //根据id查询分类对象
// Category category = categoryService.getById(categoryId);
// if (category != null) {
// String categoryName = category.getName();
// setmealDto.setCategoryName(categoryName);
// }
// return setmealDto;
// }).collect(Collectors.toList());
setmealDtoPage.setRecords(list);
return R.success(setmealDtoPage);
}