hrjy 3 years ago
parent
commit
5ec87c559f

+ 2 - 2
app/api/controller/admin/StoreOrderController.php

@@ -502,9 +502,9 @@ class StoreOrderController
             $coupon['status'] = 1;
             $coupon['use_time'] = time();
             $res = $coupon->save();
-            $pon = StoreCouponUser::where('order_id', $coupon['order_id'])->where('code', '<>', $verify_code)->where('status', 0)->select();
+            $pon = StoreCouponUser::where('order_id', $coupon['order_id'])->where('uid', $coupon['uid'])->where('code', '<>', $verify_code)->where('status', 0)->select();
             if (count($pon) == 0){
-                StoreOrder::where('order_id', $coupon['order_id'])->update(['use' => 1, 'status' => 3]);
+                StoreOrder::where('order_id', $coupon['order_id'])->where('uid', $coupon['uid'])->update(['use' => 1, 'status' => 3]);
             }
             WriteOff::create([
                 'uid' => $request->uid(),

+ 1 - 1
app/api/controller/order/StoreOrderController.php

@@ -681,9 +681,9 @@ class StoreOrderController
             ->leftJoin('store_coupon b', 'b.id = a.cid')
             ->leftJoin('system_store c', 'b.store_id = c.id')
             ->where('a.order_id', $data['order_id'])
+            ->where('a.uid', $request->uid())
             ->select();
         $order['coupon'] = $coupon;
-        $order['produc'] = StoreProduct::where('id', $order['product_id'])->find();
         $order = $order->toArray();
         return app('json')->successful($order);
     }

+ 8 - 2
app/api/controller/user/UserController.php

@@ -694,8 +694,14 @@ class UserController
 
         if ($coupon['status'] == 1) return app('json')->fail('优惠券已使用');
         if ($coupon['status'] == 2) return app('json')->fail('优惠券已过期');
-        if ($coupon['sharer_id'] > 0) return app('json')->fail('该优惠券被领取');
-        $coupon['sharer_id'] = $request->uid();
+        if ($coupon['uid'] == $request->uid()) return app('json')->fail('自己不能领取自己的优惠券');
+        $coupon['uid'] = $request->uid();
+        $order = StoreOrder::where('order_id', $coupon['order_id'])->find();
+        if ($order['use'] < 1){
+            $order_coupon = StoreCouponUser::where('order_id', $coupon['order_id'])->where('uid', $order['uid'])->where('code', '<>', $data['code'])->where('status', '<', 1)->count();
+            // 如果购买用户本人优惠券分享出去后没有可用的优惠券订单变为已完成
+            if ($order_coupon == 0) StoreOrder::where('order_id', $coupon['order_id'])->update(['status' => 3, 'use' => 1]);
+        }
         $res = $coupon->save();
         if ($res) return app('json')->success('领取成功');
         return app('json')->fail('领取失败');