新增分页打包

This commit is contained in:
2026-08-18 09:15:31 +08:00
parent 9e3c82086c
commit 38a6f81b39

View File

@@ -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(),
];
}
}