403Webshell
Server IP : 54.233.248.239  /  Your IP : 172.28.20.13
Web Server : Apache
System : Linux ip-172-28-29-189 6.5.0-1014-aws #14~22.04.1-Ubuntu SMP Thu Feb 15 15:27:06 UTC 2024 x86_64
User : www-data ( 33)
PHP Version : 7.2.34-43+ubuntu22.04.1+deb.sury.org+1
Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : ON
Directory :  /var/www/html/vinumday2_0/app/Console/Commands/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /var/www/html/vinumday2_0/app/Console/Commands/SincronizaMailchimpCampaigns.php
<?php

namespace App\Console\Commands;

use DB;
use Illuminate\Console\Command;
use Illuminate\Support\Facades\Log;
use App\Modules\MailchimpCampaign\Models\MailchimpCampaign;
use App\Modules\Oferta\Models\Oferta;
use App\Services\MailchimpService;

class SincronizaMailchimpCampaigns extends Command
{
    /**
     * The name and signature of the console command.
     *
     * @var string
     */
    protected $signature = 'sincroniza_mailchimp_campaigns {since_send_time?}';

    /**
     * The console command description.
     *
     * @var string
     */
    protected $description = 'Sincronização Campanhas Mailchimp';

    protected $options;

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

    /**
     * Execute the console command.
     *
     * @return mixed
     */
    public function handle()
    {
        $this->options = $this->arguments();

        $since_send_time = date('Y-m-d');

        if(!empty($this->options['since_send_time'])){
            $since_send_time = $this->options['since_send_time'];
        }else{
            $MailchimpCampaign = MailchimpCampaign::select('send_time', 'web_id')->orderby('send_time', 'DESC')->first();
            if($MailchimpCampaign){
                $since_send_time = date('Y-m-d', strtotime($MailchimpCampaign->send_time));
            }
        }

        $this->info(date('d/m/Y H:i:s') . " - START");

        $campaigns     = MailchimpCampaign::select('campaign_id', 'web_id')->get();
        $listCampaigns = [];
        foreach ($campaigns as $campaign) {
            $listCampaigns[$campaign->campaign_id] = $campaign->web_id;
        }

        $page          = 1;
        $listCampaigns = $this->sync($since_send_time, $listCampaigns, $page);

        $this->info(date('d/m/Y H:i:s') . " - DONE");

    }

    public function sync($since_send_time, $listCampaigns, $page){

        Log::info("sincroniza_mailchimp_campaigns => Page: {$page} / since_send_time: {$since_send_time}");
        $Campanha = MailchimpService::getCadastro('campaigns?since_send_time=' . $since_send_time . '&sort_field=send_time&sort_dir=ASC', NULL, FALSE);
        $Campanha = json_decode($Campanha);

        $send_time = false;
        if($page > 5){
            return false;
        }

        if(isset($Campanha->campaigns)){

            foreach ($Campanha->campaigns as $campaign) {
                
                if(!isset($listCampaigns[$campaign->id])){

                    $send_time = date('Y-m-d H:i:s', strtotime($campaign->send_time));
                    $title     = $campaign->settings->title;
                    $tipo      = MailchimpService::getTipoCampanha($title);

                    DB::table('mailchimp_campaign')->insert([
                        [
                            'campaign_id' => $campaign->id,
                            'web_id'      => $campaign->web_id,
                            'title'       => $title,
                            'send_time'   => $send_time,
                            'tipo'        => $tipo
                        ]
                    ]);

                    $listCampaigns[$campaign->id] = $campaign->web_id;

                    if($tipo != 'C'){
                        $dataOferta = MailchimpService::getDataOferta(date('Y-m-d', strtotime($send_time)), $tipo);
                        $Oferta     = Oferta::where('tipo', $tipo)->whereDate('data', $dataOferta)->first();
                        if($Oferta && empty($Oferta->campaign_id)){
                            $sql = "UPDATE oferta SET campaign_id = '{$campaign->id}' WHERE id = {$Oferta->id}";
                            DB::update($sql);
                        }
                    }

                }

            }

        }

        if($send_time){
            $send_time = date('Y-m-d', strtotime($send_time));
            $page      = $page + 1;
            $this->sync($send_time, $listCampaigns, $page);
        }

        return $listCampaigns;

    }
}

Youez - 2016 - github.com/yon3zu
LinuXploit