1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 |
- <?php
- namespace App\Console\Commands;
- use App\Log;
- use App\Models\Account;
- use App\Services\HttpService;
- use App\Services\ZDService;
- use Illuminate\Console\Command;
- class ZDWxAccount extends Command
- {
- protected $signature = 'ZDWxAccount';
- protected $description = '掌读授权账号信息获取';
- protected $page = 1;
- protected $perPage = 100;
- public function __construct()
- {
- parent::__construct();
- }
- public function handle()
- {
- \DB::connection()->disableQueryLog();
- $this->getAccountData();
- }
- public function getAccountData()
- {
- do {
- $timestamps = time();
- $params = [
- 'vipid' => ZDService::VIP_ID,
- 'timestamp' => $timestamps,
- 'page' => $this->page
- ];
- $params['sign'] = ZDService::sign($timestamps);
- $requestUri = ZDService::API_BASE_URL . ZDService::CHANNEL_LIST . '?' . http_build_query($params);
- # 获取列表
- $response = HttpService::httpGet($requestUri);
- if($response === false)
- Log::logError('掌读公众账号数据获取失败' . $requestUri, $params, 'ZDAccountData');
- $responseData = json_decode($response, true);
- $pageCount = isset($responseData['data']['pageCount']) ? $responseData['data']['pageCount'] : 0;
- $this->info('共有数据'.$pageCount.'页');
- $total = 0;
- if($pageCount > 0) {
- $data = isset($responseData['data']['list']) ? $responseData['data']['list'] : [];
- $platformId = ZDService::PLATFORM_ID;
- $total = count($data);
- foreach ($data as $item) {
- $insertData = [
- 'platform_id' => $platformId,
- 'channel_id' => $item['channelid'],
- 'site_domain' => null,
- 'username' => null,
- 'name' => $item['nickname'],
- 'app_id' => $item['wxappid'],
- 'raw_id' => $item['raw_id'],
- 'nickname' => $item['nickname'],
- 'platform_created_at' => date('Y-m-d H:i:s', $item['create_time'])
- ];
- # 创建或更新
- Account::updateOrCreate(
- ['platform_id'=>$platformId, 'name'=>$item['nickname']], $insertData
- );
- }
- $this->page++;
- } else {
- Log::logError('掌读账号信息获取失败', (array)$responseData, 'ZDAccountData');
- }
- $this->info('本次共同步账号'.$total.'个');
- } while($pageCount >= $this->page && $pageCount);
- }
- }
|