public function run($args)
 {
     $userModel = new UserModel();
     $pushMsgModel = new PushMsgModel();
     $url = Yii::app()->params['baiduPushUrl'];
     $apikey = Yii::app()->params['baiduPushApiKey'];
     $secret_key = Yii::app()->params['baiduPushSecretKey'];
     //此处替换为应用的secret key
     $data = array();
     $timestamp = time();
     //var_dump($users);exit;
     $leaguePushMsgModel = new LeaguePushMsgModel();
     //找到需要进行消息推送的球队
     $pushData = $leaguePushMsgModel->findPush(0, 1);
     //		var_dump($pushData);exit;
     $pushTeams = array();
     if (isset($pushData[0]->teams)) {
         $pushTeams = $pushData[0]->teams;
     }
     $content = '更新了赛程';
     $method = 'POST';
     $aps = array("alert" => "{$content}", "sound" => "1", "badge" => 1);
     $mess = array("title" => "更新了赛程", "description" => $content, "aps" => $aps);
     if (!empty($pushTeams)) {
         foreach ($pushTeams as $team) {
             $arrContent = array('method' => 'push_msg', 'apikey' => $apikey, 'push_type' => 2, 'tag' => $team, 'device_type' => 4, 'message_type' => 1, 'deploy_status' => 1, 'messages' => json_encode($mess), 'msg_keys' => '1', 'timestamp' => $timestamp, 'expires' => intval($timestamp) + 600);
             $sign = $this->genSign($secret_key, $method, $url, $arrContent);
             $arrContent['sign'] = $sign;
             //var_dump($arrContent);exit;
             $query = http_build_query($arrContent);
             //找到联赛中的球队
             $users = $userModel->findRowsByRelation("footballer", "Team", $team);
             if (!empty($users)) {
                 $saveBatchArr = array();
                 foreach ($users as $user) {
                     if (isset($user->username) && !empty($user->username)) {
                         $extra = array("belongId" => $user->username, "title" => "联赛赛程", "type" => 2, "time" => time(), "targetId" => $user->objectId, "subtype" => 19);
                         $saveArr = array('belongUsername' => $user->username, 'isRead' => 0, 'status' => 0, 'msgType' => 0, 'extra' => json_encode($extra), 'content' => $content);
                         array_push($saveBatchArr, $saveArr);
                         //记录球员接收的推送消息
                         //$result = $pushMsgModel->addPushMsg($saveArr);
                     }
                 }
                 $result = $pushMsgModel->saveBatch($saveBatchArr);
             }
             //var_dump($result);exit;
             //	echo $url.'?'.$query;exit;
             $res = CommonFunction::sendMobileMsg($url . '?' . $query, $data);
             //				$res = Yii::app()->CURL->run($url.'?'.$query,FALSE,$data);
         }
         var_dump($res);
         exit;
     }
 }
 /**
  * @desc 推送消息到应用
  */
 public static function pushAppMsg($uid, $pushMsg)
 {
     //暂时不用这个推送
     return;
     $device = new InstallationModel();
     $msg = $device->findByUid($uid);
     if (isset($msg[0]) && !empty($msg[0])) {
         $deviceMsg = $msg[0];
         $push = new PushMsgModel();
         if (isset($deviceMsg->deviceToken) && isset($deviceMsg->deviceType) && $deviceMsg->deviceType == 'ios') {
             $push->createIosPush($deviceMsg->deviceToken, $pushMsg);
         } elseif (isset($deviceMsg->installationId) && isset($deviceMsg->deviceType) && $deviceMsg->deviceType == 'android') {
             $push->createAndroidPush($deviceMsg->installationId, $pushMsg);
         }
     }
 }
 public function actionPushMsg()
 {
     $device = new InstallationModel();
     $msg = $device->findByUid('18666486846');
     //		var_dump($msg);
     $deviceMsg = $msg[0];
     $push = new PushMsgModel();
     if (isset($deviceMsg->deviceType) && $deviceMsg->deviceType == 'ios') {
         $push->createIosPush($deviceMsg->deviceToken);
     }
 }
 /**
  * @desc 百度云推送
  * @param $users 用户的对象数组
  * @param $title	推送的标题
  * @param $msg	推送的内容
  * @param $type	详细看文档
  * @param $subType	详细看文档
  * @param $msg_type 推送的类型:0:消息(透传)1:通知
  * @param $options
  * @return bool|mixed
  */
 public function push($users, $title, $msg, $type, $subType, $optional, $msg_type = 1)
 {
     $pushMsgModel = new PushMsgModel();
     if (!is_array($users)) {
         $users = array($users);
     }
     if (count($users) > 0) {
         $masterId = CommonFunction::getUserId();
         $content = $msg;
         $saveBatchArr = array();
         //保存推送消息到PushMsg表
         foreach ($users as $user) {
             if (isset($user->username) && !empty($user->username)) {
                 $extra = array("belongId" => $user->username, "title" => $title, "type" => $type, "time" => time(), "targetId" => $this->getTargetId($subType, $optional), "subtype" => $subType);
                 $saveArr = array('belongUsername' => $user->username, 'isRead' => 0, 'status' => 0, 'msgType' => 0, 'extra' => json_encode($extra), 'content' => $content);
                 array_push($saveBatchArr, $saveArr);
             }
         }
         try {
             $results = $pushMsgModel->saveBatch($saveBatchArr);
         } catch (Exception $e) {
             return $e->getMessage();
         }
         //发送百度推送
         for ($i = 0; $i < count($users); $i++) {
             $user = $users[$i];
             $result = $results[$i];
             if (!property_exists($user, 'pushUserId')) {
                 continue;
             }
             if ($user->pushUserId == "") {
                 continue;
             }
             $push_type = 1;
             //推送单播消息
             $optional[Channel::USER_ID] = $user->pushUserId;
             //如果推送单播消息,需要指定user
             $message = array();
             if ($user->deviceType == "ios") {
                 //指定发到ios设备
                 $optional[Channel::DEVICE_TYPE] = 4;
                 //apns证书状态
                 $optional[Channel::DEPLOY_STATUS] = Yii::app()->params['apnDeployStatus'];
                 $message['aps']['alert'] = $msg;
                 $message['aps']['sound'] = "";
                 $message['aps']['badge'] = 0;
                 $message['objectId'] = $result->success->objectId;
                 $message['belongId'] = $user->username;
                 $message['targetId'] = $this->getTargetId($subType, $optional);
                 $message['title'] = $title;
                 $message['time'] = time();
                 $message['type'] = $type;
                 $message['subtype'] = $subType;
                 $message['flag'] = "notice";
             } else {
                 //android
                 $optional[Channel::DEVICE_TYPE] = 3;
                 $message['title'] = $title;
                 $message['description'] = $msg;
                 $message['custom_content']['objectId'] = $result->success->objectId;
                 $message['custom_content']['belongId'] = $user->username;
                 $message['custom_content']['targetId'] = $this->getTargetId($subType, $optional);
                 $message['custom_content']['title'] = $title;
                 $message['custom_content']['time'] = time();
                 $message['custom_content']['type'] = $type;
                 $message['custom_content']['subtype'] = $subType;
                 $message['custom_content']['flag'] = "notice";
             }
             $optional[Channel::MESSAGE_TYPE] = $msg_type;
             $message_key = md5(json_encode($message));
             $ret = $this->channel->pushMessage($push_type, json_encode($message), $message_key, $optional);
             //			    echo "send pushId:".$user->pushUserId."<br/>";
             //检查返回值
             if (false === $ret) {
                 echo 'baiduPush_WRONG, ' . __FUNCTION__ . ' ERROR!!!!<br/>';
                 echo 'baiduPush_ERROR NUMBER: ' . $this->channel->errno() . '<br/>';
                 echo 'baiduPush_ERROR MESSAGE: ' . $this->channel->errmsg() . '<br/>';
                 echo 'baiduPush_REQUEST ID: ' . $this->channel->getRequestId() . '<br/>';
                 echo '<br/>';
             }
         }
     }
     //		Helper::flash('error', "你无权限编辑联赛信息(请确认你至少有一个联赛的管理权限)!", '/site/');
 }