Joywork/cron/feedObjectsCheckState.php
2026-05-22 21:21:54 +03:00

312 lines
14 KiB
PHP
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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