feat(risk): 支持按开注商隔离风险池并新增经营报表
This commit is contained in:
@@ -20,6 +20,7 @@ final class AdminRiskPoolLockLogQueryService
|
||||
{
|
||||
$action = trim((string) $request->query('action_type', ''));
|
||||
$number = trim((string) $request->query('normalized_number', ''));
|
||||
$providerCode = strtoupper(trim((string) $request->query('provider_code', '')));
|
||||
$ticketItemId = (int) $request->integer('ticket_item_id', 0);
|
||||
|
||||
$q = RiskPoolLockLog::query()
|
||||
@@ -36,6 +37,10 @@ final class AdminRiskPoolLockLogQueryService
|
||||
$q->where('normalized_number', $number);
|
||||
}
|
||||
|
||||
if ($providerCode !== '') {
|
||||
$q->where('provider_code', $providerCode);
|
||||
}
|
||||
|
||||
if ($ticketItemId > 0) {
|
||||
$q->where('ticket_item_id', $ticketItemId);
|
||||
}
|
||||
@@ -50,6 +55,7 @@ final class AdminRiskPoolLockLogQueryService
|
||||
{
|
||||
$action = trim((string) $request->query('action_type', ''));
|
||||
$number = trim((string) $request->query('normalized_number', ''));
|
||||
$providerCode = strtoupper(trim((string) $request->query('provider_code', '')));
|
||||
$ticketItemId = (int) $request->integer('ticket_item_id', 0);
|
||||
|
||||
$bindings = ['draw_id' => $draw->id];
|
||||
@@ -65,6 +71,11 @@ final class AdminRiskPoolLockLogQueryService
|
||||
$bindings['normalized_number'] = $number;
|
||||
}
|
||||
|
||||
if ($providerCode !== '') {
|
||||
$filters .= ' AND l.provider_code = :provider_code';
|
||||
$bindings['provider_code'] = $providerCode;
|
||||
}
|
||||
|
||||
if ($ticketItemId > 0) {
|
||||
$filters .= ' AND l.ticket_item_id = :ticket_item_id';
|
||||
$bindings['ticket_item_id'] = $ticketItemId;
|
||||
@@ -86,6 +97,7 @@ final class AdminRiskPoolLockLogQueryService
|
||||
|
||||
$aggregateSql = <<<SQL
|
||||
SELECT
|
||||
COALESCE(NULLIF(ti.provider_code, ''), l.provider_code) AS provider_code,
|
||||
l.ticket_item_id AS ticket_item_id,
|
||||
ti.ticket_no AS ticket_no,
|
||||
ti.play_code AS play_code,
|
||||
@@ -101,7 +113,7 @@ SELECT
|
||||
FROM risk_pool_lock_logs l
|
||||
INNER JOIN ticket_items ti ON ti.id = l.ticket_item_id
|
||||
WHERE {$filters}
|
||||
GROUP BY l.ticket_item_id, ti.ticket_no, ti.play_code, ti.original_number, ti.combination_count, ti.player_id
|
||||
GROUP BY COALESCE(NULLIF(ti.provider_code, ''), l.provider_code), l.ticket_item_id, ti.ticket_no, ti.play_code, ti.original_number, ti.combination_count, ti.player_id
|
||||
SQL;
|
||||
|
||||
$countSql = "SELECT COUNT(*) AS aggregate_count FROM ({$aggregateSql}) AS grouped";
|
||||
|
||||
Reference in New Issue
Block a user