Wang Chen 4 年之前
父節點
當前提交
4bae51eea7
共有 2 個文件被更改,包括 48 次插入0 次删除
  1. 2 0
      app/Modules/Trade/Pay/OrderPaySuccess.php
  2. 46 0
      app/Modules/Trade/Pay/QuarterOrderPaySuccess.php

+ 2 - 0
app/Modules/Trade/Pay/OrderPaySuccess.php

@@ -31,6 +31,8 @@ class OrderPaySuccess
                 $app = new YearOrderPaySuccess($order);
             } elseif ($order->order_type == 'BOOK') {
                 $app = new BookOrderPaySuccess($order);
+            } elseif ($order->order_type == 'QUARTER') {
+                $app = new QuarterOrderPaySuccess($order);
             } elseif ($order->order_type == 'RECHARGE') {
                 $app = new RechargeOrderPaySuccess($order);
             }

+ 46 - 0
app/Modules/Trade/Pay/QuarterOrderPaySuccess.php

@@ -0,0 +1,46 @@
+<?php
+
+namespace App\Modules\Trade\Pay;
+
+use App\Modules\Subscribe\Models\Order;
+use App\Modules\Subscribe\Models\YearOrder;
+
+
+class QuarterOrderPaySuccess extends PaySuccessAbstract
+{
+    private $year_order;
+
+    public function __construct(Order $order)
+    {
+        parent::__construct($order);
+        $this->year_order = [];
+        $this->year_order['uid'] = $order->uid;
+        $this->year_order['distribution_channel_id'] = $order->distribution_channel_id;
+        $this->year_order['fee'] = $order->price;
+        $this->year_order['send_order_id'] = $order->send_order_id;
+    }
+
+    protected function handlePayProcess()
+    {
+        $this->year_order['begin_time'] = date('Y-m-d H:i:s');
+        $this->year_order['end_time'] = date('Y-m-d H:i:s', strtotime('+92 day'));
+        $old = YearOrder::where('uid', $this->year_order['uid'])->select('id', 'uid', 'u', 'begin_time', 'end_time', 'fee')->first();
+        if ($old) {
+            //如果包过年
+            if (strtotime($old->end_time) > time()) {
+                //旧的包年没过期
+                $old->end_time = date('Y-m-d H:i:s', strtotime($old->end_time) + 86400 * 92);
+                $old->fee = $old->fee + $this->year_order['fee'];
+                $old->save();
+            } else {
+                //旧的包年过期了
+                $old->end_time = date('Y-m-d H:i:s', strtotime('+92 day'));
+                $old->fee = $old->fee + $this->year_order['fee'];
+                $old->save();
+            }
+            return $old;
+        } else {
+            return YearOrder::firstOrCreate($this->year_order);
+        }
+    }
+}