- Debugging

parent fe9090ad
...@@ -39,38 +39,41 @@ class DefaultController extends BaseController ...@@ -39,38 +39,41 @@ class DefaultController extends BaseController
* Метод для крона и ручного вызова. Проверяет таблицу с расписанием, выполняет сработавшие триггеры. * Метод для крона и ручного вызова. Проверяет таблицу с расписанием, выполняет сработавшие триггеры.
*/ */
public function actionRechecktriggers(){ public function actionRechecktriggers(){
/** @var TriggerSchedule[] $uncheckedArray */
/** @var TriggerTrigger[] $actualTriggers */ /** @var TriggerTrigger[] $actualTriggers */
// Получили текущую дату и время // Получили текущую дату и время
$timeNow = new DateTime(); $timeNow = new DateTime();
// Получили все те сообщения которые еще не обработаны и имеют дату равную или меньше текущей // Получили все те сообщения которые еще не обработаны и имеют дату равную или меньше текущей
$uncheckedArray = TriggerSchedule::find()->where('checked=:checked AND time <= :time_now', [':checked' => 0, ':time_now' => $timeNow->format('Y-m-d H:i:s')])->all(); $uncheckedArray = TriggerSchedule::find()->where('checked=:checked', [':checked' => 0])->all();
var_dump($uncheckedArray);
// Получили все актуальные триггеры в базе // Получили все актуальные триггеры в базе
$actualTriggers = TriggerTrigger::getActualTriggers(); $actualTriggers = TriggerTrigger::getActualTriggers();
// Перебираем эти сообщения в цикле // Перебираем эти сообщения в цикле
foreach($uncheckedArray as $message) { foreach($uncheckedArray as $message) {
echo ':::'.$message->id.'<br>'; $time = new DateTime($message->time);
$triggerIsUsed = false; if ($time<$timeNow) {
// Проверяем каждое сообщение на срабатывание триггера echo ':::'.$message->id.'<br>';
foreach($actualTriggers as $trigger) { $triggerIsUsed = false;
echo $trigger->id; echo '<br>'; // Проверяем каждое сообщение на срабатывание триггера
// Вызвали срабатывание условий foreach($actualTriggers as $trigger) {
$triggerResult = Conditions::init()->handleMessageByTriggerId($message, $trigger->getPrimaryKey()); echo $trigger->id; echo '<br>';
// Если триггер сработал инициируем действие // Вызвали срабатывание условий
if ($triggerResult===true) { $triggerResult = Conditions::init()->handleMessageByTriggerId($message, $trigger->getPrimaryKey());
$init = $trigger->initAction(); // Если триггер сработал инициируем действие
if ($init===true) { if ($triggerResult===true) {
$triggerIsUsed=true; $init = $trigger->initAction();
} else { if ($init===true) {
echo $init; $triggerIsUsed=true;
} else {
echo $init;
}
} }
} }
} if ($triggerIsUsed===true) {
if ($triggerIsUsed===true) { /** @var TriggerSchedule $model */
/** @var TriggerSchedule $model */ $model=TriggerSchedule::findOne($message->getPrimaryKey());
$model=TriggerSchedule::findOne($message->getPrimaryKey()); $model->checked=1;
$model->checked=1; $model->save();
$model->save(); }
} }
} }
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment