from('{{%ybwm_window_coupon}}') ->where('storeId=:storeId AND deleteAt=0 AND display=1 AND startTime<=:startTime AND endTime>:endTime AND location=:location',[':location'=>$location,':startTime'=>$now,':endTime'=>$now,':storeId'=>$storeId]) ->one(); if(!$window){ return []; } $bill=(new \yii\db\Query()) ->from('{{%ybwm_bill}}') ->where('storeId=:storeId AND userId=:userId',[':storeId'=>$storeId,':userId'=>$userId]) ->one(); if($window['people']==2 AND $bill){ return []; } if($window['people']==3 AND !$bill){ return []; } $window=(new \yii\db\Query()) ->from('{{%ybwm_window_coupon}}') ->where('storeId=:storeId AND deleteAt=0 AND display=1 AND startTime<=:startTime AND endTime>:endTime AND location=:location',[':location'=>$location,':startTime'=>$now,':endTime'=>$now,':storeId'=>$storeId]) ->one(); $receive=(new \yii\db\Query()) ->from('{{%ybwm_window_coupon_receive}}') ->where('windowId=:windowId AND userId=:userId',[':windowId'=>$window['id'],':userId'=>$userId]) ->one(); if($receive){ return []; } $list=(new \yii\db\Query()) ->select('id,name,timeType,useEndTime,isNextDay,day,isFull,fullMoney,type,money,discount') ->from('{{%ybwm_coupon}}') ->where(['in','id',json_decode($window['coupon'],true)]) ->all(); for($i=0;$iselect('uniacid') ->from('{{%ybwm_store}}')->where('id=:id',[':id'=>$storeId])->one(); $storeStr='"'.$storeId.'"'; $list= (new \yii\db\Query()) ->from('{{%ybwm_coupon}}') ->where("display=1 AND uniacid=:uniacid AND deleteAt=0 AND ( (storeType=1 AND storeId=:storeId) or storeType=2 or (storeType=3 AND storeArr like '%".$storeStr."%' ) ) AND startTime<=:startTime AND endTime>=:endTime",[':uniacid'=>$store['uniacid'],':startTime'=>$now,':endTime'=>$now,':storeId'=>$storeId]); if($type==1){ $list->andWhere(['like','useType',1]); } if($type==2){ $list->andWhere(['like','useType',3]); } if($type==3){ $list->andWhere(['like','useType',3]); } $userCoupon=(new \yii\db\Query()) ->select('couponId') ->from('{{%ybwm_user_coupon}}') ->where('(state=:state or useEndTime<:time) AND userId=:userId',[':time'=>$now,':state'=>2,':userId'=>$userId]) ->all(); $userCouponId = array_column($userCoupon, 'couponId')?:[]; $list=$list->andWhere(['not in','id',$userCouponId])->all(); for($i=0;$ifrom('{{%ybwm_member}}') ->where(['id'=>$userId]) ->one(); $user = (new \yii\db\Query()) ->from('{{%ybwm_member_bind}}') ->where(['userId'=>$userId,'storeId'=>$storeId]) ->one(); $newOrder = (new \yii\db\Query()) ->from('{{%ybwm_bill}}') ->where(['userId'=>$userId]) ->andWhere(['in','origin',[1]]) ->one();//新用户 $issueCoupons = (new \yii\db\Query()) ->from('{{%ybwm_issue_coupons}}') ->where('uniacid=:uniacid AND deleteAt=0 AND display=1 AND startTime<:time AND endTime>:time',[':uniacid'=>$uniacid,':time'=>$now]) ->all(); if(!$issueCoupons){ return []; } for($i=0;$ifrom('{{%ybwm_grant_coupon_receive}}') ->where(['grantId'=>$issueCoupons[$i]['id'],'userId'=>$userId,'activityType'=>1]) ->one(); } if ($issueCoupons[$i]['numType'] == 2) { //每月一次 $receive = (new \yii\db\Query()) ->from('{{%ybwm_grant_coupon_receive}}') ->where('grantId=:grantId AND activityType=1 AND userId=:userId AND createdAt>:startTime AND createdAt<=:endTime',[':startTime'=>$monthArr['start'],'endTime'=>$monthArr['end'],'grantId'=>$issueCoupons['id'],'userId'=>$userId]) ->one(); } if ($issueCoupons[$i]['numType'] == 3) { //每周一次 $receive = (new \yii\db\Query()) ->from('{{%ybwm_grant_coupon_receive}}') ->where('grantId=:grantId AND userId=:userId AND activityType=1 AND createdAt>:startTime AND createdAt<=:endTime',[':startTime'=>$weekArr['start'],'endTime'=>$weekArr['end'],'grantId'=>$issueCoupons['id'],'userId'=>$userId]) ->one(); } if (!$receive) { $data=array('activityType'=>1,'userId' => $userId, 'grantId' => $issueCoupons[$i]['id'], 'createdAt' => time(), 'uniacid' => $uniacid); Yii::$app->db->createCommand()->insert('{{%ybwm_grant_coupon_receive}}', $data)->execute(); Member::receiveCoupon(json_decode($issueCoupons[$i]['coupon'],true), $userId, 6); // $list=(new \yii\db\Query()) // ->select('id,name,timeType,useEndTime,isNextDay,day,isFull,fullMoney,type,money,discount') // ->from('{{%ybwm_coupon}}') // ->where(['in','id',json_decode($issueCoupons[$i]['coupon'],true)]) // ->all(); // for($i=0;$ifrom('{{%ybwm_roll_bag}}') ->where('storeId=:storeId AND deleteAt=0 AND display=1',[':storeId'=>$storeId])->all(); if($res){ for($i=0;$i