需求分析
最好看原型
代码开发
前后端交互过程
- 前端页面发送ajax请求,将分页查询参数(page、pagesize、name)提交到服务端,获取分页数据。
- 页面发送请求,请求服务端进行图片下载,用于页面食品图片展示。
controller层
/**
* 菜品分页查询。
*
* @param page
* @param pageSize
* @param name
* @return
*/
@GetMapping("/page")
public R<Page> page(int page, int pageSize, String name) {
// 验证是否接收到前端数据。
log.info("page:{},pagesize:{},name:{}", page, pageSize, name);
// 构造分页构造器,
Page<Dish> pageInfo = new Page<>();
Page<DishDto> dishDtoPage = new Page<>();
// 构造条件构造器,一定要添加泛型。
LambdaQueryWrapper<Dish> queryWrapper = new LambdaQueryWrapper();
// 添加过滤条件
queryWrapper.like(StringUtils.isNotEmpty(name), Dish::getName, name);
// 添加排序条件
queryWrapper.orderByDesc(Dish::getUpdateTime);
// 执行查询
dishService.page(pageInfo, queryWrapper);
// 对象的拷贝
BeanUtils.copyProperties(pageInfo, dishDtoPage, "records");
List<Dish> records = pageInfo.getRecords();
//stream处理。
List<DishDto> list =
records.stream()
.map(
(dish) -> {
DishDto dishDto = new DishDto();
BeanUtils.copyProperties(dish, dishDto);
// 分类id
Long categoryId = dish.getCategoryId();
// 根据id查分类对象。
Category category = categoryService.getById(categoryId);
// 获取categoryName
if (category!=null){
String categoryName = category.getName();
dishDto.setCategoryName(categoryName);
}
return dishDto;
})
.collect(Collectors.toList());
dishDtoPage.setRecords(list);
return R.success(dishDtoPage);
}
功能测试通过
- 祝你:吉时吉日喜如风,丰年丰月如风增,争富争财争长寿,寿山寿海寿长生,生富生才生贵子,子孝孙贤代代荣,荣华富贵年年有,有钱有势有前程!
- 祝你:吃不愁穿不愁,不住平方住高楼,天天潇洒,夜夜温柔,买卖如同长江水,生活如同井上花,大财小财天天进,一顺百顺发发发!
- 点点关注不迷路,感谢老铁的关注。