Joywork/ajax/switchAd.php

163 lines
7.1 KiB
PHP
Raw Normal View History

2026-05-22 20:21:54 +02:00
<?php
require_once($_SERVER['DOCUMENT_ROOT']."/config.php");
if($_SESSION['id'] && $_POST['id_object']) {
$db_sphinx = new MysqlPdo(hstsph2, null, null, null, true, '9306');
$post = clearInputData($_POST);
$moderationAdvertClass = new ModerationAdvert();
$userId = $_SESSION['id'];
$price = 0;
$price_period = 0;
$days = 5000;
if (isset($post['numDays']) && $post['numDays']) {
$days = $post['numDays'];
}
if ($days > 5000) {
$days = 5000;
}
$sqlObjData = "SELECT id, nazv, id_add_user, add_to_yandex_feed from objects WHERE id = $post[id_object]";
$objData = mysql_fetch_assoc(mysql_query($sqlObjData));
if (isset($post['state'])) {
if (boolval($post['state'])) {
//проверяем текущее состояние объекта
if (isset($objData['add_to_yandex_feed']) && $objData['add_to_yandex_feed'] == 1) {
//если опубликован - выходим
exit();
} else {
//иначе скидываем все размещения
$sqlUpdateStatBefore = "UPDATE object_publish_statistic SET unpublish_user_id = '$userId', publish_end_date = NOW(), days_count = DATEDIFF(NOW(), publish_start_date) WHERE object_id = $post[id_object] AND destination = 'FREE_JW_FEED' AND (publish_end_date IS NULL OR publish_end_date > NOW())";
mysql_query($sqlUpdateStatBefore);
}
$no_insert = false;
$on_moderation = 0;
if (isset($post['is_moderation']) && $post['is_moderation'] > 0) {
$moderationAdvertClass->addUpdate($userId, $post['id_object'], ['field'=>'add_to_yandex_feed', 'value'=>1]);
$on_moderation = 1;
} else {
$sql = "UPDATE objects SET use_in_advert = 1, add_to_yandex_feed='$post[state]', is_main = 0 WHERE id=$post[id_object]";
$sql_sph = "UPDATE objects SET use_in_advert = 1, add_to_yandex_feed=$post[state] WHERE id = $post[id_object]";
// Обновляем в статистике старую запись объекта из модерации
/*$sqlCheck = "SELECT object_publish_statistic.id AS stat_id
FROM object_publish_statistic
WHERE object_id = {$post['id_object']} AND
destination = 'FREE_JW_FEED' AND
publish_user_id = (
SELECT moderation.agent_id
FROM objects_moderation_advert AS moderation
LEFT JOIN objects_moderation_advert_user_work AS user_work ON user_work.moderation_id = moderation.id
WHERE moderation.object_id = {$post['id_object']} AND
DATE(moderation.created_at) >= DATE(object_publish_statistic.created_at) AND
moderation.send_moderation = 0
LIMIT 1
)";
if ($sqlCheckRez = mysql_query($sqlCheck)) {
if (mysql_num_rows($sqlCheckRez)) {
$stat_id = mysql_fetch_assoc($sqlCheckRez)['stat_id'];
$sqlUpRc = "UPDATE object_publish_statistic
SET publish_start_date = NOW(),
publish_end_date = DATE_ADD(NOW(), INTERVAL $days DAY),
days_count = '$days',
price = '$price',
publish_user_id = '$userId',
on_moderation = 0
WHERE id = $stat_id";
mysql_query($sqlUpRc);
$no_insert = true;
}
}*/
}
// Добавляем запись в статистику размещения
if (!$no_insert) {
$sqlBaseStat = "INSERT INTO object_publish_statistic(
object_id,
user_owner_id,
publish_user_id,
created_at,
publish_start_date,
publish_end_date,
days_count,
destination,
price,
price_period,
on_moderation
) VALUES (
'$post[id_object]',
'$objData[id_add_user]',
'$userId',
NOW(),
NOW(),
DATE_ADD(NOW(), INTERVAL $days DAY),
'$days',
'FREE_JW_FEED',
'$price',
'$price_period',
'{$on_moderation}'
)";
mysql_query($sqlBaseStat);
}
} else {
$sql = "UPDATE objects
SET
add_to_yandex_feed='$post[state]',
is_main = 0
WHERE id=$post[id_object]";
/* $sql_sph_tmp = "SELECT if(
add_to_bn_feed = 0 AND
add_to_domclick_feed = 0 AND
add_to_avito_feed = 0 AND
add_to_emls_feed = 0 AND
add_to_cian_feed = 0 AND
add_to_zipal = 0, 0, 1) FROM objects WHERE id=$post[id_object]";
$q_sph_tmp = $db_sphinx->query($sql_sph_tmp);
$use_in_advert = $db_sphinx->result($q_sph_tmp);*/
$sql_sph = "UPDATE objects
SET
add_to_yandex_feed=$post[state]
WHERE id=$post[id_object]";
//проставляем дату отмены в статистике
$sqlUpdateStat = "UPDATE object_publish_statistic SET unpublish_user_id = '$userId', publish_end_date = NOW(), days_count = DATEDIFF(NOW(), publish_start_date) WHERE object_id = $post[id_object] AND destination = 'FREE_JW_FEED' AND (publish_end_date IS NULL OR publish_end_date > NOW())";
mysql_query($sqlUpdateStat);
$moderationAdvertClass->checkAndClear($post['id_object'],'add_to_yandex_feed');
}
if ($db_sphinx->query($sql_sph)) {
AdvertStats::cleanUpStats('yandex', $post['id_object']);
}
$currentUser = new User;
$currentUser->get($_SESSION['id']);
if($currentUser->agencyId > 0){
$action = 'object_unadvertise';
if($post['state'] == 1){
$action = 'object_advertise';
}
$dataWhook = array('action'=>$action, 'object_id'=>$post['id_object'], 'section'=>'object', 'user_id'=>$userId, 'agency_id'=>$currentUser->agencyId, 'button'=>'add_to_yandex_feed');
$w_in = new WebHookIn(null, $currentUser->agencyId);
$w_in->check_send($dataWhook);
}
mysql_query($sql);
}
}