Commit 7b727c26 authored by Shakarim Sapa's avatar Shakarim Sapa

Добавлены:

 - Метод, выполняющий действия при срабатывании триггера;
 - Вызов метода выполняющего действия по условию срабатывания всех условий;
parent aedbf4a4
......@@ -28,7 +28,11 @@ class DefaultController extends BaseController
return $this->render('index');
}
/**
* Метод для крона и ручного вызова. Проверяет таблицу с расписанием, выполняет сработавшие триггеры.
*/
public function actionRechecktriggers(){
/** @var TriggerTrigger[] $actualTriggers */
// Получили текущую дату и время
$timeNow = new DateTime();
// Получили все те сообщения которые еще не обработаны и имеют дату равную или меньше текущей
......@@ -39,8 +43,12 @@ class DefaultController extends BaseController
foreach($uncheckedArray as $message) {
// Проверяем каждое сообщение на срабатывание триггера
foreach($actualTriggers as $trigger) {
// Вызвали срабатывание условий, передав управление методу
Conditions::init()->handleMessageByTriggerId($message, $trigger->getPrimaryKey());
// Вызвали срабатывание условий
$triggerResult = Conditions::init()->handleMessageByTriggerId($message, $trigger->getPrimaryKey());
// Если триггер сработал инициируем действие
if ($triggerResult===true) {
$trigger->initAction($message);
}
}
}
}
......
......@@ -196,4 +196,12 @@ class TriggerTrigger extends \common\components\ActiveRecordModel
public static function getActualTriggers() {
return TriggerTrigger::find()->indexBy('id')->all();
}
/**
* Тут выполняем то, что произойдет когда триггер сработает
* @param $message
*/
public function initAction($message){
}
}
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