| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 | <?phpnamespace App\Console\Commands\Callback;use App\Modules\Advertiser\Models\AdvertiserPromotionConfigTime;use App\Modules\Advertiser\Models\TiktokAdvertiser;use App\Modules\Advertiser\Services\AdvertiserService;use App\Modules\Advertiser\Services\TimeConfigService;use Illuminate\Console\Command;use Illuminate\Support\Facades\DB;class JuliangAccountRateConfigRefresh extends Command{    /**     * The name and signature of the console command.     *     * @var string     */    protected $signature = 'Callback:JuliangAccountRateConfigRefresh';    /**     * The console command description.     *     * @var string     */    protected $description = '巨量账户级回传比例自动刷新';    /**     * Execute the console command.     */    public function handle(): void    {        $this->start();    }    public function start(){        $list = DB::table('juliang_account_promotion_config_time')            ->where('is_enable',1)->orderBy('id')->get();        foreach ($list as  $item) {            $is_exec = $this->timeThan($item->config_time);            if (!$is_exec || $item->next_exec_time != date("Y-m-d")) {                continue;            }            $this->setReportType($item);        }    }    /**     * 判断任务时间点和 当前的时间点比对     * @param  [type] $str [description]     * @return [type]      [description]     */    private function timeThan($str)    {        $config_time = strtotime(date('Y-m-d').' '.$str);        if (time() >= $config_time) {            return true;        }        return false;    }    public  function setReportType($item){        $now = date('Y-m-d H:i:s');        $res = DB::table('juliang_account_promotion_config_time')->where('id',$item->id)            ->update(['latest_exec_time'=> date('Y-m-d H:i:s',time()),                'next_exec_time'=>date("Y-m-d",strtotime('+1 day')),                'updated_at'  => $now]);        if ($res) {            DB::table('juliang_account_rate_config_log')                ->where(['company_uid' => $item->company_uid, 'account_id' => $item->account_id, 'is_enabled' => 1])                ->update(['is_enabled' => 0, 'updated_at' => $now]);            DB::table('juliang_account_promotion_protect_record')                ->where('optimizer_uid', $item->company_uid)                ->where('advertiser_id', $item->account_id)                ->where('is_enabled', 1)                ->update(['is_enabled' => 0, 'updated_at' => $now]);            DB::table('juliang_account_rate_config_log')                ->insert([                    'company_uid' => $item->company_uid,                    'account_id' => $item->account_id,                    'config_per' => $item->config_per,                    'created_at' => $now,                    'updated_at' => $now,                ]);        }    }}
 |