处理先将前面的分页关闭, 取到所有的数据, 在使用
//用一个类似模糊查询的判断来过滤数据
List<TaskWaitingVo> taskWaitingVoList = new ArrayList<>();
for (TaskWaitingVo taskWaitingVo : list) {
if (StringUtils.isNotBlank(req.getName())&&!taskWaitingVo.getProcessDefinitionName().contains(req.getName())) {
boolean b = StringUtils.isNotBlank(req.getName())&&!taskWaitingVo.getProcessDefinitionName().contains(req.getName());
continue;
}
if (StringUtils.isNotBlank(req.getAssignee())&&!taskWaitingVo.getAssignee().contains(req.getAssignee())){
continue;
}
taskWaitingVoList.add(taskWaitingVo);
}
循环遍历,使用contains来模拟模糊查询
最后分页时使用java8stream流的新特性进行分页
// 分页 taskWaitingVoList怎么进行分页
List<TaskWaitingVo> collect = taskWaitingVoList.stream().skip((req.getPageNum()-1)*req.getPageSize()).limit(req.getPageSize()).collect(Collectors.toList());
int size = taskWaitingVoList.size();
return new TableDataInfo(collect, size);
就可以实现正常的模糊查询加分页的效果
注意最后这个size是显示数据的总条数
TableDataInfo代码是
@Data
@NoArgsConstructor
@ApiModel("分页响应对象")
public class TableDataInfo<T> implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 总记录数
*/
@ApiModelProperty("总记录数")
private long total;
/**
* 列表数据
*/
@ApiModelProperty("列表数据")
private List<T> rows;
/**
* 消息状态码
*/
@ApiModelProperty("消息状态码")
private int code;
/**
* 消息内容
*/
@ApiModelProperty("消息内容")
private String msg;
/**
* 分页
*
* @param list 列表数据
* @param total 总记录数
*/
public TableDataInfo(List<T> list, long total) {
this.rows = list;
this.total = total;
}
public static <T> TableDataInfo<T> build(IPage<T> page) {
TableDataInfo<T> rspData = new TableDataInfo<>();
rspData.setCode(HttpStatus.HTTP_OK);
rspData.setMsg("查询成功");
rspData.setRows(page.getRecords());
rspData.setTotal(page.getTotal());
return rspData;
}
public static <T> TableDataInfo<T> build(List<T> list) {
TableDataInfo<T> rspData = new TableDataInfo<>();
rspData.setCode(HttpStatus.HTTP_OK);
rspData.setMsg("查询成功");
rspData.setRows(list);
rspData.setTotal(list.size());
return rspData;
}
public static <T> TableDataInfo<T> build() {
TableDataInfo<T> rspData = new TableDataInfo<>();
rspData.setCode(HttpStatus.HTTP_OK);
rspData.setMsg("查询成功");
return rspData;
}
}