diff --git a/app/handlers/admin/tickets.py b/app/handlers/admin/tickets.py index 2503cd48..051e5dc1 100644 --- a/app/handlers/admin/tickets.py +++ b/app/handlers/admin/tickets.py @@ -169,9 +169,13 @@ async def view_admin_ticket( }.get(ticket.status, ticket.status) user_name = ticket.user.full_name if ticket.user else "Unknown" - + telegram_id_display = ticket.user.telegram_id if ticket.user else "—" + username_display = (ticket.user.username or "отсутствует") if ticket.user else "отсутствует" + ticket_text = f"🎫 Тикет #{ticket.id}\n\n" ticket_text += f"👤 Пользователь: {user_name}\n" + ticket_text += f"🆔 Telegram ID: {telegram_id_display}\n" + ticket_text += f"📱 Username: @{username_display}\n" ticket_text += f"📝 Заголовок: {ticket.title}\n" ticket_text += f"📊 Статус: {ticket.status_emoji} {status_text}\n" ticket_text += f"📅 Создан: {ticket.created_at.strftime('%d.%m.%Y %H:%M')}\n" diff --git a/app/handlers/tickets.py b/app/handlers/tickets.py index b421f426..a6445a00 100644 --- a/app/handlers/tickets.py +++ b/app/handlers/tickets.py @@ -9,6 +9,7 @@ from sqlalchemy.ext.asyncio import AsyncSession from app.database.models import User, Ticket, TicketStatus from app.database.crud.ticket import TicketCRUD, TicketMessageCRUD +from app.database.crud.user import get_user_by_id from app.keyboards.inline import ( get_ticket_cancel_keyboard, get_my_tickets_keyboard, @@ -937,10 +938,21 @@ async def notify_admins_about_new_ticket(ticket: Ticket, db: AsyncSession): if len(title) > 60: title = title[:57] + "..." + # Загрузим пользователя, чтобы отобразить реальный Telegram ID и username + try: + user = await get_user_by_id(db, ticket.user_id) + except Exception: + user = None + full_name = user.full_name if user else "Unknown" + telegram_id_display = user.telegram_id if user else "—" + username_display = (user.username or "отсутствует") if user else "отсутствует" + notification_text = ( f"🎫 НОВЫЙ ТИКЕТ\n\n" f"🆔 ID: {ticket.id}\n" - f"👤 User ID: {ticket.user_id}\n" + f"👤 Пользователь: {full_name}\n" + f"🆔 Telegram ID: {telegram_id_display}\n" + f"📱 Username: @{username_display}\n" f"📝 Заголовок: {title or '—'}\n" f"📅 Создан: {ticket.created_at.strftime('%d.%m.%Y %H:%M')}\n" ) diff --git a/app/services/monitoring_service.py b/app/services/monitoring_service.py index 042f67b8..d5cc02bb 100644 --- a/app/services/monitoring_service.py +++ b/app/services/monitoring_service.py @@ -1325,10 +1325,17 @@ class MonitoringService: if len(title) > 60: title = title[:57] + '...' + # Детали пользователя: имя, Telegram ID и username + full_name = ticket.user.full_name if ticket.user else "Unknown" + telegram_id_display = ticket.user.telegram_id if ticket.user else "—" + username_display = (ticket.user.username or "отсутствует") if ticket.user else "отсутствует" + text = ( f"⏰ Ожидание ответа на тикет превышено\n\n" f"🆔 ID: {ticket.id}\n" - f"👤 User ID: {ticket.user_id}\n" + f"👤 Пользователь: {full_name}\n" + f"🆔 Telegram ID: {telegram_id_display}\n" + f"📱 Username: @{username_display}\n" f"📝 Заголовок: {title or '—'}\n" f"⏱️ Ожидает ответа: {waited_minutes} мин\n" )