阐述问题
因为 com.github.pagehelper.PageHelper 分页有一个坑在里面,分页条件一定要放在查询正上方,如果中间加入其他查询条件,或者别的代码,分页就会失效(具体失效原因可参考以下博主深度解析PageHelper分页源码SpringBoot项目中,如何更规范的使用PageHelper分页?_好好学java-CSDN博客)。
发现下面代码明明加了分页,却一直不起作用。
@Override
public TableResult listProjectPeriod(ListProjectPeriodRequestDTO dto) throws Exception {
//分页
PageHelper.startPage(dto.getPage(), dto.getLimit());
//如果页面没有定制显示的职务,就默认只查询关键岗位职务
if(null == dto.getDutyList() || dto.getDutyList().size() == 0){
dto.setDutyList(PersonTypeEnum.cruxDuty());
}
//查询
Page<ListProjectPeriodResponseDTO> rolePage = projectPeriodMapper.listProjectPeriod(dto);
//封装页面显示的建设单位
List<ListProjectPeriodResponseDTO> list = rolePage.getResult();
long total = rolePage.getTotal();
return new TableResult(CodeEnum.SUCCESS.get(), list, total, "查询成功!");
}
后面修改为以下代码即可
@Override
public TableResult listProjectPeriod(ListProjectPeriodRequestDTO dto) throws Exception {
//如果页面没有定制显示的职务,就默认只查询关键岗位职务
if(null == dto.getDutyList() || dto.getDutyList().size() == 0){
dto.setDutyList(PersonTypeEnum.cruxDuty());
}
//分页
PageHelper.startPage(dto.getPage(), dto.getLimit());
//查询
Page<ListProjectPeriodResponseDTO> rolePage = projectPeriodMapper.listProjectPeriod(dto);
//封装页面显示的建设单位
List<ListProjectPeriodResponseDTO> list = rolePage.getResult();
long total = rolePage.getTotal();
return new TableResult(CodeEnum.SUCCESS.get(), list, total, "查询成功!");
}