diff --git a/app/Models/UserCoupon.php b/app/Models/UserCoupon.php index 1e732779..8bb91fff 100644 --- a/app/Models/UserCoupon.php +++ b/app/Models/UserCoupon.php @@ -65,6 +65,14 @@ class UserCoupon extends Model * 仅查询未使用的优惠券 */ public function scopeOnlyUnuse($query) + { + return $query->where('is_use', false)->where('use_end_at', '>', now()); + } + + /** + * 仅查询可用的优惠券 + */ + public function scopeOnlyAvailable($query) { $time = now(); diff --git a/app/Services/CouponService.php b/app/Services/CouponService.php index 1ffdbc8a..0e3ad802 100644 --- a/app/Services/CouponService.php +++ b/app/Services/CouponService.php @@ -18,7 +18,7 @@ class CouponService */ public function getAvailableCoupons(User $user, array $products): array { - $coupons = $user->coupons()->onlyUnuse()->get(); + $coupons = $user->coupons()->onlyAvailable()->get(); $coupons->load(['ranges' => function ($query) { $query->isEnable(); diff --git a/app/Services/OrderService.php b/app/Services/OrderService.php index 69e949bd..dae69620 100644 --- a/app/Services/OrderService.php +++ b/app/Services/OrderService.php @@ -72,7 +72,7 @@ class OrderService $coupon = null; if ($couponId) { - $coupon = $user->coupons()->onlyUnuse()->findOrFail($couponId); + $coupon = $user->coupons()->onlyAvailable()->findOrFail($couponId); } $mapProducts = $this->mapProducts($user, $products, $coupon);