Add query to get ArrahnPay payment detail and Billplz detail by bill id
This commit is contained in:
@@ -8,7 +8,7 @@ use Illuminate\Http\Request;
|
|||||||
|
|
||||||
class BillplzTransactionReviewController extends Controller
|
class BillplzTransactionReviewController extends Controller
|
||||||
{
|
{
|
||||||
public function __invoke(Request $request, BillplzService $billplzService)
|
public function index(Request $request, BillplzService $billplzService)
|
||||||
{
|
{
|
||||||
$date = $request->date ?? Carbon::now()->toDateString();
|
$date = $request->date ?? Carbon::now()->toDateString();
|
||||||
|
|
||||||
@@ -16,4 +16,13 @@ class BillplzTransactionReviewController extends Controller
|
|||||||
|
|
||||||
return response()->json($billplzTransactionReview, 200);
|
return response()->json($billplzTransactionReview, 200);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function show(Request $request, BillplzService $billplzService)
|
||||||
|
{
|
||||||
|
$date = $request->date ?? Carbon::now()->toDateString();
|
||||||
|
|
||||||
|
$billplzTransactionReview = $billplzService->getBillplzTransactionReviewByBillId($request->bill_id);
|
||||||
|
|
||||||
|
return response()->json($billplzTransactionReview, 200);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -110,7 +110,7 @@ class BillplzService
|
|||||||
|
|
||||||
public function getTransactions($date)
|
public function getTransactions($date)
|
||||||
{
|
{
|
||||||
$arrahnTransactions = $this->getArrahnTransactions($date);
|
$arrahnTransactions = $this->getArrahnTransactions(['date' => $date]);
|
||||||
$billplzID = collect($arrahnTransactions)->pluck('billplz_id')->unique()->values();
|
$billplzID = collect($arrahnTransactions)->pluck('billplz_id')->unique()->values();
|
||||||
|
|
||||||
$billplzTransactions = collect($billplzID)->map(function ($billId) {
|
$billplzTransactions = collect($billplzID)->map(function ($billId) {
|
||||||
@@ -126,15 +126,38 @@ class BillplzService
|
|||||||
return $billplzTransactions;
|
return $billplzTransactions;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getArrahnTransactions($date)
|
public function getTransactionsByBillId($billId)
|
||||||
{
|
{
|
||||||
return Http::arrahn()->get('/api/transaction/online/query', ['date' => $date])->json();
|
$billplzID = collect([$billId]);
|
||||||
|
|
||||||
|
$billplzTransactions = collect($billplzID)->map(function ($billId) {
|
||||||
|
return $this->client->transaction()->get($billId)->toArray();
|
||||||
|
})
|
||||||
|
->map(function ($data) {
|
||||||
|
$latestTransaction = reset($data['transactions']) == false ? [] : reset($data['transactions']);
|
||||||
|
$billId = ['bill_id' => $data['bill_id']];
|
||||||
|
return array_merge($billId, $latestTransaction);
|
||||||
|
})
|
||||||
|
->keyBy('bill_id');
|
||||||
|
|
||||||
|
return $billplzTransactions;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getArrahnTransactions($queryData)
|
||||||
|
{
|
||||||
|
if(isset($queryData['date'])){
|
||||||
|
return Http::arrahn()->get('/api/transaction/online/query', ['date' => $queryData['date']])->json();
|
||||||
|
}
|
||||||
|
|
||||||
|
if(isset($queryData['billId'])){
|
||||||
|
return Http::arrahn()->get('/api/transaction/online/query', ['billId' => $queryData['billId']])->json();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getBillplzTransactionReview($date)
|
public function getBillplzTransactionReview($date)
|
||||||
{
|
{
|
||||||
$date = Carbon::now()->toDateString();
|
$date = Carbon::now()->toDateString();
|
||||||
$arrahnTransactions = $this->getArrahnTransactions($date);
|
$arrahnTransactions = $this->getArrahnTransactions(['date' => $date]);
|
||||||
|
|
||||||
// sort array by tarikh desc and masa key desc
|
// sort array by tarikh desc and masa key desc
|
||||||
array_multisort(array_column($arrahnTransactions, 'tarikh'), SORT_DESC, array_column($arrahnTransactions, 'masa'), SORT_DESC, $arrahnTransactions);
|
array_multisort(array_column($arrahnTransactions, 'tarikh'), SORT_DESC, array_column($arrahnTransactions, 'masa'), SORT_DESC, $arrahnTransactions);
|
||||||
@@ -175,6 +198,46 @@ class BillplzService
|
|||||||
return $summarizedBillplzTransactions;
|
return $summarizedBillplzTransactions;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function getBillplzTransactionReviewByBillId($billId)
|
||||||
|
{
|
||||||
|
|
||||||
|
$arrahnTransactions = $this->getArrahnTransactions(['billId' => $billId]);
|
||||||
|
|
||||||
|
$billplzID = collect([$billId]);
|
||||||
|
$billplzTransactions = $this->getTransactionsByBillId($billId);
|
||||||
|
|
||||||
|
|
||||||
|
$merged = $billplzID->map(function ($billId) use ($billplzTransactions, $arrahnTransactions) {
|
||||||
|
return [
|
||||||
|
'bill_id' => $billId,
|
||||||
|
'arrahn_transactions' => $arrahnTransactions,
|
||||||
|
'billplz_latest_transaction' => $billplzTransactions->get($billId),
|
||||||
|
];
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
$summarizedBillplzTransactions = collect($merged)->map(function ($data) {
|
||||||
|
$data['arrahn_transactions'] = collect($data['arrahn_transactions'])->map(function ($transaction) {
|
||||||
|
return[
|
||||||
|
'nokp' => $transaction['nokp'],
|
||||||
|
'norujukan' => $transaction['norujukan'],
|
||||||
|
'kodcaw' => $transaction['kodcaw'],
|
||||||
|
'total_payment' => $transaction['total_payment'],
|
||||||
|
'customer_name' => $transaction['customer_name'],
|
||||||
|
'status' => $transaction['status'],
|
||||||
|
'paid_at' => $transaction['paid_at'],
|
||||||
|
'tarikh_attempt_bayar' => $transaction['tarikh'],
|
||||||
|
'masa_attempt_bayar' => $transaction['masa'],
|
||||||
|
'portal' => $transaction['tagportal'] == 1 ? 'Arrahn Pay' : 'SPARE',
|
||||||
|
];
|
||||||
|
});
|
||||||
|
|
||||||
|
return $data;
|
||||||
|
});
|
||||||
|
|
||||||
|
return $summarizedBillplzTransactions;
|
||||||
|
}
|
||||||
|
|
||||||
public function getTransactionByBillId($billId)
|
public function getTransactionByBillId($billId)
|
||||||
{
|
{
|
||||||
try {
|
try {
|
||||||
|
|||||||
+2
-1
@@ -19,4 +19,5 @@ Route::middleware('auth:api')->get('/user', function (Request $request) {
|
|||||||
return $request->user();
|
return $request->user();
|
||||||
});
|
});
|
||||||
|
|
||||||
Route::get('/billplz-transaction-review', BillplzTransactionReviewController::class)->name('billplz-transaction-review');
|
Route::get('/billplz-transaction-review', [BillplzTransactionReviewController::class, 'index']);
|
||||||
|
Route::get('/billplz-transaction-review/{bill_id}', [BillplzTransactionReviewController::class, 'show']);
|
||||||
|
|||||||
@@ -267,7 +267,3 @@ Route::get('/requestic', 'App\Http\Controllers\TacController@requestKadPengenala
|
|||||||
Route::get('/requesticfe', 'App\Http\Controllers\TacController@requestKadPengenalanfe')->name('requesticfe');
|
Route::get('/requesticfe', 'App\Http\Controllers\TacController@requestKadPengenalanfe')->name('requesticfe');
|
||||||
Route::get('/requesttac', 'App\Http\Controllers\TacController@TACrequest')->name('requesttac');
|
Route::get('/requesttac', 'App\Http\Controllers\TacController@TACrequest')->name('requesttac');
|
||||||
Route::get('/requesttacfe', 'App\Http\Controllers\TacController@TACrequestfe')->name('requesttacfe');
|
Route::get('/requesttacfe', 'App\Http\Controllers\TacController@TACrequestfe')->name('requesttacfe');
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user