Commit a5d3b5fa by Vladislav

#19465 Реализация синхронизации данных по РК.

1 parent 60bbf67a
......@@ -113,14 +113,14 @@ class AddCampaigns extends DirectRequest
}
if ($dictionaryCampaign->campaign->relevant_keywords_setting_budget_percent) {
$data['RelevantKeywords'] = [
$data['TextCampaign']['RelevantKeywords'] = [
'BudgetPercent' => $dictionaryCampaign->campaign->relevant_keywords_setting_budget_percent,
'OptimizeGoalId' => $dictionaryCampaign->campaign->relevant_keywords_setting_optimize_goal_id,
];
}
if ($dictionaryCampaign->campaign->attribution_model) {
$data['AttributionModel'] = $dictionaryCampaign->campaign->attribution_model;
$data['TextCampaign']['AttributionModel'] = $dictionaryCampaign->campaign->attribution_model;
}
if ($dictionaryCampaign->campaign->settings && count($dictionaryCampaign->campaign->settings)) {
......
......@@ -5,8 +5,6 @@ namespace App\Service\Requests\Direct;
use App\Jobs\ProcessCallLimitedAPI;
use App\Models\Campaigns;
use App\Models\Pivots\DictionaryCampaign;
use App\Service\API\API;
use App\Service\Requests\APIRequest;
use App\Service\Requests\DirectRequest;
use Carbon\Carbon;
......@@ -42,18 +40,25 @@ class CheckCampaignsChange extends DirectRequest
$external_id = $campaign_data['CampaignId'];
if ($this->getToken()->isMain()) {
$data['external_id'] = $external_id;
$data['token'] = $this->getToken()->getKey();
Campaigns::firstOrCreate([
Campaigns::updateOrCreate([
'external_id' => $external_id
], $data);
} else {
$dictionaryCampaign = DictionaryCampaign::synchronized()->find($external_id);
if ($dictionaryCampaign) {
$data['external_updated_at'] = Carbon::now();
$dictionaryCampaign->update($data);
}
}
\Log::debug($data);
}
}
$this->getToken()->update([
......@@ -65,7 +70,7 @@ class CheckCampaignsChange extends DirectRequest
private function requestPrepare($params)
{
$this->setService('changes');
$this->setMethod('checkDictionaries');
$this->setMethod('checkCampaigns');
$this->setParams([
"Timestamp" => $this->getToken()->timestamp
]);
......
......@@ -6,7 +6,6 @@ use App\Jobs\ProcessCallLimitedAPI;
use App\Models\Campaigns;
use App\Models\Pivots\DictionaryCampaign;
use App\Service\Requests\DirectRequest;
use Carbon\Carbon;
use Illuminate\Support\Facades\Log;
class ResumeCampaigns extends DirectRequest
......
......@@ -34,7 +34,8 @@ class UpdateCampaigns extends DirectRequest
$external_id = $add_result['Id'] ?? '';
if (!$external_id) {
Log::debug("AddCampaigns, empty Id, [dictionary_campaigns.id = {$this->dictionaryCampaigns->get($key)->getKey()}]", $add_result);
Log::debug("AddCampaigns, empty Id, [dictionary_campaigns.id = {$this->dictionaryCampaigns->get($key)->getKey()}]");
Log::debug($add_result);
continue;
}
......
......@@ -119,7 +119,7 @@ class CityTest extends TestCase
foreach ($this->token->cities as $city) {
foreach ($city->campaigns as $campaign) {
if ($campaign->id == $campaign_ids[0]) {
$this->assertEquals(false, $campaign->pivot->updated);
$this->assertEquals(true, $campaign->pivot->updated);
$this->assertEquals(true, $campaign->pivot->synced);
$this->assertEquals(1, $campaign->dictionaryCampaignVariables->count());
} else {
......@@ -160,10 +160,8 @@ class CityTest extends TestCase
foreach ($this->token->cities as $city) {
foreach ($city->campaigns as $campaign) {
if ($campaign->id == $campaign_ids[0]) {
/* TODO: не проходит валидацию, атрибуты верные
$this->assertEquals(true, $campaign->pivot->updated);
$this->assertEquals(false, $campaign->pivot->synced);
*/
}
}
}
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!