feat(risk): 支持按开注商隔离风险池并新增经营报表
This commit is contained in:
@@ -90,6 +90,7 @@ final class TicketPlacementService
|
||||
foreach ($riskRedisCompensation as $entry) {
|
||||
$this->riskPoolService->compensateRedisAcquires(
|
||||
(int) $entry['draw_id'],
|
||||
(string) $entry['provider_code'],
|
||||
$entry['locks'],
|
||||
);
|
||||
}
|
||||
@@ -288,7 +289,7 @@ final class TicketPlacementService
|
||||
}
|
||||
|
||||
try {
|
||||
$lockedAmount = $this->riskPoolService->acquire((int) $draw->id, $item, $locks);
|
||||
$lockedAmount = $this->riskPoolService->acquire((int) $draw->id, (string) $evaluated['provider_code'], $item, $locks);
|
||||
} catch (TicketOperationException $e) {
|
||||
if ($e->lotteryCode !== ErrorCode::RiskPoolSoldOut->value) {
|
||||
throw $e;
|
||||
@@ -319,6 +320,7 @@ final class TicketPlacementService
|
||||
$successTotalEstimatedPayout += (int) $evaluated['estimated_max_payout'];
|
||||
$riskRedisCompensation[] = [
|
||||
'draw_id' => (int) $draw->id,
|
||||
'provider_code' => (string) $evaluated['provider_code'],
|
||||
'locks' => $locks,
|
||||
];
|
||||
}
|
||||
@@ -412,7 +414,12 @@ final class TicketPlacementService
|
||||
'amount' => (int) $combo->estimated_payout,
|
||||
];
|
||||
}
|
||||
$this->riskPoolService->release((int) $order->draw_id, $item, $locks);
|
||||
$this->riskPoolService->release(
|
||||
(int) $order->draw_id,
|
||||
(string) ($item->provider_code ?: \App\Models\BetProvider::DEFAULT_CODE),
|
||||
$item,
|
||||
$locks,
|
||||
);
|
||||
$item->forceFill([
|
||||
'status' => 'refunded',
|
||||
'fail_reason_code' => (string) ErrorCode::BetInsufficientBalance->value,
|
||||
|
||||
Reference in New Issue
Block a user