一、controller层
projectService里面的advanceQueryList方法的实现查出的数据返回的是一个 PageInfo<KcProject>类型并可以分页。
public CommonResult<?> getAdvanceQueryList(Principal principal,
ProjectAdvanceQueryParam param,
@Validated PagingParam pagingParam) {
if (principal == null) {
return CommonResult.unauthorized(null);
}
String userid = principal.getName();
SysUser user = userService.getItem(userid);
if (user != null) {
PageInfo<KcProject> pageInfo = projectService
.advanceQueryList(user.getlOrganizedid(),
param, pagingParam, null);
Map<String, Object> data = new HashMap<>();
data.put("total", pageInfo.getTotal());
data.put("list", pageInfo.getList());
return CommonResult.success(data);
} else {
return CommonResult.failed("用户不存在");
}
}
二、service层
advanceQueryList方法的实现
public PageInfo<KcProject> advanceQueryList(String organizedId,
ProjectAdvanceQueryParam param,
PagingParam pagingParam,
List<String> projectIdList) {
PageHelper.startPage(pagingParam.getPageNum(),
pagingParam.getPageSize());
KcProjectExample example = new KcProjectExample();
KcProjectExample.Criteria criteria = example.createCriteria();
criteria.andOrganizeidEqualTo(organizedId);
List<KcProject> kcProjects = kcProjectMapper
.selectByExample(example);
return new PageInfo<>(kcProjects);
}
PageHelper.startPage(pageNum,pageSize)方法用来将页码和每页数据容量传过去,PageInfo<>(kcProjects)根据上传的页码和每页的容量对查出的kcProjects进行分页操作。
三、所需要的依赖
<!--MyBatis分页插件starter-->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>${pagehelper-starter.version}</version>
</dependency>
<!--MyBatis分页插件-->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>${pagehelper.version}</version>
</dependency>