Commit ae81013d by Vladislav

#20290 Изменить замену переменных

1 parent f66a2b18
...@@ -124,8 +124,6 @@ class GoalKeyword extends Pivot ...@@ -124,8 +124,6 @@ class GoalKeyword extends Pivot
static public function updateOrCreateByMain(Keyword $keyword, GoalAdGroup $goalAdGroup, DictionaryCampaign $dictionaryCampaign) static public function updateOrCreateByMain(Keyword $keyword, GoalAdGroup $goalAdGroup, DictionaryCampaign $dictionaryCampaign)
{ {
if (!$goalAdGroup->getKey())
\Log::debug($goalAdGroup);
return GoalKeyword::updateOrCreate([ return GoalKeyword::updateOrCreate([
'dictionary_campaign_id' => $dictionaryCampaign->getKey(), 'dictionary_campaign_id' => $dictionaryCampaign->getKey(),
'dictionary_campaign_external_id' => $dictionaryCampaign->external_id, 'dictionary_campaign_external_id' => $dictionaryCampaign->external_id,
......
...@@ -38,7 +38,10 @@ class Variable extends Model ...@@ -38,7 +38,10 @@ class Variable extends Model
public static function getListVariablesByDictionaryCampaign(DictionaryCampaign $dictionaryCampaign, $variables = null) public static function getListVariablesByDictionaryCampaign(DictionaryCampaign $dictionaryCampaign, $variables = null)
{ {
$variable_list = []; $variable_list = [
'vars' => [],
'values' => [],
];
if (!$variables) { if (!$variables) {
$variables = Variable::all(); $variables = Variable::all();
...@@ -53,7 +56,8 @@ class Variable extends Model ...@@ -53,7 +56,8 @@ class Variable extends Model
: $variable->default_value : $variable->default_value
); );
$variable_list[$variable->name] = $value; $variable_list['vars'][] = $variable->name;
$variable_list['values'][] = $value;
} }
return $variable_list; return $variable_list;
......
...@@ -56,8 +56,6 @@ class GetAdGroups extends DirectRequest ...@@ -56,8 +56,6 @@ class GetAdGroups extends DirectRequest
try { try {
$external_ids = []; $external_ids = [];
\Log::debug($response);
if (!isset($response['result']['AdGroups'])) { if (!isset($response['result']['AdGroups'])) {
return; return;
} }
...@@ -85,8 +83,6 @@ class GetAdGroups extends DirectRequest ...@@ -85,8 +83,6 @@ class GetAdGroups extends DirectRequest
->keyBy('external_id'); ->keyBy('external_id');
} }
\Log::debug($campaigns);
foreach ($response['result']['AdGroups'] as $ad_group) { foreach ($response['result']['AdGroups'] as $ad_group) {
$external_id = (string)$ad_group['CampaignId']; $external_id = (string)$ad_group['CampaignId'];
...@@ -94,8 +90,6 @@ class GetAdGroups extends DirectRequest ...@@ -94,8 +90,6 @@ class GetAdGroups extends DirectRequest
$campaign = $campaigns->firstWhere('external_id', $external_id); $campaign = $campaigns->firstWhere('external_id', $external_id);
if (!$campaign) { if (!$campaign) {
\Log::debug('Not Fround campaign for external_id');
\Log::debug($external_id);
continue; continue;
} }
......
...@@ -8,7 +8,6 @@ use App\Models\Variable; ...@@ -8,7 +8,6 @@ use App\Models\Variable;
class StrReplaceByVariables class StrReplaceByVariables
{ {
private $delimer = '%';
private $str; private $str;
private $list; private $list;
...@@ -23,10 +22,8 @@ class StrReplaceByVariables ...@@ -23,10 +22,8 @@ class StrReplaceByVariables
$list = Variable::getListVariablesByDictionaryCampaign($dictionaryCampaign); $list = Variable::getListVariablesByDictionaryCampaign($dictionaryCampaign);
} }
foreach ($list as $key => $variable) { foreach ($list['vars'] as $key => $var) {
// $list["{$this->delimer}{$key}{$this->delimer}"] = $variable; $list['vars'][$key] = "/\b{$var}\b/";
// unset($list[$key]);
$list[$key] = $variable;
} }
$this->str = $str; $this->str = $str;
...@@ -43,7 +40,7 @@ class StrReplaceByVariables ...@@ -43,7 +40,7 @@ class StrReplaceByVariables
*/ */
public function get() public function get()
{ {
return strtr($this->str, $this->list); return preg_replace($this->list['vars'], $this->list['values'], $this->str);
} }
} }
...@@ -2,6 +2,7 @@ ...@@ -2,6 +2,7 @@
namespace Tests\Unit; namespace Tests\Unit;
use App\Console\Commands\DictionaryCampaignsSyncByCampaign;
use App\Jobs\ProcessCallLimitedAPI; use App\Jobs\ProcessCallLimitedAPI;
use App\Models\Account; use App\Models\Account;
use App\Models\AdGroup; use App\Models\AdGroup;
...@@ -14,6 +15,7 @@ use App\Models\User; ...@@ -14,6 +15,7 @@ use App\Models\User;
use App\Service\Contract\API; use App\Service\Contract\API;
use App\Service\Requests\APIRequest; use App\Service\Requests\APIRequest;
use Carbon\Carbon; use Carbon\Carbon;
use Illuminate\Support\Facades\Artisan;
use Illuminate\Support\Facades\Queue; use Illuminate\Support\Facades\Queue;
use Tests\TestCase; use Tests\TestCase;
use Illuminate\Foundation\Testing\RefreshDatabase; use Illuminate\Foundation\Testing\RefreshDatabase;
...@@ -72,6 +74,8 @@ class CheckChangesAdGroupsTest extends TestCase ...@@ -72,6 +74,8 @@ class CheckChangesAdGroupsTest extends TestCase
'campaign_id' => $this->campaign->getKey(), 'campaign_id' => $this->campaign->getKey(),
]); ]);
Artisan::call(DictionaryCampaignsSyncByCampaign::class);
$this->request_main = APIRequest::getInstance(API::YANDEX) $this->request_main = APIRequest::getInstance(API::YANDEX)
->setToken($this->token_main) ->setToken($this->token_main)
->getRequest('Changes', 'check'); ->getRequest('Changes', 'check');
...@@ -173,6 +177,8 @@ class CheckChangesAdGroupsTest extends TestCase ...@@ -173,6 +177,8 @@ class CheckChangesAdGroupsTest extends TestCase
$this->ad_group->refresh(); $this->ad_group->refresh();
Artisan::call(DictionaryCampaignsSyncByCampaign::class);
$this->assertEquals(0, AdGroup::forUpdatedSelf()->count()); $this->assertEquals(0, AdGroup::forUpdatedSelf()->count());
$this->assertEquals($this->ad_group_data['result']['AdGroups'][0]['Name'], $this->ad_group->name); $this->assertEquals($this->ad_group_data['result']['AdGroups'][0]['Name'], $this->ad_group->name);
$this->assertEquals($this->ad_group_data['result']['AdGroups'][0]['Name'], GoalAdGroup::first()->name); $this->assertEquals($this->ad_group_data['result']['AdGroups'][0]['Name'], GoalAdGroup::first()->name);
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!