自定义分页器

DBC 1.2K 0
温馨提示

有些时候我们会遇到一种情况,就比如说我们有几个不同的数组,但是都是同一种类型的,这时候我们使用Mybatic-plus就没法实现了,因为正常的查询只能用一个条件来操作。我们很多个条件查询了很多的结果集,我们需要拼接起来,这时候就需要用到我们的自定义分页了,我们将所有的数组组合起来,然后通过这个方法,即可实现我们想要的结果![aru_42]

    // 自定义分页器
    private Page<ProjectApplicationVO> getExchangePage(Page pageSource, List<ProjectInfoDO> resultLists) {
        // 当前页
        Long current = pageSource.getCurrent();
        // 每页数据条数
        Long size = pageSource.getSize();
        Page<ProjectApplicationVO> page = new Page<>(current, size);
        int count = resultLists.size();
        List<ProjectInfoDO> pageList = new ArrayList<>();
        //计算当前页第⼀条数据的下标
        Long currId = current > 1 ? (current - 1) * size : 0;
        for (int i = 0; i < size && i < count - currId; i++) {
            pageList.add(resultLists.get((int) (currId + i)));
        }
        page.setSize(size);
        page.setCurrent(current);
        page.setTotal(count);
        //计算分页总页数
        page.setPages(count % 10 == 0 ? count / 10 : count / 10 + 1);
        // 转换VO
        List resultList = pageList.stream().map(obj -> {
            ProjectApplicationVO VO = new ProjectApplicationVO();
            BeanUtil.copyProperties(obj, VO);
            return VO;
        }).collect(Collectors.toList());
        page.setRecords(resultList);
        return page;

    }

发表评论 取消回复
表情 图片 链接 代码

分享