From d67d7c91dbacc28b02867dc40437af51ad05d875 Mon Sep 17 00:00:00 2001 From: fomichev Date: Wed, 25 Dec 2024 16:19:08 +0300 Subject: [PATCH] =?utf8?q?=D0=9F=D0=B5=D1=80=D0=B5=D0=BD=D0=BE=D1=81=20?= =?utf8?q?=D0=BF=D0=BE=D1=81=D0=BB=D0=B5=D0=B4=D0=BE=D0=B2=D0=B0=D1=82?= =?utf8?q?=D0=B5=D0=BB=D1=8C=D0=BD=D0=BE=D1=81=D1=82=D0=B8=20=D0=B1=D0=BB?= =?utf8?q?=D0=BE=D0=BA=D0=BE=D0=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- erp24/commands/CronController.php | 52 ++++++++++--------- .../UsersMessageManagementController.php | 47 +++++++++-------- 2 files changed, 52 insertions(+), 47 deletions(-) diff --git a/erp24/commands/CronController.php b/erp24/commands/CronController.php index ef833adb..45f54d90 100644 --- a/erp24/commands/CronController.php +++ b/erp24/commands/CronController.php @@ -383,9 +383,35 @@ class CronController extends Controller $firstName = $remoteUser['first_name']; $isBlocked = (int)$remoteUser['is_blocked']; $isRegistered = (int)$remoteUser['is_registered']; + + $user = UsersTelegramChatId::findOne(['chat_id' => $chatId]); + + if (!$user) { + $user = new UsersTelegramChatId([ + 'chat_id' => $chatId, + 'phone' => $phone, + 'username' => $username ?? 'Клиент из чатбота', + 'first_name' => $firstName ?? 'Клиент из чатбота', + 'is_blocked' => $isBlocked, + 'is_registered' => $isRegistered, + ]); + $user->save(false); + } + 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); + if (empty($phone)) { // fputcsv($fileHandle, [$phone, $username, $chatId, $isBlocked, $isRegistered, 'Отсутствует телефон'], ';'); - // continue; + continue; } $existingLog = UsersTelegramLog::find() @@ -406,30 +432,6 @@ class CronController extends Controller $this->createTelegramLog($phone, $isBlocked, $isRegistered); } - $user = UsersTelegramChatId::findOne(['chat_id' => $chatId]); - - if (!$user) { - $user = new UsersTelegramChatId([ - 'chat_id' => $chatId, - 'phone' => $phone, - 'username' => $username ?? 'Клиент из чатбота', - 'first_name' => $firstName ?? 'Клиент из чатбота', - 'is_blocked' => $isBlocked, - 'is_registered' => $isRegistered, - ]); - $user->save(false); - } - 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); } $offset += $batchSize; diff --git a/erp24/controllers/UsersMessageManagementController.php b/erp24/controllers/UsersMessageManagementController.php index 9b441eb5..05e0d98d 100644 --- a/erp24/controllers/UsersMessageManagementController.php +++ b/erp24/controllers/UsersMessageManagementController.php @@ -419,28 +419,6 @@ class UsersMessageManagementController extends Controller $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; - } - - $existingLog = UsersTelegramLog::find() - ->where(['phone' => $phone, 'date_end' => null]) - ->one(); - - if ($existingLog) { - if ( - $existingLog->is_blocked != $isBlocked || - $existingLog->is_registered != $isRegistered - ) { - $existingLog->date_end = date('Y-m-d H:i:s'); - $existingLog->save(false); - - $this->createTelegramLog($phone, $isBlocked, $isRegistered); - } - } else { - $this->createTelegramLog($phone, $isBlocked, $isRegistered); - } $user = UsersTelegramChatId::findOne(['chat_id' => $chatId]); @@ -466,6 +444,31 @@ class UsersMessageManagementController extends Controller } $user->save(false); + + if (empty($phone)) { + // fputcsv($fileHandle, [$phone, $username, $chatId, $isBlocked, $isRegistered, 'Отсутствует телефон'], ';'); + continue; + } + + $existingLog = UsersTelegramLog::find() + ->where(['phone' => $phone, 'date_end' => null]) + ->one(); + + if ($existingLog) { + if ( + $existingLog->is_blocked != $isBlocked || + $existingLog->is_registered != $isRegistered + ) { + $existingLog->date_end = date('Y-m-d H:i:s'); + $existingLog->save(false); + + $this->createTelegramLog($phone, $isBlocked, $isRegistered); + } + } else { + $this->createTelegramLog($phone, $isBlocked, $isRegistered); + } + + } $offset += $batchSize; -- 2.39.5