126 lines
4.5 KiB
PHP
126 lines
4.5 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);
|
||
|
|
header('Content-Type: application/json');
|
||
|
|
|
||
|
|
$pdo = new MysqlPdo(hst, ndb, user, pass);
|
||
|
|
$pdo->query("SET NAMES 'utf8'");
|
||
|
|
$db_sphinx = new MysqlPdo(hstsph2, null, null, null, true, '9306');
|
||
|
|
|
||
|
|
$_serviceList = [
|
||
|
|
1 => 'avito',
|
||
|
|
2 => 'cian',
|
||
|
|
3 => 'yandex',
|
||
|
|
4 => 'domclick',
|
||
|
|
];
|
||
|
|
|
||
|
|
$arrayErrors = array();
|
||
|
|
$users = array();
|
||
|
|
$objects = array();
|
||
|
|
$usersIds = array();
|
||
|
|
$objectIds = array();
|
||
|
|
|
||
|
|
$dateTime = date('Y-m-d H:i:s', strtotime('-1 hour'));
|
||
|
|
|
||
|
|
$sql = "SELECT * FROM ads_stats WHERE agency_id > 0 and is_error = 1 AND is_manual=0 AND processed_at > '{$dateTime}'";
|
||
|
|
//echo $sql;
|
||
|
|
$q = $pdo->query($sql, true);
|
||
|
|
$row = $pdo->num_rows($q);
|
||
|
|
if($row > 0){
|
||
|
|
//echo $row;
|
||
|
|
while ($r = $pdo->fetch_assoc($q)){
|
||
|
|
$sql_error = "SELECT id FROM object_error_advert_notis WHERE object_id = {$r['object_id']} AND service_id = {$r['service_id']} AND agency_id = {$r['agency_id']}";
|
||
|
|
$q_error = $pdo->query($sql_error, true);
|
||
|
|
if($pdo->num_rows($q_error) == 0){
|
||
|
|
if($r['object_id'] > 0){
|
||
|
|
$arrayErrors[] = $r;
|
||
|
|
$objectIds[] = $r['object_id'];
|
||
|
|
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
if(empty($objectIds)) die();
|
||
|
|
|
||
|
|
$sql_obj = "SELECT id_add_user, id, adres FROM objects WHERE id in (".implode(',',$objectIds).") LIMIT 1000000 OPTION max_matches=1000000";
|
||
|
|
$q_obj = $db_sphinx->query($sql_obj);
|
||
|
|
while($r_obj = $db_sphinx->fetch_assoc($q_obj)){
|
||
|
|
$user_id = 0;
|
||
|
|
$user_id = (int)$r_obj['id_add_user'];
|
||
|
|
if($user_id > 0){
|
||
|
|
$objects[$r_obj['id']] = $r_obj;
|
||
|
|
$usersIds[] = $user_id;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
$usersIds = array_unique($usersIds);
|
||
|
|
|
||
|
|
if(empty($usersIds)) die();
|
||
|
|
|
||
|
|
$sql_user = "SELECT * FROM users WHERE id in (".implode(',', $usersIds).")";
|
||
|
|
$q_user = $pdo->query($sql_user);
|
||
|
|
while($r_user = $pdo->fetch_assoc($q_user)){
|
||
|
|
$users[$r_user['id']] = $r_user;
|
||
|
|
}
|
||
|
|
|
||
|
|
$Telega = new Telegram(false, $pdo);
|
||
|
|
$max = new MaxClass();
|
||
|
|
|
||
|
|
foreach($arrayErrors as $error){
|
||
|
|
$object_id = 0;
|
||
|
|
$user_id = 0;
|
||
|
|
if(isset($objects[$error['object_id']])){
|
||
|
|
$object_id = (int)$error['object_id'];
|
||
|
|
$user_id = (int)$objects[$object_id]['id_add_user'];
|
||
|
|
$errors = '';
|
||
|
|
$send = 0;
|
||
|
|
$send_max = 0;
|
||
|
|
$is_read = 1;
|
||
|
|
|
||
|
|
$errors = addslashes($error['errors']);
|
||
|
|
if($object_id > 0 && $user_id > 0){
|
||
|
|
if(isset($users[$user_id])){
|
||
|
|
if($users[$user_id]['telegramm_notice'] > 0 && $users[$user_id]['telegramm_chat_id'] > 0){
|
||
|
|
$chatId = $users[$user_id]['telegramm_chat_id'];
|
||
|
|
$text = "Ошибка при публикации объекта ID {$object_id}";
|
||
|
|
$text .= "\nАдрес: ".$objects[$object_id]['adres'];
|
||
|
|
$text .= "\nПроверьте заполнение данных объекта";
|
||
|
|
|
||
|
|
|
||
|
|
$Telega->send($text, $chatId);
|
||
|
|
$send = 1;
|
||
|
|
|
||
|
|
}
|
||
|
|
if($users[$user_id]['max_notice'] > 0 && $users[$user_id]['max_user_id'] > 0){
|
||
|
|
$userMaxId = $users[$user_id]['max_user_id'];
|
||
|
|
$text = "Ошибка при публикации объекта ID {$object_id}";
|
||
|
|
$text .= "\nАдрес: ".$objects[$object_id]['adres'];
|
||
|
|
$text .= "\nПроверьте заполнение данных объекта";
|
||
|
|
|
||
|
|
|
||
|
|
$max->send_messages_to_user($userMaxId, $text);
|
||
|
|
$send = 1;
|
||
|
|
|
||
|
|
}
|
||
|
|
$sql_in_error = "INSERT INTO object_error_advert_notis SET
|
||
|
|
object_id={$object_id},
|
||
|
|
service_id = {$error['service_id']},
|
||
|
|
errors='{$errors}',
|
||
|
|
agency_id = {$error['agency_id']},
|
||
|
|
processed_at = '{$error['processed_at']}',
|
||
|
|
user_id = {$user_id},
|
||
|
|
send = $send,
|
||
|
|
send_max = $send_max,
|
||
|
|
is_read = {$is_read}";
|
||
|
|
|
||
|
|
// echo $sql_in_error."\n";
|
||
|
|
$pdo->query($sql_in_error);
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|