<?php
/**
* 推送服务
*/
namespace app\lucky\push\service;
use app\common\JPush;
use app\lucky\follow\service\FollowService;
use app\lucky\push\model\UserPushConfigModel;
use app\lucky\subscribe\service\SubscribeService;
use app\sports\match\service\FollowMatchService;
use app\sports\match\service\SportsApiService;
class PushService
{
public function push()
{
try {
$push = JPush::getInstance()->push(['1517badf006e81e'], '我是标题', '我是内容', 'GameDetails:1909991');
var_dump($push);
} catch (\Exception $e) {
var_dump($e->getMessage());
}
}
/**
* 推送设置
*/
public function pushConfig($userId, $sys, $ext)
{
$userPushConfigModel = new UserPushConfigModel();
$result = $userPushConfigModel->updateConfig($userId, $sys, ['ext' => json_encode($ext), 'update_time' => time()]);
if ($result) {
return ['code' => 0, 'msg' => '添加成功'];
}
return ['code' => -1, 'msg' => '添加失败'];
}
/**
* 获取配置
*/
public function getPushConfig($userId, $sys)
{
$userPushConfigModel = new UserPushConfigModel();
$result = $userPushConfigModel->getConfigByUserId($userId, $sys);
$data = isset($result['ext']) ? $result['ext'] : '';
$data = (array)json_decode($data, true);
return ['code' => 0, 'msg' => '获取成功', 'data' => $data];
}
/**
* 发布资讯推送
*/
public function blogPush($authorId, $title, $text, $blogId)
{
//获取作者的粉丝列表ID
$followService = new FollowService();
$followListId = $followService->getAuthorFollowList($authorId, 'sports');
//获取用户ID的配置
$pushModel = new UserPushConfigModel();
$pushConfig = $pushModel->getConfigByUserIdArr($followListId, 'sports');
$identifyArr = [];
foreach ($pushConfig as $value) {
$ext = (array)json_decode($value['ext'], true);
if (in_array('information', $ext)) {
$identifyArr[] = $value['identify'];
}
}
if (!empty($identifyArr)) {
try {
JPush::getInstance()->push($identifyArr, $title, $text, 'InfoDetails', $blogId);
} catch (\Exception $exception) {
\Log::error($exception->getMessage());
}
}
}
/**
* 登录关联极光ID
*/
public function loginLinkPush($userId, $identify, $sys = '343')
{
$userPushConfigModel = new UserPushConfigModel();
$config = $userPushConfigModel->getConfigByUserId($userId, 'sports');
if (empty($config)) {
$data = [
'user_id' => $userId,
'identify' => $identify,
'update_time' => time(),
'sys' => $sys,
'ext' => json_encode(['start' => true, 'end' => true, 'score' => true, 'news' => true, 'information' => true])
];
$result = $userPushConfigModel->addConfig($data);
if (empty($result)) {
return ['code' => -1, 'msg' => '添加极光推送失败'];
}
return ['code' => 0, 'msg' => '添加极光推送成功'];
}
$data = [
'identify' => $identify,
'update_time' => time(),
];
$result = $userPushConfigModel->updateConfig($userId, $sys, $data);
if (empty($result)) {
return ['code' => -1, 'msg' => '更新极光推送失败'];
}
return ['code' => 0, 'msg' => '更新极光推送成功'];
}
/**
* 退出登录关联极光ID
*/
public function logoutLinkPush($userId, $sys = '343')
{
$userPushConfigModel = new UserPushConfigModel();
$data = [
'identify' => '',
'update_time' => time(),
];
$result = $userPushConfigModel->updateConfig($userId, $sys, $data);
if (empty($result)) {
return ['code' => -1, 'msg' => '退出登录,更新极光推送失败'];
}
return ['code' => 0, 'msg' => '退出登录,更新极光推送成功'];
}
}
评论