Commit 8e3017cb authored by Shakarim Sapa's avatar Shakarim Sapa

- Добавлен метод проверяющий таблицу с расписанием на наличие закрытых условий

parent 1c4f501e
...@@ -3,7 +3,10 @@ ...@@ -3,7 +3,10 @@
namespace common\modules\triggers\controllers; namespace common\modules\triggers\controllers;
use common\components\BaseController; use common\components\BaseController;
use common\modules\triggers\components\conditions\Conditions;
use common\modules\triggers\models\TriggerSchedule; use common\modules\triggers\models\TriggerSchedule;
use common\modules\triggers\models\TriggerTrigger;
use \DateTime;
/** /**
* Default controller for the `triggers` module * Default controller for the `triggers` module
...@@ -12,7 +15,8 @@ class DefaultController extends BaseController ...@@ -12,7 +15,8 @@ class DefaultController extends BaseController
{ {
public static function actionsTitles(){ public static function actionsTitles(){
return [ return [
'Index' => 'Главная страница модуля' 'Index' => 'Главная страница модуля',
'Rechecktriggers' => 'Запуск проверки срабатывания триггеров'
]; ];
} }
/** /**
...@@ -24,7 +28,20 @@ class DefaultController extends BaseController ...@@ -24,7 +28,20 @@ class DefaultController extends BaseController
return $this->render('index'); return $this->render('index');
} }
public function actionRecheckTriggers(){ public function actionRechecktriggers(){
$uncheckedArray = TriggerSchedule::find()->where(['checked' => 0])->all(); // Получили текущую дату и время
$timeNow = new DateTime();
// Получили все те сообщения которые еще не обработаны и имеют дату равную или меньше текущей
$uncheckedArray = TriggerSchedule::find()->where('checked=:checked AND date_create <= :date_create', [':checked' => 0, ':date_create' => $timeNow->format('Y-m-d H:i:s')])->all();
// Получили все актуальные триггеры в базе
$actualTriggers = TriggerTrigger::getActualTriggers();
// Перебираем эти сообщения в цикле
foreach($uncheckedArray as $message) {
// Проверяем каждое сообщение на срабатывание триггера
foreach($actualTriggers as $trigger) {
// Вызвали срабатывание условий, передав управление методу
Conditions::init()->handleMessageByTriggerId($message, $trigger->getPrimaryKey());
}
}
} }
} }
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