wesmiler 7 stundas atpakaļ
vecāks
revīzija
cc2427420b
2 mainītis faili ar 25 papildinājumiem un 0 dzēšanām
  1. 18 0
      app/Services/Api/GoodsService.php
  2. 7 0
      app/Services/Api/OrderService.php

+ 18 - 0
app/Services/Api/GoodsService.php

@@ -272,10 +272,28 @@ class GoodsService extends BaseService
         if($couponId){
             $couponInfo = MemberCouponModel::where(['coupon_id'=>$couponId,'user_id'=>$userId,'mark'=>1])->first();
             $couponType = isset($couponInfo['coupon_type'])?$couponInfo['coupon_type'] : 0;
+            $couponStatus = isset($couponInfo['status'])?$couponInfo['status'] : 0;
+            $startTime = isset($couponInfo['start_time'])?$couponInfo['start_time'] : 0;
+            $endTime = isset($couponInfo['end_time'])?$couponInfo['end_time'] : 0;
             if(empty($couponInfo) || $couponType<=0){
                 $this->error = '优惠券无效';
                 return false;
             }
+
+            if($couponStatus != 1){
+                $this->error = '该优惠券已使用,请刷新后重试~';
+                return false;
+            }
+
+            if($startTime > time()){
+                $this->error = '该优惠券使用时间未到~';
+                return false;
+            }
+
+            if($endTime && $endTime < time()){
+                $this->error = '该优惠券已过期~';
+                return false;
+            }
         }
 
         $list = $this->model->whereIn('id', $ids)

+ 7 - 0
app/Services/Api/OrderService.php

@@ -14,6 +14,7 @@ namespace App\Services\Api;
 use App\Models\CartModel;
 use App\Models\GoodsModel;
 use App\Models\GoodsSkuModel;
+use App\Models\MemberCouponModel;
 use App\Models\MemberModel;
 use App\Models\OrderGoodsModel;
 use App\Models\OrderModel;
@@ -280,6 +281,7 @@ class OrderService extends BaseService
             $discountPoint = isset($levelData['discount']) ? $levelData['discount'] : 0; // 会员折扣
         }
 
+
         // 商品数据
         $orderNo = get_order_num('JK');
         $result = GoodsService::make()->getOrderGoods($ids, $goods, $userId, $orderNo,$discountPoint,$couponId);
@@ -438,6 +440,11 @@ class OrderService extends BaseService
                 CartModel::whereIn('goods_id',$ids)->whereIn('sku_id',$skuIds)->where(['user_id'=>$userId,'mark'=>1])->update(['mark'=>0,'num'=>0,'update_time'=>time()]);
                 RedisService::clear("caches:goods:cartCount:{$userId}");
             }
+
+            // 优惠券已使用
+            if($couponId){
+                MemberCouponModel::where(['coupon_id'=>$couponId,'user_id'=>$userId])->update(['status'=>2,'update_time'=>time()]);
+            }
         }
 
         // 用户操作记录