Merge remote-tracking branch 'origin/test'
This commit is contained in:
commit
8683437d64
@ -1,6 +1,7 @@
|
||||
package cn.axzo.foundation.util;
|
||||
|
||||
import cn.axzo.foundation.page.IPageReq;
|
||||
import cn.axzo.foundation.page.PageReqV2;
|
||||
import cn.axzo.foundation.page.PageResp;
|
||||
import com.google.common.collect.Lists;
|
||||
import org.apache.commons.lang3.BooleanUtils;
|
||||
@ -10,6 +11,40 @@ import java.util.function.Function;
|
||||
|
||||
public class PageUtils {
|
||||
|
||||
/**
|
||||
* <pre>
|
||||
* 快捷拉取所有分页数据,默认从第一页开始拉取,直到返回的记录行数小于 预期的行数
|
||||
* 分页大小 为 pageReq.getPageSize(),可通过该参数调整。
|
||||
* </pre>
|
||||
* XXX: 注意,判断数据查询的完成条件,是 当前也页的记录行数 小于 分页大小,所以对于会破坏查询条件的请求参数,该方法不保证会返回所有数据
|
||||
*
|
||||
*
|
||||
* <pre>
|
||||
* 示例代码:
|
||||
* import cn.axzo.foundation.util.PageUtils;
|
||||
* // case 1. nodeUserService定义了以下方法:
|
||||
* PageResp<OrgNodeUserDTO> list(ListOrgNodeUserReq req); // ListOrgNodeUserReq extends PageReqV2
|
||||
* // 获取所有分页数据
|
||||
* List<OrgNodeUserDTO> nodeUsers = PageUtil.drainAll(req, nodeUserService::list);
|
||||
*
|
||||
* // case 2. nodeUserApi定义了以下方法
|
||||
* ApiResult<PageResp<OrgNodeUserDTO>> list(ListOrgNodeUserReq req); // ListOrgNodeUserReq extends PageReqV2
|
||||
* List<OrgNodeUserDTO> nodeUsers = PageUtil.drainAll(req, r -> nodeUserApi.list(r).getData());
|
||||
* </pre>
|
||||
*
|
||||
* @param pageReq
|
||||
* @param function
|
||||
* @param <T>
|
||||
* @param <R>
|
||||
* @return
|
||||
*/
|
||||
public static <T, R extends PageReqV2> List<T> drainAll(R pageReq, Function<R, PageResp<T>> function) {
|
||||
return PageUtils.drainAll(pageNumber -> {
|
||||
pageReq.setPage(pageNumber);
|
||||
return function.apply(pageReq);
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 将所有的数据通过page接口写入到list. 并返回
|
||||
* function中需要参数为新的pageNum, 默认从第一页开始加载. 直到返回的记录行数小于 预期的行数
|
||||
|
||||
Loading…
Reference in New Issue
Block a user