0)) { $tel = new Telegram(); $db_sphinx = new MysqlPdo(hstsph2, null, null, null, true, '9306'); $moderationAdvertClass = new ModerationAdvert(); $advertBudgets = new AdvertBudgets(); $post = clearInputData($_POST); $userId = $_SESSION['id']; $currentUser = new User; $currentUser->get($userId); if($currentUser->agencyId > 0){ $action = 'object_unadvertise'; if($post['state'] == 1){ $action = 'object_advertise'; } } $w = new WebHookIn(null, $currentUser->agencyId); $is_object_webhook = $w->check_hook($action, 'object'); $price = 0; $days = 5000; if (isset($post['numDays']) && $post['numDays']) { $days = $post['numDays']; } if ($days > 5000) { $days = 5000; } $feed = $post['feed']; $field = ''; $plase = ''; switch($feed){ case 'AVITO_JW_FEED':{ $field = 'add_to_avito_feed'; $plase = 'avito'; break; } case 'EMLS_JW_FEED': { $field = 'add_to_emls_feed'; $plase = ''; break; } case 'CIAN_JW_FEED': { $field = 'add_to_cian_feed'; $plase = 'cian'; break; } case 'YANDEX_JW_FEED': { $field = 'add_to_bn_feed'; $plase = 'yandex'; break; } case 'FREE_JW_FEED': { $field = 'add_to_yandex_feed'; $plase = 'yandex'; break; } case 'DOMCLICK_JW_FEED': { $field = 'add_to_domclick_feed'; $plase = 'domclick'; break; } case 'EMLS_JW_FEED': { $field = 'add_to_emls_feed'; $plase = ''; break; } case 'ALL_FEED': { $field = null; $plase = ''; break; } } if(!empty($field)){ $sqlObjData = "SELECT id, nazv, id_add_user, $field from objects WHERE id in (".implode(',', $_SESSION['checked']).")"; $objDataRez = mysql_query($sqlObjData); $service_id = $advertBudgets->getServiceIdByCommonId($feed); if (isset($post['state'])) { if (boolval($post['state'])) { $sql = "UPDATE objects SET use_in_advert = 1, $field='$post[state]', is_main = 0 WHERE id in (".implode(',', $_SESSION['checked']).")"; $sql_sph = "UPDATE objects SET use_in_advert = 1, $field=$post[state] WHERE id in (".implode(',', $_SESSION['checked']).")"; $db_sphinx->query($sql_sph, true); mysql_query($sql); } else { $sql_sph = "UPDATE objects SET $field=$post[state] WHERE id in (".implode(',', $_SESSION['checked']).")"; $db_sphinx->query($sql_sph, true); $user = new User; $user->get($userId); $agency_id = $user->agencyId; $sql_promo = "DELETE FROM ads_promo WHERE object_id in (".implode(',', $_SESSION['checked']).") AND agency_id = {$agency_id}"; mysql_query($sql_promo); } while($objData = mysql_fetch_assoc($objDataRez)){ if (boolval($post['state'])) { //проверяем текущее состояние объекта if (isset($objData[$field]) && $objData[$field] == 1) { //если опубликован - выходим // exit(); continue; } else { // скидываем размещение и обновляем статистику $advertBudgets->updateObjectCost($objData['id'], $service_id); } $results = $advertBudgets->getObjectAdvertPrices($objData['id'], $service_id, $days); // Стоимость размещения за весь период if (!is_null($results['price'])) $price = $results['price']; // Стоимость размещения за 1 период (30 дней) $price_period = 0; if (!is_null($results['price_period'])) $price_period = $results['price_period']; // Если агентство использует рекламный бюджет if (!is_null($results['budget'])) { // Если пользователь руковод или у него безлимит $unlimited = false; if (isset($results['is_unlimited'])) $unlimited = boolval($results['is_unlimited']); $budget = $results['budget']; if ($price > $budget && !$unlimited) // Если нехватка бюджета - выходим exit(); } $no_insert = false; $on_moderation = 0; /* if (isset($post['is_moderation']) && $post['is_moderation'] > 0) { $moderationAdvertClass->addUpdate($userId, $post['id_object'], ['field'=>$field, 'value'=>1]); $on_moderation = 1; } else { $sql = "UPDATE objects SET use_in_advert = 1, $field='$post[state]', is_main = 0 WHERE id=$post[id_object]"; $sql_sph = "UPDATE objects SET use_in_advert = 1, $field=$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 = 'AVITO_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 ( '$objData[id]', '$objData[id_add_user]', '$userId', NOW(), NOW(), DATE_ADD(NOW(), INTERVAL $days DAY), '$days', '$feed', '$price', '$price_period', '{$on_moderation}' )"; mysql_query($sqlBaseStat); } } else { //уведомление о съеме с рекламы $sql_tg = "SELECT $field FROM objects WHERE id={$objData['id']}"; //echo $sql_tg; $q_tg = mysql_query($sql_tg); $r_tg = mysql_fetch_assoc($q_tg); if($r_tg[$field] > 0 && !empty($plase)){ $tel->object_ad($objData['id'], 0, $plase); } /* $sql_sph_tmp = "SELECT if( add_to_emls_feed = 0 AND add_to_avito_feed = 0 AND add_to_emls_feed = 0 AND add_to_cian_feed = 0 AND add_to_yandex_feed = 0 AND add_to_domclick_feed = 0 AND add_to_bn_feed = 0, 0, 1) FROM objects WHERE id=$objData[id]"; $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 WHERE id=$objData[id]";*/ //echo $sql_sph."\n"; $sql = "UPDATE objects SET $field='$post[state]', is_main = 0 WHERE id=$objData[id]"; //echo $sql."\n"; //проставляем дату отмены в статистике $advertBudgets->updateObjectCost($objData['id'], $service_id); // $moderationAdvertClass->checkAndClear($objData['id'],$field); if (!empty($plase)) { AdvertStats::cleanUpStats($plase, $objData['id']); } mysql_query($sql); } if (!empty($field) && $is_object_webhook) { $w->save_webhook_cron($currentUser->id, 'object', $action, $objData['id'], $field); } } } } else if($feed == 'ALL_FEED' && isset($post['state']) && $post['state'] == 0){ $sqlObjData = "SELECT id, nazv, id_add_user from objects WHERE id in (".implode(',', $_SESSION['checked']).")"; $objDataRez = mysql_query($sqlObjData); $sql = "UPDATE objects SET use_in_advert = 0, add_to_bn_feed = 0, add_to_yandex_feed = 0, add_to_domclick_feed = 0, add_to_avito_feed = 0, add_to_emls_feed = 0, add_to_cian_feed = 0, add_to_zipal = 0, is_main = 0 WHERE id in (".implode(',', $_SESSION['checked']).")"; $sql_sph = "UPDATE objects SET use_in_advert = 0, add_to_bn_feed = 0, add_to_yandex_feed = 0, add_to_domclick_feed = 0, add_to_avito_feed = 0, add_to_emls_feed = 0, add_to_cian_feed = 0, add_to_zipal = 0 WHERE id in (".implode(',', $_SESSION['checked']).")"; //проставляем дату отмены в статистике $sqlUpdateStat = "UPDATE object_publish_statistic SET unpublish_user_id = '$userId', publish_end_date = NOW(), days_count = DATEDIFF(NOW(), publish_start_date) WHERE object_id in (".implode(',', $_SESSION['checked']).") AND (publish_end_date = '0000-00-00 00:00:00' OR publish_end_date IS NULL OR publish_end_date > NOW())"; mysql_query($sqlUpdateStat); if ($db_sphinx->query($sql_sph)) { while($objData = mysql_fetch_assoc($objDataRez)){ $moderationClass = new ModerationAdvert(); $moderationClass->checkAndClear($objData['id'], 'use_in_advert'); $userId = $_SESSION['id']; AdvertStats::cleanUpStats('avito', $objData['id']); AdvertStats::cleanUpStats('cian', $objData['id']); AdvertStats::cleanUpStats('yandex', $objData['id']); AdvertStats::cleanUpStats('domclick', $objData['id']); $tel->object_ad($objData['id'], 0); if ($is_object_webhook) { $w->save_webhook_cron($currentUser->id, 'object', $action, $objData['id'], 'all'); } } } return json_encode(['result' => mysql_query($sql)]); } }