From 18d340add7550672b3acf8b1663a25c75f8955a3 Mon Sep 17 00:00:00 2001 From: pilot <657434@03b.ru> Date: Mon, 10 Aug 2026 14:45:45 +0800 Subject: [PATCH] =?UTF-8?q?=D0=B2=D0=BD=D0=B5=D0=B4=D1=80=D0=B5=D0=BD?= =?UTF-8?q?=D0=B8=D0=B5=20=D0=BB=D0=BE=D0=B3=D0=B8=D0=BE=D0=B2=D0=B0=D0=BD?= =?UTF-8?q?=D0=B8=D1=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../restoran_max_bot/promo_handlers.py | 46 +++++++++++++++++++ 1 file changed, 46 insertions(+) diff --git a/restoran_max_bot/restoran_max_bot/promo_handlers.py b/restoran_max_bot/restoran_max_bot/promo_handlers.py index 96257f2..ebe7f8f 100644 --- a/restoran_max_bot/restoran_max_bot/promo_handlers.py +++ b/restoran_max_bot/restoran_max_bot/promo_handlers.py @@ -4,6 +4,7 @@ from max_bot.models import Client, PromoCode from restoran_max_bot.common import common_get_data from restoran_max_bot.message_sender import send_text, send_image from restoran_max_bot.settings import STATICFILES_DIRS, BASE_URL +from restoran_max_bot.user_logger import log_user_action def bot_promo(client: Client, message: dict, settings_max: dict) -> bool: @@ -13,8 +14,27 @@ def bot_promo(client: Client, message: dict, settings_max: dict) -> bool: messenger = 'max-bot' client_id = client.id + # Логируем начало обработки промокода + log_user_action( + client=client, + chat_id=chat_id, + action_type='promo_start', + details={ + 'promo': promo, + 'client_id': client_id, + 'messenger': messenger + } + ) + data = common_get_data(client=client, key=promo) if not data: + # Логируем, что промокод не найден в системе + log_user_action( + client=client, + chat_id=chat_id, + action_type='promo_not_found', + details={'promo': promo} + ) return True promo_obj, created = PromoCode.objects.get_or_create( @@ -27,8 +47,20 @@ def bot_promo(client: Client, message: dict, settings_max: dict) -> bool: if not created: if promo_obj.used: send_text(chat_id, settings_max['token'], "⚠️ Этот промокод уже был использован.") + log_user_action( + client=client, + chat_id=chat_id, + action_type='promo_already_used', + details={'promo': promo, 'used_at': promo_obj.used_at} + ) else: send_text(chat_id, settings_max['token'], "ℹ️ QR-код уже был отправлен.") + log_user_action( + client=client, + chat_id=chat_id, + action_type='promo_already_sent', + details={'promo': promo} + ) return True # Генерируем QR @@ -39,6 +71,20 @@ def bot_promo(client: Client, message: dict, settings_max: dict) -> bool: img.save(f"{STATICFILES_DIRS[0]}/client_qr/{file_name}") qr_url = f"{BASE_URL}/static/client_qr/{file_name}" + # Логируем сформированные ссылки + log_user_action( + client=client, + chat_id=chat_id, + action_type='promo_qr_generated', + details={ + 'promo': promo, + 'qr_url': qr_url, + 'status_url': url_promo, + 'file_name': file_name, + 'created': created + } + ) + send_image(chat_id, settings_max['token'], qr_url, 'Ваш QR-код.') # Отправляем дополнительный контент