fly 4 lat temu
rodzic
commit
c989d2c30b

+ 4 - 4
src/Jobs/ExportTaskJob.php

@@ -38,8 +38,7 @@ class ExportTaskJob implements ShouldQueue
     public function handle()
     {
         $task_model =  $this->task->getModel();
-        $task_model->status = 2;
-        $task_model->save();
+        $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";
@@ -50,9 +49,10 @@ class ExportTaskJob implements ShouldQueue
         unlink($local_path . '/' . $file_name);
         if ($oss_path) {
             $task_model->file_path = $oss_path;
-            $task_model->status = 3;
+            $this->task->setModel($task_model);
+            $this->task->setStatus(AbstractExportTask::complete);
         } else {
-            $task_model->status = 4;
+            $this->task->setStatus(AbstractExportTask::failure);
         }
         $task_model->save();
     }

+ 12 - 1
src/Services/Export/AbstractExportTask.php

@@ -12,6 +12,11 @@ abstract class AbstractExportTask
     private $model;
     private $query_data;
 
+    const ready = 1;
+    const running = 2;
+    const complete = 3;
+    const failure = 4;
+
     public function __construct(Model $model, ExportQueryData $query_data)
     {
         $this->model = $model;
@@ -28,7 +33,7 @@ abstract class AbstractExportTask
         $params = array_merge($this->getTaskData(), [
             'name' => $this->query_data->memu_name,
             'query_condition' => $this->query_data->getQueryParamsContent($query_params),
-            'status' => 1,
+            'status' => self::ready,
         ]);
         $this->setModel($this->model::create($params));
     }
@@ -50,4 +55,10 @@ abstract class AbstractExportTask
     {
         return $this->model;
     }
+
+    public function setStatus(int $status)
+    {
+        $this->model->status = $status;
+        $this->model->save();
+    }
 }