use yii_app\records\UsersMessageManagement;
use yii_app\records\UsersTelegram;
use yii_app\records\UsersTelegramLog;
+use yii_app\services\TelegramService;
class CronController extends Controller
{
->andWhere(['date_start' => $kogortDate])
->column();
$testPhones = array_map('trim', explode(',', $messagesSettings->test_phones_list));
+ $countBonuses = 0;
foreach ($kogortPhones as $key => $phone) {
if (in_array($phone, $testPhones)) {
continue;
);
} else {
Users::updateAll(['burn_balans' => $bonus], ['phone' => '' . $phone]);
+ $countBonuses += 1;
}
}
}
+ if ($countBonuses !== $countPhones) {
+ $messageBonuses = "⚠️ Внимание!
+ Количество начисленных бонусов отличается от количества телефонов в когорте.\n\n" .
+ "📅 Для когорты **{$kogortDate}** — всего **{$countPhones}** номеров.\n" .
+ "🎯 На целевую дату **{$targetDate}** бонусы начислены только для **{$countBonuses}** номеров.\n\n" .
+ "📢 Проверьте данные!";
+
+ TelegramService::sendTargetStatToTelegramMessage($messageBonuses);
+ }
} else {
$this->stdout(
"Нет данных для отправки сообщений для когорты для целевой даты {$targetDate}.\n",
}
}
+ public static function sendTargetStatToTelegramMessage($message)
+ {
+ $botToken = self::TELEGRAM_BOT_DEV;
+ $apiURL = "https://api.telegram.org/bot{$botToken}/sendMessage";
+ $chats = ['337084327', '730432579']; //Алексей и Владимир
+ $message = self::escapeMarkdown($message);
+ $client = new Client();
+ foreach ($chats as $chatId) {
+ try {
+ $client->post($apiURL, [
+ 'json' => [
+ 'chat_id' => $chatId,
+ 'text' => $message,
+ 'parse_mode' => 'MarkdownV2',
+
+ ],
+ ]);
+ } catch (\Exception $e) {
+ Yii::error("Ошибка отправки сообщения в Telegram: " . $e->getMessage(), 'telegram');
+ }
+ }
+ }
+
public static function sendMessageToTelegramClient($chatId, $message)
{
if (self::isDevEnv()) {