74 lines
2.1 KiB
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,
|
|
]);
|
|
}
|
|
}
|