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

244 lines
10 KiB
PHP
Raw Permalink 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");
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);
}
}
}
}