From b753d5bbffd8ef08d330211aad62352c40a0e718 Mon Sep 17 00:00:00 2001 From: meoacgx Date: Sun, 21 Dec 2025 11:54:29 +0800 Subject: [PATCH] =?UTF-8?q?fix(dashboard):=20=E6=AD=A3=E7=A1=AE=E7=BB=9F?= =?UTF-8?q?=E8=AE=A1=E5=8F=97=E9=99=90/=E5=B0=81=E7=A6=81=E8=B4=A6?= =?UTF-8?q?=E5=8F=B7=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Components/Pages/Home.razor | 32 +++++++++++++++++-- 1 file changed, 30 insertions(+), 2 deletions(-) diff --git a/src/TelegramPanel.Web/Components/Pages/Home.razor b/src/TelegramPanel.Web/Components/Pages/Home.razor index ac1abf6..8cdd269 100644 --- a/src/TelegramPanel.Web/Components/Pages/Home.razor +++ b/src/TelegramPanel.Web/Components/Pages/Home.razor @@ -7,6 +7,7 @@ @inject IGroupService GroupService @inject TelegramPanel.Web.Services.DataSyncService DataSync @inject ISnackbar Snackbar +@using TelegramPanel.Data.Entities Telegram Panel - 仪表盘 @@ -150,8 +151,8 @@ _accountCount = accounts.Count; _onlineAccountCount = activeAccounts.Count; - _limitedAccountCount = 0; - _bannedAccountCount = 0; + _bannedAccountCount = accounts.Count(IsBannedAccount); + _limitedAccountCount = accounts.Count(a => !IsBannedAccount(a) && IsLimitedAccount(a)); _channelCount = await ChannelManagement.GetTotalChannelCountAsync(); _groupCount = await GroupManagement.GetTotalGroupCountAsync(); @@ -173,6 +174,33 @@ .ToList(); } + private static bool IsLimitedAccount(Account account) + { + var summary = (account.TelegramStatusSummary ?? string.Empty).Trim(); + if (summary.Length == 0) + return false; + + return summary.Contains("受限", StringComparison.OrdinalIgnoreCase) + || summary.Contains("冻结", StringComparison.OrdinalIgnoreCase) + || summary.Contains("探测失败", StringComparison.OrdinalIgnoreCase) + || summary.Contains("Restricted", StringComparison.OrdinalIgnoreCase) + || summary.Contains("FROZEN_METHOD_INVALID", StringComparison.OrdinalIgnoreCase); + } + + private static bool IsBannedAccount(Account account) + { + var summary = (account.TelegramStatusSummary ?? string.Empty).Trim(); + if (summary.Length == 0) + return false; + + return summary.Contains("封禁", StringComparison.OrdinalIgnoreCase) + || summary.Contains("停用", StringComparison.OrdinalIgnoreCase) + || summary.Contains("注销", StringComparison.OrdinalIgnoreCase) + || summary.Contains("被删除", StringComparison.OrdinalIgnoreCase) + || summary.Contains("PHONE_NUMBER_BANNED", StringComparison.OrdinalIgnoreCase) + || summary.Contains("USER_DEACTIVATED_BAN", StringComparison.OrdinalIgnoreCase); + } + private async Task SyncAllAccounts() { if (_syncing)