request;
if($request == 'save_dep'){
$devId = (int)$data->dep_id;
$roles = $data->roles;
$name = $data->name;
$agencyId = (int)$data->agency_id;
if($devId == 0){
$sql = "INSERT INTO `departments` SET name = '{$name}', agency_id = {$agencyId}";
if(mysql_query($sql)){
$devId = mysql_insert_id();
} else {
echo mysql_error();
exit();
}
} else {
$sql = "UPDATE `departments` SET name = '{$name}' WHERE `id` = {$devId}";
if(!mysql_query($sql)){
echo mysql_error();
}
}
foreach($roles as $role){
if(isset($role->id)){
$sql = "UPDATE `roles` SET `name` = '".$role->name."', `role` = '".$role->type."' WHERE `id` = ".$role->id;
} else {
$sql = "INSERT INTO `roles` SET `name` = '".$role->name."', `role` = '".$role->type."', `department_id` = ".$devId;
}
if(!mysql_query($sql)){
echo mysql_error();
exit();
}
}
}
if($request == 'get_dep'){
$agency_id = (int)$data -> agency_id;
$sql = "SELECT * FROM `departments` WHERE agency_id = {$agency_id}";
$res = array();
if($q = mysql_query($sql)){
while($r = mysql_fetch_assoc($q)){
$res[$r['id']] = $r;
}
} else {
echo mysql_error();
exit();
}
echo json_encode($res, JSON_UNESCAPED_UNICODE);
}
if($request == 'get_region_child'){
$region_id = json_decode($data->region_id);
$html = '';
$region_rf = mysql_query("SELECT * FROM rf_regions WHERE parent = $region_id");
while ($row = mysql_fetch_assoc($region_rf)) {
$html .= '';
}
echo json_encode(['html' => ('')]);
exit();
}
if($request == 'get_dep_one'){
$devId = (int)$data->dep_id;
$sql = "SELECT * FROM `departments` WHERE id = ".$devId;
$q = mysql_query($sql);
$res = mysql_fetch_assoc($q);
$sql = "SELECT * FROM `roles` WHERE `department_id` = {$devId}";
$q = mysql_query($sql);
$roles_base = array();
while($r = mysql_fetch_assoc($q)){
$roles_base[$r['id']] = $r;
}
$res['roles'] = $roles_base;
echo json_encode($res, JSON_UNESCAPED_UNICODE);
}
if($request == 'delete_dep'){
$devId = (int)$data->dep_id;
if(!mysql_query("DELETE FROM `departments` WHERE id = ".$devId)){
echo mysql_error();
}
if(!mysql_query("DELETE FROM `roles` WHERE department_id = ".$devId)){
echo mysql_error();
}
if(!mysql_query("UPDATE users SET department_id = 0, role_id = 0 WHERE department_id = ".$devId)){
echo mysql_error();
}
}
if($request == 'delete_role'){
$roleId = (int)$data->role_id;
echo "DELETE FROM `roles` WHERE `id` = ".$roleId;
if(!mysql_query("DELETE FROM `roles` WHERE `id` = ".$roleId)){
echo mysql_error();
}
if(!mysql_query("UPDATE users SET department_id = 0, role_id = 0 WHERE role_id = ".$roleId)){
echo mysql_error();
}
}
if ($request == 'get_object_fields') {
$agency_id = (int)$data->agency_id;
$sql = "SELECT `fields`.*, `blocks`.`title` AS `block_title`
FROM `object_fields` AS `fields`
LEFT JOIN `object_fields_blocks` AS `blocks` ON (`fields`.`block_id`=`blocks`.`id` OR `fields`.`block_id`=0)
WHERE `fields`.`agency_id`='$agency_id'
GROUP BY `fields`.`id` ORDER BY `blocks`.`order`, `fields`.`order`";
if ($query = mysql_query($sql)) {
$fields = array();
if (mysql_num_rows($query) > 0) {
while($row = mysql_fetch_assoc($query)) {
if ($row['block_id'] == 0)
$block_title = 'Общие поля';
else
$block_title = $row['block_title'];
$fields[] = [
'id' => $row['id'],
'name' => $row['name'],
'title' => $row['title'],
'type' => $row['type'],
'order' => $row['order'],
'block_id' => $row['block_id'],
'is_available' => $row['is_available'],
'is_filtrable' => $row['is_filtrable'],
'is_presentation' => $row['is_presentation'],
'is_required' => $row['is_required'],
'is_active' => $row['is_active'],
'block_title' => $block_title,
];
}
}
/*usort($fields, function ($a, $b) {
return $a['block_id'] - $b['block_id'];
});*/
echo json_encode($fields);
} else {
echo mysql_error();
}
}
if ($request == 'get_object_field') {
//error_reporting(E_ALL | E_STRICT);
//ini_set('display_errors', 1);
$field_id = (int)$data->field_id;
$agency_id = (int)$data->agency_id;
$sql = "SELECT * FROM `object_fields` WHERE `id` = '$field_id' AND `agency_id` = '$agency_id' LIMIT 1";
if ($query = mysql_query($sql)) {
$field = mysql_fetch_assoc($query);
$field_params = [];
$param_d = isset($field['params']) ? json_decode(html_entity_decode($field['params'], ENT_QUOTES), true) : [];
unset($field['params']);
foreach ($param_d['items'] as $param) {
if (!empty($param)) {
if (!empty($param['name']) && !empty($param['value'])) {
$field_params[] = [
'name' => $param['name'],
'value' => $param['value'],
'mode' => 'saved',
];
}
}
}
$field['params']['items'] = $field_params;
echo json_encode(['success' => true, 'field' => (object)$field]);
} else {
echo mysql_error();
}
exit();
}
if ($request == 'get_field_translit') {
$title = trim($data->title);
$title = strip_tags(htmlspecialchars(trim($title)));
$title = str_replace(' ', '_', $title);
if (function_exists('transliterator_transliterate'))
$title = transliterator_transliterate('Any-Latin; Latin-ASCII', $title);
else
$title = iconv('UTF-8', 'ASCII//TRANSLIT//IGNORE', $title);
$title = preg_replace("/[^a-zA-Z0-9\.\[\]_| -]/", '', $title);
$title = str_replace('__', '_', $title);
$title = mb_substr($title, 0, 64);
$title = ucwords(str_replace('_', ' ', strtolower($title)));
$title = ucwords(str_replace(' ', '-', $title));
echo json_encode(['result' => strtolower($title)]);
}
if ($request == 'delete_object_field') {
$field_id = (int)$data->field_id;
$agency_id = (int)$data->agency_id;
$sql = "DELETE FROM `object_fields` WHERE `id` = '$field_id' AND `agency_id` = '$agency_id' LIMIT 1";
if ($query = mysql_query($sql)) {
echo json_encode(['success' => true]);
} else {
echo json_encode(['success' => false, 'error' => mysql_error()]);
}
}
if ($request == 'delete_object_field_block') {
$block_id = (int)$data->block_id;
$agency_id = (int)$data->agency_id;
$sql = "DELETE FROM `object_fields_blocks` WHERE `id` = '$block_id' AND `agency_id` = '$agency_id' LIMIT 1";
if ($query = mysql_query($sql)) {
mysql_query("UPDATE `object_fields` SET `block_id` = 0 WHERE `block_id` = '$block_id' AND `agency_id` = '$agency_id'");
echo json_encode(['success' => true]);
} else {
echo json_encode(['success' => false, 'error' => mysql_error()]);
}
}
if ($request == 'save_object_field') {
$field_id = (int)$data->field_id;
$agency_id = (int)$data->agency_id;
$param = (array)$data->param;
if (is_null($param['order']))
$param['order'] = '0';
if (is_null($param['params']))
$param['params'] = 'NULL';
else
$param['params'] = "'" . json_encode($param['params'], JSON_UNESCAPED_UNICODE) . "'";
if ($field_id) {
$sql = "UPDATE `object_fields`
SET `name` = '$param[name]',
`title` = '$param[title]',
`type` = '$param[type]',
`is_available` = '$param[is_available]',
`is_presentation` = '$param[is_presentation]',
`is_filtrable` = '$param[is_filtrable]',
`is_active` = '$param[is_active]',
`is_required` = '$param[is_required]',
`params` = $param[params],
`block_id` = '$param[block_id]',
`updated_by` = '$_SESSION[id]'
WHERE `id` = '$field_id' AND `agency_id` = '$agency_id' LIMIT 1";
} else {
$sql = "INSERT INTO `object_fields` (
`name`,
`title`,
`type`,
`order`,
`is_available`,
`is_presentation`,
`is_filtrable`,
`is_active`,
`is_required`,
`params`,
`block_id`,
`agency_id`,
`created_by`
) VALUES (
'$param[name]',
'$param[title]',
'$param[type]',
'$param[order]',
'$param[is_available]',
'$param[is_presentation]',
'$param[is_filtrable]',
'$param[is_active]',
'$param[is_required]',
$param[params],
'$param[block_id]',
'$agency_id',
'$_SESSION[id]'
)";
}
if (!empty($sql)) {
if ($query = mysql_query($sql)) {
echo json_encode(['success' => true]);
} else {
echo json_encode(['success' => false, 'error' => mysql_error()]);
}
} else {
echo json_encode(['success' => false]);
}
}
if ($request == 'save_object_fields_block') {
$agency_id = (int)$data->agency_id;
$block_id = (int)$data->block_id;
$block_title = (string)$data->block_title;
$block_order = (int)$data->block_order;
if ($block_id) {
$sql = "UPDATE `object_fields_blocks`
SET `title` = '$block_title',
`order` = '$block_order',
`updated_by` = '$_SESSION[id]'
WHERE `id` = '$block_id' AND `agency_id` = '$agency_id' LIMIT 1";
} else {
$sql = "INSERT INTO `object_fields_blocks` (
`title`,
`order`,
`agency_id`,
`created_by`
) VALUES (
'$block_title',
'$block_order',
'$agency_id',
'$_SESSION[id]'
)";
}
if (!empty($sql)) {
if ($query = mysql_query($sql)) {
$sql3_1 = "SET @block_order:=0";
$sql3_2 = "UPDATE `object_fields_blocks` SET `order`=@block_order:=@block_order+1 WHERE `agency_id` = '$agency_id' ORDER BY `order` DESC";
mysql_query($sql3_1) && mysql_query($sql3_2);
echo json_encode(['success' => true, 'block_id' => mysql_insert_id()]);
} else {
echo json_encode(['success' => false, 'error' => mysql_error()]);
}
} else {
echo json_encode(['success' => false]);
}
}
if ($request == 'set_block_order') {
$block_id = (int)$data->block_id;
$agency_id = (int)$data->agency_id;
$sort_order = (int)$data->sort_order;
$direct = $data->direct;
$update_pid = '';
$update_other = '';
if ($direct == 'up') {
$update_pid = '-';
$update_other = '+';
$sort_other = $sort_order - 1;
} elseif ($direct == 'down') {
$update_pid = '+';
$update_other = '-';
$sort_other = $sort_order + 1;
}
if (!empty($update_pid)) {
$sql = "UPDATE `object_fields_blocks`
SET `order` = `order` $update_other 1
WHERE `order` = '$sort_other' AND `agency_id` = '$agency_id'";
$sql2 = "UPDATE `object_fields_blocks`
SET `order` = `order` $update_pid 1
WHERE `id` = '$block_id' AND `agency_id` = '$agency_id'";
}
if (empty($sql) || empty($sql2))
exit();
if (mysql_query($sql) && mysql_query($sql2)) {
$sql3_1 = "SET @block_order:=0";
$sql3_2 = "UPDATE `object_fields_blocks` SET `order`=@block_order:=@block_order+1 WHERE `agency_id` = '$agency_id' ORDER BY `order`";
mysql_query($sql3_1) && mysql_query($sql3_2);
echo json_encode(['success' => true]);
} else {
echo json_encode(['success' => false, 'error' => mysql_error()]);
}
}
if ($request == 'set_field_order') {
$field_id = (int)$data->field_id;
$agency_id = (int)$data->agency_id;
$sort_order = (int)$data->sort_order;
$direct = $data->direct;
$update_pid = '';
$update_other = '';
if ($direct == 'up') {
$update_pid = '-';
$update_other = '+';
$sort_other = $sort_order - 1;
} elseif ($direct == 'down') {
$update_pid = '+';
$update_other = '-';
$sort_other = $sort_order + 1;
}
if (!empty($update_pid)) {
$sql = "UPDATE `object_fields`
SET `order` = `order` $update_other 1
WHERE `order` = '$sort_other' AND `agency_id` = '$agency_id'";
$sql2 = "UPDATE `object_fields`
SET `order` = `order` $update_pid 1
WHERE `id` = '$field_id' AND `agency_id` = '$agency_id'";
}
if (empty($sql) || empty($sql2))
exit();
if (mysql_query($sql) && mysql_query($sql2)) {
$sql3_1 = "SET @field_order:=0";
$sql3_2 = "UPDATE `object_fields` SET `order`=@field_order:=@field_order+1 WHERE `agency_id` = '$agency_id' ORDER BY `order`";
mysql_query($sql3_1) && mysql_query($sql3_2);
echo json_encode(['success' => true]);
} else {
echo json_encode(['success' => false, 'error' => mysql_error()]);
}
}
if ($request == 'get_field_types') {
$type = $data->type;
$selector = "object-fields-type-input";
if(isset($data->selector)){
$selector = $data->selector;
}
$html = '';
$list = [
['value' => 0, 'label' => 'Строка'],
['value' => 1, 'label' => 'Число'],
['value' => 2, 'label' => 'Селект-бокс'],
['value' => 3, 'label' => 'Мульти-селект'],
['value' => 4, 'label' => 'Свитчер'],
['value' => 5, 'label' => 'Текст'],
];
foreach ($list as $key => $item) {
$html .= '';
}
echo json_encode(['list' => $list, 'html' => ('')]);
exit();
}
if ($request == 'get_object_field') {
$field_id = $data->field_id;
$agency_id = (int)$data->agency_id;
$sql = "SELECT * FROM `object_fields` WHERE `id` = '$field_id' AND `agency_id` = '$agency_id' LIMIT 1";
if ($query = mysql_query($sql)) {
$field = mysql_fetch_assoc($query);
echo json_encode(['success' => true, 'field' => (object)$field]);
} else {
echo mysql_error();
}
}
if ($request == 'get_field_block') {
$block_id = $data->block_id;
$agency_id = (int)$data->agency_id;
$sql = "SELECT * FROM `object_fields_blocks` WHERE `id` = '$block_id' AND `agency_id` = '$agency_id' LIMIT 1";
if ($query = mysql_query($sql)) {
$field = mysql_fetch_assoc($query);
echo json_encode(['success' => true, 'block' => (object)$field]);
} else {
echo mysql_error();
}
}
if ($request == 'get_field_blocks') {
$block_id = (int)$data->block_id;
$agency_id = (int)$data->agency_id;
$html = '';
$list = [
0 => [
'id' => 0,
'title' => 'Общие поля',
'order' => 0,
],
];
$sql = "SELECT * FROM `object_fields_blocks` WHERE `agency_id` = '$agency_id' ORDER BY `order`";
if ($query = mysql_query($sql)) {
while ($row = mysql_fetch_assoc($query)) {
$id = $row['id'];
$list[] = [
'id' => $row['id'],
'title' => $row['title'],
'order' => $row['order']
];
}
}
foreach ($list as $key => $item) {
$html .= '';
}
echo json_encode(['list' => (object)$list, 'html' => ('')]);
exit();
}
if ($request == 'save_client_req_fields') {
/* ini_set('display_errors', 1);
error_reporting(E_ALL & ~E_DEPRECATED & ~E_STRICT & ~E_NOTICE);*/
$field_id = (int)$data->field_id;
$agency_id = (int)$data->agency_id;
$param = (array)$data->param;
$listPodgroups = $param['listPodgroups'];
if (is_null($param['order']))
$param['order'] = '0';
if (is_null($param['params']))
$param['params'] = 'NULL';
else
$param['params'] = "'" . json_encode($param['params'], JSON_UNESCAPED_UNICODE) . "'";
if ($param['req_type'] == 0)
$param['req_type'] = '0';
else
$param['req_type'] = "'" . json_encode($param['req_type'], JSON_UNESCAPED_UNICODE) . "'";
if(is_null($param['users_no_see']) || empty($param['users_no_see'])) {
$param['users_no_see'] = 'NULL';
} else {
$param['users_no_see'] = "'" . json_encode($param['users_no_see'], JSON_UNESCAPED_UNICODE) . "'";
}
if((int)$param['is_no_see'] == 0) {
$param['users_no_see'] = 'NULL';
}
if ($field_id) {
$sql = "UPDATE `client_req_fields`
SET `title` = '$param[title]',
`type` = '$param[type]',
`is_req` = '$param[is_req]',
`is_client` = '$param[is_client]',
`is_required` = '$param[is_required]',
`is_podgroup` = '$param[is_podgroup]',
`is_podgroup_multiselect` = '$param[is_podgroup_multiselect]',
`is_filtrable` = '$param[is_filtrable]',
`req_type` = $param[req_type],
`params` = $param[params],
`updated_by` = '$_SESSION[id]',
`users_no_see` = $param[users_no_see],
`is_no_see` = $param[is_no_see]
WHERE `id` = '$field_id' AND `agency_id` = '$agency_id' LIMIT 1";
} else {
$sql = "INSERT INTO `client_req_fields` (
`title`,
`type`,
`is_req`,
`is_client`,
`is_required`,
`is_podgroup`,
`is_podgroup_multiselect`,
`is_filtrable`,
`params`,
`req_type`,
`agency_id`,
`created_by`,
`users_no_see`,
`is_no_see`
) VALUES (
'$param[title]',
'$param[type]',
'$param[is_req]',
'$param[is_client]',
'$param[is_required]',
'$param[is_podgroup]',
'$param[is_podgroup_multiselect]',
'$param[is_filtrable]',
$param[params],
$param[req_type],
'$agency_id',
'$_SESSION[id]',
$param[users_no_see],
$param[is_no_see]
)";
}
if (!empty($sql)) {
if ($query = mysql_query($sql)) {
echo json_encode(['success' => true]);
if($param['is_podgroup']){
if ($field_id == 0){
$field_id = mysql_insert_id();
}
$sql_podgroup = "SELECT id FROM client_req_fields_podgroup WHERE group_id={$field_id} AND agency_id = {$agency_id}";
$q_podgroup = mysql_query($sql_podgroup);
while($r_podgroup = mysql_fetch_assoc($q_podgroup)){
if(!isset($listPodgroups->$r_podgroup['id'])){
mysql_query("DELETE FROM client_req_fields_podgroup WHERE id={$r_podgroup['id']}");
}
}
foreach($listPodgroups as $podgroup){
// var_dump($podgroup);
if (is_null($podgroup->params))
$podgroup->params = 'NULL';
else
$podgroup->params = "'" . json_encode($podgroup->params, JSON_UNESCAPED_UNICODE) . "'";
if(isset($podgroup->id) && $podgroup->id > 0){
$sql = "UPDATE `client_req_fields_podgroup`
SET
`title` = '$podgroup->title',
`type` = '$podgroup->type',
`is_required` = '$podgroup->is_required',
`params` = $podgroup->params,
`updated_by` = '$_SESSION[id]'
WHERE `id` = '$podgroup->id' AND `agency_id` = '$agency_id' LIMIT 1";
} else {
$sql = "INSERT INTO `client_req_fields_podgroup` (
`group_id`,
`title`,
`type`,
`is_required`,
`params`,
`agency_id`,
`created_by`
) VALUES (
$field_id,
'$podgroup->title',
'$podgroup->type',
'$podgroup->is_required',
$podgroup->params,
'$agency_id',
'$_SESSION[id]'
)";
}
// echo $sql;
if (!empty($sql)) {
if ($query = mysql_query($sql)) {
} else {
echo json_encode(['success' => false, 'error' => mysql_error()]);
break;
}
}
}
}
} else {
echo json_encode(['success' => false, 'error' => mysql_error()]);
}
} else {
echo json_encode(['success' => false]);
}
}
if ($request == 'get_client_req_fields') {
$agency_id = (int)$data->agency_id;
$sql = "SELECT * FROM client_req_fields WHERE `agency_id`=$agency_id order by id desc";
if ($query = mysql_query($sql)) {
$fields = array();
if (mysql_num_rows($query) > 0) {
while($row = mysql_fetch_assoc($query)) {
$fields[] = [
'id' => $row['id'],
'title' => $row['title'],
'is_filtrable' => $row['is_filtrable'],
'type' => $row['type'],
'is_client' => $row['is_client'],
'is_req' => $row['is_req'],
'req_type' => $row['req_type'],
'is_required' => $row['is_required'],
'params' => $row['params'],
'is_podgroup' => $row['is_podgroup'],
'is_podgroup_multiselect' => $row['is_podgroup_multiselect'],
];
}
}
echo json_encode($fields);
} else {
echo mysql_error();
}
}
if ($request == 'get_client_req_field') {
$agency_id = (int)$data->agency_id;
$field_id = (int)$data->field_id;
$sql = "SELECT * FROM client_req_fields WHERE id=$field_id AND `agency_id`=$agency_id LIMIT 1";
if ($query = mysql_query($sql)) {
$field = mysql_fetch_assoc($query);
$list_podgroup = array();
if($field['is_podgroup'] > 0){
$sql = "SELECT * FROM client_req_fields_podgroup WHERE group_id=$field[id] AND `agency_id`=$agency_id";
$q = mysql_query($sql);
while($r = mysql_fetch_assoc($q)){
$tempUserNo = null;
if(!empty($r['users_no_see'])){
$tempUserNo = json_decode($r['users_no_see'], true);
}
$r['user_no_see'] = $tempUserNo;
$list_podgroup[$r['id']] = $r;
}
}
echo json_encode(['success' => true, 'field' => (object)$field, 'list_podgroup' => $list_podgroup]);
} else {
echo mysql_error();
}
}
if($request == 'delete_client_req_field'){
$agency_id = (int)$data->agency_id;
$field_id = (int)$data->field_id;
$sql = "DELETE FROM client_req_fields WHERE id=$field_id AND `agency_id`=$agency_id";
if ($query = mysql_query($sql)) {
$sql = "DELETE FROM client_req_fields_podgroup WHERE group_id=$field_id AND `agency_id`=$agency_id";
if(!$query = mysql_query($sql)){
echo mysql_error();
}
echo json_encode(['success' => true]);
} else {
echo mysql_error();
}
}
if ($request == 'get_api_services') {
$service_id = $data->service_id;
$explode_id = [];
//открываем по несколько для всех.
/*if (!in_array((int)$_SESSION['agency_id'], [4, 5427, 12061, 13735]))
$explode_id = $data->explode_id;*/
$html = '';
$list = [
['value' => 1, 'id' => 'avito', 'label' => 'Авито'],
['value' => 2, 'id' => 'cian', 'label' => 'ЦИАН'],
['value' => 3, 'id' => 'yandex', 'label' => 'Я.Недвижимость'],
['value' => 4, 'id' => 'domclick', 'label' => 'ДомКлик'],
];
if (!empty($explode_id)) {
if (is_array($explode_id)) {
foreach ($explode_id as $id) {
foreach ($list as $key => $item) {
if ((int)$item['value'] == (int)$id) {
unset($list[$key]);
}
}
}
} else {
foreach ($list as $key => $item) {
if ((int)$item['value'] == (int)$explode_id) {
unset($list[$key]);
}
}
}
}
foreach ($list as $key => $item) {
$html .= '';
}
echo json_encode(['list' => $list, 'html' => ('')]);
exit();
}
if ($request == 'test_api') {
$api_id = (int)$data->api_id;
$agency_id = (int)$data->agency_id;
$sql = "SELECT * FROM `users_api` AS `api` WHERE `api`.`id` = '$api_id' AND `api`.`agency_id` = '$agency_id' LIMIT 1";
if ($query = mysql_query($sql)) {
$credits = mysql_fetch_assoc($query);
$api = new AdvertStats();
$serviceList = [
1 => 'avito',
2 => 'cian',
3 => 'yandex',
4 => 'domclick',
];
$service_id = (int)$credits['service_id'];
$results = $api->testAdvertApi($serviceList[$service_id], $credits['client_id'], $credits['secret_key'], $credits['ext_user_id']);
echo json_encode($results);
} else {
echo mysql_error();
}
}
if ($request == 'on_meesage') {
$api_id = (int)$data->api_id;
$agency_id = (int)$data->agency_id;
$sql = "SELECT * FROM `users_api` AS `api` WHERE `api`.`id` = '$api_id' AND `api`.`agency_id` = '$agency_id' LIMIT 1";
if ($query = mysql_query($sql)) {
$credits = mysql_fetch_assoc($query);
$api = new AdvertStats();
$serviceList = [
1 => 'avito',
2 => 'cian'
];
$service_id = (int)$credits['service_id'];
$results = $api->on_message($serviceList[$service_id], $credits['client_id'], $credits['secret_key'], $credits['ext_user_id'], $credits['id']);
echo json_encode($results);
} else {
echo mysql_error();
}
}
if ($request == 'off_meesage') {
$api_id = (int)$data->api_id;
$agency_id = (int)$data->agency_id;
$sql = "SELECT * FROM `users_api` AS `api` WHERE `api`.`id` = '$api_id' AND `api`.`agency_id` = '$agency_id' LIMIT 1";
if ($query = mysql_query($sql)) {
$credits = mysql_fetch_assoc($query);
$api = new AdvertStats();
$serviceList = [
1 => 'avito',
2 => 'cian'
];
$service_id = (int)$credits['service_id'];
$results = $api->off_message($serviceList[$service_id], $credits['client_id'], $credits['secret_key'], $credits['ext_user_id'], $api_id);
echo json_encode($results);
} else {
echo mysql_error();
}
}
if ($request == 'send_message') {
error_reporting(E_ALL | E_STRICT);
ini_set('display_errors', 1);
$service_id = (int)$data->service_id;
$agency_id = (int)$data->agency_id;
$text = $data->text;
//echo $text;
$chat_id = $data->chat_id;
$sql = "SELECT * FROM `users_api` AS `api` WHERE `api`.`service_id` = '$service_id' AND `api`.`agency_id` = '$agency_id'";
if ($query = mysql_query($sql)) {
while($credits = mysql_fetch_assoc($query)){
$api = new AdvertStats();
$serviceList = [
1 => 'avito',
2 => 'cian'
];
$service_id = (int)$credits['service_id'];
$results = $api->send_message($serviceList[$service_id], $credits['client_id'], $credits['secret_key'], $credits['ext_user_id'], $text, $chat_id);
if(isset($results['created_at'])){
echo json_encode($results);
}
}
} else {
echo mysql_error();
}
}
if ($request == 'get_agent_cian') {
error_reporting(E_ALL | E_STRICT);
ini_set('display_errors', 1);
$service_id = (int)$data->service_id;
$agency_id = (int)$data->agency_id;
$agent_id = $data->agent_id;
$sql = "SELECT * FROM `users_api` AS `api` WHERE `api`.`service_id` = '$service_id' AND `api`.`agency_id` = '$agency_id'";
if ($query = mysql_query($sql)) {
while($credits = mysql_fetch_assoc($query)){
$api = new AdvertStats();
$serviceList = [
1 => 'avito',
2 => 'cian'
];
$service_id = (int)$credits['service_id'];
$results = $api->get_agent($serviceList[$service_id], $credits['client_id'], $credits['secret_key'], $credits['ext_user_id'], $agent_id);
// if(isset($results['created_at'])){
echo json_encode($results);
// }
}
} else {
echo mysql_error();
}
}
if ($request == 'get_api') {
$api_id = (int)$data->api_id;
$agency_id = (int)$data->agency_id;
$sql = "SELECT * FROM `users_api` AS `api` WHERE `api`.`id` = '$api_id' AND `api`.`agency_id` = '$agency_id' LIMIT 1";
if ($query = mysql_query($sql)) {
echo json_encode(mysql_fetch_assoc($query));
} else {
echo mysql_error();
}
}
if ($request == 'del_api') {
$api_id = (int)$data->api_id;
$agency_id = (int)$data->agency_id;
$sql = "DELETE FROM `users_api` WHERE `id` = '$api_id' AND `agency_id` = '$agency_id' LIMIT 1";
if (mysql_query($sql)) {
echo json_encode(['success' => true]);
} else {
echo json_encode(['success' => false, 'error' => mysql_error()]);
}
}
if ($request == 'add_edit_api') {
$agency_id = (int)$data->agency_id;
$api_id = (int)$data->api_id;
$service_id = (int)$data->service_id;
$client_id = (string)$data->client_id;
$secret_key = (string)$data->secret_key;
$ext_user_id = (string)$data->ext_user_id;
$use_for_complexes = (int)$data->use_for_complexes;
$status = (int)$data->status;
if (!isset($use_for_complexes)) {
$use_for_complexes = 0;
}
$errors = [];
if ($api_id == 0 && empty($service_id))
$errors[] = 'Поле `Площадка` является обязательным к заполнению.';
if ($service_id == 1 && empty($client_id))
$errors[] = 'Поле `ID клиента` является обязательным к заполнению.';
if ($service_id == 1 && empty($secret_key))
$errors[] = 'Поле `API-ключ` является обязательным к заполнению.';
if ($service_id == 1 && empty($ext_user_id))
$errors[] = 'Поле `ID пользователя` является обязательным к заполнению.';
if ($service_id == 3 && empty($secret_key))
$errors[] = 'Поле `Токен авторизации` является обязательным к заполнению.';
if ($service_id == 4 && empty($client_id))
$errors[] = 'Поле `ID компании` является обязательным к заполнению.';
if ($service_id == 4 && empty($secret_key))
$errors[] = 'Поле `Токен авторизации` является обязательным к заполнению.';
if ($service_id == 1 && preg_match('#[^A-z0-9-_]#', $client_id))
$errors[] = 'Поле `ID клиента` должно содержать только цифры и буквы латинского алфавита, символы `-` и `_`.';
if ($service_id == 2 && preg_match('#[^0-9]#', $client_id))
$errors[] = 'Поле `ID компании` должно содержать только цифры.';
if (!empty($errors)) {
echo json_encode(['success' => false, 'errors' => $errors]);
exit();
}
if ($api_id) {
$sql = "UPDATE `users_api`
SET `client_id` = '$client_id',
`secret_key` = '$secret_key',
`ext_user_id` = '$ext_user_id',
`status` = '$status',
`use_for_complexes` = '$use_for_complexes',
`updated_by` = '$_SESSION[id]'
WHERE `id` = '$api_id' AND `service_id` = '$service_id' AND `agency_id` = '$agency_id' LIMIT 1";
} else {
$sql = "INSERT INTO `users_api` (
`service_id`,
`client_id`,
`secret_key`,
`ext_user_id`,
`status`,
`agency_id`,
`created_by`,
`use_for_complexes`
) VALUES (
'$service_id',
'$client_id',
'$secret_key',
'$ext_user_id',
'$status',
'$agency_id',
'$_SESSION[id]',
'$use_for_complexes'
)";
}
if (!empty($sql)) {
if ($query = mysql_query($sql)) {
$api_id = mysql_insert_id();
echo json_encode(['success' => true, 'api_id' => $api_id]);
} else {
echo json_encode(['success' => false, 'errors' => [mysql_error()]]);
}
} else {
echo json_encode(['success' => false]);
}
}
if ($request == 'get_api_list') {
$agency_id = (int)$data->agency_id;
$sql = "SELECT * FROM `users_api` AS `api` WHERE `api`.`agency_id` = '$agency_id' ORDER BY `api`.`service_id`";
if ($query = mysql_query($sql)) {
$fields = array();
if (mysql_num_rows($query) > 0) {
while($row = mysql_fetch_assoc($query)) {
$fields[] = [
'id' => $row['id'],
'agency_id' => $row['agency_id'],
'service_id' => $row['service_id'],
'client_id' => $row['client_id'],
'secret_key' => $row['secret_key'],
'ext_user_id' => $row['ext_user_id'],
'status' => $row['status'],
'is_messages' => $row['is_messages'],
'created_at' => $row['created_at'],
'updated_at' => $row['updated_at'],
'use_for_complexes' => $row['use_for_complexes'],
];
}
}
echo json_encode($fields);
} else {
echo mysql_error();
}
}
if ($request == 'set_advert_prices') {
$id = (int)$data->id;
$agency_id = (int)$data->agency_id;
$region_id = (int)$data->region;
$region_child_id = (int)$data->region_child;
$operation_type_id = (int)$data->deal_type;
$rent_type_id = (int)$data->rent_type;
$type_id = (int)$data->object_type;
$commerce_type_id = (int)$data->commerce_type;
$avito = (double)$data->avito;
$cian = (double)$data->cian;
$domclick = (double)$data->domclick;
$jcat = (double)$data->jcat;
$yandex = (double)$data->yandex;
/*error_reporting(E_ALL | E_STRICT);
ini_set('display_errors', 1);*/
$advert_budget = new AdvertBudgets();
$props = [
'id' => $id,
'agency_id' => $agency_id,
'region_id' => $region_id,
'region_child_id' => $region_child_id,
'operation_type_id' => $operation_type_id,
'rent_type_id' => $rent_type_id,
'type_id' => $type_id,
'commerce_type_id' => $commerce_type_id,
'avito' => $avito,
'cian' => $cian,
'domclick' => $domclick,
'jcat' => $jcat,
'yandex' => $yandex,
];
if (!$props['id']) {
$check_props = $props;
$check_props['id'] = null;
$limits = $advert_budget->getAdvertPrices($props);
if (!empty($limits)) {
$error = 'Похоже, что настройки с такими критериями объекта уже существуют! Вы можете ';
$error .= 'переключиться для их редактирования.';
echo json_encode(['success' => false, 'errors' => $error]);
exit();
}
}
$results = $advert_budget->setAdvertPrices($props);
echo json_encode([
'success' => $results['success'],
'errors' => (isset($results['errors'])) ? $results['errors'] : null
]);
}
if ($request == 'get_advert_prices') {
$id = (int)$data->id;
$advert_budget = new AdvertBudgets();
$prices = [
'id' => null,
'region_id' => 0,
'region_child_id' => null,
'operation_type_id' => 0,
'type_id' => 0,
'rent_type_id' => null,
'commerce_type_id' => 0,
'avito' => 0,
'cian' => 0,
'yandex' => 0,
'domclick' => 0,
'jcat' => 0,
'zipal' => 0,
];
if ($id)
$prices = $advert_budget->getAdvertPrices(['id' => $id]);
echo json_encode($prices);
}
if ($request == 'get_advert_prices_list') {
$advert_budget = new AdvertBudgets();
$prices = $advert_budget->getAdvertPrices();
echo json_encode(['success' => true, 'list' => $prices]);
}
if ($request == 'del_advert_limits') {
$id = (int)$data->id;
$advert_budget = new AdvertBudgets();
if ($id)
$results = $advert_budget->deleteAdvertPrice($id);
echo json_encode($results);
}
if($request == 'save_key_telegramm'){
$key = false;
if(isset($data->key_telegramm)){
$key = $data->key_telegramm;
}
if(isset($data->user_id)){
$user_id = (int)$data->user_id;
$sql = "UPDATE users SET telegramm_kod='{$key}' WHERE id = {$user_id}";
mysql_query($sql);
}
echo json_encode(array('done'=>'ok'));
}
if($request == 'save_key_max'){
$key = false;
if(isset($data->key_max)){
$key = $data->key_max;
}
if(isset($data->user_id)){
$user_id = (int)$data->user_id;
$sql = "UPDATE users SET max_kod='{$key}' WHERE id = {$user_id}";
mysql_query($sql);
}
echo json_encode(array('done'=>'ok'));
}
if($request == 'get_sources_connection'){
/*error_reporting(E_ALL | E_STRICT);
ini_set('display_errors', 1);*/
$agency_id = $data->agency_id;
$filter = $data->filter;
$page = 1;
if((int)$data->page) $page = $data->page;
$sc = new SourcesConnection($agency_id);
$sc->set_page($page);
echo json_encode($sc->get_sources_connection($filter), JSON_UNESCAPED_UNICODE);
}
if($request == 'get_all_sources'){
$agency_id = $data->agency_id;
$sc = new SourcesConnection($agency_id);
echo json_encode($sc->get_all_sources(), JSON_UNESCAPED_UNICODE);
}
if($request == 'get_activites_list'){
$agency_id = $data->agency_id;
$sc = new SourcesConnection($agency_id);
echo json_encode($sc->get_activites(), JSON_UNESCAPED_UNICODE);
}
if($request == 'get_users_list'){
$agency_id = $data->agency_id;
$user_id = $data->user_id;
$sc = new SourcesConnection($agency_id);
$sc->set_user_id(19895);
echo json_encode($sc->get_users_list(), JSON_UNESCAPED_UNICODE);
}
if($request == 'get_funnels_list'){
$agency_id = $data->agency_id;
$funnelClass = new Funnel();
$section = null;
if(isset($data->section)){
$section = $data->section;
}
$funnelClass->set_agency_id($agency_id);
echo json_encode($funnelClass->get_funnels($section), JSON_UNESCAPED_UNICODE);
}
if($request == 'get_steps_list'){
$agency_id = $data->agency_id;
$funnel_id = $data->funnel_id;
$action = '';
if(isset($data->action)){
$action = $data->action;
}
$funnelClass = new Funnel();
$section = null;
if(isset($data->section)){
$section = $data->section;
}
$funnelClass->set_agency_id($agency_id);
echo json_encode($funnelClass->get_steps_funnel($funnel_id, $action), JSON_UNESCAPED_UNICODE);
}
if($request == 'save_source_connect'){
$agency_id = $data->agency_id;
$user_id = $data->user_id;
$item = $data->item;
$sc = new SourcesConnection($agency_id);
$sc->set_user_id($user_id);
echo json_encode($sc->save($item), JSON_UNESCAPED_UNICODE);
}
if($request == 'get_data_source'){
$agency_id = $data->agency_id;
$source_id = $data->source_id;
$sc = new SourcesConnection($agency_id);
echo json_encode($sc->get_data_source($source_id), JSON_UNESCAPED_UNICODE);
}
if($request == 'del_source_connect'){
$agency_id = $data->agency_id;
$user_id = $data->user_id;
$delete_id = $data->delete_id;
$sc = new SourcesConnection($agency_id);
$sc->set_user_id($user_id);
echo json_encode($sc->delete_source_connect($delete_id), JSON_UNESCAPED_UNICODE);
}
if($request == 'get_logs_connection'){
$agency_id = $data->agency_id;
$filter = $data->filter;
$page = 1;
if((int)$data->page) $page = $data->page;
$sc = new SourcesConnection($agency_id);
$sc->set_page($page);
echo json_encode($sc->get_logs_connection($filter), JSON_UNESCAPED_UNICODE);
}
if($request == 'set_enable_webhooks'){
$agency_id = $data->agency_id;
$enable_webhooks = (int)$data->enable_webhooks;
$wh = new WebHookIn(null, $agency_id);
echo json_encode($wh->set_enable_webhook($enable_webhooks), JSON_UNESCAPED_UNICODE);
}
if($request == 'get_enable_webhooks'){
$agency_id = $data->agency_id;
$page = 1;
if((int)$data->page) $page = $data->page;
$wh = new WebHookIn(null, $agency_id);
echo json_encode($wh->get_enable_webhook(), JSON_UNESCAPED_UNICODE);
}
if($request == 'save_webhook'){
/*error_reporting(E_ALL | E_STRICT);
ini_set('display_errors', 1);*/
$agency_id = $data->agency_id;
$user_id = $data->user_id;
$item = $data->item;
$wh = new WebHookIn(null, $agency_id);
$wh->set_user_id($user_id);
echo json_encode($wh->save_webhook($item), JSON_UNESCAPED_UNICODE);
}
if($request == 'get_webhooks'){
error_reporting(E_ALL | E_STRICT);
ini_set('display_errors', 1);
$agency_id = $data->agency_id;
$user_id = $data->user_id;
$wh = new WebHookIn(null, $agency_id);
echo json_encode($wh->get_webhooks_list(), JSON_UNESCAPED_UNICODE);
}
if($request == 'del_webhook'){
$agency_id = $data->agency_id;
$delete_id = $data->delete_id;
$wh = new WebHookIn(null, $agency_id);
//$sc->set_user_id($user_id);
echo json_encode($wh->delete_webhook($delete_id), JSON_UNESCAPED_UNICODE);
}