1.简单版本
@Override
public Page<News> getlist(int page, int pageSize){
Page<News> pageInfo = new Page<>(page,pageSize);
//条件查询构造器
LambdaQueryWrapper<News> queryWrapper = new LambdaQueryWrapper<>();
// 添加查询条件根据memeberId进行排序
//queryWrapper.orderByDesc(Member::getMemberId);
queryWrapper.orderByDesc(News::getNewId);
super.page(pageInfo,queryWrapper);
return pageInfo;
}
2.dto组合版本
Entity
package com.example.ruijiddemo.entity.dto;
import com.example.ruijiddemo.entity.Dishflavor;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
@Data
public class DishDto implements Serializable {
private Long id;
private String name;
private Long categoryId;
private String price;
private String image;
private String description;
private Integer status;
private List<Dishflavor> Dishflavors;
}
Controller
/* 查询口味表和调料表的数据 */
@GetMapping("/getlist")
public R<Page> getlist(int page , int pageSize , HttpServletRequest request){
return RUtils.success(dishService.getlist(page,pageSize));
}
Service
Page<DishDto> getlist(int page, int pageSize);
ServiceImpl
/* 查询口味表的数据 */
public Page<DishDto> getlist(int page, int pageSize) {
//条件查询构造器
Page<Dish> pageInfo = new Page<>(page, pageSize);
LambdaQueryWrapper<Dish> queryWrapperdish = new LambdaQueryWrapper<>();
IPage<Dish> pageList = this.page(pageInfo,queryWrapperdish);
//IPage<Dish> pageList = this.page(pageInfo, new LambdaQueryWrapper<Dish>());
List<Dish> dishlist = pageList.getRecords();
List<DishDto> dtolist = CopyUtil.copyList(dishlist, DishDto.class);
dtolist.forEach(x -> {
LambdaQueryWrapper<Dishflavor> queryWrapper2 = new LambdaQueryWrapper<>();
queryWrapper2.eq(Dishflavor::getDishId, x.getId());
x.setDishflavors(dishflavorMapper.selectList(queryWrapper2));
});
Page<DishDto> dishDtoPage = new Page<>();
dishDtoPage.setRecords(dtolist);
dishDtoPage.setTotal(pageList.getTotal());
return dishDtoPage;
}
}
方法2
public Page<DishDto> getlist(int page, int pageSize) {
//方法二
Page<Dish> pageinfo = new Page<>(page,pageSize);
Page<DishDto> dishDtoPage = new Page<>();
//构造条件构造器
LambdaQueryWrapper<Dish> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.orderByAsc(Dish::getId);
//进行分页查询
this.page(pageinfo,queryWrapper);
//对象拷贝
BeanUtils.copyProperties(pageinfo,dishDtoPage,"records");
List<Dish> records = pageinfo.getRecords();
//mylist.stream().map((item)->{
// return item;
//}).collect(Collectors.toList());
List<DishDto> list = records.stream().map((item)->{
DishDto dishDto = new DishDto();
BeanUtils.copyProperties(item,dishDto);
//根据ID查询对象
LambdaQueryWrapper<Dishflavor> queryWrapper2 = new LambdaQueryWrapper<>();
queryWrapper2.eq(Dishflavor::getDishId, item.getId());
dishDto.setDishflavors(dishflavorMapper.selectList(queryWrapper2));
return dishDto;
}).collect(Collectors.toList());
dishDtoPage.setRecords(list);
return dishDtoPage;
Post Man
http://localhost:7777/dish/getlist?page=3&pageSize=1
{
"code": 200,
"msg": "成功",
"data": {
"records": [
{
"id": 4,
"name": "韭菜炒蛋",
"categoryId": 1,
"price": "1.50",
"image": null,
"description": "韭菜,绿色的,鸡蛋",
"status": 1,
"dishflavors": [
{
"id": 5,
"dishId": 4,
"name": "主食",
"value": "S2"
}
]
}
],
"total": 9,
"size": 10,
"current": 1,
"orders": [],
"optimizeCountSql": true,
"hitCount": false,
"countId": null,
"maxLimit": null,
"searchCount": true,
"pages": 1
}
}