use yii_app\records\ReplacementInvoiceProducts;
use yii_app\records\SentKogort;
use yii_app\records\Users;
+use yii_app\records\UsersBonus;
use yii_app\records\UsersMessageManagement;
use yii_app\records\UsersTelegram;
use yii_app\records\UsersTelegramLog;
"Когорта таргета на {$kogortDate} для целевой даты {$targetDate} успешно сохранена.\n",
BaseConsole::FG_GREEN
);
+ // Выбираем номера для отправки через бота
+ $telegramUsers = UsersTelegram::find()
+ ->where(['is_blocked' => 0, 'is_registered' => 1])
+ ->andWhere(['phone' => $kogortPhones])
+ ->distinct('phone')
+ ->select('phone')
+ ->column();
+
+ if (!empty($telegramUsers)) {
+ $updatedCount = SentKogort::updateAll(
+ ['status' => SentKogort::STATUSES['first']], // Устанавливаем статус "первая рассылка"
+ [
+ 'kogort_date' => $kogortDate,
+ 'target_date' => $targetDate,
+ 'kogort_number' => SentKogort::KOGORT_NUMBERS['target'],
+ 'phone' => $telegramUsers,
+ ]
+ );
+
+ if ($updatedCount) {
+ $this->stdout(
+ "Статус записей для когорты {$kogortDate} обновлён на 'first' для {$updatedCount} записей.\n",
+ BaseConsole::FG_GREEN
+ );
+ } else {
+ $this->stdout("Не найдено записей для обновления статуса на 'first'.\n", BaseConsole::FG_RED);
+ }
+ }
+
+ //Начисляем бонусы
+ $tip = "plus";
+ $bonus = 200;
+ $ip = "tst";
+ $tip_sale = "date";
+ $name = "Начисление бонусов на дату {$kogortDate}";
+ $daysToEnd = $step1 + 1;
+ foreach ($kogortPhones as $phone) {
+ $userBonus4 = new UsersBonus();
+ $userBonus4->phone = '' . $phone;
+ $userBonus4->name = $name;
+ $userBonus4->tip = $tip;
+ $userBonus4->tip_sale = $tip_sale;
+ $userBonus4->bonus = $bonus;
+ $userBonus4->date = date('Y-m-d H:i:s');
+ $userBonus4->date_start = $kogortDate;
+ $userBonus4->date_end = date('Y-m-d', strtotime("+$daysToEnd days", strtotime($kogortDate)));
+ $userBonus4->ip = $ip;
+ $userBonus4->save();
+ if ($userBonus4->getErrors()) {
+ $this->stdout(
+ json_encode($userBonus4->getErrors(), JSON_UNESCAPED_UNICODE) . "\n",
+ BaseConsole::FG_RED
+ );
+ }
+ }
} else {
$this->stdout(
"Нет данных для формирования когорты для целевой даты {$targetDate}.\n",
$kogortPhones = Users::formKogortByDateAndType($targetDate, 'whatsapp');
if (!empty($kogortPhones)) {
- Users::saveKogort($kogortPhones, $kogortDate, $targetDate, SentKogort::KOGORT_NUMBERS['whatsapp']);
+ Users::saveKogort(
+ $kogortPhones['whatsapp'],
+ $kogortDate,
+ $targetDate,
+ SentKogort::KOGORT_NUMBERS['whatsapp']
+ );
$this->stdout(
"Когорта для Вотсапа на {$kogortDate} для целевой даты {$targetDate} успешно создана.\n",
BaseConsole::FG_GREEN
);
+
+ if ($i == 0) {
+ // Выбираем номера для отправки через бота
+ $telegramUsers = $kogortPhones['secondTarget'];
+ /*$this->stdout(
+ count($telegramUsers) . "\n",
+ BaseConsole::FG_RED
+ );*/
+ if (!empty($telegramUsers)) {
+ $updatedCount = SentKogort::updateAll(
+ ['status' => SentKogort::STATUSES['second']], // Устанавливаем статус "вторая рассылка"
+ [
+ 'target_date' => $targetDate,
+ 'kogort_number' => SentKogort::KOGORT_NUMBERS['target'],
+ 'phone' => $telegramUsers,
+ ]
+ );
+
+ if ($updatedCount) {
+ $this->stdout(
+ "Статус записей для когорты {$kogortDate} обновлён на 'second' для {$updatedCount} записей.\n",
+ BaseConsole::FG_GREEN
+ );
+ } else {
+ $this->stdout(
+ "Не найдено записей для обновления статуса на 'second'.\n",
+ BaseConsole::FG_RED
+ );
+ }
+ }
+ }
} else {
$this->stdout(
"Нет данных для формирования когорты для Ватсапа на {$kogortDate} для целевой даты {$targetDate}.\n",
$kogortPhones = Users::formKogortByDateAndType($targetDate, 'whatsapp');
if (!empty($kogortPhones)) {
- Users::saveKogort($kogortPhones, $kogortDate, $targetDate, SentKogort::KOGORT_NUMBERS['whatsapp'], true);
+ Users::saveKogort($kogortPhones['whatsapp'], $kogortDate, $targetDate, SentKogort::KOGORT_NUMBERS['whatsapp'], true);
$this->stdout(
"Когорта для Вотсапа на {$kogortDate} для целевой даты {$targetDate} успешно сохранена.\n",
BaseConsole::FG_GREEN