Joywork/webhooks/envybox.php

244 lines
10 KiB
PHP
Raw Permalink Normal View History

2026-05-22 20:21:54 +02:00
<?php
require_once($_SERVER['DOCUMENT_ROOT']."/config.php");
header('Content-Type: application/json');
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;
}
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_envybox.txt', $content. "\n", FILE_APPEND);
/*$content = 'webhooktype=12&phone=77777777777&name=Ира&email=&message=&created_at=2022-07-14 19:31:12&referrer=&keyword=&ip=178.120.17.138&place=Брест, Брестская область&site=uproperty.moscow&url=https://uproperty.moscow/&utm_source=&utm_medium=&utm_campaign=&utm_content=&utm_term=&visitor_id=10574902271&google_client_id=241934448.1657816075&rs=&roistat_promo=0&adv_uid=&calltracking_id=&chat_text=[Автоприглашение, 14.07.2022 в 19:30]
%D0%97%D0%B4%D1%80%D0%B0%D0%B2%D1%81%D1%82%D0%B2%D1%83%D0%B9%D1%82%D0%B5%21
[Автоприглашение, 14.07.2022 в 19:30]
%D0%92+%D0%BD%D1%8B%D0%BD%D0%B5%D1%88%D0%BD%D0%B8%D1%85+%D1%83%D1%81%D0%BB%D0%BE%D0%B2%D0%B8%D1%8F%D1%85+%D0%BD%D0%B5%D0%B4%D0%B2%D0%B8%D0%B6%D0%B8%D0%BC%D0%BE%D1%81%D1%82%D1%8C+%D1%80%D0%B0%D1%81%D1%82%D0%B5%D1%82+%D0%B2+%D1%86%D0%B5%D0%BD%D0%B5+%D0%BA%D0%B0%D0%B6%D0%B4%D1%8B%D0%B9+%D0%B4%D0%B5%D0%BD%D1%8C..
[Автоприглашение, 14.07.2022 в 19:30]
%D0%9D%D0%BE+%D1%83+%D0%BD%D0%B0%D1%81+%D0%B5%D1%81%D1%82%D1%8C+%D1%8D%D0%BA%D1%81%D0%BA%D0%BB%D1%8E%D0%B7%D0%B8%D0%B2%D0%BD%D1%8B%D0%B5+%D0%BA%D0%B2%D0%B0%D1%80%D1%82%D0%B8%D1%80%D1%8B+%D0%BF%D0%BE+%D1%81%D1%82%D0%B0%D1%80%D0%BE%D0%BC%D1%83+%D0%BA%D1%83%D1%80%D1%81%D1%83+%F0%9F%98%89+%0A%0A%D0%A0%D0%B0%D1%81%D1%81%D0%BA%D0%B0%D0%B7%D0%B0%D1%82%D1%8C+%D0%BF%D0%BE%D0%B4%D1%80%D0%BE%D0%B1%D0%BD%D0%B5%D0%B5%3F
[Ира, 14.07.2022 в 19:30]
%D0%A2%D0%B5%D1%81%D1%82+2+joywork+Urban+enybox.+%D0%9F%D0%B5%D1%80%D0%B2%D1%8B%D0%B9+%D0%BD%D0%B5+%D1%81%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%B0%D0%BB.
&key=cd495472b0394512c6b635c67d941f09&lpgenerator_id=&leadvertex_id=&link=http://chat.ru.envybox.io/chat/show/-N6xY6zu9OdzuD6RILrs&chat_id=31093115&custom_data=[]&yandex_client_id=1657816068959925020
';*/
$query = urldecode($content);
$arrQuery = explode('&', $query);
$result = array();
foreach($arrQuery as $val_query){
$arrVal = explode('=',$val_query);
$massage[$arrVal[0]] = trim($arrVal[1]);
}
//var_dump($massage);
$funnel_id = 0;
$user_id = 0;
$funnel_id_req = 493;
$activities_id = 0;
$source_id = 0;
$users = array();
$client_id = 0;
$email = '';
$partner = 0;
$CallEvents = new CallEvents();
$url = parse_url($massage['url']);
$array_include = ['url', 'site', 'webhooktype', 'chat_text', 'place', 'ip'];
if(isset($massage['phone']) && !empty($massage['phone'])){
$phone = '+'.str_replace(['(',')',' ','-','+'], '', $massage['phone']);
$fio_client = "Имя не указано";
if(isset($massage['name']) && !empty($massage['name']))
$fio_client = $massage['name'];
$email = $massage['email'];
$opis = 'Заявка с EnvyBox с сайта: '.$massage['site'];
if(isset($massage['chat_text'])){
$opis .= "&lt;br&gt;Текст чата: ".str_replace("\n","&lt;br&gt;", $massage['chat_text']);
}
if(isset($massage['place'])){
$opis .= "&lt;br&gt;Локация: ".$massage['place'];
}
if(isset($massage['ip'])){
$opis .= "&lt;br&gt;Ip: ".$massage['ip'];
}
foreach($massage as $key => $mes){
if(!empty($mes) && !in_array($key, $array_include)){
$opis .= "&lt;br&gt;".$key.": ".$mes;
}
}
if(isset($url['host']) && !empty($url['host'])){
switch ($url['host']){
case 'skyview-moscow.ru': {
$user_id = 12429;
$funnel_id = 0;
$funnel_id_req = 479;
$activities_id = 1045;
$source_id = 1270;
break;
}
case 'uproperty.moscow': {
$user_id = 12429;
$funnel_id = 0;
$funnel_id_req = 479;
$activities_id = 1046;
$source_id = 1271;
break;
}
case 'khediproperties.com': {
$user_id = 12429;
$funnel_id = 0;
$funnel_id_req = 493;
$activities_id = 1047;
$source_id = 1288;
$partner = 12429;
break;
}
case 'istanbul.khediproperties.com': {
/* $user_id = 11593;
$partner = 12429;*/
$user_id = 12429;
$funnel_id = 0;
$funnel_id_req = 494;
break;
}
}
}
if($user_id > 0){
$CallEvents = new CallEvents();
$user = new User();
$user->get($user_id);
$users = array_keys($CallEvents->getAllUserAgency($user->agencyId, $users));
//Поиск тега
if($activities_id == 0){
$sql_activites = "SELECT id FROM `activities` WHERE name = 'Сайт ".$url['host']."' 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='Сайт ".$url['host']."', 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
= 'Сайт ".$url['host']."' 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='Сайт ".$url['host']."', user_id={$user_id}, manager_id={$user->agencyId}";
$pdo->query($sql_up);
$source_id = $pdo->insert_id();
}
}
$sql = "SELECT `id`, `stage`, `deleted` FROM `clients` WHERE cancel=0 AND (phone = '$phone' or phone2 like '%&quot;$phone&quot;%') 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}', 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=5";
if(isset($partner) && $partner > 0){
$doers = array($user_id=>1, $partner=>1);
//$doers_confirm = 0;
$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->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){
$sql = "INSERT INTO requisitions SET client_id={$client_id}, name='Подбор объекта для {$fio_client}', description='{$opis}', user_id={$user_id}, integration=5, who_work={$user_id}, type_id=1, confirm=1, funnel_id={$funnel_id_req}, stage=1, source= '{$source_id}'";
if(isset($partner) && $partner > 0){
$doers = array($user_id=>1, $partner=>1);
//$doers_confirm = 0;
$sql .= ", doers = '".clearInputElement(json_encode($doers))."', doer_clients=1";
}
$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);
}
$sql_a = "INSERT INTO `requisitions_activities` (`activity_id`, `req_id`) VALUES ({$activities_id}, {$req_id})";
$pdo->query($sql_a);
$comment = 'Заявка с EnvyBox с сайта: '.$massage['site'];
$sql_add = "INSERT INTO `events_clients` (`user_id`, `req_id`, `from_id`, `event`, `dop_text`, `read`) ".
"VALUES ({$user_id}, {$req_id}, {$user_id}, '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_id, '".date('Y-m-d H:i:s')."', '".date('Y-m-d H:i:s', strtotime('+15 minutes'))."', 'call', '{$comment}', 0, {$user_id})";
$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);
}
}
}
}