diff --git a/app/Domains/Virtual/Services/CardService.php b/app/Domains/Virtual/Services/CardService.php index d3ac9e30..93b7a7cf 100644 --- a/app/Domains/Virtual/Services/CardService.php +++ b/app/Domains/Virtual/Services/CardService.php @@ -6,9 +6,11 @@ use App\Core\Service; use App\Models\Card\Card; use Illuminate\Support\Carbon; use Illuminate\Support\Facades\DB; +use Illuminate\Support\Facades\Request; +use App\Models\Virtual\OrderCardPartition; +use Illuminate\Pagination\LengthAwarePaginator; use App\Domains\Card\Repositories\CardRepository; use App\Domains\Virtual\Repositories\OrderCardPartitionRepository; -use App\Models\Virtual\OrderCardPartition; class CardService extends Service { @@ -40,15 +42,23 @@ class CardService extends Service $conditions['type'] = 0; if (isset($conditions['card_status'])) { - $conditions['sim'] = $this->getSimArrayByCardStatus($conditions['card_status'], $limit); + $res = $this->listByCardStatus($conditions['card_status'], $limit); + $total = $res->total(); + $conditions['sim'] = $res->pluck('sim')->toArray(); + } else { + $total = $this->orderCardPartitionRepository->withConditions($conditions)->applyConditions()->count(); } - $cards = $this->orderCardPartitionRepository->withConditions($conditions)->applyConditions()->paginate($limit); + $page = Request::get('page'); - return static::transformer($cards); + $cards = $this->orderCardPartitionRepository->withConditions($conditions)->applyConditions()->forPage($page, $limit)->get(); + + $cards = static::transformer($cards); + + return new LengthAwarePaginator($cards, $total, $limit); } - public static function getSimArrayByCardStatus(int $card_status, $limit = 0) + public static function listByCardStatus(int $card_status, $limit = 0) { switch ($card_status) { case 0: @@ -90,7 +100,7 @@ class CardService extends Service break; } - return array_pluck($res->items(), 'sim'); + return $res; } /**