Commit e3a11de7 by Vladislav

Оптимизация выбор переменых

1 parent 9a301988
...@@ -53,8 +53,13 @@ class Variable extends Model ...@@ -53,8 +53,13 @@ class Variable extends Model
$variables = Variable::all(); $variables = Variable::all();
} }
$values = DictionaryCampaignVariable::where('dictionary_campaign_id', $dictionary_campaign_id)
->whereIn('variable_id', $variables->pluck('id')->toArray())
->get()
->keyBy('variable_id');
foreach ($variables as $variable) { foreach ($variables as $variable) {
$dictionaryCampaignVariable = $variable->findValue($dictionary_campaign_id); $dictionaryCampaignVariable = $values->get($variable->getKey());
$value = ( $value = (
$dictionaryCampaignVariable $dictionaryCampaignVariable
......
...@@ -103,10 +103,17 @@ class AddAdGroups extends DirectRequest ...@@ -103,10 +103,17 @@ class AddAdGroups extends DirectRequest
$variables = Variable::all(); $variables = Variable::all();
$lists = [];
$this->setParams([ $this->setParams([
'AdGroups' => $this->goalAdGroups->map(function (GoalAdGroup $goalAdGroup) use ($variables) { 'AdGroups' => $this->goalAdGroups->map(function (GoalAdGroup $goalAdGroup) use ($variables, &$lists) {
$list = Variable::getListVariablesByDictionaryCampaign($goalAdGroup->dictionary_campaign_id, $variables); if (!isset($lists[$goalKeyword->dictionary_campaign_id])) {
$list = Variable::getListVariablesByDictionaryCampaign($goalAdGroup->dictionary_campaign_id, $variables);
$lists[$goalAdGroup->dictionary_campaign_id] = $list;
} else {
$list = $lists[$goalAdGroup->dictionary_campaign_id];
}
$data = [ $data = [
'Name' => StrReplaceByVariables::getInstance($goalAdGroup->group->name, $list)->get(), 'Name' => StrReplaceByVariables::getInstance($goalAdGroup->group->name, $list)->get(),
......
...@@ -99,7 +99,7 @@ class AddKeywords extends DirectRequest ...@@ -99,7 +99,7 @@ class AddKeywords extends DirectRequest
$lists = []; $lists = [];
$this->setParams([ $this->setParams([
'Keywords' => $this->goalKeywords->map(function ($goalKeyword) use ($variables, $lists) { 'Keywords' => $this->goalKeywords->map(function ($goalKeyword) use ($variables, &$lists) {
if (!isset($lists[$goalKeyword->dictionary_campaign_id])) { if (!isset($lists[$goalKeyword->dictionary_campaign_id])) {
$list = Variable::getListVariablesByDictionaryCampaign($goalKeyword->dictionary_campaign_id, $variables); $list = Variable::getListVariablesByDictionaryCampaign($goalKeyword->dictionary_campaign_id, $variables);
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!