У меня есть система парковки, в которой я использую Angular 6 + Laravel для бэкэнда, и у меня есть особая проблема, которую я не знаю, правильный подход.
В парке есть два тотема, которые отправляют на мой сервер запись. Я проверяю, является ли клиент недействительным, только когда он выходит на тотем с выхода и когда он идет в зону оплаты.
Это мой код, когда он положил билет со считанным штрих-кодом EAN_13. Это мой код, который готов тотем выхода:
public function getEntrysDataByEan(Request $request)
{
if (isset($request)) {
$entryean = $request->input('entryean13');
$entry = $this->mdMovEntry->getEntrysDataByEan($entryean);
if (empty($entry)) {
$response["success"] = 0;
$response["message"] = "Não existe nenhuma entrada correspondente";
} else {
$nowHour = Carbon::now();
$enterHour = Carbon::parse($entry[0]->updated_at);
$difmin = $enterHour->diffInMinutes($nowHour);
$dif = $enterHour->diffInHours($nowHour);
if ($difmin <= 20) {
$this->mdMovEntry->validatedEntryByEan($entryean, Carbon::parse($entry[0]->updated_at), $nowHour);
$entry[0]->validated = 'S';
} else {
$this->mdMovEntry->devaluedEntryByEan($entryean, Carbon::parse($entry[0]->updated_at));
$entry[0]->validated = 'N';
}
$response["success"] = 1;
$response["message"] = "Entrada retornada com sucesso";
$response["entry"] = $entry;
}
} else {
$response["success"] = 0;
$response["message"] = "Nenhum dado enviado";
}
return $response;
}
Проблема в том, что я думаю, что это так много обработки, чтобы просто читать, может ли клиент выйти или нет, поэтому я ищу в Laravel подходы «Планирование задач» и «Работа» и не вижу ничего для моей проблемы.
Что я хочу, так это когда тотем из области ввода делает вставку в мою базу данных, и я создаю какое-то задание или задание, которое через 20 минут для каждой новой записи, которую он помещает в недействительную.
А когда клиент выходит из системы, система просто выполняет getEntry для базы данных и проверяет, подтвержден ли он или нет.
Как мне этого добиться? Я спрашиваю об этом, потому что каждый пример для Задачи является глобальным выполнением, но я хочу задание только для каждой новой записи, это возможно?