diff --git a/app/Controller/BaseController.php b/app/Controller/BaseController.php index f374e0f..40d2813 100644 --- a/app/Controller/BaseController.php +++ b/app/Controller/BaseController.php @@ -35,4 +35,23 @@ class BaseController extends AbstractController { return $this->result(0,$data, $message); } + + /** + * 请求参数判空 + * null&'null' / false&&'false' / '' / 'undefined' / 'unknown' + * @param mixed $var 参数 + */ + public function empty($var) + { + return ! ( + isset($var) + && $var + && !empty($var) + && !is_null($var) + && $var != 'undefined' + && $var != 'unknown' + && $var != 'null' + && $var != 'false' + ); + } } diff --git a/app/Controller/CouponController.php b/app/Controller/CouponController.php index bbdd384..e8b26e2 100644 --- a/app/Controller/CouponController.php +++ b/app/Controller/CouponController.php @@ -27,8 +27,12 @@ class CouponController extends BaseController */ 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'); $nowTime = time(); @@ -36,19 +40,10 @@ class CouponController extends BaseController ['user_id',"=",$user_id], ['receive_type',"=",$receive_type] ])->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(); $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') ->where([ @@ -63,7 +58,7 @@ class CouponController extends BaseController ->whereNotIn('u.id',$cr_ids) ->select('u.*','type.one_receive_number') ->orderBy('u.weigh','desc') -// ->orderByRaw('FIELD(u.id, '.implode(", " , $ids).')') + // ->orderByRaw('FIELD(u.id, '.implode(", " , $ids).')') ->limit(4) ->get(); foreach ($c as $k => &$v){ @@ -77,7 +72,7 @@ class CouponController extends BaseController //统计用户 public function userCouponAccount() { - $userId = $this->request->input("user_id"); + $userId = $this->request->input("user_id", 0); $nowTime = time(); $num = Db::table('ims_system_coupon_user_receive as receive') @@ -99,14 +94,21 @@ class CouponController extends BaseController */ 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); $now = time(); + $success = []; $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) { //读写锁,完全控制,性能底 @@ -159,6 +161,14 @@ class CouponController extends BaseController public function getUserReceiveCouponList() { $userId = $this->request->input("user_id"); + + $not_expired = []; + $expired = []; + + if ($this->empty($userId)) { + return $this->success(['not_expired' => $not_expired, 'expired' => $expired]); + } + $nowTime = time(); $coupons = Db::table('ims_system_coupon_user_receive as receive') @@ -171,9 +181,6 @@ class CouponController extends BaseController ->orderBy('u.weigh','desc') ->get(); - $not_expired = []; - $expired = []; - foreach ($coupons as $key => $coupon) { if ($coupon->usable_end_time < $nowTime || $coupon->number_remain <= 0) { $expired[] = $coupon; @@ -206,6 +213,16 @@ class CouponController extends BaseController $storetypeId = $this->request->input('storetype_id', 0); $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(); @@ -241,8 +258,6 @@ class CouponController extends BaseController $redis = $container->get(Redis::class); $couponIds = $redis->sMembers('coupon_'.date('Ymd').'_used_'.$userId); - $available = []; - $notAvailable = []; foreach ($data as $key => &$item) { if (in_array($item->id, $couponIds)) { $notAvailable[$item->id] = $item;