Commit ed83aacf by Vladislav

Оптимизация изменения удаления

1 parent b94659bc
...@@ -69,11 +69,13 @@ class BidModifiersAdd extends Command ...@@ -69,11 +69,13 @@ class BidModifiersAdd extends Command
->groupBy([ ->groupBy([
'goal_bid_modifiers.dictionary_campaign_external_id', 'goal_bid_modifiers.dictionary_campaign_external_id',
'goal_bid_modifiers.goal_ad_group_external_id', 'goal_bid_modifiers.goal_ad_group_external_id',
'dictionaries.region_id',
'dictionaries.token_id',
'bid_modifiers.mobile_adjustment', 'bid_modifiers.mobile_adjustment',
'bid_modifiers.desktop_adjustment', 'bid_modifiers.desktop_adjustment',
'bid_modifiers.video_adjustment', 'bid_modifiers.video_adjustment',
'dictionaries.region_id', DB::raw('bid_modifiers.demographics_adjustment IS NOT NULL'),
'dictionaries.token_id', DB::raw('bid_modifiers.retargeting_adjustment IS NOT NULL'),
]) ])
->select([ ->select([
DB::raw('json_arrayagg(goal_bid_modifiers.id) as ids'), DB::raw('json_arrayagg(goal_bid_modifiers.id) as ids'),
......
<?php
namespace App\Service;
class DirectResponseHelper
{
static function getExternalIdsChunkByResult($data)
{
return array_chunk(array_column(array_filter($data, function ($result) {
return isset($result['Id']);
}, ARRAY_FILTER_USE_BOTH), 'Id'), 1000);
}
}
...@@ -5,7 +5,9 @@ namespace App\Service\Requests\Direct; ...@@ -5,7 +5,9 @@ namespace App\Service\Requests\Direct;
use App\Jobs\ProcessCallLimitedAPI; use App\Jobs\ProcessCallLimitedAPI;
use App\Models\Pivots\GoalAdGroup; use App\Models\Pivots\GoalAdGroup;
use App\Service\Contract\APIRequest; use App\Service\Contract\APIRequest;
use App\Service\DirectResponseHelper;
use App\Service\Requests\DirectRequest; use App\Service\Requests\DirectRequest;
use Carbon\Carbon;
use Illuminate\Support\Facades\Log; use Illuminate\Support\Facades\Log;
class DeleteAdGroups extends DirectRequest class DeleteAdGroups extends DirectRequest
...@@ -37,9 +39,16 @@ class DeleteAdGroups extends DirectRequest ...@@ -37,9 +39,16 @@ class DeleteAdGroups extends DirectRequest
return; return;
} }
foreach (DirectResponseHelper::getExternalIdsChunkByResult($response['result']['DeleteResults']) as $external_ids) {
GoalAdGroup::whereIn('external_id', $external_ids)
->delete();
}
foreach ($response['result']['DeleteResults'] as $key => $delete_result) { foreach ($response['result']['DeleteResults'] as $key => $delete_result) {
if (!isset($delete_result['Id'])) { if (isset($delete_result['Id'])) {
continue;
}
$external_id = $this->getParams()['SelectionCriteria']['Ids'][$key]; $external_id = $this->getParams()['SelectionCriteria']['Ids'][$key];
...@@ -68,13 +77,6 @@ class DeleteAdGroups extends DirectRequest ...@@ -68,13 +77,6 @@ class DeleteAdGroups extends DirectRequest
'reserve_delete_at' => null, 'reserve_delete_at' => null,
]); ]);
continue;
}
$external_id = (string)$delete_result['Id'];
GoalAdGroup::where('external_id', $external_id)->delete();
} }
} }
......
...@@ -6,6 +6,7 @@ use App\Jobs\ProcessCallLimitedAPI; ...@@ -6,6 +6,7 @@ use App\Jobs\ProcessCallLimitedAPI;
use App\Models\Advertisement; use App\Models\Advertisement;
use App\Models\Pivots\GoalAdvertisement; use App\Models\Pivots\GoalAdvertisement;
use App\Service\Contract\APIRequest; use App\Service\Contract\APIRequest;
use App\Service\DirectResponseHelper;
use App\Service\Requests\DirectRequest; use App\Service\Requests\DirectRequest;
use Illuminate\Support\Facades\Log; use Illuminate\Support\Facades\Log;
...@@ -38,11 +39,23 @@ class DeleteAds extends DirectRequest ...@@ -38,11 +39,23 @@ class DeleteAds extends DirectRequest
return; return;
} }
foreach (DirectResponseHelper::getExternalIdsChunkByResult($response['result']['DeleteResults']) as $external_ids) {
if ($this->getToken()->isMain()) {
Advertisement::whereIn('external_id', $external_ids)
->delete();
} else {
GoalAdvertisement::whereIn('external_id', $external_ids)
->delete();
}
}
foreach ($response['result']['DeleteResults'] as $key => $delete_result) { foreach ($response['result']['DeleteResults'] as $key => $delete_result) {
$external_id = $this->getParams()['SelectionCriteria']['Ids'][$key]; if (isset($delete_result['Id'])) {
continue;
}
if (!isset($delete_result['Id'])) { $external_id = $this->getParams()['SelectionCriteria']['Ids'][$key];
if ( if (
isset($delete_result['Errors'][0]['Code']) isset($delete_result['Errors'][0]['Code'])
...@@ -77,11 +90,11 @@ class DeleteAds extends DirectRequest ...@@ -77,11 +90,11 @@ class DeleteAds extends DirectRequest
continue; continue;
} }
} } else {
Log::debug("DeleteAds, empty Id, token_id {$this->getToken()->getKey()}"); Log::debug("DeleteAds, empty Id, token_id {$this->getToken()->getKey()}");
Log::debug($delete_result); Log::debug($delete_result);
Log::debug($external_id); Log::debug($external_id);
}
if ($this->getToken()->isMain()) { if ($this->getToken()->isMain()) {
Advertisement::whereExternalId($external_id) Advertisement::whereExternalId($external_id)
...@@ -95,20 +108,6 @@ class DeleteAds extends DirectRequest ...@@ -95,20 +108,6 @@ class DeleteAds extends DirectRequest
]); ]);
} }
continue;
}
$external_id = (string)$delete_result['Id'];
if ($this->getToken()->isMain()) {
Advertisement::where('external_id', $external_id)
->delete();
} else {
GoalAdvertisement::where('external_id', $external_id)
->delete();
}
} }
} }
......
...@@ -6,6 +6,7 @@ use App\Jobs\ProcessCallLimitedAPI; ...@@ -6,6 +6,7 @@ use App\Jobs\ProcessCallLimitedAPI;
use App\Models\AudienceTarget; use App\Models\AudienceTarget;
use App\Models\Pivots\GoalAudienceTarget; use App\Models\Pivots\GoalAudienceTarget;
use App\Service\Contract\APIRequest; use App\Service\Contract\APIRequest;
use App\Service\DirectResponseHelper;
use App\Service\Requests\DirectRequest; use App\Service\Requests\DirectRequest;
use Illuminate\Support\Facades\Log; use Illuminate\Support\Facades\Log;
...@@ -38,13 +39,26 @@ class DeleteAudienceTarget extends DirectRequest ...@@ -38,13 +39,26 @@ class DeleteAudienceTarget extends DirectRequest
return; return;
} }
foreach (DirectResponseHelper::getExternalIdsChunkByResult($response['result']['DeleteResults']) as $external_ids) {
if ($this->getToken()->isMain()) {
AudienceTarget::whereIn('external_id', $external_ids)
->delete();
} else {
GoalAudienceTarget::whereIn('external_id', $external_ids)
->delete();
}
}
foreach ($response['result']['DeleteResults'] as $key => $delete_result) { foreach ($response['result']['DeleteResults'] as $key => $delete_result) {
if (!isset($delete_result['Id'])) { if (isset($delete_result['Id'])) {
continue;
}
$external_id = $this->getParams()['SelectionCriteria']['Ids'][$key]; $external_id = $this->getParams()['SelectionCriteria']['Ids'][$key];
if (isset($delete_result['Errors']) && count($delete_result['Errors'])) { if (isset($delete_result['Errors']) && count($delete_result['Errors'])) {
if ($this->getToken()->isMain()) { if ($this->getToken()->isMain()) {
$model = AudienceTarget::whereExternalId($external_id)->first(); $model = AudienceTarget::whereExternalId($external_id)->first();
} else { } else {
...@@ -79,20 +93,6 @@ class DeleteAudienceTarget extends DirectRequest ...@@ -79,20 +93,6 @@ class DeleteAudienceTarget extends DirectRequest
]); ]);
} }
continue;
}
$external_id = (string)$delete_result['Id'];
if ($this->getToken()->isMain()) {
AudienceTarget::whereExternalId($external_id)
->delete();
} else {
GoalAudienceTarget::whereExternalId($external_id)
->delete();
}
} }
} }
......
...@@ -6,6 +6,7 @@ use App\Jobs\ProcessCallLimitedAPI; ...@@ -6,6 +6,7 @@ use App\Jobs\ProcessCallLimitedAPI;
use App\Models\Pivots\GoalVCard; use App\Models\Pivots\GoalVCard;
use App\Models\VCard; use App\Models\VCard;
use App\Service\Contract\APIRequest; use App\Service\Contract\APIRequest;
use App\Service\DirectResponseHelper;
use App\Service\Requests\DirectRequest; use App\Service\Requests\DirectRequest;
use Illuminate\Support\Facades\Log; use Illuminate\Support\Facades\Log;
...@@ -38,11 +39,23 @@ class DeleteVCards extends DirectRequest ...@@ -38,11 +39,23 @@ class DeleteVCards extends DirectRequest
return; return;
} }
foreach (DirectResponseHelper::getExternalIdsChunkByResult($response['result']['DeleteResults']) as $external_ids) {
if ($this->getToken()->isMain()) {
VCard::whereIn('external_id', $external_ids)
->delete();
} else {
GoalVCard::whereIn('external_id', $external_ids)
->delete();
}
}
foreach ($response['result']['DeleteResults'] as $key => $delete_result) { foreach ($response['result']['DeleteResults'] as $key => $delete_result) {
$external_id = $this->getParams()['SelectionCriteria']['Ids'][$key]; $external_id = $this->getParams()['SelectionCriteria']['Ids'][$key];
if (!isset($delete_result['Id'])) { if (isset($delete_result['Id'])) {
continue;
}
if ( if (
isset($delete_result['Errors'][0]['Code']) isset($delete_result['Errors'][0]['Code'])
...@@ -92,20 +105,6 @@ class DeleteVCards extends DirectRequest ...@@ -92,20 +105,6 @@ class DeleteVCards extends DirectRequest
]); ]);
} }
continue;
}
$external_id = (string)$delete_result['Id'];
if ($this->getToken()->isMain()) {
VCard::whereExternalId($external_id)
->delete();
} else {
GoalVCard::whereExternalId($external_id)
->delete();
}
} }
} }
......
...@@ -5,7 +5,9 @@ namespace App\Service\Requests\Direct; ...@@ -5,7 +5,9 @@ namespace App\Service\Requests\Direct;
use App\Jobs\ProcessCallLimitedAPI; use App\Jobs\ProcessCallLimitedAPI;
use App\Models\Pivots\GoalBidModifier; use App\Models\Pivots\GoalBidModifier;
use App\Service\Contract\APIRequest; use App\Service\Contract\APIRequest;
use App\Service\DirectResponseHelper;
use App\Service\Requests\DirectRequest; use App\Service\Requests\DirectRequest;
use Carbon\Carbon;
use Illuminate\Support\Facades\Log; use Illuminate\Support\Facades\Log;
class SetBidModifiers extends DirectRequest class SetBidModifiers extends DirectRequest
...@@ -37,16 +39,29 @@ class SetBidModifiers extends DirectRequest ...@@ -37,16 +39,29 @@ class SetBidModifiers extends DirectRequest
return; return;
} }
foreach (DirectResponseHelper::getExternalIdsChunkByResult($response['result']['SetResults']) as $external_ids) {
GoalBidModifier::whereIn('external_id', $external_ids)
->update([
'updated_need' => null,
'reserve_update_at' => null,
'updated_at' => Carbon::now(),
]);
}
foreach ($response['result']['SetResults'] as $key => $set_result) { foreach ($response['result']['SetResults'] as $key => $set_result) {
if (!isset($set_result['Id'])) { if (isset($set_result['Id'])) {
continue;
}
$data = $this->getParams()['BidModifiers'][$key]; $data = $this->getParams()['BidModifiers'][$key];
$external_id = $data['Id']; $external_id = $data['Id'];
if (isset($set_result['Errors'][0]['Message']) && $set_result['Errors'][0]['Message'] === 'Object not found') { if (isset($set_result['Errors'][0]['Message']) && $set_result['Errors'][0]['Message'] === 'Object not found') {
GoalBidModifier::whereExternalId($external_id)->delete(); GoalBidModifier::whereExternalId($external_id)->delete();
} elseif (isset($set_result['Errors']) && count($set_result['Errors'])) { } elseif (isset($set_result['Errors']) && count($set_result['Errors'])) {
$model = GoalBidModifier::whereExternalId($external_id)->first(); $model = GoalBidModifier::whereExternalId($external_id)->first();
...@@ -70,16 +85,6 @@ class SetBidModifiers extends DirectRequest ...@@ -70,16 +85,6 @@ class SetBidModifiers extends DirectRequest
'reserve_update_at' => null, 'reserve_update_at' => null,
]); ]);
continue;
}
$external_id = (string)$set_result['Id'];
GoalBidModifier::where('external_id', $external_id)
->update([
'updated_need' => null,
'reserve_update_at' => null,
]);
} }
} }
......
...@@ -6,6 +6,7 @@ use App\Jobs\ProcessCallLimitedAPI; ...@@ -6,6 +6,7 @@ use App\Jobs\ProcessCallLimitedAPI;
use App\Models\Pivots\GoalAdGroup; use App\Models\Pivots\GoalAdGroup;
use App\Models\Variable; use App\Models\Variable;
use App\Service\Contract\APIRequest; use App\Service\Contract\APIRequest;
use App\Service\DirectResponseHelper;
use App\Service\Requests\DirectRequest; use App\Service\Requests\DirectRequest;
use App\Service\StrReplaceByVariables; use App\Service\StrReplaceByVariables;
use Carbon\Carbon; use Carbon\Carbon;
...@@ -40,9 +41,20 @@ class UpdateAdGroups extends DirectRequest ...@@ -40,9 +41,20 @@ class UpdateAdGroups extends DirectRequest
return; return;
} }
foreach (DirectResponseHelper::getExternalIdsChunkByResult($response['result']['UpdateResults']) as $external_ids) {
GoalAdGroup::whereIn('external_id', $external_ids)
->update([
'updated_need' => null,
'reserve_update_at' => null,
'updated_at' => Carbon::now(),
]);
}
foreach ($response['result']['UpdateResults'] as $key => $update_result) { foreach ($response['result']['UpdateResults'] as $key => $update_result) {
if (!isset($update_result['Id'])) { if (isset($update_result['Id'])) {
continue;
}
$data = $this->getParams()['AdGroups'][$key]; $data = $this->getParams()['AdGroups'][$key];
...@@ -70,17 +82,6 @@ class UpdateAdGroups extends DirectRequest ...@@ -70,17 +82,6 @@ class UpdateAdGroups extends DirectRequest
'reserve_update_at' => null, 'reserve_update_at' => null,
]); ]);
continue;
}
$external_id = (string)$update_result['Id'];
GoalAdGroup::where('external_id', $external_id)
->update([
'updated_need' => null,
'reserve_update_at' => null,
]);
} }
$this->getToken()->update([ $this->getToken()->update([
......
...@@ -7,6 +7,7 @@ use App\Models\Advertisement; ...@@ -7,6 +7,7 @@ use App\Models\Advertisement;
use App\Models\Pivots\GoalAdvertisement; use App\Models\Pivots\GoalAdvertisement;
use App\Models\Variable; use App\Models\Variable;
use App\Service\Contract\APIRequest; use App\Service\Contract\APIRequest;
use App\Service\DirectResponseHelper;
use App\Service\Requests\DirectRequest; use App\Service\Requests\DirectRequest;
use App\Service\StrReplaceByVariables; use App\Service\StrReplaceByVariables;
use Carbon\Carbon; use Carbon\Carbon;
...@@ -41,9 +42,20 @@ class UpdateAds extends DirectRequest ...@@ -41,9 +42,20 @@ class UpdateAds extends DirectRequest
return; return;
} }
foreach (DirectResponseHelper::getExternalIdsChunkByResult($response['result']['UpdateResults']) as $external_ids) {
GoalAdvertisement::whereIn('external_id', $external_ids)
->update([
'updated_need' => null,
'reserve_update_at' => null,
'updated_at' => Carbon::now(),
]);
}
foreach ($response['result']['UpdateResults'] as $key => $update_result) { foreach ($response['result']['UpdateResults'] as $key => $update_result) {
if (!isset($update_result['Id'])) { if (isset($update_result['Id'])) {
continue;
}
$data = $this->getParams()['Ads'][$key]; $data = $this->getParams()['Ads'][$key];
...@@ -84,17 +96,6 @@ class UpdateAds extends DirectRequest ...@@ -84,17 +96,6 @@ class UpdateAds extends DirectRequest
'reserve_update_at' => null, 'reserve_update_at' => null,
]); ]);
continue;
}
$external_id = (string)$update_result['Id'];
GoalAdvertisement::where('external_id', $external_id)
->update([
'updated_need' => null,
'reserve_update_at' => null,
]);
} }
$this->getToken()->update([ $this->getToken()->update([
......
...@@ -8,6 +8,7 @@ use App\Models\Pivots\DictionaryCampaign; ...@@ -8,6 +8,7 @@ use App\Models\Pivots\DictionaryCampaign;
use App\Models\Pivots\GoalAdGroup; use App\Models\Pivots\GoalAdGroup;
use App\Models\Variable; use App\Models\Variable;
use App\Service\Contract\APIRequest; use App\Service\Contract\APIRequest;
use App\Service\DirectResponseHelper;
use App\Service\Requests\DirectRequest; use App\Service\Requests\DirectRequest;
use App\Service\StrReplaceByVariables; use App\Service\StrReplaceByVariables;
use Carbon\Carbon; use Carbon\Carbon;
...@@ -42,9 +43,20 @@ class UpdateCampaigns extends DirectRequest ...@@ -42,9 +43,20 @@ class UpdateCampaigns extends DirectRequest
return; return;
} }
foreach (DirectResponseHelper::getExternalIdsChunkByResult($response['result']['UpdateResults']) as $external_ids) {
DictionaryCampaign::whereIn('external_id', $external_ids)
->update([
'updated_need' => null,
'reserve_update_at' => null,
'updated_at' => Carbon::now(),
]);
}
foreach ($response['result']['UpdateResults'] as $key => $update_result) { foreach ($response['result']['UpdateResults'] as $key => $update_result) {
if (!isset($update_result['Id'])) { if (isset($update_result['Id'])) {
continue;
}
$data = $this->getParams()['Campaigns'][$key]; $data = $this->getParams()['Campaigns'][$key];
...@@ -74,16 +86,6 @@ class UpdateCampaigns extends DirectRequest ...@@ -74,16 +86,6 @@ class UpdateCampaigns extends DirectRequest
'reserve_update_at' => null, 'reserve_update_at' => null,
]); ]);
continue;
}
$external_id = (string)$update_result['Id'];
DictionaryCampaign::where('external_id', $external_id)
->update([
'updated_need' => null,
'reserve_update_at' => null,
]);
} }
$this->getToken()->update([ $this->getToken()->update([
......
...@@ -7,8 +7,10 @@ use App\Models\Keyword; ...@@ -7,8 +7,10 @@ use App\Models\Keyword;
use App\Models\Pivots\GoalKeyword; use App\Models\Pivots\GoalKeyword;
use App\Models\Variable; use App\Models\Variable;
use App\Service\Contract\APIRequest; use App\Service\Contract\APIRequest;
use App\Service\DirectResponseHelper;
use App\Service\Requests\DirectRequest; use App\Service\Requests\DirectRequest;
use App\Service\StrReplaceByVariables; use App\Service\StrReplaceByVariables;
use Carbon\Carbon;
use Illuminate\Support\Facades\Log; use Illuminate\Support\Facades\Log;
class UpdateKeywords extends DirectRequest class UpdateKeywords extends DirectRequest
...@@ -40,15 +42,30 @@ class UpdateKeywords extends DirectRequest ...@@ -40,15 +42,30 @@ class UpdateKeywords extends DirectRequest
return; return;
} }
foreach (DirectResponseHelper::getExternalIdsChunkByResult($response['result']['UpdateResults']) as $external_ids) {
GoalKeyword::whereIn('external_id', $external_ids)
->update([
'updated_need' => null,
'reserve_update_at' => null,
'updated_at' => Carbon::now(),
]);
}
foreach ($response['result']['UpdateResults'] as $key => $update_result) { foreach ($response['result']['UpdateResults'] as $key => $update_result) {
if (!isset($update_result['Id'])) { if (isset($update_result['Id'])) {
continue;
}
$data = $this->getParams()['Keywords'][$key]; $data = $this->getParams()['Keywords'][$key];
$external_id = $data['Id']; $external_id = $data['Id'];
if (isset($update_result['Errors']) && count($update_result['Errors'])) { if (isset($data['Errors'][0]['Details']) && $data['Errors'][0]['Details'] === 'Keyword not found') {
GoalKeyword::whereExternalId($external_id)->delete();
} elseif (isset($update_result['Errors']) && count($update_result['Errors'])) {
$goalKeyword = GoalKeyword::whereExternalId($external_id)->first(); $goalKeyword = GoalKeyword::whereExternalId($external_id)->first();
if ($goalKeyword) { if ($goalKeyword) {
...@@ -59,10 +76,6 @@ class UpdateKeywords extends DirectRequest ...@@ -59,10 +76,6 @@ class UpdateKeywords extends DirectRequest
'params' => $data, 'params' => $data,
'errors' => $update_result['Errors'], 'errors' => $update_result['Errors'],
]); ]);
$goalKeyword->update([
'reserve_update_at' => null,
]);
continue;
} }
} else { } else {
Log::debug("UpdateKeywords, empty Id, token_id {$this->getToken()->getKey()}"); Log::debug("UpdateKeywords, empty Id, token_id {$this->getToken()->getKey()}");
...@@ -75,17 +88,6 @@ class UpdateKeywords extends DirectRequest ...@@ -75,17 +88,6 @@ class UpdateKeywords extends DirectRequest
'reserve_update_at' => null, 'reserve_update_at' => null,
]); ]);
continue;
}
$external_id =(string) $update_result['Id'];
GoalKeyword::where('external_id', $external_id)
->update([
'updated_need' => null,
'reserve_update_at' => null,
]);
} }
} }
......
...@@ -7,8 +7,10 @@ use App\Models\NegativeKeywordSharedSet; ...@@ -7,8 +7,10 @@ use App\Models\NegativeKeywordSharedSet;
use App\Models\Pivots\GoalNegativeKeywordSharedSet; use App\Models\Pivots\GoalNegativeKeywordSharedSet;
use App\Models\Variable; use App\Models\Variable;
use App\Service\Contract\APIRequest; use App\Service\Contract\APIRequest;
use App\Service\DirectResponseHelper;
use App\Service\Requests\DirectRequest; use App\Service\Requests\DirectRequest;
use App\Service\StrReplaceByVariables; use App\Service\StrReplaceByVariables;
use Carbon\Carbon;
use Illuminate\Database\Eloquent\Collection; use Illuminate\Database\Eloquent\Collection;
use Illuminate\Support\Facades\Log; use Illuminate\Support\Facades\Log;
...@@ -53,11 +55,22 @@ class UpdateNegativeKeywordSharedSets extends DirectRequest ...@@ -53,11 +55,22 @@ class UpdateNegativeKeywordSharedSets extends DirectRequest
return; return;
} }
foreach (DirectResponseHelper::getExternalIdsChunkByResult($response['result']['UpdateResults']) as $external_ids) {
GoalNegativeKeywordSharedSet::whereIn('external_id', $external_ids)
->update([
'updated_need' => null,
'reserve_update_at' => null,
'updated_at' => Carbon::now(),
]);
}
foreach ($response['result']['UpdateResults'] as $key => $update_result) { foreach ($response['result']['UpdateResults'] as $key => $update_result) {
$goalNegativeKeywordSharedSet = $this->goalNegativeKeywordSharedSets->get($key); $goalNegativeKeywordSharedSet = $this->goalNegativeKeywordSharedSets->get($key);
if (!isset($update_result['Id'])) { if (isset($update_result['Id'])) {
continue;
}
$data = $this->getParams()['NegativeKeywordSharedSets'][$key]; $data = $this->getParams()['NegativeKeywordSharedSets'][$key];
...@@ -80,17 +93,6 @@ class UpdateNegativeKeywordSharedSets extends DirectRequest ...@@ -80,17 +93,6 @@ class UpdateNegativeKeywordSharedSets extends DirectRequest
'reserve_update_at' => null, 'reserve_update_at' => null,
]); ]);
continue;
}
$external_id = (string)$update_result['Id'];
GoalNegativeKeywordSharedSet::where('external_id', $external_id)
->update([
'updated_need' => null,
'reserve_update_at' => null,
]);
} }
} }
......
...@@ -6,8 +6,10 @@ use App\Jobs\ProcessCallLimitedAPI; ...@@ -6,8 +6,10 @@ use App\Jobs\ProcessCallLimitedAPI;
use App\Models\Pivots\GoalRetargetinglist; use App\Models\Pivots\GoalRetargetinglist;
use App\Models\Variable; use App\Models\Variable;
use App\Service\Contract\APIRequest; use App\Service\Contract\APIRequest;
use App\Service\DirectResponseHelper;
use App\Service\Requests\DirectRequest; use App\Service\Requests\DirectRequest;
use App\Service\StrReplaceByVariables; use App\Service\StrReplaceByVariables;
use Carbon\Carbon;
use Illuminate\Support\Facades\Log; use Illuminate\Support\Facades\Log;
class UpdateRetargetinglists extends DirectRequest class UpdateRetargetinglists extends DirectRequest
...@@ -41,9 +43,20 @@ class UpdateRetargetinglists extends DirectRequest ...@@ -41,9 +43,20 @@ class UpdateRetargetinglists extends DirectRequest
return; return;
} }
foreach (DirectResponseHelper::getExternalIdsChunkByResult($response['result']['UpdateResults']) as $external_ids) {
GoalRetargetinglist::whereIn('external_id', $external_ids)
->update([
'updated_need' => null,
'reserve_update_at' => null,
'updated_at' => Carbon::now(),
]);
}
foreach ($response['result']['UpdateResults'] as $key => $update_result) { foreach ($response['result']['UpdateResults'] as $key => $update_result) {
if (!isset($update_result['Id'])) { if (isset($update_result['Id'])) {
continue;
}
$data = $this->getParams()['RetargetingLists'][$key]; $data = $this->getParams()['RetargetingLists'][$key];
...@@ -58,30 +71,15 @@ class UpdateRetargetinglists extends DirectRequest ...@@ -58,30 +71,15 @@ class UpdateRetargetinglists extends DirectRequest
'params' => $data, 'params' => $data,
'errors' => $update_result['Errors'], 'errors' => $update_result['Errors'],
]); ]);
$goalRetargetinglist->update([
'reserve_update_at' => null,
]);
continue;
}
} }
} else {
Log::debug("AddRetargetinglist, empty Id, token_id {$this->getToken()->getKey()}"); Log::debug("AddRetargetinglist, empty Id, token_id {$this->getToken()->getKey()}");
Log::debug($update_result); Log::debug($update_result);
Log::debug($data); Log::debug($data);
GoalRetargetinglist::where('external_id', $data['Id'])
->update([
'reserve_update_at' => null,
]);
continue;
} }
$external_id = (string)$update_result['Id']; GoalRetargetinglist::where('external_id', $data['Id'])
GoalRetargetinglist::where('external_id', $external_id)
->update([ ->update([
'updated_need' => null,
'reserve_update_at' => null, 'reserve_update_at' => null,
]); ]);
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!