From 3adf6995fba6668042f9bfd775d6b4cc3d7a656e Mon Sep 17 00:00:00 2001 From: Afiq Hamzah Date: Mon, 12 Aug 2024 23:14:40 +0800 Subject: [PATCH] Improve query to speed up load --- .../BillplzTransactionSummaryController.php | 19 ++++++++++--------- .../index.blade.php | 14 ++++++-------- 2 files changed, 16 insertions(+), 17 deletions(-) diff --git a/app/Http/Controllers/BillplzTransactionSummaryController.php b/app/Http/Controllers/BillplzTransactionSummaryController.php index 94aaa97..66e64d5 100644 --- a/app/Http/Controllers/BillplzTransactionSummaryController.php +++ b/app/Http/Controllers/BillplzTransactionSummaryController.php @@ -10,19 +10,19 @@ class BillplzTransactionSummaryController extends Controller public function index(Request $request) { $date = $request->selectedDate ?? Carbon::now()->toDateString(); + + $transactionData = Http::arrahn()->get('/api/transaction/online/query', ['date' => $date, 'status' => 'paid'])->json(); + $transactionData = array_map(fn($x) => ['arrahn_transactions' => $x], $transactionData); + $transactionData = collect($transactionData); - $transactionData = collect( Http::get(config('api.url_arrahn_portal') . '/api/billplz-transaction-review', ['date' => $date])->json() ); - - $transactionData = $transactionData->filter(fn($x) => $x['arrahn_transactions'][0]['paid_at'] != null); - - $billIds = $transactionData->pluck('bill_id'); + $billIds = $transactionData->pluck('arrahn_transactions.billplz_id'); $billplzBills = Http::get(config('api.url_arrahn_portal') . '/api/billplz', ['bill_ids' => json_encode($billIds)])->json(); - $billplzBills = array_map(function($bill) { - $bill['paid_amount_formatted'] = floatval($bill['paid_amount']['amount']) / 100; + $billplzBills = collect($billplzBills)->map(function($bill) { + $bill['paid_amount_formatted'] = floatval($bill['paid_amount']['amount']) / 100; return $bill; - }, $billplzBills); + }); - $sumOfArrahnTransactions = $transactionData->sum(fn($x) => $x['arrahn_transactions'][0]['total_payment']); + $sumOfArrahnTransactions = $transactionData->sum(fn($x) => $x['arrahn_transactions']['total_payment']); $sumOfBillplzTransactions = collect($billplzBills)->sum(fn($x) => $x['paid_amount_formatted']); $numberOfArrahnTransactions = $transactionData->count(); @@ -30,6 +30,7 @@ class BillplzTransactionSummaryController extends Controller $sumOfArrahnTransactions = 'RM ' . number_format($sumOfArrahnTransactions, 2); $sumOfBillplzTransactions = 'RM ' . number_format($sumOfBillplzTransactions, 2); + if ($transactionData->count() !== count($billplzBills)) { throw new \Exception("The number of items in transactionData and billplzBills must be the same."); } diff --git a/resources/views/online/billplz-transaction-summary/index.blade.php b/resources/views/online/billplz-transaction-summary/index.blade.php index 272394d..a1f5c00 100644 --- a/resources/views/online/billplz-transaction-summary/index.blade.php +++ b/resources/views/online/billplz-transaction-summary/index.blade.php @@ -37,31 +37,29 @@ @forelse ($billPlzTransactionReview as $data) - +
- @foreach ($data['arrahn_transactions'] as $transaction)

status : {{ $transaction['status'] }} + class="inline-block bg-green-600 text-white px-2 py-0.5 rounded text-xs font-medium">{{ $data['arrahn_transactions']['status'] }}
total_payment: - {{ number_format((float) $transaction['total_payment'], 2, '.', '') }}
- norujukan: {{ $transaction['norujukan'] }} + {{ number_format((float) $data['arrahn_transactions']['total_payment'], 2, '.', '') }}
+ norujukan: {{ $data['arrahn_transactions']['norujukan'] }}


- kodcaw: {{ $transaction['kodcaw'] }}
- customer_name: {{ $transaction['customer_name'] }}
+ kodcaw: {{ $data['arrahn_transactions']['kodcaw'] }}
+ customer_name: {{ $data['arrahn_transactions']['customer_name'] }}


- @endforeach