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:
daengdeni
2025-05-22 11:55:32 +07:00
parent 04f6f02702
commit eab14ff1e1

View File

@@ -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)
]); ]);
} }