对于先分页在设置字段值得模糊查询怎么实现

       处理先将前面的分页关闭, 取到所有的数据, 在使用

        //用一个类似模糊查询的判断来过滤数据
        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;
    }

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值