- Добавлен check метод по условию проверки пребывания на странице

parent de5242d4
...@@ -14,9 +14,11 @@ use common\modules\messageTemplate\models\MessageTemplate; ...@@ -14,9 +14,11 @@ use common\modules\messageTemplate\models\MessageTemplate;
use common\modules\triggers\components\conditions\vendor\ConditionBase; use common\modules\triggers\components\conditions\vendor\ConditionBase;
use common\modules\triggers\components\conditions\vendor\ConditionInterface; use common\modules\triggers\components\conditions\vendor\ConditionInterface;
use common\modules\triggers\models\TriggerCondition; use common\modules\triggers\models\TriggerCondition;
use common\modules\triggers\models\TriggerLogs;
use common\modules\triggers\models\TriggerParam; use common\modules\triggers\models\TriggerParam;
use common\modules\triggers\models\TriggerSchedule; use common\modules\triggers\models\TriggerSchedule;
use common\modules\triggers\models\TriggerTrigger; use common\modules\triggers\models\TriggerTrigger;
use common\modules\users\models\User;
use yii\web\BadRequestHttpException; use yii\web\BadRequestHttpException;
class CheckPresenceTime extends ConditionBase implements ConditionInterface { class CheckPresenceTime extends ConditionBase implements ConditionInterface {
...@@ -75,10 +77,25 @@ class CheckPresenceTime extends ConditionBase implements ConditionInterface { ...@@ -75,10 +77,25 @@ class CheckPresenceTime extends ConditionBase implements ConditionInterface {
} }
/** /**
* @param $time * @param TriggerSchedule $message
* @return bool * @return bool
*/ */
public function check($time){ public function check($message){
$user = User::find()->where(['email' => $message->email])->one();
if (!is_null($message->trigger_id) && !is_null($user)) {
/** @var TriggerCondition[] $conditions */
$conditions = TriggerCondition::find()->where(['trigger_id'=>$message->trigger_id, 'condition_id' => self::CONDITION_ID])->all();
foreach($conditions as $condition) {
$urlParam = TriggerParam::find()->where(['condition_id' => $condition->getPrimaryKey(), 'key' => 'url', 'value' => \Yii::$app->request->getUrl()])->one();
$timeParam = TriggerParam::find()->where(['condition_id' => $condition->getPrimaryKey(), 'key' => 'time'])->one();
if (!is_null($urlParam) && !is_null($timeParam)) {
$sumTime = TriggerLogs::getSummaryTimeByUrl($urlParam, $user->getPrimaryKey());
if ($sumTime >= $timeParam) {
return true;
}
}
}
}
return false; return false;
} }
} }
\ No newline at end of file
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