uid = Arr::get($argv,'uid'); } $obj->exchange = Arr::get($argv,'exchange',''); $obj->route_key = Arr::get($argv,'route_key',''); $obj->job_handler = Arr::get($argv,'job_handler',''); $obj->input = Arr::get($argv,'input',''); $obj->attempt_count = Arr::get($argv,'attempt',0); if($application_id = static::getApplicationId($argv)){ $obj->application_id = $application_id; } if($command = static::getCommand($argv)){ $obj->cmd = $command; } $obj->save(); return $obj; } static function getApplicationId($argv){ if (isset($argv['input'])){ $input = json_decode($argv['input'], 1); if (isset($input['param']) && (isset($input['param']['id']) || isset($input['param']['application_id'])) && (isset($input['cmd']) && $input['cmd'] != 'command:DigioWebhook')){ return $input['param']['id'] ?? $input['param']['application_id']; } } return false; } static function getCommand($argv){ if (isset($argv['input'])){ $input = json_decode($argv['input'], 1); if (isset($input['cmd'])){ return $input['cmd']; } } return false; } static function markCompleted($job_id, $param) { if (is_array($param)) { $queue_update = isset($param['queue_update']) && $param['queue_update'] == 1; $param = json_encode($param); }else{ $params = json_decode($param, 1); $queue_update = isset($params['queue_update']) && $params['queue_update'] == 1; } if (!$queue_update) { self::findOrFail($job_id)->update(['status' => 'com', 'output' => $param, 'attempt_count' => 1]); } } }