12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- <?php
- namespace General\Jobs;
- use General\Helpers\ExcelHelper;
- use General\Services\Export\AbstractDataExportHandle;
- use General\Services\Export\AbstractExportTask;
- use Illuminate\Bus\Queueable;
- use Illuminate\Queue\SerializesModels;
- use Illuminate\Queue\InteractsWithQueue;
- use Illuminate\Contracts\Queue\ShouldQueue;
- use Illuminate\Foundation\Bus\Dispatchable;
- class ExportTaskJob implements ShouldQueue
- {
- use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
- private $task;
- private $export_handle;
- /**
- * Create a new job instance.
- *
- * @return void
- */
- public function __construct(AbstractExportTask $task, AbstractDataExportHandle $handle)
- {
- $this->task = $task;
- $this->export_handle = $handle;
- }
- /**
- * Execute the job.
- *
- * @return void
- */
- public function handle()
- {
- \Log::info('ExportTaskJob_start:'.json_encode($this->task));
- $task_model = $this->task->getModel();
- $this->task->setStatus(AbstractExportTask::running);
- $data = $this->export_handle->getExportData();
- $headers = $this->export_handle->getHeaders();
- $file_name = md5($task_model->id . strtotime($task_model->created_at)) . ".csv";
- $local_path = storage_path('tmp');
- \Log::info('ExportTaskJob_task_id_start:'.$task_model->id);
- ExcelHelper::saveFileCsv($headers, $data, $file_name, $local_path);
- $this->task->saveExportTaskFile($local_path, $file_name);
- unlink($local_path . '/' . $file_name);
- \Log::info('ExportTaskJob_task_id_end:'.$task_model->id);
- }
- }
|