- Добавлены комменты к логике

parent 3b0af085
...@@ -124,27 +124,42 @@ class DefaultController extends BaseController ...@@ -124,27 +124,42 @@ class DefaultController extends BaseController
$baseUrl = 'http://task-on.com/'; $baseUrl = 'http://task-on.com/';
// Получили массив url-ов в категории // Получили массив url-ов в категории
$urls = ArrayHelper::map(CoContent::find()->where(['category_id'=>$category_id])->all(), 'id', 'url'); $urls = ArrayHelper::map(CoContent::find()->where(['category_id'=>$category_id])->all(), 'id', 'url');
// Перебираем в цикле пользователей
foreach($users as $user) { foreach($users as $user) {
// Получили дату для дальнейшего сравнения
$deliveryDate = new \DateTime($user->delivery_date); $deliveryDate = new \DateTime($user->delivery_date);
// Если пользователь подписан и дата соответствует требованиям
if (Bid::find()->where(['email' => $user->email])->exists() && $deliveryDate<=$date) { if (Bid::find()->where(['email' => $user->email])->exists() && $deliveryDate<=$date) {
// Перебираем все url-ы
foreach($urls as $url) { foreach($urls as $url) {
// Получаем время просмотра каждой страницы
$watchingtime = TriggerLogs::getSummaryTimeByUrl($url, $user->id); $watchingtime = TriggerLogs::getSummaryTimeByUrl($url, $user->id);
if ((int)$watchingtime<(int)$neededTime) { // Если суммарное время просмотра больше минимальной нормы
if ((int)$watchingtime>(int)$neededTime) {
// Производим отправку письма
// Получаем почту
$email = $user->email; $email = $user->email;
// Генерируем хеш
$hash=AuthHashes::setNewHash($email); $hash=AuthHashes::setNewHash($email);
// Сформировали дату
$templateData = [ $templateData = [
'case_link' => $baseUrl.$url.'?hash='.$hash.'&email='.$email 'case_link' => $baseUrl.$url.'?hash='.$hash.'&email='.$email
]; ];
// Производим отправку
/** @var \DateTime $time_now */ /** @var \DateTime $time_now */
TriggerSchedule::sendMessage($email, $template_id, $templateData, null); TriggerSchedule::sendMessage($email, $template_id, $templateData, null);
} }
} }
// Создали дату следующей отправки
$updatedDate=new \DateTime(); $updatedDate=new \DateTime();
// Произвели модификацию даты
$updatedDate->modify('+1 week'); $updatedDate->modify('+1 week');
/** @var User $user */ /** @var User $user */
// Нашли пользователя
$user=User::findOne($this->id); $user=User::findOne($this->id);
// Переопределили поле
$user->delivery_date = $updatedDate->format('Y-m-d'); $user->delivery_date = $updatedDate->format('Y-m-d');
// Сохранили изменения
$user->save(false); $user->save(false);
} }
} }
......
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