fix(dashboard): 正确统计受限/封禁账号数

This commit is contained in:
meoacgx committed 2025-12-21 11:54:29 +08:00
1 parent 02fbca010d
commit b753d5bbff
1 file changed
+30 -2
@@ -7,6 +7,7 @@
@inject IGroupService GroupService
@inject TelegramPanel.Web.Services.DataSyncService DataSync
@inject ISnackbar Snackbar
@using TelegramPanel.Data.Entities
<PageTitle>Telegram Panel - 仪表盘</PageTitle>
@@ -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)