feat: add idempotency support for settlement adjustments and payments, fix rebate handling
- Added idempotency_key parameter to settlement bill adjustment and payment endpoints to prevent duplicate operations - Fixed player rebate profile updates to preserve existing values when only one field is modified - Moved wallet player validation earlier in AdminPlayerStoreController to prevent unnecessary processing - Enhanced extra rebate calculation to include 'in_bill' and 'settled' statuses in AgentP
This commit is contained in:
@@ -55,11 +55,21 @@ final class AdminPlayerUpdateController extends Controller
|
||||
]);
|
||||
}
|
||||
|
||||
$rebateRate = 0.0;
|
||||
$extraRebateRate = 0.0;
|
||||
$rebateRate = null;
|
||||
$extraRebateRate = null;
|
||||
if ($agent !== null && ($request->has('rebate_rate') || $request->has('extra_rebate_rate'))) {
|
||||
$rebateRate = (float) $request->input('rebate_rate', 0) / 100;
|
||||
$extraRebateRate = (float) $request->input('extra_rebate_rate', 0) / 100;
|
||||
$existing = DB::table('player_rebate_profiles')
|
||||
->where('player_id', $player->id)
|
||||
->where('game_type', '*')
|
||||
->first();
|
||||
|
||||
$rebateRate = $request->has('rebate_rate')
|
||||
? (float) $request->input('rebate_rate', 0) / 100
|
||||
: (float) ($existing->rebate_rate ?? 0);
|
||||
$extraRebateRate = $request->has('extra_rebate_rate')
|
||||
? (float) $request->input('extra_rebate_rate', 0) / 100
|
||||
: (float) ($existing->extra_rebate_rate ?? 0);
|
||||
|
||||
$rebateLimitValidator->assertPlayerRebateWithinAgent(
|
||||
$agent,
|
||||
$rebateRate,
|
||||
@@ -78,13 +88,13 @@ final class AdminPlayerUpdateController extends Controller
|
||||
unset($data['credit_limit']);
|
||||
}
|
||||
|
||||
if ($request->has('rebate_rate') || $request->has('extra_rebate_rate')) {
|
||||
if ($rebateRate !== null || $extraRebateRate !== null) {
|
||||
DB::table('player_rebate_profiles')->updateOrInsert(
|
||||
['player_id' => $player->id, 'game_type' => '*'],
|
||||
[
|
||||
'inherit_from_agent' => false,
|
||||
'rebate_rate' => $rebateRate,
|
||||
'extra_rebate_rate' => $extraRebateRate,
|
||||
'rebate_rate' => $rebateRate ?? 0,
|
||||
'extra_rebate_rate' => $extraRebateRate ?? 0,
|
||||
'updated_at' => now(),
|
||||
'created_at' => now(),
|
||||
],
|
||||
|
||||
Reference in New Issue
Block a user