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()
|
||||
{
|
||||
$account_number = '1080425781';
|
||||
$period = '20250512';
|
||||
$saldo = '23984352604';
|
||||
$data = [[
|
||||
'account_number' => '1080425781',
|
||||
'period' => '2025012',
|
||||
'saldo' => '23984352604'
|
||||
],[
|
||||
'account_number' => '1080425781',
|
||||
'period' => '2025013',
|
||||
'saldo' => '13984352604'
|
||||
]];
|
||||
|
||||
// Dispatch the job to export the statement
|
||||
ExportStatementJob::dispatch($account_number, $period, $saldo);
|
||||
$jobIds = [];
|
||||
|
||||
// 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([
|
||||
'message' => 'Statement export job has been queued',
|
||||
'account_number' => $account_number,
|
||||
'period' => $period,
|
||||
'file_name' => "{$account_number}_{$period}.csv"
|
||||
'message' => 'Statement export jobs have been queued',
|
||||
'jobs' => array_map(function($index, $jobId) use ($data) {
|
||||
return [
|
||||
'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