From: fomichev Date: Mon, 13 Jan 2025 09:34:03 +0000 (+0300) Subject: Вторая рассылка в бот в когорте вотсапа X-Git-Tag: 1.7~67^2~6 X-Git-Url: https://gitweb.erp-flowers.ru/?a=commitdiff_plain;h=25f49d0cce9dcae5688a6e75add3e44ead0a4fa4;p=erp24_rep%2Fyii-erp24%2F.git Вторая рассылка в бот в когорте вотсапа --- 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); // Спим оставшееся время