|
|
@ -27,8 +27,12 @@ class CouponController extends BaseController |
|
|
*/ |
|
|
*/ |
|
|
public function getSystemCouponUserList() |
|
|
public function getSystemCouponUserList() |
|
|
{ |
|
|
{ |
|
|
$user_id = $this->request->input('user_id'); |
|
|
|
|
|
$receive_type = $this->request->input('receive_type'); |
|
|
|
|
|
|
|
|
$user_id = $this->request->input('user_id', 0); |
|
|
|
|
|
$receive_type = $this->request->input('receive_type', 0); |
|
|
|
|
|
|
|
|
|
|
|
if ($this->empty($user_id) || $this->empty($receive_type)) { |
|
|
|
|
|
$this->success(['not_reveive' => []]); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
$c_ids = CouponUserRecType::where('receive_type', $receive_type)->pluck('system_coupon_user_id'); |
|
|
$c_ids = CouponUserRecType::where('receive_type', $receive_type)->pluck('system_coupon_user_id'); |
|
|
$nowTime = time(); |
|
|
$nowTime = time(); |
|
|
@ -36,19 +40,10 @@ class CouponController extends BaseController |
|
|
['user_id',"=",$user_id], |
|
|
['user_id',"=",$user_id], |
|
|
['receive_type',"=",$receive_type] |
|
|
['receive_type',"=",$receive_type] |
|
|
])->pluck('system_coupon_user_id'); |
|
|
])->pluck('system_coupon_user_id'); |
|
|
// $ids = array_merge($c_ids->toArray(), $cr_ids->toArray());
|
|
|
|
|
|
//
|
|
|
|
|
|
// //领过券的ID
|
|
|
|
|
|
// $ids = collect($ids)->unique();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//领过券的ID
|
|
|
$c_ids = $c_ids->toArray(); |
|
|
$c_ids = $c_ids->toArray(); |
|
|
$cr_ids = $cr_ids->toArray(); |
|
|
$cr_ids = $cr_ids->toArray(); |
|
|
// $ids = [];
|
|
|
|
|
|
// foreach ($c_ids as $key => $val){
|
|
|
|
|
|
// if(!in_array($val,$cr_ids)) {
|
|
|
|
|
|
// $ids[] = $val;
|
|
|
|
|
|
// }
|
|
|
|
|
|
// }
|
|
|
|
|
|
// print_r($ids);print_r($c_ids);print_r($cr_ids);
|
|
|
|
|
|
|
|
|
|
|
|
$c = Db::table('ims_system_coupon_user as u') |
|
|
$c = Db::table('ims_system_coupon_user as u') |
|
|
->where([ |
|
|
->where([ |
|
|
@ -63,7 +58,7 @@ class CouponController extends BaseController |
|
|
->whereNotIn('u.id',$cr_ids) |
|
|
->whereNotIn('u.id',$cr_ids) |
|
|
->select('u.*','type.one_receive_number') |
|
|
->select('u.*','type.one_receive_number') |
|
|
->orderBy('u.weigh','desc') |
|
|
->orderBy('u.weigh','desc') |
|
|
// ->orderByRaw('FIELD(u.id, '.implode(", " , $ids).')')
|
|
|
|
|
|
|
|
|
// ->orderByRaw('FIELD(u.id, '.implode(", " , $ids).')')
|
|
|
->limit(4) |
|
|
->limit(4) |
|
|
->get(); |
|
|
->get(); |
|
|
foreach ($c as $k => &$v){ |
|
|
foreach ($c as $k => &$v){ |
|
|
@ -77,7 +72,7 @@ class CouponController extends BaseController |
|
|
//统计用户
|
|
|
//统计用户
|
|
|
public function userCouponAccount() |
|
|
public function userCouponAccount() |
|
|
{ |
|
|
{ |
|
|
$userId = $this->request->input("user_id"); |
|
|
|
|
|
|
|
|
$userId = $this->request->input("user_id", 0); |
|
|
$nowTime = time(); |
|
|
$nowTime = time(); |
|
|
|
|
|
|
|
|
$num = Db::table('ims_system_coupon_user_receive as receive') |
|
|
$num = Db::table('ims_system_coupon_user_receive as receive') |
|
|
@ -99,14 +94,21 @@ class CouponController extends BaseController |
|
|
*/ |
|
|
*/ |
|
|
public function userReceiveCoupon() |
|
|
public function userReceiveCoupon() |
|
|
{ |
|
|
{ |
|
|
$userId = $this->request->input("user_id"); |
|
|
|
|
|
$receiveType = $this->request->input("receive_type"); |
|
|
|
|
|
$ids = $this->request->input("ids"); |
|
|
|
|
|
|
|
|
$userId = $this->request->input("user_id", 0); |
|
|
|
|
|
$receiveType = $this->request->input("receive_type", 0); |
|
|
|
|
|
$ids = $this->request->input("ids", ''); |
|
|
$ids = explode(',', $ids); |
|
|
$ids = explode(',', $ids); |
|
|
$now = time(); |
|
|
$now = time(); |
|
|
|
|
|
|
|
|
$success = []; |
|
|
$success = []; |
|
|
$fail = []; |
|
|
$fail = []; |
|
|
|
|
|
|
|
|
|
|
|
if ($this->empty($userId) || $this->empty($receiveType) || $this->empty($ids)) { |
|
|
|
|
|
return $this->success([ |
|
|
|
|
|
'success' => $success, |
|
|
|
|
|
'fail' => $fail, |
|
|
|
|
|
]); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
Db::transaction(function () use ($ids,$receiveType,$userId,&$success,&$fail,$now) { |
|
|
Db::transaction(function () use ($ids,$receiveType,$userId,&$success,&$fail,$now) { |
|
|
//读写锁,完全控制,性能底
|
|
|
//读写锁,完全控制,性能底
|
|
|
@ -159,6 +161,14 @@ class CouponController extends BaseController |
|
|
public function getUserReceiveCouponList() |
|
|
public function getUserReceiveCouponList() |
|
|
{ |
|
|
{ |
|
|
$userId = $this->request->input("user_id"); |
|
|
$userId = $this->request->input("user_id"); |
|
|
|
|
|
|
|
|
|
|
|
$not_expired = []; |
|
|
|
|
|
$expired = []; |
|
|
|
|
|
|
|
|
|
|
|
if ($this->empty($userId)) { |
|
|
|
|
|
return $this->success(['not_expired' => $not_expired, 'expired' => $expired]); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
$nowTime = time(); |
|
|
$nowTime = time(); |
|
|
|
|
|
|
|
|
$coupons = Db::table('ims_system_coupon_user_receive as receive') |
|
|
$coupons = Db::table('ims_system_coupon_user_receive as receive') |
|
|
@ -171,9 +181,6 @@ class CouponController extends BaseController |
|
|
->orderBy('u.weigh','desc') |
|
|
->orderBy('u.weigh','desc') |
|
|
->get(); |
|
|
->get(); |
|
|
|
|
|
|
|
|
$not_expired = []; |
|
|
|
|
|
$expired = []; |
|
|
|
|
|
|
|
|
|
|
|
foreach ($coupons as $key => $coupon) { |
|
|
foreach ($coupons as $key => $coupon) { |
|
|
if ($coupon->usable_end_time < $nowTime || $coupon->number_remain <= 0) { |
|
|
if ($coupon->usable_end_time < $nowTime || $coupon->number_remain <= 0) { |
|
|
$expired[] = $coupon; |
|
|
$expired[] = $coupon; |
|
|
@ -206,6 +213,16 @@ class CouponController extends BaseController |
|
|
$storetypeId = $this->request->input('storetype_id', 0); |
|
|
$storetypeId = $this->request->input('storetype_id', 0); |
|
|
$storetypeIds = explode(',', str_replace(',', ',', $storetypeId)); |
|
|
$storetypeIds = explode(',', str_replace(',', ',', $storetypeId)); |
|
|
|
|
|
|
|
|
|
|
|
$available = []; |
|
|
|
|
|
$notAvailable = []; |
|
|
|
|
|
|
|
|
|
|
|
if ($this->empty($orderAmount) || $this->empty($userId)) { |
|
|
|
|
|
return $this->success([ |
|
|
|
|
|
'available' => $available, |
|
|
|
|
|
'not_available' => array_values($notAvailable) |
|
|
|
|
|
]); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
// 获取用户优惠券
|
|
|
// 获取用户优惠券
|
|
|
$currentTime = time(); |
|
|
$currentTime = time(); |
|
|
|
|
|
|
|
|
@ -241,8 +258,6 @@ class CouponController extends BaseController |
|
|
$redis = $container->get(Redis::class); |
|
|
$redis = $container->get(Redis::class); |
|
|
$couponIds = $redis->sMembers('coupon_'.date('Ymd').'_used_'.$userId); |
|
|
$couponIds = $redis->sMembers('coupon_'.date('Ymd').'_used_'.$userId); |
|
|
|
|
|
|
|
|
$available = []; |
|
|
|
|
|
$notAvailable = []; |
|
|
|
|
|
foreach ($data as $key => &$item) { |
|
|
foreach ($data as $key => &$item) { |
|
|
if (in_array($item->id, $couponIds)) { |
|
|
if (in_array($item->id, $couponIds)) { |
|
|
$notAvailable[$item->id] = $item; |
|
|
$notAvailable[$item->id] = $item; |
|
|
|