PC-202304251453\Administrator 5 месяцев назад
Родитель
Сommit
b4f579cb79
2 измененных файлов с 25 добавлено и 5 удалено
  1. 14 5
      app/command/CostGdt.php
  2. 11 0
      app/v1/logic/tool/advert/GdtCostHourLogic.php

+ 14 - 5
app/command/CostGdt.php

@@ -17,11 +17,13 @@ class CostGdt extends Command
     /**
      * 自定义脚本示例
      * @return void
-     * 用法 php webman cost:gdt 2025-07-30,2025-07-31 54970254,60853999
      */
     protected function configure()
     {
+        // 用法示例 php webman cost:gdt date api_id advertiser_ids
+        // php webman cost:gdt 2025-07-30,2025-07-31 0 54970254,60853999
         $this->addArgument('date', InputArgument::OPTIONAL, '日期范围');
+        $this->addArgument('api_id', InputArgument::OPTIONAL, '需要拉取的API配置ID');
         $this->addArgument('advertiser_ids', InputArgument::OPTIONAL, '需要拉取的广告账户');
     }
 
@@ -33,7 +35,8 @@ class CostGdt extends Command
     protected function execute(InputInterface $input, OutputInterface $output): int
     {
         $date = $input->getArgument('date');
-        $advertiser_ids = $input->getArgument('advertiser_ids');
+        $apiId = (int)$input->getArgument('api_id');
+        $advertiserIds = $input->getArgument('advertiser_ids');
 
         $params = [];
 
@@ -41,13 +44,19 @@ class CostGdt extends Command
             $params['date'] = explode(',', $date);
         }
 
-        if($advertiser_ids){
-            $params['advertiser_ids'] = explode(',', $advertiser_ids);
+        if($apiId){
+            $params['api_id'] = $apiId;
         }
 
+        if($advertiserIds){
+            $params['advertiser_ids'] = explode(',', $advertiserIds);
+        }
+
+        $output->writeln("\ngdt cost sta:" . json_encode($params, JSON_UNESCAPED_UNICODE));
+
         $res = (new GdtCostHourLogic)->run($params);
 
-        $output->writeln('gdt cost:' . $res);
+        $output->writeln("\ngdt cost end:" . $res);
 
         return self::SUCCESS;
     }

+ 11 - 0
app/v1/logic/tool/advert/GdtCostHourLogic.php

@@ -17,6 +17,7 @@ class GdtCostHourLogic
     protected array $advertiserIds=[];
 
     protected array $siteMap=[];
+    private int $apiId=0;
 
     public function run($params=[])
     {
@@ -38,6 +39,11 @@ class GdtCostHourLogic
             $this->advertiserIds = $params['advertiser_ids'];
         }
 
+        // 重跑用,传int
+        if(!empty($params['api_id'])){
+            $this->apiId = $params['api_id'];
+        }
+
         for ($date = $sDate; $date <= $eDate; $date = date('Y-m-d', strtotime($date . '+1 day'))){
             $this->date = $date;
             try {
@@ -234,6 +240,11 @@ class GdtCostHourLogic
         $where = [
             "status" => 1
         ];
+
+        if($this->apiId){
+            $where['id'] = $this->apiId;
+        }
+
         return Db::connect('db_advert')->table($table)->where($where)->column("access_token", "id");
     }
 }