6
0
Fork 0
jiqu-library-server/app/Services/Push/MerchantUnipushService.php

74 lines
2.1 KiB
PHP

<?php
namespace App\Services\Push;
use App\Models\MerchantMessage;
class MerchantUnipushService extends UniPushService
{
protected $appId;
protected $appKey;
protected $appSecret;
protected $masterSecret;
public function __construct()
{
$this->appId = app_settings('unipush.merchant_app_id', '');
$this->appKey = app_settings('unipush.merchant_app_key', '');
$this->appSecret = app_settings('unipush.merchant_app_secret', '');
$this->masterSecret = app_settings('unipush.merchant_master_secret', '');
parent::__construct($this->appId, $this->appKey, $this->appSecret, $this->masterSecret);
}
public function push(string $sn, MerchantMessage $message)
{
$res = false;
if ($message->user_id > 0) {
$res = $this->pushMessage($sn, $message);
} else {
$res = $this->pushAllMessage($sn, $message);
}
return $res;
}
/**
* 推送公告消息
*
* @param [type] $message
* @return void
*/
public function pushAllMessage(string $sn, MerchantMessage $message)
{
return $this->pushAll($sn, $message->title, $message->content, [
'jump_type' => $message->jump_type == 0 ? 1 : $message->jump_type,
'jump_link' => $message->type == 1 || empty($message->jump_link) ? '/pages/news/index' : $message->jump_link,
]);
}
/**
* 推送单条消息
*
* @param Message $message
* @return void
*/
public function pushMessage(string $sn, MerchantMessage $message)
{
//如果不是指定消息,直接退出;
if (is_null($message->user)) {
return false;
}
//如果拿不到m_cid直接退出
if (!$message->user->cid?->m_cid) {
return false;
}
return $this->pushPayload($sn, $message->user->cid->m_cid, $message->title, $message->content, [
'jump_type' => $message->jump_type == 0 ? 1 : $message->jump_type,
'jump_link' => $message->type == 1 || empty($message->jump_link) ? '/pages/news/index' : $message->jump_link,
]);
}
}