where('user_id', $user_id)->first(); if (empty($userCoupon)) { exit_out(null, 10001, '用户优惠券不存在'); } if ($userCoupon['status'] == 2) { exit_out(null, 10002, '该优惠券已被使用,请勿重复使用'); } if ($userCoupon['status'] == 3) { exit_out(null, 10003, '该优惠券已过期'); } if ($userCoupon['status'] == 1) { if ($userCoupon['expire_time'] < time()) { self::where('id', $id)->update(['status' => 3]); exit_out(null, 10004, '该优惠券已过期'); } if ($userCoupon['min_consume_amount'] > $total_amount) { exit_out(null, 10005, '未达到该优惠券的最低消费金额'); } if ($userCoupon['usable_type'] == 2 && !CouponType::where('user_coupon_id', $id)->where('product_type', $product_type)->count()) { exit_out(null, 10006, '该优惠券不支持该类型的订单'); } } if ($userCoupon['type'] == 1) { $discountAmount = $userCoupon['money']; } else { $discountAmount = floor((1 - $userCoupon['discount']/10)*$total_amount); $discountAmount = $userCoupon['max_reduce_amount'] < $discountAmount ? $userCoupon['max_reduce_amount'] : $discountAmount; } return $discountAmount; } }