From 25f49d0cce9dcae5688a6e75add3e44ead0a4fa4 Mon Sep 17 00:00:00 2001 From: fomichev Date: Mon, 13 Jan 2025 12:34:03 +0300 Subject: [PATCH] =?utf8?q?=D0=92=D1=82=D0=BE=D1=80=D0=B0=D1=8F=20=D1=80?= =?utf8?q?=D0=B0=D1=81=D1=81=D1=8B=D0=BB=D0=BA=D0=B0=20=D0=B2=20=D0=B1?= =?utf8?q?=D0=BE=D1=82=20=D0=B2=20=D0=BA=D0=BE=D0=B3=D0=BE=D1=80=D1=82?= =?utf8?q?=D0=B5=20=D0=B2=D0=BE=D1=82=D1=81=D0=B0=D0=BF=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- docker-compose.yml | 3 -- erp24/commands/CronController.php | 65 ++++++++++++++++++++++--- erp24/jobs/SendTelegramMessageDBJob.php | 2 +- 3 files changed, 59 insertions(+), 11 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index 1270314a..c7cb57e0 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -124,10 +124,7 @@ services: - "5432:5432" volumes: - pgsqldata:/var/lib/postgresql/data - - ./docker/db/postgresql.conf:/etc/postgresql/postgresql.conf - - ./logs:/var/log/postgresql env_file: ./docker/db/dev.db-pgsql.env - command: postgres -c config_file=/etc/postgresql/postgresql.conf pgadmin-yii_erp24: image: dpage/pgadmin4 diff --git a/erp24/commands/CronController.php b/erp24/commands/CronController.php index b781a07a..e68f58c4 100644 --- a/erp24/commands/CronController.php +++ b/erp24/commands/CronController.php @@ -239,6 +239,11 @@ class CronController extends Controller "Когорта таргета на {$kogortDate} для целевой даты {$targetDate} успешно сохранена.\n", BaseConsole::FG_GREEN ); + $countPhones = count($kogortPhones); + $this->stdout( + "Всего телефонов в когорте {$countPhones} записей.\n", + BaseConsole::FG_GREEN + ); } else { $this->stdout( "Нет данных для формирования когорты для целевой даты {$targetDate}.\n", @@ -275,7 +280,7 @@ class CronController extends Controller $chatIdsArray = array_column($telegramUsers, 'chat_id'); $countTelegramPhones = count($telegramUsers); $this->stdout( - "Всего телефонов в когорте {$countTelegramPhones} записей.\n", + "Всего телефонов в рассылке телеграма {$countTelegramPhones} записей.\n", BaseConsole::FG_GREEN ); if (!empty($telegramUsers)) { @@ -359,6 +364,11 @@ class CronController extends Controller "Когорта таргета на {$kogortDate} для целевой даты {$targetDate} успешно сохранена.\n", BaseConsole::FG_GREEN ); + $countPhones = count($kogortPhones); + $this->stdout( + "Всего телефонов в когорте {$countPhones} записей.\n", + BaseConsole::FG_GREEN + ); } else { $this->stdout( "Нет данных для формирования когорты для целевой даты {$targetDate}.\n", @@ -425,21 +435,47 @@ class CronController extends Controller "Когорта для Вотсапа на {$kogortDate} для целевой даты {$targetDate} успешно создана.\n", BaseConsole::FG_GREEN ); + $countPhones = count($kogortPhones['whatsapp']); + $this->stdout( + "Всего телефонов в когорте {$countPhones} записей.\n", + BaseConsole::FG_GREEN + ); if ($i == 0) { // Выбираем номера для отправки через бота - $telegramUsers = $kogortPhones['secondTarget']; - /*$this->stdout( - count($telegramUsers) . "\n", - BaseConsole::FG_RED - );*/ + $telegramUsers = UsersTelegram::find() + ->where(['is_blocked' => 0, 'is_registered' => 1]) + ->andWhere(['phone' => $kogortPhones['secondTarget']]) + ->select(['phone', 'chat_id']) + ->asArray() + ->all(); + $phonesArray = array_column($telegramUsers, 'phone'); + $chatIdsArray = array_column($telegramUsers, 'chat_id'); + $countTelegramPhones = count($telegramUsers); + $this->stdout( + "Всего телефонов в рассылке телеграма {$countTelegramPhones} записей.\n", + BaseConsole::FG_GREEN + ); if (!empty($telegramUsers)) { + foreach ($telegramUsers as $telegramUser) { + $messageData = []; + $messageData['chat_id'] = $telegramUser['chat_id']; + $messageData['phone'] = $telegramUser['phone']; + $messageData['kogort_date'] = $kogortDate; + $messageData['target_date'] = $targetDate; + $messageData['type'] = 2; + $messageData['message'] = $messagesSettings->replaceShortcodes($messagesSettings->offer_2); + + Yii::$app->queue->push(new SendTelegramMessageDBJob([ + 'messageData' => $messageData, + ])); + } $updatedCount = SentKogort::updateAll( ['status' => SentKogort::STATUSES['second']], // Устанавливаем статус "вторая рассылка" [ 'target_date' => $targetDate, 'kogort_number' => SentKogort::KOGORT_NUMBERS['target'], - 'phone' => $telegramUsers, + 'phone' => $phonesArray, ] ); @@ -477,6 +513,11 @@ class CronController extends Controller "Когорта для Вотсапа на {$kogortDate} для целевой даты {$targetDate} успешно сохранена.\n", BaseConsole::FG_GREEN ); + $countPhones = count($kogortPhones['whatsapp']); + $this->stdout( + "Всего телефонов в когорте {$countPhones} записей.\n", + BaseConsole::FG_GREEN + ); } else { $this->stdout( "Нет данных для формирования когорты для целевой даты {$targetDate}.\n", @@ -531,6 +572,11 @@ class CronController extends Controller "Когорта звонка на {$kogortDate} для целевой даты {$targetDate} успешно сохранена.\n", BaseConsole::FG_GREEN ); + $countPhones = count($kogortPhones); + $this->stdout( + "Всего телефонов в когорте {$countPhones} записей.\n", + BaseConsole::FG_GREEN + ); } else { $this->stdout( "Нет данных для формирования когорты для звонка на дату {$targetDate}.\n", @@ -552,6 +598,11 @@ class CronController extends Controller "Когорта звонка на {$kogortDate} для целевой даты {$targetDate} успешно сохранена.\n", BaseConsole::FG_GREEN ); + $countPhones = count($kogortPhones); + $this->stdout( + "Всего телефонов в когорте {$countPhones} записей.\n", + BaseConsole::FG_GREEN + ); } else { $this->stdout( "Нет данных для формирования когорты для целевой даты {$targetDate}.\n", diff --git a/erp24/jobs/SendTelegramMessageDBJob.php b/erp24/jobs/SendTelegramMessageDBJob.php index 087165f8..d835725f 100644 --- a/erp24/jobs/SendTelegramMessageDBJob.php +++ b/erp24/jobs/SendTelegramMessageDBJob.php @@ -22,7 +22,7 @@ class SendTelegramMessageDBJob extends \yii\base\BaseObject implements JobInterf self::$messagesSent = 0; } - if (self::$messagesSent >= 3) { + if (self::$messagesSent >= 30) { $delay = 1 - (microtime(true) - self::$lastResetTime); if ($delay > 0) { usleep($delay * 1e6); // Спим оставшееся время -- 2.39.5