Browse Source

公众号是否关注

master
weigang 5 years ago
parent
commit
ea5249ccf3
  1. 20
      app/Controller/v3/HomeController.php
  2. 12
      app/Model/v3/ImsMcFansTag.php
  3. 2
      app/Service/v3/Implementations/UserInfoService.php

20
app/Controller/v3/HomeController.php

@ -11,6 +11,7 @@ use App\Constants\v3\Tabs;
use App\Constants\v3\UserType;
use App\Controller\BaseController;
use App\Model\v3\FinancialRecord;
use App\Model\v3\ImsMcFansTag;
use App\Model\v3\Market;
use App\Model\v3\Store;
use App\Request\v3\StoreIndexRequest;
@ -215,15 +216,26 @@ class HomeController extends BaseController
$config = config('wechat.official');
$app = Factory::officialAccount(['app_id' => $config['app_id'], 'secret' => $config['app_secret']]);
$app['guzzle_handler'] = CoroutineHandler::class;
$fansInfo = $app->user->get($data['user']['openid']);
$redis = ApplicationContext::getContainer()->get(Redis::class);
if ($fansInfo['subscribe'] == 1) {
$subscribeInfo = $redis->hGet('official:subscribe_info', 'subscribed');
} else {
$fansInfo = [];
$fansTag = ImsMcFansTag::query()->where(['unionid' => $data['user']['unionid']])->first();
if (empty($fansTag)) { // 无绑定时无关注,单需要处理老we7那边更新unionid的事宜
$subscribeInfo = $redis->hGet('official:subscribe_info', 'not_subscribed');
} else { // 有记录时去微信看有没有关注
$userOfficialOpenid = $fansTag->openid ?? '';
$fansInfo = $app->user->get($userOfficialOpenid);
if (isset($fansInfo['subscribe']) && $fansInfo['subscribe'] == 1) {
$subscribeInfo = $redis->hGet('official:subscribe_info', 'subscribed');
} else {
$subscribeInfo = $redis->hGet('official:subscribe_info', 'not_subscribed');
}
}
$subscribeInfo = !empty($subscribeInfo) ? json_decode($subscribeInfo, true) : [];
$data['subscribe_info'] = array_merge($fansInfo, $subscribeInfo);
}

12
app/Model/v3/ImsMcFansTag.php

@ -0,0 +1,12 @@
<?php
namespace App\Model\v3;
use App\Model\Model;
class ImsMcFansTag extends Model
{
protected $table = 'ims_mc_fans_tag';
}

2
app/Service/v3/Implementations/UserInfoService.php

@ -84,7 +84,7 @@ class UserInfoService implements UserInfoServiceInterface
public function detail($userId)
{
return User::query()
->select(['id', 'nick_name', 'avatar', 'openid', 'total_score', 'real_name'])
->select(['id', 'nick_name', 'avatar', 'openid', 'unionid', 'total_score', 'real_name'])
->where(['status' => 1, 'id' => $userId])
->first()->toArray();
}

Loading…
Cancel
Save