<?php namespace app\event; use app\service\BpsAdAccountService; use app\service\GoogleAdsAdService; use app\service\GoogleOAuthService; use Google\ApiCore\ApiException; use GuzzleHttp\Client; use GuzzleHttp\Exception\GuzzleException; use support\Db; use Webman\RedisQueue\Redis; use support\Response; use DI\Annotation\Inject; //use QL\QueryList; class GoogleAdsAds { /** * @Inject * @var GoogleOAuthService */ private $googleOAuthService; /** * @Inject * @var BpsAdAccountService */ private $bpsAdAccountService; const event = 'googleads:ads:event'; const queue = 'googleads:ads:queue'; public function syncAds($options = []) { $queue = self::queue; // $customers = $this->googleOAuthService->getGoogleAdCustomers($options); $customers = $this->bpsAdAccountService->getGoogleAdAccounts($options); foreach ($customers as $customer) { if ($customer['login_customer_id'] > 0) { Redis::send($queue, $customer, rand(1, 10)); } } return self::event . ' send queue ok'; } /** * get groups * @throws ApiException */ public function getAds($customer) { $googleAdsAdService = new GoogleAdsAdService($customer['account_id']); if ($customer['login_customer_id'] > 0) { $resourceName = $googleAdsAdService->runListAds($customer['account_id'], $customer); } // return $this->successResponse(['ads_list' => $resourceName]); } // 可以加入一些公共方法 protected function successResponse($data): Response { return Json([ 'code' => 0, 'msg' => 'ok', 'data' => $data, ]); } protected function errorResponse($code, $message, $data = []): Response { return Json([ 'code' => $code, 'msg' => $message ?: 'error', 'data' => $data ]); } }