コード例 #1
0
ファイル: PushModule.php プロジェクト: nicklos17/appserver
 /**
  * [推送消息:通知主号给宝贝绑定]
  * @param  [type] $babyId [description]
  * @param  [string] $uname [用户名字]
  * @return [type]         [description]
  */
 public function pushBinddevMsg($babyId, $uname)
 {
     //获取宝贝的信息
     $babyInfo = $this->baby->getBabyInfoById($babyId);
     //获取宝贝的主号信息
     $hostInfo = $this->family->getHostByBabyId($babyId);
     //根据用户要求的推送时段进行推送
     $disturb = (string) date('H', $_SERVER['REQUEST_TIME']);
     //拿到用户推送相关的信息
     $tokenInfo = $this->deviceTagsModel->getUserInfoByUid($hostInfo['u_id'], '3', $disturb, $disturb);
     if (empty($tokenInfo)) {
         return self::SUCCESS;
     }
     $content = sprintf($this->di['sysconfig']['bindDevForHost'], $uname, $babyInfo['baby_nick']);
     if ($tokenInfo['type'] == '1') {
         $fpForIOS = $this->IosPush->readyToSendForIOS($this->di['sysconfig']['pemUrl'], $this->di['sysconfig']['passphrase'], $this->di['sysconfig']['sslUrl']);
         if (!$fpForIOS) {
             return self::FAILED_IOS_PUSH;
         }
         //如果deviceken存在,一条一条将消息推送到apns
         if ($this->IosPush->sendSingleForIOS($content, $tokenInfo['deviceToken'], $fpForIOS, $this->di['sysconfig']['pushKey'], '', '', $_SERVER['REQUEST_TIME'], '')) {
             Common::writeLog(dirname(dirname(dirname(__FILE__))) . '/public/logs/askbind.log', '通知发送成功:对方id:' . $hostInfo['u_id']);
             return self::SUCCESS;
         } else {
             Common::writeLog(dirname(dirname(dirname(__FILE__))) . '/public/logs/askbind.log', '通知发送失败:对方id:' . $hostInfo['u_id']);
             return self::FAILED_IOS_PUSH;
         }
     } elseif ($tokenInfo['type'] == '3') {
         $pushMsg = array('type' => '', 'content' => $content);
         $resObj = (array) $this->AndroidPush->sendSingleNoticeForJPush($this->di, $content, $tokenInfo['deviceToken'], $pushMsg);
         foreach ($resObj as $val) {
             $res[] = $val;
         }
         if ($res[0] === 0) {
             Common::writeLog(dirname(dirname(dirname(__FILE__))) . '/public/logs/askbind.log', '通知发送成功:对方id:' . $hostInfo['u_id']);
             return self::SUCCESS;
         } else {
             Common::writeLog(dirname(dirname(dirname(__FILE__))) . '/public/logs/askbind.log', '通知发送失败:对方id:' . $hostInfo['u_id'] . ';message:');
             return self::FAILED_ANDROID_PUSH;
         }
     }
 }
コード例 #2
0
ファイル: OauthModule.php プロジェクト: nicklos17/appserver
 /**
  * [解绑QQ和设备的关系]
  * @param  [type] $uid   [description]
  * @param  [type] $qqUid [description]
  * @return [type]        [description]
  */
 public function _unbindDevAndQQ($uid, $qqUid)
 {
     try {
         $family = $this->initModel('\\Appserver\\Mdu\\Models\\FamilyModel');
         $devices = $this->initModel('\\Appserver\\Mdu\\Models\\DevicesModel');
         $babys = $family->getAuthBaby($uid);
         if (!empty($babys)) {
             foreach ($babys as $v) {
                 $bids[] = $v['baby_id'];
             }
             $uuid = $devices->getUUidByBidUid(implode(',', $bids), $uid);
             foreach ($uuid as $v) {
                 $uuids[] = $v['dev_uuid'];
             }
             if (!empty($uuids)) {
                 $snInfos = $devices->getDevInfoByUuids(implode(',', $uuids));
             }
         }
         if (isset($snInfos) && !empty($snInfos)) {
             foreach ($snInfos as $v) {
                 $sns[] = $v['sn'];
             }
             $bindDevices = new QQBindRpcService($this->di['sysconfig']['thriftConf']['ip'], $this->di['sysconfig']['thriftConf']['qqPort']);
             //解绑设备和QQ
             $bindDevices->QQUnbindDevices($sns, $qqUid, $this->redis->get('accessToken:' . $uid));
         }
     } catch (\Exception $e) {
         Common::writeLog(dirname(dirname(dirname(__FILE__))) . '/public/logs/binddevs.log', json_encode(array('action' => 'bind', 'sn' => $sns, 'qqUid' => $qqUid, 'reason' => $e->getMessage())));
     }
 }