|
@@ -12,6 +12,7 @@ use App\Models\Level;
|
|
|
use App\Models\RechargeChannelGroup;
|
|
use App\Models\RechargeChannelGroup;
|
|
|
use App\Models\UserLogin;
|
|
use App\Models\UserLogin;
|
|
|
use Illuminate\Support\Facades\DB;
|
|
use Illuminate\Support\Facades\DB;
|
|
|
|
|
+use Illuminate\Support\Facades\Log;
|
|
|
|
|
|
|
|
// 余额额变动记录
|
|
// 余额额变动记录
|
|
|
class BalanceLogService extends BaseService
|
|
class BalanceLogService extends BaseService
|
|
@@ -220,13 +221,19 @@ class BalanceLogService extends BaseService
|
|
|
$wallet->save();
|
|
$wallet->save();
|
|
|
$rebate = BalanceLogService::addLog($agent_member_id, $add_amount, $before, $wallet->available_balance,
|
|
$rebate = BalanceLogService::addLog($agent_member_id, $add_amount, $before, $wallet->available_balance,
|
|
|
'充值返现', $related_id, '被邀请人:'.$memberId."充值金额为:{$remark_amount}");
|
|
'充值返现', $related_id, '被邀请人:'.$memberId."充值金额为:{$remark_amount}");
|
|
|
- $record = (new ShareCommissionRecorder())->record($rebate, [
|
|
|
|
|
- 'invitee_user_id' => $user->id,
|
|
|
|
|
- 'base_amount' => $amount,
|
|
|
|
|
- 'rate' => $rate,
|
|
|
|
|
- ]);
|
|
|
|
|
- if ($record['status'] === 'skipped') {
|
|
|
|
|
- throw new \RuntimeException('返现佣金明细登记失败:' . $record['reason']);
|
|
|
|
|
|
|
+ // The detail record is bookkeeping only: a failure must never roll back
|
|
|
|
|
+ // the invitee's deposit or the promoter's paid rebate. Backfill repairs it later.
|
|
|
|
|
+ try {
|
|
|
|
|
+ $record = (new ShareCommissionRecorder())->record($rebate, [
|
|
|
|
|
+ 'invitee_user_id' => $user->id,
|
|
|
|
|
+ 'base_amount' => $amount,
|
|
|
|
|
+ 'rate' => $rate,
|
|
|
|
|
+ ]);
|
|
|
|
|
+ if ($record['status'] === 'skipped') {
|
|
|
|
|
+ Log::channel('share')->error('返现佣金明细登记失败', ['balance_log_id' => $rebate->id, 'reason' => $record['reason']]);
|
|
|
|
|
+ }
|
|
|
|
|
+ } catch (\Throwable $e) {
|
|
|
|
|
+ Log::channel('share')->error('返现佣金明细登记异常', ['balance_log_id' => $rebate->id, 'exception' => $e]);
|
|
|
}
|
|
}
|
|
|
});
|
|
});
|
|
|
}
|
|
}
|