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

281 lines
10 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');
if($_SESSION['id'] == 19895){
$content = '{"ip":"127.0.0.1","tag":"M-5","vid":"1312366460","page":"B1_M-5(Море)","site":"ГЦК M-5(Море)","time":"1743134482","phone":"79585680416","phones":["79585680416"],"project":"B1_M-5(Море)","token":"61d64a35558b92a5dc79dc4f5d6bbc5f"}';
}
if($_SESSION['id'] == 19895){
die();
}
$message = json_decode($content, true);
//var_dump($message);
if(!empty($message)){
$agency_id = 19895;
}
if(!isset($agency_id)){
die();
} else {
$user_id = $agency_id;
$user = new User();
$user->get($user_id);
$tag = trim($message['tag']);
$phone = '+'.$message['phone'];
$project .= $message['project'];
if(empty($phone)) die();
$CallEvents = new CallEvents();
$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 == 19895){
$user_id = 19895;
$agency_id = 19895;
$funnel_id_req = 1513;
$user_id_req = 19895;
}
$users = array_keys($CallEvents->getAllUserAgency($user->agencyId, $users));
//var_dump($users);
$fio_client = "Без имени";
$opis = 'Имя проекта: '.$project;
$opis .= "&lt;br&gt;";
$opis = 'тег: '.$tag;
//$fio_client = $project;
if($agency_id == 19895){
$opis = '';
}
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 tag = '{$tag}'";
$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 FROM `advertising_sources` WHERE source
= '".$tag."' AND (user_id in (".implode(',', $users).") or manager_id in (".implode(',', $users)."))";
$q_source = $pdo->query($sql_source);
$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='".$tag."', 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}";
$q_aa = $pdo->query($sql_aa, true);
while($r_aa = $pdo->fetch_assoc($q_aa)) {
$activities_ids[] = (int)$r_aa['activities_id'];
}
}
} else {
$sql_activites = "SELECT id FROM `activities` WHERE name = '".$tag."' AND (user_id in (".implode(',', $users).") or manager_id in (".implode(',', $users)."))";
$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='".$tag."', user_id={$user_id}, manager_id={$user->agencyId}";
$pdo->query($sql_up);
$activities_id = $pdo->insert_id();
}
}
$hot = 0;
if($agency_id == 19895 && $group_id == 290){
$hot = 1;
}
$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 id_agent in (".implode(',', $users).")";
//echo $sql."\n";
// die();
$client = $pdo->fetch_assoc($pdo->query($sql));
if(!empty($client) && $client){
$client_id = $client['id'];
} else {
//$phone=$phones[0];
$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=6";
//echo $sql;
$pdo->query($sql);
$client_id = $pdo->insert_id();
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){
$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 = "Обращался повторно<br>";
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();
}
//Поиск воронки по источнику
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='{$fio_client}', description='{$opis}', user_id={$user_id}, integration=6, who_work={$who_work}, type_id=1, confirm={$confirm}, funnel_id={$funnel_id_req}, stage=1, source= '{$source_id}'";
$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 = "Имя проекта: ".$project;
$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);
/*$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, {$user_id_req})";
$pdo->query($sql_in_ev);*/
}
if($agency_id == 19895 && $req_id > 0){
$rqClass = new Requisitions(null, true);
$rqClass->set_agencyId($agency_id);
$rqClass->set_userId($user_id);
$rqClass->autoUnitReq(1, $req_id);
}
}
}