Credit.php 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. <?php
  2. namespace App\Utils\Payments;
  3. use App\Models\Goods;
  4. use App\Models\Order;
  5. use App\Utils\Helpers;
  6. use App\Utils\Library\Templates\Gateway;
  7. use Illuminate\Http\JsonResponse;
  8. use Illuminate\Http\Request;
  9. class Credit implements Gateway
  10. {
  11. public static function metadata(): array
  12. {
  13. return [
  14. 'key' => 'credit',
  15. ];
  16. }
  17. public function purchase(Request $request): JsonResponse
  18. {
  19. $order = Order::find($request->input('id'));
  20. $goods = Goods::find($request->input('goods_id'));
  21. $user = $order->user;
  22. if ($user && $goods) {
  23. $user->update(['credit' => $user->credit - $order->amount]);
  24. // 记录余额操作日志
  25. Helpers::addUserCreditLog($user->id, $order->id, $user->credit + $order->amount, $user->credit, -1 * $order->amount, 'Purchased an item.');
  26. }
  27. $order->complete();
  28. return response()->json(['status' => 'success', 'message' => trans('user.purchase.completed')]);
  29. }
  30. public function notify(Request $request): void
  31. {
  32. }
  33. }