Commit a70c06c9 by Vladislav

Merge branch 'ticket_23509'

2 parents 24a0f7ee fcc297cc
...@@ -45,6 +45,11 @@ class BidModifiersAdd extends Command ...@@ -45,6 +45,11 @@ class BidModifiersAdd extends Command
*/ */
public function handle() public function handle()
{ {
$token = Tokens::allowedRetargetingLoad()->where('type', Tokens::MAIN)->first();
if (!$token) {
return 0;
}
$tokens = Tokens::allowedLimit()->whereHas('dictionaryCampaignsEnabledForExternalSynchronized.goalBidModifiersForNotExternal.bidModifier') $tokens = Tokens::allowedLimit()->whereHas('dictionaryCampaignsEnabledForExternalSynchronized.goalBidModifiersForNotExternal.bidModifier')
->where('type', '!=', Tokens::MAIN) ->where('type', '!=', Tokens::MAIN)
->get(); ->get();
......
...@@ -40,6 +40,11 @@ class BidModifiersDelete extends Command ...@@ -40,6 +40,11 @@ class BidModifiersDelete extends Command
*/ */
public function handle() public function handle()
{ {
$token = Tokens::allowedRetargetingLoad()->where('type', Tokens::MAIN)->first();
if (!$token) {
return 0;
}
foreach (Tokens::allowedLimit()->where('type', '!=', Tokens::MAIN)->get() as $token) { foreach (Tokens::allowedLimit()->where('type', '!=', Tokens::MAIN)->get() as $token) {
$ids = DB::table('goal_bid_modifiers') $ids = DB::table('goal_bid_modifiers')
->join('bid_modifiers', 'goal_bid_modifiers.bid_modifier_id', '=', 'bid_modifiers.id') ->join('bid_modifiers', 'goal_bid_modifiers.bid_modifier_id', '=', 'bid_modifiers.id')
......
...@@ -42,6 +42,11 @@ class BidModifiersUpdate extends Command ...@@ -42,6 +42,11 @@ class BidModifiersUpdate extends Command
*/ */
public function handle() public function handle()
{ {
$token = Tokens::allowedRetargetingLoad()->where('type', Tokens::MAIN)->first();
if (!$token) {
return 0;
}
$tokens = Tokens::allowedLimit()->where('type', '!=', Tokens::MAIN) $tokens = Tokens::allowedLimit()->where('type', '!=', Tokens::MAIN)
->get(); ->get();
......
...@@ -47,7 +47,7 @@ class CampaignsLoadBidModifiers extends Command ...@@ -47,7 +47,7 @@ class CampaignsLoadBidModifiers extends Command
return 0; return 0;
} }
$token = Tokens::allowedLimit()->where('type', Tokens::MAIN)->first(); $token = Tokens::allowedLimit()->allowedRetargetingLoad()->where('type', Tokens::MAIN)->first();
if (!$token) { if (!$token) {
return 0; return 0;
} }
......
...@@ -43,6 +43,11 @@ class RetargetinglistsAdd extends Command ...@@ -43,6 +43,11 @@ class RetargetinglistsAdd extends Command
*/ */
public function handle() public function handle()
{ {
$token = Tokens::allowedRetargetingLoad()->where('type', Tokens::MAIN)->first();
if (!$token) {
return 0;
}
$tokens = Tokens::allowedLimit()->whereHas('goalRetargetinglistsForNotExternalForNotReserveCreate.retargetinglist') $tokens = Tokens::allowedLimit()->whereHas('goalRetargetinglistsForNotExternalForNotReserveCreate.retargetinglist')
->where('type', '!=', Tokens::MAIN) ->where('type', '!=', Tokens::MAIN)
->get(); ->get();
......
...@@ -43,6 +43,11 @@ class RetargetinglistsDelete extends Command ...@@ -43,6 +43,11 @@ class RetargetinglistsDelete extends Command
*/ */
public function handle() public function handle()
{ {
$token = Tokens::allowedRetargetingLoad()->where('type', Tokens::MAIN)->first();
if (!$token) {
return 0;
}
$tokens = Tokens::allowedLimit()->whereHas('goalRetargetinglistsForExternalNeedDeletedForNotReserveDelete') $tokens = Tokens::allowedLimit()->whereHas('goalRetargetinglistsForExternalNeedDeletedForNotReserveDelete')
->where('type', '!=', Tokens::MAIN) ->where('type', '!=', Tokens::MAIN)
->get(); ->get();
......
...@@ -40,7 +40,7 @@ class RetargetinglistsLoad extends Command ...@@ -40,7 +40,7 @@ class RetargetinglistsLoad extends Command
*/ */
public function handle() public function handle()
{ {
$token = Tokens::allowedLimit()->where('type', Tokens::MAIN)->first(); $token = Tokens::allowedLimit()->allowedRetargetingLoad()->where('type', Tokens::MAIN)->first();
if (!$token) { if (!$token) {
return 0; return 0;
......
...@@ -43,6 +43,11 @@ class RetargetinglistsUpdate extends Command ...@@ -43,6 +43,11 @@ class RetargetinglistsUpdate extends Command
*/ */
public function handle() public function handle()
{ {
$token = Tokens::allowedRetargetingLoad()->where('type', Tokens::MAIN)->first();
if (!$token) {
return 0;
}
$tokens = Tokens::allowedLimit()->whereHas('goalRetargetinglistsForExternalForNotReserveUpdateNeedUpdated.retargetinglist') $tokens = Tokens::allowedLimit()->whereHas('goalRetargetinglistsForExternalForNotReserveUpdateNeedUpdated.retargetinglist')
->where('type', '!=', Tokens::MAIN) ->where('type', '!=', Tokens::MAIN)
->get(); ->get();
......
...@@ -62,6 +62,7 @@ class TokensController extends Controller ...@@ -62,6 +62,7 @@ class TokensController extends Controller
'type' => $token->type, 'type' => $token->type,
'main' => $token->isMain(), 'main' => $token->isMain(),
'limit_to_run' => $token->limit_to_run, 'limit_to_run' => $token->limit_to_run,
'allow_retargeting_load' => $token->allow_retargeting_load,
'errors_count' => $token->errors_count, 'errors_count' => $token->errors_count,
'campaigns' => ( 'campaigns' => (
$token->isMain() $token->isMain()
...@@ -121,12 +122,14 @@ class TokensController extends Controller ...@@ -121,12 +122,14 @@ class TokensController extends Controller
Request::validate([ Request::validate([
'type' => ['required', 'in:' . Tokens::MAIN . "," . Tokens::GOAL], 'type' => ['required', 'in:' . Tokens::MAIN . "," . Tokens::GOAL],
'limit_to_run' => ['required', 'integer', 'min:0'], 'limit_to_run' => ['required', 'integer', 'min:0'],
'allow_retargeting_load' => ['nullable', 'boolean'],
]) ])
); );
} else { } else {
$token->update( $token->update(
Request::validate([ Request::validate([
'limit_to_run' => ['required', 'integer', 'min:0'], 'limit_to_run' => ['required', 'integer', 'min:0'],
'allow_retargeting_load' => ['nullable', 'boolean'],
]) ])
); );
} }
......
...@@ -101,6 +101,7 @@ class Tokens extends Model ...@@ -101,6 +101,7 @@ class Tokens extends Model
'limit', 'limit',
'retargetinglists_loaded_at', 'retargetinglists_loaded_at',
'limit_to_run', 'limit_to_run',
'allow_retargeting_load',
]; ];
protected $casts = [ protected $casts = [
...@@ -110,6 +111,7 @@ class Tokens extends Model ...@@ -110,6 +111,7 @@ class Tokens extends Model
'check_changes_ad_group' => 'datetime', 'check_changes_ad_group' => 'datetime',
'check_changes_ad_extension' => 'datetime', 'check_changes_ad_extension' => 'datetime',
'retargetinglists_loaded_at' => 'datetime', 'retargetinglists_loaded_at' => 'datetime',
'allow_retargeting_load' => 'boolean',
]; ];
public function getCheckChangesAtAttribute() public function getCheckChangesAtAttribute()
...@@ -159,6 +161,16 @@ class Tokens extends Model ...@@ -159,6 +161,16 @@ class Tokens extends Model
return $query->whereColumn('limit_to_run', '<', 'limit'); return $query->whereColumn('limit_to_run', '<', 'limit');
} }
/**
* @param Builder $query
* @param array $filters
* @return Builder
*/
public function scopeAllowedRetargetingLoad($query)
{
return $query->where('allow_retargeting_load', true);
}
public function isMain() public function isMain()
{ {
return $this->type === $this::MAIN; return $this->type === $this::MAIN;
......
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class AddAllowRetargetingLoadColumn extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::table('tokens', function (Blueprint $table) {
$table->boolean('allow_retargeting_load')->default(0);
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::table('tokens', function (Blueprint $table) {
$table->dropColumn('allow_retargeting_load');
});
}
}
...@@ -23,6 +23,17 @@ ...@@ -23,6 +23,17 @@
</select-input> </select-input>
<text-input v-model="form.limit_to_run" :error="form.errors.limit_to_run" type="number" class="pr-6 pb-8 w-full" <text-input v-model="form.limit_to_run" :error="form.errors.limit_to_run" type="number" class="pr-6 pb-8 w-full"
label="Минимум баллов для синхронизации"/> label="Минимум баллов для синхронизации"/>
<input
v-if="form.type === 'main'"
:checked="form.allow_retargeting_load"
@change="onToggleAllowRetargetingLoad"
type="checkbox"
class="mt-1"
id="allow_retargeting_load"
>
<label v-if="form.type === 'main'" class="ml-1" for="allow_retargeting_load">
Обновление списка условий ретаргетинга/аудиторий
</label>
</div> </div>
<div class="px-8 py-4 bg-gray-50 border-t border-gray-100 flex items-center"> <div class="px-8 py-4 bg-gray-50 border-t border-gray-100 flex items-center">
<button class="text-red-600 hover:underline" <button class="text-red-600 hover:underline"
...@@ -102,7 +113,6 @@ export default { ...@@ -102,7 +113,6 @@ export default {
}, },
remember: 'form', remember: 'form',
data() { data() {
console.log(this.token);
return { return {
form: this.$inertia.form({ form: this.$inertia.form({
id: this.token.id, id: this.token.id,
...@@ -110,11 +120,15 @@ export default { ...@@ -110,11 +120,15 @@ export default {
token: this.token.token, token: this.token.token,
api: this.token.api, api: this.token.api,
type: this.token.type, type: this.token.type,
allow_retargeting_load: this.token.allow_retargeting_load,
limit_to_run: this.token.limit_to_run, limit_to_run: this.token.limit_to_run,
}), }),
} }
}, },
methods: { methods: {
onToggleAllowRetargetingLoad() {
this.form.allow_retargeting_load = !this.form.allow_retargeting_load;
},
cityAdd(id) { cityAdd(id) {
this.$inertia.post(this.route('token.city.store', [this.token.id, id])) this.$inertia.post(this.route('token.city.store', [this.token.id, id]))
}, },
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!