在瑞吉点餐中,我对菜品分页功能的内容进行了部分笔记,尤其使用BeanUtils工具的使用,链接如下:https://blog.csdn.net/weixin_67148295/article/details/125392438?spm=1001.2014.3001.5502
/**
* 菜品分类查询
* @param name
* @param page
* @param pagaSize
* @return
*/
@GetMapping("/page")
public R<Page> page(String name, int page, int pagaSize) {
Page<Dish> page1 = new Page(page, pagaSize);
Page<DishDto> page2 = new Page();
LambdaQueryWrapper<Dish> queryWrapper = new LambdaQueryWrapper<>();
// 模糊查询
queryWrapper.like(name != null, Dish::getName, name);
// 排序
queryWrapper.orderByDesc(Dish::getUpdateTime);
dishService.page(page1, queryWrapper);
// 对象拷贝
BeanUtils.copyProperties(page1, page2, "records");
List<Dish> records = page1.getRecords();
List<DishDto> list = records.stream().map((item) -> {
DishDto dishDto = new DishDto();
BeanUtils.copyProperties(item, dishDto);
String categoryId = item.getCategoryId();
//根据id查询分类对象
Category category = categoryService.getById(categoryId);
if (category != null) {
String categoryName = category.getName();
dishDto.setCategoryName(categoryName);
}
return dishDto;
}).collect(Collectors.toList());
page2.setRecords(list);
return R.success(page2);
}
以上操作是为了实现下面成功响应的实例,其中还用到了Dto(本质就是一个实体类,大家可以去查一下相关的资料进行了解)