feat(webstatement): support batch processing for export statement jobs
- Ubah data menjadi array untuk memungkinkan pemrosesan batch. - Tambahkan loop untuk memproses setiap data entry dan mendispatch job secara individual. - Simpan job id dari setiap job yang didispatch ke array `jobIds`. - Update respons JSON untuk mencantumkan daftar job yang telah didispatch: - Tambahkan informasi `job_id`, `account_number`, `period`, dan `file_name` untuk setiap job. - Memperbaiki pesan respons agar sesuai dengan perubahan proses yang mendukung banyak job.
This commit is contained in:
@@ -21,18 +21,39 @@
|
|||||||
*/
|
*/
|
||||||
public function index()
|
public function index()
|
||||||
{
|
{
|
||||||
$account_number = '1080425781';
|
$data = [[
|
||||||
$period = '20250512';
|
'account_number' => '1080425781',
|
||||||
$saldo = '23984352604';
|
'period' => '2025012',
|
||||||
|
'saldo' => '23984352604'
|
||||||
|
],[
|
||||||
|
'account_number' => '1080425781',
|
||||||
|
'period' => '2025013',
|
||||||
|
'saldo' => '13984352604'
|
||||||
|
]];
|
||||||
|
|
||||||
// Dispatch the job to export the statement
|
$jobIds = [];
|
||||||
ExportStatementJob::dispatch($account_number, $period, $saldo);
|
|
||||||
|
// Process each data entry
|
||||||
|
foreach ($data as $entry) {
|
||||||
|
// Dispatch job for each entry
|
||||||
|
$job = new ExportStatementJob(
|
||||||
|
$entry['account_number'],
|
||||||
|
$entry['period'],
|
||||||
|
$entry['saldo']
|
||||||
|
);
|
||||||
|
$jobIds[] = app(Dispatcher::class)->dispatch($job);
|
||||||
|
}
|
||||||
|
|
||||||
return response()->json([
|
return response()->json([
|
||||||
'message' => 'Statement export job has been queued',
|
'message' => 'Statement export jobs have been queued',
|
||||||
'account_number' => $account_number,
|
'jobs' => array_map(function($index, $jobId) use ($data) {
|
||||||
'period' => $period,
|
return [
|
||||||
'file_name' => "{$account_number}_{$period}.csv"
|
'job_id' => $jobId,
|
||||||
|
'account_number' => $data[$index]['account_number'],
|
||||||
|
'period' => $data[$index]['period'],
|
||||||
|
'file_name' => "{$data[$index]['account_number']}_{$data[$index]['period']}.csv"
|
||||||
|
];
|
||||||
|
}, array_keys($jobIds), $jobIds)
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user