SyncAdCost.php 1.6 KB
<?php

namespace App\Console\Commands\Inquiry;

use App\Helper\Arr;
use App\Models\Inquiry\ReInquiryCost;
use App\Utils\HttpUtils;
use GuzzleHttp\Exception\GuzzleException;
use Illuminate\Console\Command;

/**
 * Class SyncAdCost
 * @package App\Console\Commands\Inquiry
 */
class SyncAdCost extends Command
{
    /**
     * The name and signature of the console command.
     *
     * @var string
     */
    protected $signature = 'sync_ad_cost';

    /**
     * The console command description.
     *
     * @var string
     */
    protected $description = '同步广告费用';

    /**
     * Create a new command instance.
     *
     * @return void
     */
    public function __construct()
    {
        parent::__construct();
    }

    /**
     * @author zbj
     * @date 2024/12/4
     */
    public function handle()
    {
        $list = $this->getAdCost();
        foreach ($list as $item) {
            ReInquiryCost::saveData($item['ad_id'], $item['spend'], $item['lead'], $item['single_cost'], $item['start_date'], $item['end_date']);
        }
    }

    /**
     * 获取远程询盘信息
     * @return array
     * @throws \GuzzleHttp\Exception\GuzzleException
     */
    public function getAdCost()
    {
        try {
            $res = HttpUtils::get('https://fob.ai.cc/api/fb_ad_cost', []);
            $res = Arr::s2a($res);
        } catch (\Exception | GuzzleException $e) {
            $this->output($e->getMessage());
            return [];
        }
        return $res['data']?? [];
    }


    public function output($message)
    {
        echo date('Y-m-d H:i:s') . ' | ' . $message . PHP_EOL;
    }
}