需求分析:
系统中的套餐数据很多的时候,如果在一个页面中全部展示出来会显得比较乱,不便于查看,所以一般的系统中都会以分页的方式来展示数据
梳理交互过程:
1、页面发送ajax请求,将分页查询参数(page, pageSize,name)提交到服务端,获取分页数据
2、页面发送请求,请求服务端进行图片下载,用于页面图片展示
/** * 套餐分页查询 * @param page * @param pageSize * @param name * @return */ @GetMapping("/page") public R<Page> page(int page, int pageSize, String name){ //创建分页构造器 Page<Setmeal> pageInfo = new Page<>(page, pageSize); //创建条件构造器 LambdaQueryWrapper<Setmeal> queryWrapper = new LambdaQueryWrapper<>(); //添加查询条件,根据name进行like模糊查询 queryWrapper.like(name!=null, Setmeal::getName, name); //添加排序条件,根据更新时间降序排列 queryWrapper.orderByDesc(Setmeal::getUpdateTime); setmealService.page(pageInfo, queryWrapper); Page<SetmealDto> dtoPage = new Page(page, pageSize); //对象拷贝,因为pageInfo中的records是Setmeal类型,而dtoPage中的records是SetmealDto类型 BeanUtils.copyProperties(pageInfo, dtoPage, "records"); List<Setmeal> records = pageInfo.getRecords(); //通过category_id查询categoryName List<SetmealDto> list = records.stream().map((item) -> { SetmealDto setmealDto = new SetmealDto(); //对象拷贝 BeanUtils.copyProperties(item, setmealDto); //根据categoryId查询分类对象category Category category = categoryService.getById(item.getCategoryId()); if(category!=null){ setmealDto.setCategoryName(category.getName()); } return setmealDto; }).collect(Collectors.toList()); dtoPage.setRecords(list); return R.success(dtoPage); }
标签:category,name,pageSize,查询,records,套餐,page,分页 From: https://www.cnblogs.com/fxzm/p/17209320.html