|
|
|
@ -172,10 +172,6 @@ class CouponController extends BaseController |
|
|
|
// 获取用户优惠券
|
|
|
|
$currentTime = time(); |
|
|
|
|
|
|
|
$container = ApplicationContext::getContainer(); |
|
|
|
$redis = $container->get(Redis::class); |
|
|
|
$couponIds = $redis->sMembers('coupon_'.date('Ymd').'_used_'.$userId); |
|
|
|
|
|
|
|
$data = Db::table('ims_system_coupon_user_receive as receive') |
|
|
|
->select([ |
|
|
|
'receive.id as receive_id', |
|
|
|
@ -192,13 +188,8 @@ class CouponController extends BaseController |
|
|
|
->join('ims_system_coupon_user as coupon', 'coupon.id', '=', 'receive.system_coupon_user_id') |
|
|
|
->where(['receive.user_id' => $userId]) |
|
|
|
->whereIn('receive.status', [0,1]) |
|
|
|
->where('receive.number_remain', '>', 0); |
|
|
|
|
|
|
|
if (is_array($couponIds)&&!empty($couponIds)) { |
|
|
|
$data->whereNotIn('coupon.id', $couponIds); |
|
|
|
} |
|
|
|
|
|
|
|
$data = $data->whereIn('coupon.type', [1,$type]) |
|
|
|
->where('receive.number_remain', '>', 0) |
|
|
|
->whereIn('coupon.type', [1,$type]) |
|
|
|
->where('coupon.full_amount', '<=', $orderAmount) |
|
|
|
->where('coupon.usable_start_time', '<=', $currentTime) |
|
|
|
->where('coupon.usable_end_time', '>=', $currentTime) |
|
|
|
@ -208,7 +199,20 @@ class CouponController extends BaseController |
|
|
|
->orderByRaw('coupon.discounts DESC, coupon.full_amount DESC') |
|
|
|
->get(); |
|
|
|
|
|
|
|
return $this->success($data); |
|
|
|
// 剔除用户今天用过的优惠券种类
|
|
|
|
$container = ApplicationContext::getContainer(); |
|
|
|
$redis = $container->get(Redis::class); |
|
|
|
$couponIds = $redis->sMembers('coupon_'.date('Ymd').'_used_'.$userId); |
|
|
|
|
|
|
|
$available = $data->reject(function ($item) use ($couponIds) { |
|
|
|
return in_array($item->id, $couponIds); |
|
|
|
}); |
|
|
|
|
|
|
|
$notAvailable = $data->reject(function ($item) use ($couponIds) { |
|
|
|
return !in_array($item->id, $couponIds); |
|
|
|
}); |
|
|
|
|
|
|
|
return $this->success(['available' => $available, 'not_available' => $notAvailable]); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|