周总批发商场
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
dianshang/crmeb/app/jobs/notice/SyncMessageJob.php

75 lines
2.4 KiB

<?php
namespace app\jobs\notice;
use app\services\message\SystemNotificationServices;
use crmeb\basic\BaseJobs;
use crmeb\services\app\MiniProgramService;
use crmeb\services\app\WechatService;
use crmeb\traits\QueueTrait;
use think\facade\Log;
class SyncMessageJob extends BaseJobs
{
use QueueTrait;
/**
* 同步小程序订阅消息
* @param $template
* @return bool
*/
public function syncSubscribe($key, $data)
{
$works = MiniProgramService::getSubscribeTemplateKeyWords($key);
$kid = [];
if ($works) {
$works = array_combine(array_column($works, 'name'), $works);
$content = is_array($data['routine_content']) ? $data['routine_content'] : explode("\n", $data['routine_content']);
foreach ($content as $c) {
$name = explode('{{', $c)[0] ?? '';
if ($name && isset($works[$name])) {
$kid[] = $works[$name]['kid'];
}
}
}
if ($kid) {
try {
$tempid = MiniProgramService::addSubscribeTemplate($key, $kid, $data['name']);
} catch (\Throwable $e) {
Log::error('同步订阅消息失败:' . $e->getMessage());
return true;
}
app()->make(SystemNotificationServices::class)->update(['routine_tempkey' => $key], ['routine_tempid' => $tempid, 'routine_kid' => json_encode($kid)]);
return true;
}
return true;
}
/**
* 同步公众号模版消息
* @param $key
* @param $content
* @return bool
* @author: 吴汐
* @email: 442384644@qq.com
* @date: 2023/8/16
*/
public function syncWechat($key, $content)
{
$content = is_array($content) ? $content : explode("\n", $content);
$name = [];
foreach ($content as $c) {
$name[] = explode('{{', $c)[0] ?? '';
}
try {
$res = WechatService::addTemplateId($key, $name);
} catch (\Throwable $e) {
Log::error('同步模版消息失败:' . $e->getMessage());
return true;
}
if (!$res->errcode && $res->template_id) {
app()->make(SystemNotificationServices::class)->update(['wechat_tempkey' => $key], ['wechat_tempid' => $res->template_id]);
}
return true;
}
}