", $el); $el = str_replace("\r", "", $el); $el = mysql_real_escape_string($el); // от MySQL-инъекций $el = trim($el); // от лишних пробелов $el = stripslashes($el); // от слэшей return $el; } header('Content-Type: application/json'); ini_set('display_errors', 1); error_reporting(E_ALL & ~E_DEPRECATED & ~E_STRICT & ~E_NOTICE); $pdo = new MysqlPdo(hst, ndb, user, pass); $sql = "SET NAMES 'utf8'"; $pdo->query($sql); $content = file_get_contents('php://input'); if($_SESSION['id'] == 5238){ $content = '{"bothelp_user_id":28,"created_at":1758108805,"name":"тест имя","first_name":"Владимир","last_name":"Тех","profile_link":"","email":"","phone":"+79043322538","ref":"utm_source=instayana","utm_medium":"","utm_source":"instayana","utm_campaign":"","utm_term":"","utm_content":"","conversations_count":1,"first_contact_at":1734542246,"last_contact_at":1758108805,"user_id":"1111564648","messenger_username":"technical_spec","Город для недвижимости":"","Первоначальный взнос на руках":null,"Первоначальный взнос на руках текст":"100","Порядковый номер":4,"Сколько комнат":"7","Таргет":"Таргет","Ценовой диапазон":"450-900","created_at_show":"17/09/2025 11:33:25 UTC","cuid":"a1fs.s", "token":"238f8564db0c9084fcfaf1450e2d511f"}'; } $message = json_decode($content, true); var_dump($message); if(!isset($message['token']) || empty($message['token'])) die(); $sql_user = "SELECT api_key, users.id FROM user_api_keys LEFT JOIN users ON users.id = user_api_keys.user_id WHERE api_key = '{$message['token']}'"; $q_user = $pdo->query($sql_user, true); $r_user = $pdo->fetch_assoc($q_user); if(!$r_user || empty($r_user['id'])) { die(); } else if ((int)$r_user['id'] > 0){ $user_id = (int)$r_user['id']; $user = new User(); $user->get($user_id); $funnel_id = 0; $user_id = 0; $funnel_id_req = 0; $activities_id = 0; $source_id = 0; $users = array(); $client_id = 0; $email = ''; $partner = 0; $user_id_req = 0; $agency_id = 0; $confirm = 1; if($user->agencyId == 5238) { $user_id = 5238; $agency_id = 5238; $funnel_id = 0; $funnel_id_req = 0; $user_id_req = 5238; } if($user->agencyId == 19111){ $user_id = 19132; $agency_id = 19111; $funnel_id_req = 1400; $user_id_req = 19132; } $WebHookIn = new WebHookIn($pdo); $users = $WebHookIn->getAllUserAgency($user->agencyId); $mango = new MangoApiClass(0, 0); var_dump($users); $phone = $mango->ver_phone(str_replace(['(',')',' ','-'], '', $message['phone'])); if(!isset($phone) || empty($phone)) die(); $fio_client = ""; $email = ''; $opis = ''; if(isset($message['first_name']) && !empty($message['first_name'])) $fio_client .= $message['first_name']; if(isset($message['name']) && !empty($message['name'])){ if($fio_client != '') $fio_client .= ' '; $fio_client .= $message['name']; } if(isset($message['last_name']) && !empty($message['last_name'])){ if($fio_client != '') $fio_client .= ' '; $fio_client .= $message['last_name']; } if(empty(trim($fio_client))){ $fio_client = "Имя не указано"; } if(isset($message['email'])){ $email = $message['email']; } $source_name = trim($message['utm_source']); $sourceArray = array( 2474 =>'instba', 2475 =>'instayana', 2476 =>'vk', 2477 =>'offline', 2479 =>'personal', 2480 =>'yana', 2481 =>'avitopro', 2482 =>'avito', 2484 =>'tgba', 2513 =>'site', 3858 =>'tgyana', 3859 =>'tiktok', 3860 =>'treds', 3861 =>'reklama' ); $source_id = 0; if(!empty($source_name)){ $source_id = (int)array_search($source_name, $sourceArray); } $temp_mess = ['name', 'first_name', 'last_name', 'email', 'phone', 'ref', 'token']; foreach($message as $key => $mess){ if(!in_array($key, $temp_mess)){ if($opis != '') $opis .= '
'; if($key == 'created_at'){ $opis .= $key.': '.date('d.m.Y H:i:s', $mess); } else { $opis .= $key.': '.$mess; } } } echo $opis."\n"; var_dump($source_id); $nameSourse = ''; if($source_id == 0){ //Поиск источника по домену $sql_d = "SELECT *, (SELECT group_id FROM advertising_sources WHERE id = advertising_sources_domain.adv_id) AS group_id FROM `advertising_sources_domain` WHERE domain = '{$domain}' AND `type` = 2"; // echo $sql_d."\n"; $q_d = $pdo->query($sql_d, true); $r_d = $pdo->fetch_assoc($q_d); if($r_d){ $source_id = (int)$r_d['adv_id']; $group_id = (int)$r_d['group_id']; } } if($source_id == 0){ //Поиск источника $sql_source = "SELECT id, group_id FROM `advertising_sources` WHERE source = '".$nameSourse."' AND (user_id in (".implode(',', $users).") or manager_id in (".implode(',', $users)."))"; // echo $sql_source."\n"; $q_source = $pdo->query($sql_source); $r_source = $pdo->fetch_assoc($q_source); if($r_source['id'] > 0){ $source_id = $r_source['id']; $group_id = (int)$r_source['group_id']; } else { $sql_up = "INSERT INTO `advertising_sources` SET source='".$nameSourse."', user_id={$user_id}, manager_id={$user->agencyId}"; $pdo->query($sql_up); $source_id = $pdo->insert_id(); } } //Поиск тега //Поиск тега if($agency_id == 19895){ if($source_id > 0){ $sql_aa = "SELECT * FROM advertising_sources_activities WHERE source_id = {$source_id}"; echo $sql_aa."\n"; $q_aa = $pdo->query($sql_aa, true); while($r_aa = $pdo->fetch_assoc($q_aa)) { $activities_ids[] = (int)$r_aa['activities_id']; } } } else if ($activities_id == 0 && !empty($nameSourse)) { $sql_activites = "SELECT id FROM `activities` WHERE name = '".$nameSourse."' AND (user_id in (".implode(',', $users).") or manager_id in (".implode(',', $users)."))"; echo $sql_activites."\n"; $q_aclivites = $pdo->query($sql_activites); $r_activites = $pdo->fetch_assoc($q_aclivites); if($r_activites['id'] > 0){ $activities_id = $r_activites['id']; //echo $activities_id."\n"; } else { $sql_up = "INSERT INTO `activities` SET name='".$nameSourse."', user_id={$user_id}, manager_id={$user->agencyId}"; $pdo->query($sql_up); $activities_id = $pdo->insert_id(); } } if($agency_id == 19895){ $opis = ''; } $hot = 0; if($agency_id == 19895 && $group_id == 290){ $hot = 1; } echo $hot."\n"; $confirm = 1; $who_work = $user_id; if($agency_id == 19895){ //Поиск ответственного по источнику $sql_w = "SELECT * FROM advertising_sources_who_work WHERE adv_id = {$source_id}"; $q_w = $pdo->query($sql_w); if($pdo->num_rows($q_w) > 0){ $r_w = $pdo->fetch_assoc($q_w); $user_id = $who_work = (int)$r_w['who_work']; } else { $confirm = 0; $who_work = 0; } } $sql = "SELECT `id`, `stage`, `deleted` FROM `clients` WHERE cancel=0 AND (phone = '$phone' OR id in (SELECT client_id FROM clients_phone2 WHERE phone = '$phone')) and (who_work in (".implode(',', $users).") or id_agent in (".implode(',', $users)."))"; $client = $pdo->fetch_assoc($pdo->query($sql)); if(!empty($client) && $client){ $client_id = $client['id']; } else { $sql = "INSERT INTO clients SET phone='{$phone}', hot={$hot}, email='{$email}', fio='{$fio_client}', opis='{$opis}', id_agent={$user_id}, who_work={$who_work}, date_add=NOW(), confirm={$confirm}, funnel_id={$funnel_id}, stage=1, source= '{$source_id}', integration=13"; if($agency_id == 19895){ // echo $sql; die(); } /* if($_SESSION['id'] == 19895){ echo $sql."\n"; die(); }*/ if(isset($partner) && $partner > 0){ $doers[$user_id] = 1; $doers[$partner] = 1; $sql .= ", doers = '".clearInputElement(json_encode($doers))."', doer_clients=1"; } $pdo->query($sql); $client_id = $pdo->insert_id(); if($partner > 0) { $sql_conf = "INSERT INTO `events_clients` (`user_id`, `client_id`, `from_id`, `event`, `read`, `send_telegramm`) VALUES (".$user_id.", ".$client_id.", ".$partner.", 'transmitted_parallel', 1,1)"; $pdo->query($sql_conf); } if($funnel_id > 0){ $Clients = new Clients; $Clients->get_class_etap($client_id, $funnel_id); } if($activities_id){ $sql_a = "INSERT INTO `clients_activities` (`activity_id`, `client_id`) VALUES ({$activities_id}, {$client_id})"; $pdo->query($sql_a); } else if($activities_ids && !empty($activities_ids)){ foreach($activities_ids as $activities_id){ $sql_a = "INSERT INTO `clients_activities` (`activity_id`, `client_id`) VALUES ({$activities_id}, {$client_id})"; $pdo->query($sql_a); } } } if($client_id > 0 && $user->agencyId != 17347){ $web_hook_in = new WebHookIn($pdo); $reqid=(int)$web_hook_in->check_is_req($who_work, $source_id, $client_id); if($reqid > 0 && $agency_id == 19895) { $comment = "Обращался повторно
"; if(!empty($activities_ids)){ $sql_activites = "SELECT * FROM activities WHERE id in (".implode(',', $activities_ids).")"; $q_aclivites = $pdo->query($sql_activites); $comment .= "Теги: "; while($r_activites = $pdo->fetch_assoc($q_aclivites)){ $comment .= $r_activites['name']." "; } $sql_ev = "INSERT INTO user_client_events (req_id, `type`, comment, user_id, from_id, create_date, calendar_view) VALUES ($reqid, 'comment', '{$comment}', {$user_id}, {$user_id}, NOW(), 1)"; $pdo->query($sql_ev); } die(); } $name_req = 'Подбор объекта для '.$fio_client; if($agency_id == 19895){ $name_req = $fio_client; } //Поиск воронки по источнику if($source_id > 0){ $sql_req_funnel="SELECT * FROM advertising_sources_funnel WHERE source_id = {$source_id}"; $q_req_funnel = $pdo->query($sql_req_funnel, true); $r_req_funnel = $pdo->fetch_assoc($q_req_funnel); if($r_req_funnel && $r_req_funnel['funnel_id_req'] > 0){ $funnel_id_req = (int)$r_req_funnel['funnel_id_req']; } } $sql = "INSERT INTO requisitions SET client_id={$client_id}, hot={$hot}, name='{$name_req}', description='{$opis}', user_id={$user_id}, integration=13, who_work={$who_work}, type_id=1, confirm=$confirm, funnel_id={$funnel_id_req}, stage=1, source= '{$source_id}'"; /* if($_SESSION['id'] == 19895){ echo $sql; //die(); }*/ if(isset($partner) && $partner > 0){ $doers[$user_id] = 1; $doers[$partner] = 1; $sql .= ", doers = '".clearInputElement(json_encode($doers))."', doer_clients=1"; } /* if($_SESSION['id'] == 19895){ echo $sql; die(); }*/ $pdo->query($sql); $req_id = $pdo->insert_id(); if($funnel_id_req > 0){ $Requisitions = new Requisitions(); $Requisitions->get_class_etap($req_id, $funnel_id_req); } if($activities_ids && !empty($activities_ids)){ foreach($activities_ids as $activities_id){ $sql_a = "INSERT INTO `requisitions_activities` (`activity_id`, `req_id`) VALUES ({$activities_id}, {$req_id})"; $pdo->query($sql_a); } } else if($activities_id){ $sql_a = "INSERT INTO `requisitions_activities` (`activity_id`, `req_id`) VALUES ({$activities_id}, {$req_id})"; $pdo->query($sql_a); } if($who_work > 0){ $comment = "BotHelp"; $sql_add = "INSERT INTO `events_clients` (`user_id`, `req_id`, `from_id`, `event`, `dop_text`, `read`) ". "VALUES ({$user_id}, {$req_id}, {$who_work}, 'add', '{$comment}', 2)"; $pdo->query($sql_add); if($agency_id != 19895){ $sql_in_ev = "INSERT INTO user_client_events (user_id, req_id, create_date, schedule_date, `type`, comment, calendar_view, from_id) ". "VALUES ($user_id_req, $req_id, '".date('Y-m-d H:i:s')."', '".date('Y-m-d H:i:s', strtotime('+15 minutes'))."', 'call', '{$comment}', 0, {$who_work})"; $pdo->query($sql_in_ev); if($partner > 0) { $sql_conf = "INSERT INTO `events_clients` (`user_id`, `req_id`, `from_id`, `event`, `read`, `send_telegramm`) VALUES (".$user_id.", ".$req_id.", ".$partner.", 'transmitted_parallel', 2,0)"; $pdo->query($sql_conf); } } } if($agency_id == 19895 && $req_id > 0){ $arr_data = array(); if(isset($message->answers)){ foreach($message->answers as $key => $answer){ $sql_fields = "SELECT * FROM `client_req_fields` WHERE title = '".trim($answer->q)."' AND agency_id = {$agency_id}"; $q_fields = $pdo->query($sql_fields); $r_fields = $pdo->fetch_assoc($q_fields); if($r_fields){ if(is_array($answer->a)){ foreach($answer->a as $keyan => $an){ echo $an."\n"; } } else { $value = trim($answer->a); if($r_fields['type'] == 1 || $r_fields['type'] == 0){ $arr_data[] = "({$req_id}, {$r_fields['id']}, 1, '\"{$value}\"')"; } elseif ($r_fields['type'] == 2){ $params = json_decode($r_fields['params'], true); //var_dump($params['items']); foreach($params['items'] as $item){ if(trim($item['name']) == $value){ $id_item = $item['value']; $arr_data[] = "({$req_id}, {$r_fields['id']}, 1, {$id_item})"; } } } // echo $answer->a."\n"; } } } } if(isset($message->extra->utm) && !empty($message->extra->utm)){ //$opis .= " <br>utm: "; foreach($message->extra->utm as $keyutm => $utm){ $sql_fields = "SELECT * FROM `client_req_fields` WHERE title = 'UTM ".trim($keyutm)."' AND agency_id = {$agency_id}"; $q_fields = $pdo->query($sql_fields); $r_fields = $pdo->fetch_assoc($q_fields); if($r_fields){ if($r_fields['type'] == 1 || $r_fields['type'] == 0){ $arr_data[] = "({$req_id}, {$r_fields['id']}, 1, '\"{$utm}\"')"; } elseif ($r_fields['type'] == 2){ $params = json_decode($r_fields['params'], true); //var_dump($params['items']); foreach($params['items'] as $item){ if(trim($item['name']) == $utm){ $id_item = $item['value']; $arr_data[] = "({$req_id}, {$r_fields['id']}, 1, {$id_item})"; } } } } } } if(!empty($arr_data)){ $sql_data = "INSERT INTO requisition_data (`req_id`, `field_id`, `type`, `value`) VALUES ".implode(',' , $arr_data); $pdo->query($sql_data); } $rqClass = new Requisitions(null, true); $rqClass->set_agencyId($agency_id); $rqClass->set_userId($user_id); $rqClass->autoUnitReq(1, $req_id); } } }