文件
xionggeshop/addons/shopro/job/Wechat.php

74 行
2.6 KiB
PHP

此文件含有模棱两可的 Unicode 字符

此文件含有可能会与其他字符混淆的 Unicode 字符。 如果您是想特意这样的,可以安全地忽略该警告。 使用 Escape 按钮显示他们。

<?php
namespace addons\shopro\job;
use think\queue\Job;
/**
* 微信任务
*/
class Wechat extends BaseJob
{
/**
* 异步分批创建新的队列任务
*/
public function createQueueByOpenIdsArray(Job $job, $openIdsArray)
{
try {
$count = count($openIdsArray);
if ($count > 0) {
$page = ceil($count / 100);
for ($i = 0; $i < $page; $i++) {
\think\Queue::push('\addons\shopro\job\Wechat@saveSubscribeUserInfo', array_slice($openIdsArray, $i * 100, 100), 'shopro');
}
}
// 删除 job
$job->delete();
} catch (\Exception $e) {
// 队列执行失败
\think\Log::error('queue-' . get_class() . '-createQueueByOpenIdsArray' . ':执行失败,错误信息:' . $e->getMessage());
}
}
/**
* 保存更新关注用户
*/
public function saveSubscribeUserInfo(Job $job, $openIdsArray)
{
try {
$wechat = new \addons\shopro\library\Wechat('wxOfficialAccount');
$result = $wechat->getSubscribeUserInfoByOpenId($openIdsArray);
if (isset($result['user_info_list'])) {
$userInfoList = $result['user_info_list'];
$insertData = [];
foreach ($userInfoList as $u) {
$wechatFans = \app\admin\model\shopro\wechat\Fans::get(['openid' => $u['openid']]);
if ($wechatFans) {
$wechatFans->save([
'nickname' => $u['nickname'],
'headimgurl' => $u['headimgurl'],
'sex' => $u['sex'],
'country' => $u['country'],
'province' => $u['province'],
'city' => $u['city'],
'subscribe' => 1,
'subscribe_time' => $u['subscribe_time']
]);
}else{
$insertData[] = $u;
}
}
if (count($insertData) > 0) {
$wechatFans = new \app\admin\model\shopro\wechat\Fans;
$wechatFans->allowField(true)->saveAll($insertData);
}
}
$job->delete();
} catch (\Exception $e) {
// 队列执行失败
\think\Log::error('queue-' . get_class() . '-saveSubscribeUserInfo' . ':执行失败,错误信息2:' . $e->getMessage() . '|' . json_encode($insertData, JSON_UNESCAPED_UNICODE));
}
}
}