279 lines
12 KiB
PHP
279 lines
12 KiB
PHP
<?php
|
||
require_once($_SERVER['DOCUMENT_ROOT']."/config.php");
|
||
function clearInputElement($el2) // очистка входящего элимента
|
||
{
|
||
|
||
$el = $el2;
|
||
|
||
$el = strip_tags($el); // от тегов
|
||
|
||
$el = htmlspecialchars($el); // от кавычек и прочего
|
||
|
||
$el = str_replace("\n", "<br>", $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');
|
||
//file_put_contents(__DIR__.'/log_marquiz.txt', $content. "\n", FILE_APPEND);
|
||
|
||
if($_SESSION['id'] == 19895){
|
||
|
||
$content = '{"raw":[{"q":"2810a7b3-3b03-44bf-92c0-08ce8822efda","a":"a794630c-fe72-4ec3-ab7f-641908e0aaed"},{"q":"f6bb4c92-48af-4b03-a613-f034fd92cedd","a":"c031564c-9a1e-4f51-a86d-e20c3fb1da9b"},{"q":"yoGdlNXqhR","a":"dwW2AvA3O4"}],"answers":[{"q":"Цель покупки?","t":"variants","a":"Инвестиции"},{"q":"Укажите предполагаемый бюджет?","t":"variants","a":"От 20 млн. рублей"},{"q":"Будут ли использоваться ипотечные средства?","t":"variants","a":"Да"}],"quiz":{"id":"668427f63eb4af0026418dfd","name":"Не скучный сад ( Основной )"},"created":"2025-03-02T10:59:48.349Z","extra":{"href":"https:\/\/gkneskuchnyjsadsochi.ru\/?utm_source=yandex&utm_medium=cpc&utm_campaign=113234282&utm_content=16373060467&utm_term=%D0%BA%D1%83%D0%BF%D0%B8%D1%82%D1%8C%20%D1%8D%D0%BB%D0%B8%D1%82%D0%BD%D1%8B%D0%B5%20%D0%B0%D0%BF%D0%B0%D1%80%D1%82%D0%B0%D0%BC%D0%B5%D0%BD%D1%82%D1%8B%20%D0%B2%20%D1%81%D0%BE%D1%87%D0%B8&yclid=67255402977296383&y_ref=dsp.yandex.ru","userAgent":"Mozilla\/5.0 (Linux; Android 11; M2006C3LG Build\/RP1A.200720.011; wv) AppleWebKit\/537.36 (KHTML, like Gecko) Version\/4.0 Chrome\/131.0.6778.260 Mobile Safari\/537.36","utm":{"campaign":"113234282","content":"16373060467","medium":"cpc","source":"yandex","term":"купить элитные апартаменты в сочи","name":"113234282"},"yclid":"67255402977296383","cookies":{"_ym_uid":"1739967302170775290"},"lng":"ru","currency":"RUB","notify":"now","discount":750000,"discountType":"number","discountEffect":"increasing","timezone":3,"lang":"ru","paymentEnabled":false,"referrer":"https:\/\/gkneskuchnyjsadsochi.ru\/","ip":"85.172.88.69","city":"Волгоград","country":"Россия"},"form":{"id":"pW3R16L5Fk"},"contacts":{"phone":"+79123456789"},"result":[]}';
|
||
|
||
}
|
||
$message = json_decode($content);
|
||
|
||
var_dump($message);
|
||
|
||
//var_dump($message->extra);
|
||
$url = parse_url($message->extra->href);
|
||
|
||
|
||
$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;
|
||
|
||
$CallEvents = new CallEvents();
|
||
if(isset($message->contacts) && !empty($message->contacts)) {
|
||
|
||
|
||
if($message->raw[1]->q == 'f6bb4c92-48af-4b03-a613-f034fd92cedd'){
|
||
$agency_id = 19895;
|
||
$user_id = 19895;
|
||
$funnel_id = 0;
|
||
$funnel_id_req = 1513;
|
||
$user_id_req = 19895;
|
||
//if(!isset($_SESSION['id'])) die();
|
||
}
|
||
|
||
|
||
|
||
|
||
if($user_id > 0){
|
||
$user = new User();
|
||
$user->get($user_id);
|
||
|
||
$users = array_keys($CallEvents->getAllUserAgency($user->agencyId, $users));
|
||
$phone = str_replace(['(',')',' ','-'], '', $message->contacts->phone);
|
||
$fio_client = "Имя не указано";
|
||
if(isset($message->contacts->name) && !empty($message->contacts->name))
|
||
$fio_client = $message->contacts->name;
|
||
if(isset($message->contacts->email)){
|
||
$email = $message->contacts->email;
|
||
}
|
||
|
||
$nameQuiz = $message->quiz->name;
|
||
$nameSourse = 'Квиз '.trim($nameQuiz);
|
||
if($agency_id == 19895){
|
||
$nameSourse = trim($nameQuiz);
|
||
}
|
||
|
||
|
||
//Поиск тега
|
||
$sql_activites = "SELECT id FROM `activities` WHERE name = '".$nameSourse."' AND (user_id in (".implode(',', $users).") or manager_id in (".implode(',', $users)."))";
|
||
|
||
$q_aclivites = $pdo->query($sql_activites, true);
|
||
$r_activites = $pdo->fetch_assoc($q_aclivites, true);
|
||
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($source_id == 0){
|
||
//Поиск источника
|
||
$sql_source = "SELECT id FROM `advertising_sources` WHERE source
|
||
= '".$nameSourse."' AND (user_id in (".implode(',', $users).") or manager_id in (".implode(',', $users)."))";
|
||
$q_source = $pdo->query($sql_source, true);
|
||
$r_source = $pdo->fetch_assoc($q_source);
|
||
if($r_source['id'] > 0){
|
||
$source_id = $r_source['id'];
|
||
//echo $source_id."\n";
|
||
} 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();
|
||
}
|
||
}
|
||
$opis = "Квиз ".$nameQuiz;
|
||
if(isset($message->answers)){
|
||
$opis .= "<br>Вопросы: ";
|
||
foreach($message->answers as $key => $answer){
|
||
$opis .= " <br>".$answer->q.": ";
|
||
if(is_array($answer->a)){
|
||
foreach($answer->a as $keyan => $an){
|
||
if($keyan > 0){
|
||
$opis .= "; ";
|
||
}
|
||
$opis .= $an;
|
||
}
|
||
} else {
|
||
$opis .= $answer->a;
|
||
}
|
||
}
|
||
}
|
||
|
||
if(isset($message->extra->utm) && !empty($message->extra->utm)){
|
||
$opis .= " <br>utm: ";
|
||
foreach($message->extra->utm as $keyutm => $utm){
|
||
$opis .= "<br>".$keyutm.": ".$utm;
|
||
}
|
||
}
|
||
|
||
|
||
$sql = "SELECT `id`, `stage`, `deleted` FROM `clients` WHERE (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)."))";
|
||
echo $sql;
|
||
$client = $pdo->fetch_assoc($pdo->query($sql, true));
|
||
if(!empty($client) && $client){
|
||
$client_id = $client['id'];
|
||
} else {
|
||
|
||
$sql = "INSERT INTO clients SET phone='{$phone}', email='{$email}', fio='{$fio_client}', opis='{$opis}', id_agent={$user_id}, who_work={$user_id}, date_add=NOW(), confirm=1, funnel_id={$funnel_id}, stage=1, source= '{$source_id}', integration=1";
|
||
|
||
/* 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);
|
||
}
|
||
$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){
|
||
$sql_req = "SELECT * FROM requisitions WHERE client_id = {$client_id}";
|
||
|
||
$q_req = $pdo->query($sql_req, true);
|
||
$req = $pdo->fetch_assoc($q_req);
|
||
$req_id = (int)$req['id'];
|
||
|
||
|
||
if($agency_id == 19895){
|
||
$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);
|
||
}
|
||
|
||
}
|
||
|
||
}
|
||
}
|
||
} |