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>
|