]> gitweb.erp-flowers.ru Git - erp24_rep/yii-erp24/.git/commitdiff
правки скрипта наполнения
authorfomichev <vladimir.fomichev@erp-flowers.ru>
Wed, 25 Dec 2024 13:10:41 +0000 (16:10 +0300)
committerfomichev <vladimir.fomichev@erp-flowers.ru>
Wed, 25 Dec 2024 13:10:41 +0000 (16:10 +0300)
erp24/commands/CronController.php
erp24/controllers/UsersMessageManagementController.php

index f905f4661ee5dbdb207ac71b79a9a316eabed665..fdf0ca1f5341b7b31416635651553185c34c75b7 100644 (file)
@@ -16,6 +16,7 @@ use yii_app\records\ReplacementInvoiceProducts;
 use yii_app\records\SentKogort;
 use yii_app\records\Users;
 use yii_app\records\UsersMessageManagement;
+use yii_app\records\UsersTelegramChatId;
 use yii_app\records\UsersTelegramLog;
 
 class CronController extends Controller
@@ -360,9 +361,9 @@ class CronController extends Controller
         $batchSize = 500;
         $offset = 0;
 
-       // $csvFilePath = Yii::getAlias('@runtime/missing_users.csv');
-      //  $fileHandle = fopen($csvFilePath, 'w');
-      //  fputcsv($fileHandle, ['phone', 'username', 'chat_id', 'is-blocked', 'is_registered', 'reason'], ';');
+        $csvFilePath = Yii::getAlias('@data/missing_users.csv');
+        $fileHandle = fopen($csvFilePath, 'w');
+        fputcsv($fileHandle, ['phone', 'username', 'chat_id', 'is-blocked', 'is_registered', 'reason'], ';');
 
         while (true) {
             $chatbotUsers = $remoteDb
@@ -379,11 +380,12 @@ class CronController extends Controller
                 $phone = $remoteUser['phone'];
                 $chatId = $remoteUser['chat_id'];
                 $username = $remoteUser['username'];
+                $firstName = $remoteUser['first_name'];
                 $isBlocked = (int)$remoteUser['is_blocked'];
                 $isRegistered = (int)$remoteUser['is_registered'];
                 if (empty($phone)) {
-                   // fputcsv($fileHandle, [$phone, $username, $chatId, $isBlocked, $isRegistered, 'Отсутствует телефон'], ';');
-                    continue;
+                    fputcsv($fileHandle, [$phone, $username, $chatId, $isBlocked, $isRegistered, 'Отсутствует телефон'], ';');
+                   // continue;
                 }
 
                 $existingLog = UsersTelegramLog::find()
@@ -404,30 +406,27 @@ class CronController extends Controller
                     $this->createTelegramLog($phone, $isBlocked, $isRegistered);
                 }
 
-                $user = Users::findOne(['phone' => $phone]);
+                $user = UsersTelegramChatId::findOne(['chat_id' => $chatId]);
 
                 if (!$user) {
-                   // fputcsv($fileHandle, [$phone, $username, $chatId, $isBlocked, $isRegistered, 'Пользователь не найден'], ';');
-                    continue;
-                    /* $user = new Users([
+                    $user = new UsersTelegramChatId([
+                        'chat_id' => $chatId,
                          'phone' => $phone,
-                         'name' => $username ?: 'Клиент из чатбота',
-                         'date' => date('Y-m-d H:i:s'),
-                         'password' => '00000',
-                         'keycode' => '00000',
+                         'username' => $username ?? 'Клиент из чатбота',
+                         'first_name' => $firstName ?? 'Клиент из чатбота',
+                        'is_blocked' => $isBlocked,
+                        'is_registered' => $isRegistered,
                      ]);
-                     $user->save(false);*/
+                     $user->save(false);
                 }
-
-                if (empty($user->telegram_chat_id)) {
-                    $user->telegram_chat_id = $chatId;
-                }
-
-                if ($isRegistered && $user->telegram_is_subscribed == 0) {
-                    $user->telegram_is_subscribed = 1;
-                } elseif (!$isRegistered && $user->telegram_is_subscribed == 1) {
-                    $user->telegram_is_subscribed = 0;
-                    $user->telegram_unsubscribed_at = date('Y-m-d H:i:s');
+                if (
+                    $user->is_blocked != $isBlocked ||
+                    $user->is_registered != $isRegistered ||
+                    $user->phone != $phone
+                ) {
+                    $user->is_blocked = $isBlocked;
+                    $user->is_registered = $isRegistered;
+                    $user->phone = $phone;
                 }
 
                 $user->save(false);
@@ -438,7 +437,7 @@ class CronController extends Controller
             $this->stdout("Обработано записей: {$offset}\n", BaseConsole::FG_GREEN);
         }
 
