新增分页打包
This commit is contained in:
@@ -12,6 +12,8 @@ use Hyperf\Context\ApplicationContext;
|
||||
use Hyperf\Collection\Arr;
|
||||
use Hyperf\Carbon\Carbon;
|
||||
use Dhd\Micro\Core\Library\Logger;
|
||||
use Hyperf\Contract\LengthAwarePaginatorInterface;
|
||||
use Hyperf\Paginator\AbstractPaginator;
|
||||
|
||||
final class Util
|
||||
{
|
||||
@@ -418,7 +420,8 @@ final class Util
|
||||
*/
|
||||
public static function getPageFromParams(array $params): int
|
||||
{
|
||||
return (int)Arr::get($params, 'page', 1) ?: 1;
|
||||
$page = (int)Arr::get($params, 'page', 1) ?: 1;
|
||||
return max($page, 1);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -426,9 +429,9 @@ final class Util
|
||||
* @param array $params
|
||||
* @return int
|
||||
*/
|
||||
public static function getPageSizeFromParams(array $params): int
|
||||
public static function getPageSizeFromParams(array $params, int $maxSize = 100): int
|
||||
{
|
||||
return (int)Arr::get(
|
||||
$pageSize = (int)Arr::get(
|
||||
$params,
|
||||
'size',
|
||||
Arr::get(
|
||||
@@ -437,5 +440,25 @@ final class Util
|
||||
Arr::get($params, 'pageSize', 15)
|
||||
)
|
||||
) ?: 15;
|
||||
|
||||
return min(max($pageSize, 1), $maxSize);
|
||||
}
|
||||
|
||||
/**
|
||||
* 分页打包
|
||||
* @param LengthAwarePaginatorInterface $paginator 分页对象
|
||||
* @return array
|
||||
*/
|
||||
public static function handlePage(LengthAwarePaginatorInterface $paginator): array
|
||||
{
|
||||
if ($paginator instanceof AbstractPaginator) {
|
||||
$items = $paginator->getCollection();
|
||||
} else {
|
||||
$items = Collection::make($paginator->items());
|
||||
}
|
||||
return [
|
||||
'list' => $items->toArray(),
|
||||
'total' => $paginator->total(),
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user