/** * [推送消息:通知主号给宝贝绑定] * @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; } } }
/** * [解绑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()))); } }