diff --git a/app/Controller/CouponController.php b/app/Controller/CouponController.php index 59d0ec7..c72dc16 100644 --- a/app/Controller/CouponController.php +++ b/app/Controller/CouponController.php @@ -79,7 +79,7 @@ class CouponController extends BaseController 'receive_type' => $receiveType ] )->first(); - //TODO 会有超发情况 + $cr = new CouponRec; $cr->user_id = $userId; $cr->system_coupon_user_id = $cp->id; @@ -90,13 +90,20 @@ class CouponController extends BaseController $cr->status = 0; $cr->update_time = $now; $cr->receive_type = $receiveType; - if ($test&&($cp->id%2)) { + if ($test && ($cp->id % 2)) { $fail[] = $cp; } else { - if ($cr->save()) { - $success[] = $cp; - } else { + //TODO 会有超发情况 + //如果优惠卷库存小于等于已领取的数量, 则返回领取失败的优惠券 + if ($cp->inventory<=$cp->inventory_use||$cp->inventory<=($cp->inventory_use+$cr->number)){ $fail[] = $cp; + }else{ + $cp->inventory_use += $cr->number;//记录已领取的数量 + if ($cr->save()&&$cp->save()) { + $success[] = $cp; + } else { + $fail[] = $cp; + } } }