root 5 years ago
parent
commit
7639f07b83
2 changed files with 28 additions and 2 deletions
  1. 16 2
      app/Http/Controllers/OrderController.php
  2. 12 0
      app/Models/CouponLog.php

+ 16 - 2
app/Http/Controllers/OrderController.php

@@ -12,6 +12,7 @@ use App\Models\Order;
 use App\Models\Plan;
 use App\Models\User;
 use App\Models\Coupon;
+use App\Models\CouponLog;
 use App\Utils\Helper;
 use Omnipay\Omnipay;
 use Stripe\Stripe;
@@ -126,8 +127,21 @@ class OrderController extends Controller
                     break;
             }
             $order->total_amount = $order->total_amount - $order->discount_amount;
-            $coupon->limit_use = $coupon->limit_use - 1;
-            if (!$coupon->save()) {
+            if ($coupon->limit_use !== NULL) {
+                $coupon->limit_use = $coupon->limit_use - 1;
+                if (!$coupon->save()) {
+                    DB::rollback();
+                    abort(500, '优惠券使用失败');
+                }
+            }
+            // add coupon log
+            if (!CouponLog::create([
+                'coupon_id' => $coupon->id,
+                'user_id' => $order->user_id,
+                'order_id' => $order->id,
+                'total_amount' => $order->total_amount,
+                'discount_amount' => $order->discount_amount
+            ])) {
                 DB::rollback();
                 abort(500, '优惠券使用失败');
             }

+ 12 - 0
app/Models/CouponLog.php

@@ -0,0 +1,12 @@
+<?php
+
+namespace App\Models;
+
+use Illuminate\Database\Eloquent\Model;
+
+class CouponLog extends Model
+{
+    protected $table = 'v2_coupon_log';
+    protected $dateFormat = 'U';
+    protected $guarded = ['id'];
+}