diff --git a/app/Endpoint/Api/Http/Controllers/Account/WalletController.php b/app/Endpoint/Api/Http/Controllers/Account/WalletController.php index 58ba48bf..e7e9b7bd 100644 --- a/app/Endpoint/Api/Http/Controllers/Account/WalletController.php +++ b/app/Endpoint/Api/Http/Controllers/Account/WalletController.php @@ -7,6 +7,7 @@ use App\Endpoint\Api\Http\Resources\BalanceLogResource; use App\Endpoint\Api\Http\Resources\DistributionPreIncomeResource; use App\Endpoint\Api\Http\Resources\WalletLogResource; use App\Endpoint\Api\Http\Resources\WalletToBankLogResource; +use App\Events\OrderPaid; use App\Exceptions\BalanceFrozenException; use App\Exceptions\BizException; use App\Exceptions\InvalidPaySerialNumberException; @@ -123,7 +124,7 @@ class WalletController extends Controller } try { - DB::transaction(function () use ($user, $validated) { + $payLog = DB::transaction(function () use ($user, $validated) { $payLog = PayLog::where('pay_sn', $validated['pay_sn']) ->lockForUpdate() ->first(); @@ -155,6 +156,8 @@ class WalletController extends Controller } (new PayService())->handleSuccess($payLog); + + return $payLog; }); } catch (InvalidPaySerialNumberException $e) { throw $e; @@ -170,6 +173,12 @@ class WalletController extends Controller throw $e; } + $payable = $payLog?->payable; + + if ($payable instanceof Order) { + OrderPaid::dispatchIf($payable->isPaid(), $payable); + } + return response()->noContent(); }