diff --git a/handlers/admin/clusters/clusters_handler.py b/handlers/admin/clusters/clusters_handler.py index 85dab862..77bdfd5b 100644 --- a/handlers/admin/clusters/clusters_handler.py +++ b/handlers/admin/clusters/clusters_handler.py @@ -304,10 +304,18 @@ async def handle_clusters_manage( ) user_count = result.scalar() or 0 + result = await session.execute( + select(func.count()).where( + (Key.server_id == cluster_name) | (Key.server_id.in_(server_names)) + ) + ) + subscription_count = result.scalar() or 0 + text = ( f"🔧 Управление кластером {cluster_name}\n\n" f"📁 Тарифная группа: {tariff_group}\n" - f"👥 Пользователей на кластере: {user_count}" + f"👥 Пользователей на кластере: {user_count}\n" + f"🔑 Всего подписок: {subscription_count}" ) await callback_query.message.edit_text( diff --git a/handlers/admin/servers/servers_handler.py b/handlers/admin/servers/servers_handler.py index 69e34ba4..47b1cb7c 100644 --- a/handlers/admin/servers/servers_handler.py +++ b/handlers/admin/servers/servers_handler.py @@ -69,6 +69,11 @@ async def handle_server_manage( max_keys = server.get("max_keys") limit_display = f"{max_keys}" if max_keys else "не задан" + result = await session.execute( + select(func.count()).where(Key.server_id == server_name) + ) + subscription_count = result.scalar() or 0 + text = ( f"🔧 Информация о сервере {server_name}:\n\n" f"🗂 Кластер: {cluster_name}\n" @@ -84,6 +89,9 @@ async def handle_server_manage( f"📈 Лимит ключей: {limit_display}" ) + if subscription_count > 0: + text += f"\n🔑 Подписок на сервере: {subscription_count}" + await callback_query.message.edit_text( text=text, reply_markup=build_manage_server_kb(