setAppKeyToken('NGU4ZTU0OGUtMGU2Yy00NjNmLTgwNWItZTVmYjQxODg5Yzhh') ->setUserKeyToken('NjQwYWRlYWEtODlmZS00ZDFhLThmZmMtN2E0ZTQwZWI2NmY5'); $this->apiInstance = new DefaultApi( new GuzzleHttp\Client(), $config ); } public function getPlayers() { $limit = 10; $getPlayersResult = $this->apiInstance->getPlayers('6bbd561f-4d8e-4d04-a6c4-dbef1bf99694', $limit); print_r($getPlayersResult->getPlayers()); } public function addPlayers() { $data=$this->request->post(); $user = User::getByUserId($data['user_id']); if ($user) { $user->group_id = $data['group_id']; //$user->token = $data['token']; $user->save(); }else{ User::create($data, true); } $this->success(); } function createNotification($one_push){ $template_dsc =$one_push['template_dsc']; $segment =$one_push['group_name']; $title =$one_push['template_name']; $type =$one_push['type']; $url =$one_push['para']; $content = new StringMap(); $content->setEn($template_dsc); $notification = new Notification(); $notification->setAppId('618fe580-bc97-4bf4-b2bb-5039f9dbbc82'); $notification->setContents($content); $notification->setIncludedSegments([$segment]); $notification->setIosBadgeType('Increase'); $notification->setIosBadgeCount(1); $notification->setIsIos(true); $notification->setContentAvailable(true); $data['push_para']=$url; $data['push_type']=$type; $data['title']=$title; $data['message_id']=$one_push['id']; $notification->setData($data); $notification->setMutableContent(true); $apns_alert['title']=$title; $notification->setApnsAlert($apns_alert); if($one_push['template_image']){ $request = Request::instance(); $domain=$request->domain(); $images['id'] = $domain.$one_push['template_image']; $notification->setIosAttachments($images); } return $notification; } public function send($one_push){ $notification = $this->createNotification($one_push); $result=array(); for($i=0;$i<=11;$i++){ $dt = new DateTime(); $minute = 1+$i ; $dt->modify("+$minute minute"); $notification->setSendAfter($dt); $val=$i; if($i==10){ $val='-'; } if($i==11){ $filters = [ // 可选,基于特定条件过滤用户 ['field' => 'tag', 'key' => 'SufixUid', 'relation' => 'not_exists'] ]; }else{ $filters = [ // 可选,基于特定条件过滤用户 ['field' => 'tag', 'key' => 'SufixUid', 'relation' => '=', 'value' => $val] ]; } $notification->setFilters($filters); $result[] = $this->apiInstance->createNotification($notification); } return $result; } public function sendMsg(){ $wheres['sendtime']=array('lt',time()); $wheres['status']=1; $one_push = Db::name('message')->where($wheres)->order('id')->find(); if (empty($one_push)) { echo '没有查到推送队列'; exit; } else { $where['id']=$one_push['id']; $data['status']=2; $data['uptime']=time(); Db::name('message')->where($where)->update($data); } $result =$this->send($one_push); print_r($result); } public function getMessage(){ $post=$this->request->post(); $user = User::getByUserId($post['user_id']); $config['page']=empty($post['page'])?1:$post['page']; $size=empty($post['size'])?10:$post['size']; $url = $_SERVER['HTTP_HOST']; $data=array(); if($user){ $wheres['status']=2; $list = Db::name('message')->where($wheres)->where("group_id=3 or group_id={$user->group_id}")->order('sendtime desc')->paginate($size,'',$config); if($list){ foreach ($list as $k=>$v){ $data[$k]['message_id']=$v['id']; $data[$k]['imgUrl']="https://".$url.$v['template_image']; $data[$k]['time']=date('Y-m-d H:i A',$v['sendtime']); $data[$k]['title']=$v['template_name']; $data[$k]['des']=$v['template_dsc']; $data[$k]['push_type']=$v['type']; $data[$k]['push_para']=$v['para']; $data[$k]['isReaded']=0; $where['message_id']=$v['id']; $where['user_id']=$post['user_id']; $read = Db::name('message_read')->where($where)->find(); if($read){ $data[$k]['isReaded']=1; } } } }else{ $data=null; } $this->success('',$data); } public function upRead(){ $post=$this->request->post(); if($post['type']==1){//单条阅读 unset($post['type']); $where['id']=$post['message_id']; $list =Db::name('message')->where($where)->find(); if(empty($list)){ $this->error('not exit!'); } $wheres['message_id']=$post['message_id']; $wheres['user_id']=$post['user_id']; $lists = Db::name('message_read')->where($wheres)->find(); if($lists){ $this->error(); }else{ $isPushedres=true; if($list['coupon']){ $isPushedres=false; $jobname = 'app\job\Sendcoupon'; $jobQueueName = "createSendCouponJob"; $jobData['user_id']=$post['user_id']; $jobData['coupon']=$list['coupon']; $jobData['url']='https://www.alipearlhair.com'; //$jobData['url']='https://www.boifit.com'; $jobData['message_id']=$post['message_id']; $isPushed = Queue::push($jobname , $jobData , $jobQueueName ); if ($isPushed !== false) { $isPushedres=true; } } if ($isPushedres) { $post['addtime']=time(); $re = Db::name('message_read')->insertGetId($post); if($re){ $msg=''; if($list['coupon']){ $msg = 'Coupons will be in your account within 5mins!'; } $this->success($msg); }else{ $this->error(); } } else { $this->error(); } } }else{ $user = User::getByUserId($post['user_id']); $wheres['m.status']=2; $user_id=$post['user_id']; $list =Db::name('message')->alias('m') ->field('m.id,mr.message_id') ->join('message_read mr',"m.id =mr.message_id and mr.user_id='{$user_id}'",'left') ->where($wheres) ->where("group_id=3 or group_id={$user->group_id}") ->select(); $res=array(); if($list){ foreach ($list as $k => $v){ if(empty($v['message_id'])){ $arr['message_id'] = $v['id']; $arr['user_id'] = $post['user_id']; $arr['addtime']=time(); $res[] = $arr; } } $num = 100;//每次导入条数 $limit = ceil(count($res)/$num); for($i=1;$i<=$limit;$i++){ $offset=($i-1)*$num; $data=array_slice($res,$offset,$num); Db::name('message_read')->insertAll($data); } } $this->success(); } } public function getUnRead(){ $post=$this->request->post(); $user = User::getByUserId($post['user_id']); $count1=0; $count2=0; if($user){ $where['status']=2; $count1 =Db::name('message') ->where($where) ->where("group_id=3 or group_id={$user->group_id}") ->count(); if($count1){ unset($where); $where['user_id']=$post['user_id']; $count2 = Db('message_read')->where($where)->count(); } } $count=$count1-$count2; $data['unread']=$count; $this->success('',$data); } }