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

Добавлены:

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