Commit 72df3f8b by Vladislav

#20443 Загрузка и синхронизация изображений

1 parent 70cf0b8a
......@@ -109,7 +109,7 @@ class DictionaryCampaignsSyncByCampaign extends Command
WHERE dc.campaign_id is null AND c.manage=1
");
}
$this->info('dictionary_campaigns successful!');
//грузим изображения которых по какой то причне нет в целевых.
DB::insert("
INSERT INTO goal_ad_images(ad_image_id, token_id, created_at, updated_at)
......@@ -119,6 +119,7 @@ class DictionaryCampaignsSyncByCampaign extends Command
LEFT JOIN goal_ad_images gai on ai.id = gai.ad_image_id and t.id = gai.token_id
WHERE gai.id is null and gai.deleted_at is null
");
$this->info('goal_ad_images successful!');
//грузим наборы минус-фраз которых по какой то причне нет в целевых.
DB::insert("
......@@ -129,6 +130,7 @@ class DictionaryCampaignsSyncByCampaign extends Command
LEFT JOIN goal_negative_keyword_shared_sets gnkss on nkss.id = gnkss.negative_keyword_shared_set_id and t.id = gnkss.token_id
WHERE gnkss.id is null and nkss.deleted_at is null
");
$this->info('goal_negative_keyword_shared_sets successful!');
//грузим виртуальные визитки которых по какой то причне нет в целевых.
DB::insert("
......@@ -140,6 +142,7 @@ class DictionaryCampaignsSyncByCampaign extends Command
LEFT JOIN goal_v_cards gvc on vc.id = gvc.v_card_id AND gvc.dictionary_campaign_id = dc.id
WHERE gvc.v_card_id is null
");
$this->info('goal_v_cards successful!');
//грузим группы которых по какой то причне нет в целевых.
DB::insert("
......@@ -151,6 +154,7 @@ class DictionaryCampaignsSyncByCampaign extends Command
LEFT JOIN goal_ad_groups gag on a.id = gag.ad_group_id AND gag.dictionary_campaign_id=dc.id
WHERE gag.ad_group_id is null
");
$this->info('goal_ad_groups successful!');
//грузим связь наборов минус-фраз к группам которых по какой то причне нет в целевых.
DB::insert("
......@@ -166,6 +170,7 @@ class DictionaryCampaignsSyncByCampaign extends Command
LEFT JOIN goal_ad_group_goal_negative_keyword_shared_sets gaggnkss on gnkss.id = gaggnkss.goal_negative_keyword_shared_set_id and gag.id = gaggnkss.goal_ad_group_id
WHERE gaggnkss.goal_negative_keyword_shared_set_id is null
");
$this->info('goal_ad_group_goal_negative_keyword_shared_sets successful!');
//грузим ключевые фразы которых по какой то причне нет в целевых.
DB::insert("
......@@ -178,6 +183,7 @@ class DictionaryCampaignsSyncByCampaign extends Command
LEFT JOIN goal_keywords gk on k.id = gk.keyword_id AND gk.goal_ad_group_id=gag.id
WHERE gk.keyword_id is null AND k.deleted_at is null
");
$this->info('goal_keywords successful!');
//грузим расширения которых по какой то причне нет в целевых.
DB::insert("
......@@ -188,6 +194,7 @@ class DictionaryCampaignsSyncByCampaign extends Command
LEFT JOIN goal_sitelinks gs on s.id = gs.sitelink_id and t.id = gs.token_id
WHERE gs.sitelink_id is null AND gs.deleted_at is null
");
$this->info('goal_sitelinks successful!');
//грузим наборы быстрых ссылок которых по какой то причне нет в целевых.
DB::insert("
......@@ -198,6 +205,7 @@ class DictionaryCampaignsSyncByCampaign extends Command
LEFT JOIN goal_ad_extensions gae on ae.id = gae.ad_extension_id and t.id = gae.token_id
WHERE gae.ad_extension_id is null AND gae.deleted_at is null
");
$this->info('goal_ad_extensions successful!');
//грузим объявления которых по какой то причне нет в целевых.
DB::insert("
......@@ -217,16 +225,18 @@ class DictionaryCampaignsSyncByCampaign extends Command
and (ad.sitelink_external_id is null or (ad.sitelink_external_id is not null and s.id is not null))
and (ad.v_card_external_id is null or (ad.v_card_external_id is not null and vc.id is not null))
");
$this->info('goal_advertisements successful!');
//обновляем связи целевых объявлений.
DB::insert("
DB::update("
UPDATE goal_advertisements gad
INNER JOIN advertisements ad on ad.id = gad.advertisement_id
INNER JOIN ad_groups ag on ad.ad_group_id = ag.id
INNER JOIN goal_ad_groups gag on ag.id = gag.ad_group_id
INNER JOIN dictionaries d on gag.dictionary_campaign_id = d.id
INNER JOIN goal_ad_groups gag on ag.id = gag.ad_group_id and gad.dictionary_campaign_id = gag.dictionary_campaign_id
INNER JOIN dictionary_campaigns dc on gad.dictionary_campaign_id = dc.id
INNER JOIN dictionaries d on dc.dictionary_id = d.id
LEFT JOIN v_cards vc on ad.v_card_external_id = vc.external_id
LEFT JOIN goal_v_cards gvc on vc.id = gvc.v_card_id and gag.dictionary_campaign_id = gvc.dictionary_campaign_id
LEFT JOIN goal_v_cards gvc on vc.id = gvc.v_card_id and gad.dictionary_campaign_id = gvc.dictionary_campaign_id
LEFT JOIN sitelinks s on ad.sitelink_external_id = s.external_id
LEFT JOIN goal_sitelinks gs on s.id = gs.sitelink_id and gs.token_id = d.token_id
......@@ -255,6 +265,7 @@ class DictionaryCampaignsSyncByCampaign extends Command
)
)
");
$this->info('UPDATE goal_advertisements successful!');
//грузим связь объявлений к расширения которых по какой то причне нет в целевых.
DB::insert("
......@@ -270,9 +281,10 @@ class DictionaryCampaignsSyncByCampaign extends Command
LEFT JOIN goal_advertisement_goal_ad_extensions gagae on gae.id = gagae.goal_ad_extension_id and ga.id = gagae.goal_advertisement_id
WHERE gagae.goal_ad_extension_id is null
");
$this->info('goal_advertisement_goal_ad_extensions successful!');
//Удаляем лишнии связи объявлений к расширениям.
DB::insert("
DB::delete("
DELETE goal_advertisement_goal_ad_extensions
FROM goal_advertisement_goal_ad_extensions
INNER JOIN goal_advertisements ga on goal_advertisement_goal_ad_extensions.goal_advertisement_id = ga.id
......@@ -280,6 +292,7 @@ class DictionaryCampaignsSyncByCampaign extends Command
INNER JOIN advertisements a on ga.advertisement_id = a.id
LEFT JOIN advertisement_ad_extensions aae on a.id = aae.advertisement_id and gae.ad_extension_id = aae.ad_extension_id
WHERE aae.ad_extension_id is null");
$this->info('DELETE goal_advertisement_goal_ad_extensions successful!');
//грузим расширения которых по какой то причне нет в целевых.
DB::insert("
......@@ -290,6 +303,7 @@ class DictionaryCampaignsSyncByCampaign extends Command
LEFT JOIN goal_retargetinglists gt on r.id = gt.retargetinglist_id and t.id = gt.token_id
WHERE gt.retargetinglist_id is null AND gt.deleted_at is null
");
$this->info('goal_retargetinglists successful!');
//грузим условия ретаргетинга и подбора аудитории которых по какой то причне нет в целевых.
DB::insert("
......@@ -304,6 +318,7 @@ class DictionaryCampaignsSyncByCampaign extends Command
LEFT JOIN goal_bid_modifiers gbm on bm.id = gbm.bid_modifier_id and gbm.dictionary_campaign_id = dc.id
WHERE gbm.bid_modifier_id is null
");
$this->info('goal_bid_modifiers successful!');
DictionaryCampaign::needSynced()->update([
'synced_need' => null,
......
......@@ -42,7 +42,7 @@ class AdImage extends Model
public function getImageDataAttribute()
{
return Http::get($this->original_url);
return Http::get($this->original_url)->body();
}
public function goalAdImages()
......
......@@ -106,7 +106,7 @@ class AddAdImages extends DirectRequest
$this->setParams([
'AdImages' => $this->goalAdImages->map(function (GoalAdImage $goalAdImage) {
return [
'Name' => $goalAdImage->adImage->name,
'Name' => base64_encode($goalAdImage->adImage->imageData),
'ImageData' => $goalAdImage->adImage->imageData,
];
})->toArray(),
......
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class AddAdImagesDeletedAtColumn extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::table('ad_images', function (Blueprint $table) {
$table->softDeletes();
});
Schema::table('goal_ad_images', function (Blueprint $table) {
$table->softDeletes();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
//
}
}
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!