使用PageHelper.startPage方法后查询语句返回的对象和pageInfo封装的对象不是同一个的时候会出现Total(总记录数)值不正确的情况,此时Total = PageSize,修改如下代码
public ResponseBean getDatas(int pageNum, int pageSize){
PageHelper.startPage(pageNum, pageSize);
List<DatasetDto> datasetDtos = getDao().selectAllDatasets();
Set<String> codeSet = new HashSet<>();
for (DatasetDto datasetDto : datasetDtos){
codeSet.add(datasetDto.getName());
codeSet.add(datasetDto.getContent());
codeSet.add(datasetDto.getType());
codeSet.add(datasetDto.getDescription());
}
Map<String, Content> codeMap = contentService.getContentByCodes(new ArrayList<>(codeSet));
for (DatasetDto datasetDto : datasetDtos){
Content temp = codeMap.get(datasetDto.getName());
datasetDto.setName_en(temp.getLanguageEn());
datasetDto.setName_zh(temp.getLanguageZh());
temp = codeMap.get(datasetDto.getContent());
datasetDto.setContent_en(temp.getLanguageEn());
datasetDto.setContent_zh(temp.getLanguageZh());
temp = codeMap.get(datasetDto.getType());
datasetDto.setType_en(temp.getLanguageEn());
datasetDto.setType_zh(temp.getLanguageZh());
}
PageInfo<DatasetDto> pageInfo = new PageInfo<>(datasetDtos);
DatasetListPageInfoVO datasetListPageInfoVO = new DatasetListPageInfoVO(pageInfo.getTotal(), pageInfo.getPageNum(), pageInfo.getList());
return new ResponseBean(1,null,datasetListPageInfoVO);
}
}