312 lines
14 KiB
PHP
312 lines
14 KiB
PHP
|
|
<?php
|
|||
|
|
set_time_limit(0);
|
|||
|
|
require_once($_SERVER['DOCUMENT_ROOT'] . "/config.php");
|
|||
|
|
|
|||
|
|
ini_set('display_errors', 1);
|
|||
|
|
error_reporting(E_ALL & ~E_DEPRECATED & ~E_STRICT & ~E_NOTICE);
|
|||
|
|
?>
|
|||
|
|
<!doctype html>
|
|||
|
|
<html>
|
|||
|
|
<head>
|
|||
|
|
<meta charset="utf-8">
|
|||
|
|
<title>Снятие флагов для объектов из фида, если закончился срок</title>
|
|||
|
|
</head>
|
|||
|
|
<body>
|
|||
|
|
<?php
|
|||
|
|
|
|||
|
|
$db_sphinx = new MysqlPdo(hstsph2, null, null, null, true, '9306');
|
|||
|
|
$moderationAdvertClass = new ModerationAdvert();
|
|||
|
|
|
|||
|
|
//выбираем все объекты, которые размещены на определенный срок, но еще не отменялись
|
|||
|
|
$sqlStat = "SELECT id, object_id, destination, publish_end_date, publish_user_id FROM object_publish_statistic WHERE publish_end_date < NOW() AND unpublish_user_id IS NULL AND advertising_package_object_publish_id IS NULL AND zipal_objects_id IS NULL AND days_count < 5000 AND on_moderation = 0";
|
|||
|
|
$rezStat = mysql_query($sqlStat);
|
|||
|
|
|
|||
|
|
while ($stat = mysql_fetch_assoc($rezStat)) {
|
|||
|
|
$endDateTime = strtotime($stat['publish_end_date']);
|
|||
|
|
|
|||
|
|
//echo 'publish_end_date:' . $endDateTime;
|
|||
|
|
//echo '<br/>';
|
|||
|
|
|
|||
|
|
//проверяем, что то размещение единственное иначе не снимаем, пока макс дата не прошла
|
|||
|
|
$sqlStatCheckOther = "SELECT id, publish_end_date FROM object_publish_statistic WHERE publish_end_date > NOW() AND object_id = $stat[object_id] and destination = '$stat[destination]' and unpublish_user_id IS NULL AND advertising_package_object_publish_id IS NULL AND zipal_objects_id IS NULL AND days_count < 5000 AND on_moderation = 0";
|
|||
|
|
$rezStatCheckOther = mysql_query($sqlStatCheckOther);
|
|||
|
|
//если есть еще записи с тем же объектом, с той же площадкой и большей датой - пока просто снимаем текущее, сам объект снимется в будущем
|
|||
|
|
if (mysql_num_rows($rezStatCheckOther) > 0) {
|
|||
|
|
$sqlUpdateStat = "UPDATE object_publish_statistic SET unpublish_user_id = 0 WHERE id = " . $stat['id'];
|
|||
|
|
mysql_query($sqlUpdateStat);
|
|||
|
|
|
|||
|
|
continue;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
//дата прошла, сбрасываем флаг
|
|||
|
|
if ($endDateTime < strtotime("now")) {
|
|||
|
|
$objectId = $stat['object_id'];
|
|||
|
|
$destination = $stat['destination'];
|
|||
|
|
$id = $stat['id'];
|
|||
|
|
|
|||
|
|
$sql = "SELECT id, company_id FROM users WHERE id = {$stat['publish_user_id']}";
|
|||
|
|
$agency_id = 0;
|
|||
|
|
$q = mysql_query($sql);
|
|||
|
|
while($r = mysql_fetch_assoc($q)){
|
|||
|
|
if($r['company_id'] > 0){
|
|||
|
|
$agency_id = (int)$r['company_id'];
|
|||
|
|
|
|||
|
|
} else {
|
|||
|
|
|
|||
|
|
$agency_id = (int)$r['id'];
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
$webHookIn = new WebHookIn(null, $agency_id);
|
|||
|
|
|
|||
|
|
$is_object_webhook = $webHookIn->check_hook('object_unadvertise', 'object');
|
|||
|
|
|
|||
|
|
|
|||
|
|
//echo 'object_id:' . $objectId;
|
|||
|
|
//echo '<br/>';
|
|||
|
|
//echo 'destination:' . $destination;
|
|||
|
|
//echo '<br/>';
|
|||
|
|
//echo 'id:' . $id;
|
|||
|
|
//echo '<br/>';
|
|||
|
|
|
|||
|
|
//скидываем флаг авито
|
|||
|
|
if ($destination == 'AVITO_JW_FEED') {
|
|||
|
|
$sql = "UPDATE objects
|
|||
|
|
SET use_in_advert = IF(
|
|||
|
|
add_to_bn_feed = 0 AND
|
|||
|
|
add_to_yandex_feed = 0 AND
|
|||
|
|
add_to_domclick_feed = 0 AND
|
|||
|
|
add_to_emls_feed = 0 AND
|
|||
|
|
add_to_cian_feed = 0 AND
|
|||
|
|
add_to_zipal = 0, 0, 1),
|
|||
|
|
add_to_avito_feed = 0,
|
|||
|
|
is_main = 0
|
|||
|
|
WHERE id=$objectId";
|
|||
|
|
|
|||
|
|
$sql_sph_tmp = "SELECT if(
|
|||
|
|
add_to_bn_feed = 0 AND
|
|||
|
|
add_to_yandex_feed = 0 AND
|
|||
|
|
add_to_domclick_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=$objectId";
|
|||
|
|
|
|||
|
|
$q_sph_tmp = $db_sphinx->query($sql_sph_tmp);
|
|||
|
|
$use_in_advert = $db_sphinx->result($q_sph_tmp);
|
|||
|
|
$sql_sph = "UPDATE objects
|
|||
|
|
SET use_in_advert = $use_in_advert,
|
|||
|
|
add_to_avito_feed=0
|
|||
|
|
WHERE id=$objectId";
|
|||
|
|
|
|||
|
|
$db_sphinx->query($sql_sph);
|
|||
|
|
mysql_query($sql);
|
|||
|
|
$moderationAdvertClass->checkAndClear($objectId,'add_to_avito_feed');
|
|||
|
|
|
|||
|
|
if ($is_object_webhook) {
|
|||
|
|
$webHookIn->save_webhook_cron(0, 'object', 'object_unadvertise', $objectId, 'add_to_avito_feed');
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//скидываем флаг ЕМЛС
|
|||
|
|
if ($destination == 'EMLS_JW_FEED') {
|
|||
|
|
$sql = "UPDATE objects
|
|||
|
|
SET use_in_advert = IF(
|
|||
|
|
add_to_bn_feed = 0 AND
|
|||
|
|
add_to_yandex_feed = 0 AND
|
|||
|
|
add_to_domclick_feed = 0 AND
|
|||
|
|
add_to_avito_feed = 0 AND
|
|||
|
|
add_to_cian_feed = 0 AND
|
|||
|
|
add_to_zipal = 0, 0, 1),
|
|||
|
|
add_to_emls_feed=0,
|
|||
|
|
is_main = 0
|
|||
|
|
WHERE id=$objectId";
|
|||
|
|
|
|||
|
|
$sql_sph_tmp = "SELECT if(
|
|||
|
|
add_to_bn_feed = 0 AND
|
|||
|
|
add_to_yandex_feed = 0 AND
|
|||
|
|
add_to_domclick_feed = 0 AND
|
|||
|
|
add_to_avito_feed = 0 AND
|
|||
|
|
add_to_cian_feed = 0 AND
|
|||
|
|
add_to_zipal = 0, 0, 1) FROM objects WHERE id=$objectId";
|
|||
|
|
|
|||
|
|
$q_sph_tmp = $db_sphinx->query($sql_sph_tmp);
|
|||
|
|
$use_in_advert = $db_sphinx->result($q_sph_tmp);
|
|||
|
|
$sql_sph = "UPDATE objects
|
|||
|
|
SET use_in_advert = $use_in_advert,
|
|||
|
|
add_to_emls_feed=0
|
|||
|
|
WHERE id=$objectId";
|
|||
|
|
|
|||
|
|
$db_sphinx->query($sql_sph);
|
|||
|
|
mysql_query($sql);
|
|||
|
|
$moderationAdvertClass->checkAndClear($objectId,'add_to_emls_feed');
|
|||
|
|
|
|||
|
|
if ($is_object_webhook) {
|
|||
|
|
$webHookIn->save_webhook_cron(0, 'object', 'object_unadvertise', $objectId, 'add_to_emls_feed');
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//скидываем флаг ЦИАН
|
|||
|
|
if ($destination == 'CIAN_JW_FEED') {
|
|||
|
|
$sql = "UPDATE objects
|
|||
|
|
SET use_in_advert = IF(
|
|||
|
|
add_to_bn_feed = 0 AND
|
|||
|
|
add_to_yandex_feed = 0 AND
|
|||
|
|
add_to_domclick_feed = 0 AND
|
|||
|
|
add_to_avito_feed = 0 AND
|
|||
|
|
add_to_emls_feed = 0 AND
|
|||
|
|
add_to_zipal = 0, 0, 1),
|
|||
|
|
add_to_cian_feed=0,
|
|||
|
|
is_main = 0
|
|||
|
|
WHERE id=$objectId";
|
|||
|
|
|
|||
|
|
$sql_sph_tmp = "SELECT if(
|
|||
|
|
add_to_bn_feed = 0 AND
|
|||
|
|
add_to_yandex_feed = 0 AND
|
|||
|
|
add_to_domclick_feed = 0 AND
|
|||
|
|
add_to_avito_feed = 0 AND
|
|||
|
|
add_to_emls_feed = 0 AND
|
|||
|
|
add_to_zipal = 0, 0, 1) FROM objects WHERE id=$objectId";
|
|||
|
|
|
|||
|
|
$q_sph_tmp = $db_sphinx->query($sql_sph_tmp);
|
|||
|
|
$use_in_advert = $db_sphinx->result($q_sph_tmp);
|
|||
|
|
$sql_sph = "UPDATE objects
|
|||
|
|
SET use_in_advert = $use_in_advert,
|
|||
|
|
add_to_cian_feed=0
|
|||
|
|
WHERE id=$objectId";
|
|||
|
|
|
|||
|
|
$db_sphinx->query($sql_sph);
|
|||
|
|
mysql_query($sql);
|
|||
|
|
$moderationAdvertClass->checkAndClear($objectId,'add_to_cian_feed');
|
|||
|
|
|
|||
|
|
if ($is_object_webhook) {
|
|||
|
|
$webHookIn->save_webhook_cron(0, 'object', 'object_unadvertise', $objectId, 'add_to_cian_feed');
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//скидываем флаг BN
|
|||
|
|
if ($destination == 'YANDEX_JW_FEED') {
|
|||
|
|
$sql = "UPDATE objects
|
|||
|
|
SET use_in_advert = IF(
|
|||
|
|
add_to_yandex_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),
|
|||
|
|
add_to_bn_feed=0,
|
|||
|
|
is_main = 0
|
|||
|
|
WHERE id=$objectId";
|
|||
|
|
|
|||
|
|
$sql_sph_tmp = "SELECT if(
|
|||
|
|
add_to_yandex_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=$objectId";
|
|||
|
|
|
|||
|
|
$q_sph_tmp = $db_sphinx->query($sql_sph_tmp);
|
|||
|
|
$use_in_advert = $db_sphinx->result($q_sph_tmp);
|
|||
|
|
$sql_sph = "UPDATE objects
|
|||
|
|
SET use_in_advert = $use_in_advert,
|
|||
|
|
add_to_bn_feed=0
|
|||
|
|
WHERE id=$objectId";
|
|||
|
|
|
|||
|
|
$db_sphinx->query($sql_sph);
|
|||
|
|
mysql_query($sql);
|
|||
|
|
$moderationAdvertClass->checkAndClear($objectId,'add_to_bn_feed');
|
|||
|
|
if ($is_object_webhook) {
|
|||
|
|
$webHookIn->save_webhook_cron(0, 'object', 'object_unadvertise', $objectId, 'add_to_bn_feed');
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//скидываем флаг Яндекс (бесплатные)
|
|||
|
|
if ($destination == 'FREE_JW_FEED') {
|
|||
|
|
$sql = "UPDATE objects
|
|||
|
|
SET use_in_advert = 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),
|
|||
|
|
add_to_yandex_feed=0,
|
|||
|
|
is_main = 0
|
|||
|
|
WHERE id=$objectId";
|
|||
|
|
$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=$objectId";
|
|||
|
|
|
|||
|
|
$q_sph_tmp = $db_sphinx->query($sql_sph_tmp);
|
|||
|
|
$use_in_advert = $db_sphinx->result($q_sph_tmp);
|
|||
|
|
$sql_sph = "UPDATE objects
|
|||
|
|
SET use_in_advert = $use_in_advert,
|
|||
|
|
add_to_yandex_feed=0
|
|||
|
|
WHERE id=$objectId";
|
|||
|
|
|
|||
|
|
$db_sphinx->query($sql_sph);
|
|||
|
|
mysql_query($sql);
|
|||
|
|
$moderationAdvertClass->checkAndClear($objectId,'add_to_yandex_feed');
|
|||
|
|
if ($is_object_webhook) {
|
|||
|
|
$webHookIn->save_webhook_cron(0, 'object', 'object_unadvertise', $objectId, 'add_to_yandex_feed');
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//скидываем флаг Домклик
|
|||
|
|
if ($destination == 'DOMCLICK_JW_FEED') {
|
|||
|
|
$sql = "UPDATE objects
|
|||
|
|
SET use_in_advert = IF(
|
|||
|
|
add_to_bn_feed = 0 AND
|
|||
|
|
add_to_yandex_feed = 0 AND
|
|||
|
|
add_to_cian_feed = 0 AND
|
|||
|
|
add_to_avito_feed = 0 AND
|
|||
|
|
add_to_emls_feed = 0 AND
|
|||
|
|
add_to_zipal = 0, 0, 1),
|
|||
|
|
add_to_domclick_feed=0,
|
|||
|
|
is_main = 0
|
|||
|
|
WHERE id=$objectId";
|
|||
|
|
|
|||
|
|
$sql_sph_tmp = "SELECT if(
|
|||
|
|
add_to_bn_feed = 0 AND
|
|||
|
|
add_to_yandex_feed = 0 AND
|
|||
|
|
add_to_cian_feed = 0 AND
|
|||
|
|
add_to_avito_feed = 0 AND
|
|||
|
|
add_to_emls_feed = 0 AND
|
|||
|
|
add_to_zipal = 0, 0, 1)
|
|||
|
|
FROM objects WHERE id=$objectId";
|
|||
|
|
|
|||
|
|
$q_sph_tmp = $db_sphinx->query($sql_sph_tmp);
|
|||
|
|
$use_in_advert = $db_sphinx->result($q_sph_tmp);
|
|||
|
|
$sql_sph = "UPDATE objects
|
|||
|
|
SET use_in_advert = $use_in_advert,
|
|||
|
|
add_to_domclick_feed=0
|
|||
|
|
WHERE id=$objectId";
|
|||
|
|
|
|||
|
|
$db_sphinx->query($sql_sph);
|
|||
|
|
mysql_query($sql);
|
|||
|
|
$moderationAdvertClass->checkAndClear($objectId,'add_to_domclick_feed');
|
|||
|
|
|
|||
|
|
if ($is_object_webhook) {
|
|||
|
|
$webHookIn->save_webhook_cron(0, 'object', 'object_unadvertise', $objectId, 'add_to_domclick_feed');
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//проставляем пользоватетеля, который отменил, в 0, чтобы отличать от ручного закрытия
|
|||
|
|
$sqlUpdateStat = "UPDATE object_publish_statistic SET unpublish_user_id = 0 WHERE id = $id";
|
|||
|
|
mysql_query($sqlUpdateStat);
|
|||
|
|
|
|||
|
|
//Отметка о необходимости уведомления
|
|||
|
|
$sqlTelegramSend = "INSERT INTO object_unpublish_telegram_send SET user_id={$stat['publish_user_id']}, object_id={$objectId}, destination='{$stat['destination']}'";
|
|||
|
|
mysql_query($sqlTelegramSend);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
?>
|
|||
|
|
</body>
|
|||
|
|
</html>
|