-       // fclose($fileHandle);
+        fclose($fileHandle);
         $this->stdout(
             "Синхронизация завершена успешно. Записи без пользователей сохранены в {$csvFilePath}\n",
             BaseConsole::FG_GREEN
index bdc50d6aa0abd1a02be6d4d16a605397b66abc22..fbc0c9b8901f3e76b0cc427510393408afa61a61 100644 (file)
@@ -21,6 +21,7 @@ use yii_app\records\Users;
 use yii_app\records\UsersEvents;
 use yii_app\records\UsersMessageManagement;
 use yii_app\records\UsersMessageManagementLogs;
+use yii_app\records\UsersTelegramChatId;
 use yii_app\records\UsersTelegramLog;
 
 class UsersMessageManagementController extends Controller
@@ -393,9 +394,9 @@ class UsersMessageManagementController extends Controller
         $batchSize = 500;
         $offset = 0;
 
-       // $csvFilePath = Yii::getAlias('@runtime/missing_users.csv');
-      //  $fileHandle = fopen($csvFilePath, 'w');
-      //  fputcsv($fileHandle, ['phone', 'username', 'chat_id', 'is-blocked', 'is_registered', 'reason'], ';');
+        $csvFilePath = Yii::getAlias('@data/missing_users.csv');
+        $fileHandle = fopen($csvFilePath, 'w');
+        fputcsv($fileHandle, ['phone', 'username', 'chat_id', 'is-blocked', 'is_registered', 'reason'], ';');
 
         while (true) {
             $chatbotUsers = $remoteDb
@@ -407,16 +408,20 @@ class UsersMessageManagementController extends Controller
             if (empty($chatbotUsers)) {
                 break;
             }
+            if ($offset == 1500) {
+                break;
+            }
 
             foreach ($chatbotUsers as $remoteUser) {
                 $phone = $remoteUser['phone'];
                 $chatId = $remoteUser['chat_id'];
                 $username = $remoteUser['username'];
+                $firstName = $remoteUser['first_name'];
                 $isBlocked = (int)$remoteUser['is_blocked'];
                 $isRegistered = (int)$remoteUser['is_registered'];
                 if (empty($phone)) {
-                  //  fputcsv($fileHandle, [$phone, $username, $chatId, $isBlocked, $isRegistered, 'Отсутствует телефон'], ';');
-                    continue;
+                    fputcsv($fileHandle, [$phone, $username, $chatId, $isBlocked, $isRegistered, 'Отсутствует телефон'], ';');
+                    // continue;
                 }
 
                 $existingLog = UsersTelegramLog::find()
@@ -437,22 +442,27 @@ class UsersMessageManagementController extends Controller
                     $this->createTelegramLog($phone, $isBlocked, $isRegistered);
                 }
 
-                $user = Users::findOne(['phone' => $phone]);
+                $user = UsersTelegramChatId::findOne(['chat_id' => $chatId]);
 
                 if (!$user) {
-                 //   fputcsv($fileHandle, [$phone, $username, $chatId, $isBlocked, $isRegistered, 'Пользователь не найден'], ';');
-                    continue;
-                }
-
-                if (empty($user->telegram_chat_id)) {
-                    $user->telegram_chat_id = $chatId;
+                    $user = new UsersTelegramChatId([
+                        'chat_id' => $chatId,
+                        'phone' => $phone,
+                        'username' => $username ?? 'Клиент из чатбота',
+                        'first_name' => $firstName ?? 'Клиент из чатбота',
+                        'is_blocked' => $isBlocked,
+                        'is_registered' => $isRegistered,
+                    ]);
+                    $user->save(false);
                 }
-
-                if ($isRegistered && $user->telegram_is_subscribed == 0) {
-                    $user->telegram_is_subscribed = 1;
-                } elseif (!$isRegistered && $user->telegram_is_subscribed == 1) {
-                    $user->telegram_is_subscribed = 0;
-                    $user->telegram_unsubscribed_at = date('Y-m-d H:i:s');
+                if (
+                    $user->is_blocked != $isBlocked ||
+                    $user->is_registered != $isRegistered ||
+                    $user->phone != $phone
+                ) {
+                    $user->is_blocked = $isBlocked;
+                    $user->is_registered = $isRegistered;
+                    $user->phone = $phone;
                 }
 
                 $user->save(false);
@@ -462,7 +472,8 @@ class UsersMessageManagementController extends Controller
 
         }
 
-       // fclose($fileHandle);
+        fclose($fileHandle);
+
         return 'ok';
     }