Joywork/cron/feedObjectsCheckStateOther.php

310 lines
14 KiB
PHP
Raw Normal View History

2026-05-22 20:21:54 +02:00
<?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 destination <> 'AVITO_JW_FEED' AND DATE_ADD(publish_end_date, INTERVAL -2 HOUR) < 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']) - 7200;
$id = $stat['id'];
//echo 'publish_end_date:' . $endDateTime;
//echo '<br/>';
//проверяем, что то размещение единственное иначе не снимаем, пока макс дата не прошла
$sqlStatCheckOther = "SELECT id, publish_end_date FROM object_publish_statistic WHERE id <> $id AND DATE_ADD(publish_end_date, INTERVAL -2 HOUR) > 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'];
$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>