diff --git a/app/Domains/Virtual/Services/CardService.php b/app/Domains/Virtual/Services/CardService.php index 4bce1385..1de0d228 100644 --- a/app/Domains/Virtual/Services/CardService.php +++ b/app/Domains/Virtual/Services/CardService.php @@ -7,7 +7,6 @@ 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; @@ -39,11 +38,27 @@ class CardService extends Service public function index(array $conditions = []) { $limit = $conditions['limit'] ?? 20; - $conditions['type'] = isset($conditions['card_status']) ? [0, 1, 2] : 0; + $page = Request::get('page', 1); + $conditions['type'] = [0]; $total = $this->orderCardPartitionRepository->withConditions($conditions)->count(); - $cards = $this->orderCardPartitionRepository->selectRaw('sim')->withConditions($conditions)->forPage($page, $limit)->get(); + $select = [ + 'id', + 'sim', + 'company_name', + 'package_name', + 'created_at', + 'updated_at', + ]; + + if ($conditions['status']) { + $conditions['type'] = [0, 1, 2]; + $simArray = $this->orderCardPartitionRepository->select('sim')->withConditions($conditions)->forPage($page, $limit)->get()->pluck('sim')->toArray(); + $cards = $this->orderCardPartitionRepository->select($select)->whereIn('sim', $simArray)->get(); + } else { + $cards = $this->orderCardPartitionRepository->select($select)->withConditions($conditions)->forPage($page, $limit)->get(); + } $cards = static::transformer($cards);