Joywork/webhooks/marquiz_test.php
2026-05-22 21:21:54 +03:00

279 lines
12 KiB
PHP
Raw 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
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 .= "&lt;br&gt;Вопросы: ";
foreach($message->answers as $key => $answer){
$opis .= " &lt;br&gt;".$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 .= " &lt;br&gt;utm: ";
foreach($message->extra->utm as $keyutm => $utm){
$opis .= "&lt;br&gt;".$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 .= " &lt;br&gt;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);
}
}
}
}
}