feat: 更新玩家信息和统计功能

- 在多个控制器中更新玩家相关数据的查询,新增 'nickname' 字段以增强玩家信息的完整性。
- 在 AdminDashboardSnapshotBuilder 中引入平台风险统计,提供锁定金额和使用百分比的概览。
- 更新 AdminReportQueryService 以返回更详细的统计数据,包括总投注、总中奖和总派彩金额。
- 增强测试用例以验证新增字段和统计功能的准确性。
This commit is contained in:
2026-06-01 16:53:08 +08:00
parent c101ece539
commit d5232c756f
9 changed files with 124 additions and 19 deletions

View File

@@ -19,7 +19,7 @@ final class AdminJackpotContributionIndexController extends Controller
$drawNo = trim((string) $request->query('draw_no', ''));
$q = JackpotContribution::query()
->with(['draw:id,draw_no', 'pool:id,currency_code', 'player:id,username,site_player_id', 'ticketItem:id,ticket_no'])
->with(['draw:id,draw_no', 'pool:id,currency_code', 'player:id,site_code,username,nickname,site_player_id', 'ticketItem:id,ticket_no'])
->orderByDesc('id');
if ($drawNo !== '') {
@@ -35,7 +35,10 @@ final class AdminJackpotContributionIndexController extends Controller
'jackpot_pool_id' => (int) $r->jackpot_pool_id,
'currency_code' => $r->pool?->currency_code,
'player_id' => (int) $r->player_id,
'player_username' => $r->player?->username,
'site_code' => $r->player?->site_code,
'site_player_id' => $r->player?->site_player_id,
'username' => $r->player?->username,
'nickname' => $r->player?->nickname,
'ticket_item_id' => $r->ticket_item_id !== null ? (int) $r->ticket_item_id : null,
'ticket_no' => $r->ticketItem?->ticket_no,
'contribution_amount' => (int) $r->contribution_amount,

View File

@@ -38,8 +38,7 @@ final class AdminPlayerIndexController extends Controller
$term = '%'.addcslashes($keyword, '%_\\').'%';
$q->where(static function ($sub) use ($term): void {
$sub->where('site_player_id', 'like', $term)
->orWhere('username', 'like', $term)
->orWhere('nickname', 'like', $term);
->orWhere('username', 'like', $term);
});
}

View File

@@ -22,7 +22,7 @@ final class AdminSettlementBatchDetailsController extends Controller
->where('settlement_batch_id', $batch->id)
->with([
'ticketItem:id,ticket_no,play_code,player_id',
'ticketItem.player:id,username,site_player_id',
'ticketItem.player:id,site_code,username,nickname,site_player_id',
'ticketItem.order:id,currency_code',
])
->orderBy('id')
@@ -41,8 +41,10 @@ final class AdminSettlementBatchDetailsController extends Controller
'play_code' => $item?->play_code,
'currency_code' => $order?->currency_code,
'player_id' => $item?->player_id,
'player_username' => $player?->username,
'site_code' => $player?->site_code,
'site_player_id' => $player?->site_player_id,
'username' => $player?->username,
'nickname' => $player?->nickname,
'matched_prize_tier' => $row->matched_prize_tier,
'win_amount' => (int) $row->win_amount,
'jackpot_allocation_amount' => (int) $row->jackpot_allocation_amount,

View File

@@ -122,6 +122,7 @@ final class WalletTransactionListController extends Controller
'site_code' => $p?->site_code,
'site_player_id' => $p?->site_player_id,
'username' => $p?->username,
'nickname' => $p?->nickname,
'wallet_id' => $t->wallet_id,
'biz_type' => $t->biz_type,
'biz_no' => $t->biz_no,