镜像分页查询第二页出现第一页数据的解决方法
下面代码镜像分页查询第二页为什么有第一页的数据? JsonPageResult result=JsonPageResult.getSuccess(''); QueryFilter filter= QueryFilterBuilder.createQueryFilter(queryData); String sortOrder = queryData.getSortOrder(); if ('asc'.equals(sortOrder)){ filter.addSortParam(new SortParam('create_time_','asc')); }else { filter.addSortParam(new SortParam('create_time_','desc')); }
IUser curUser=ContextUtil.getCurrentUser();
String userId=curUser.getUserId();
List<String> groupIds=curUser.getRoles();
/**
* 增加租户过滤
*/
WebUtil.handFilter(filter, ContextQuerySupport.CURRENT,ContextQuerySupport.NONE);
IPage<BpmTask> page= bpmTaskService.getByUserId(userId,groupIds,ContextUtil.getCurrentTenantId(),filter);
List<BpmTask> list=page.getRecords();
List<String> instIds=new ArrayList<>();
List<String> createBys=new ArrayList<>();
String query=queryData.getParams().get('query');
//在任务中显示任务执行人与候选用户
for(BpmTask task:list){
Set<TaskExecutor> executors=bpmTaskUserService.getTaskExecutors(task);
instIds.add( task.getInstId());
task.setTaskExecutors(executors);
JPaasUser userById = userClient.getUserById(task.getCreateBy());
if (BeanUtil.isNotEmpty(userById)&&BeanUtil.isNotEmpty(query)&&BeanUtil.isNotEmpty(userById.getFullName())&&userById.getFullName().contains(query)){
createBys.add(task.getCreateBy());
}
}
IPage<BpmTask> appPage = bpmTaskService.getByUserIdApp(userId, groupIds, ContextUtil.getCurrentTenantId(), filter, createBys);
List<BpmTask> records = appPage.getRecords();
for(BpmTask task:records){
Set<TaskExecutor> executors=bpmTaskUserService.getTaskExecutors(task);
task.setTaskExecutors(executors);
JPaasUser userById = userClient.getUserById(task.getCreateBy());
if (BeanUtil.isNotEmpty(userById)&&BeanUtil.isNotEmpty(userById.getFullName())){
task.setCreateName(userById.getFullName());
}
}
if(BeanUtil.isNotEmpty(instIds)){
Map<String, String> fieldJsonMap = bpmInstService.getFieldJsonByInstIds(instIds);
for(BpmTask task:records){
String fieldJson=fieldJsonMap.get(task.getInstId());
if(StringUtils.isNotEmpty(fieldJson)){
task.setFormJson(fieldJson);
}
}
}
result.setPageData(appPage);
return result;具体怎么处理内容:根据给出的代码,第二页有第一页的数据的问题可能是由于在查询第二页数据时,没有正确设置分页参数导致的。可以尝试在查询第二页数据之前添加如下代码来设置分页参数:
int pageSize = queryData.getPageSize(); // 每页显示的记录数
int pageNo = queryData.getPageNo(); // 当前页码
filter.setPage(new Page<>(pageNo, pageSize));
这样可以确保在查询第二页数据时,只返回第二页的数据而不包括第一页的数据。
原文地址: https://www.cveoy.top/t/topic/lPeM 著作权归作者所有。请勿转载和采集!