Joywork/ajax/ajax_vue_files.php

212 lines
7.0 KiB
PHP
Raw Normal View History

2026-05-22 20:21:54 +02:00
<?php
require_once($_SERVER['DOCUMENT_ROOT']."/ajax/vue_php_function.php");
$data = json_decode(file_get_contents("php://input"));
$pdo = new MysqlPdo(hst, ndb, user, pass);
$sql = "SET NAMES 'utf8'";
$pdo->query($sql);
$request = $data->request;
if($request == 'get_files'){
$result = array();
$row = array();
$id = $data->id;
$type = $data->type;
$pole = '';
$table = 'user_client_events';
if($type == 'client'){
$pole = 'client_id';
$table = 'user_client_events';
} else if($type == 'req'){
$pole = 'req_id';
$table = 'user_client_events';
} else if($type == 'object'){
$pole = 'object_id';
$table = 'user_object_events';
}
$sql = "SELECT * FROM clients_files as c WHERE {$pole} = {$id} AND event_id > 0 AND (SELECT id from {$table} WHERE id=c.event_id)>0";
/* if($_SESSION['id'] == 5238){
echo $sql;
}*/
$q = $pdo->query($sql, true);
if($pdo->num_rows($q) > 0){
while($r = $pdo->fetch_assoc($q)){
if(!empty($r['name'])){
$file = $_SERVER['DOCUMENT_ROOT'] . "/upload/";
if($r['client_id'] > 0){
$file .= "clients/".$r['client_id']."/";
} else if($r['req_id'] > 0){
$file .= "reqs/".$r['req_id']."/";
} else if($r['object_id'] > 0){
$file .= "objects/".$r['object_id']."/";
}
$file .= $r['guid'].'.'.$r['type'];
$r['type'] = 'id';
$r['href'] = '/download_file.php?id='.$r['id'];
$unix_time = filemtime($file);
$r['date'] = date('d.m.Y в H:i', $unix_time);
if(!isset($result['names'][$r['name_id']])){
$result['names'][$r['name_id']] = array('type'=>'id', 'from'=>$type, 'from_id'=>$id, 'id'=>(int)$r['name_id']);
}
if(file_exists($file)){
$row[$r['name_id']][] = $r;
}
}
}
}
if($type == 'client' || $type == 'req'){
$sql = "SELECT * FROM `funnel_files` WHERE {$pole} = {$id}";
$q = $pdo->query($sql, true);
if($pdo->num_rows($q) > 0){
while($r = $pdo->fetch_assoc($q)){
if(!empty($r['name'])){
$file = $_SERVER['DOCUMENT_ROOT'] . "/upload/funnels/";
if($r['client_id'] > 0){
$file .= "clients/".$r['client_id']."/";
} else if($r['req_id'] > 0){
$file .= "req/".$r['req_id']."/";
}
$file .= $r['guid'].'.'.$r['type'];
$r['type'] = 'guid';
$r['href'] = '/download_file.php?guid='.$r['guid'];
$unix_time = filemtime($file);
$r['date'] = date('d.m.Y в H:i', $unix_time);
if(!isset($result['names'][$r['etap_id']])){
$result['names'][$r['etap_id']] = array('type'=>'guid', 'from'=>$type, 'from_id'=>$id, 'id'=>(int)$r['etap_id']);
}
if(file_exists($file)){
$row[$r['etap_id']][] = $r;
}
}
}
}
}
if($type == 'req'){
//поиск файлов по объекту
$sql = "SELECT id, type_id, object_id FROM requisitions WHERE id = {$id}";
$q = $pdo->query($sql, true);
$r = $pdo->fetch_assoc($q);
if($r['type_id'] == 2 && $r['object_id'] > 0){
$sql = "SELECT * FROM `clients_files` as c WHERE object_id = {$r['object_id']} AND (SELECT id from user_object_events WHERE id=c.event_id)>0";
$q = $pdo->query($sql, true);
if($pdo->num_rows($q) > 0){
while($r = $pdo->fetch_assoc($q)){
if(!empty($r['name'])){
$file = $_SERVER['DOCUMENT_ROOT'] . "/upload/";
if($r['object_id'] > 0){
$file .= "objects/".$r['object_id']."/";
}
$file .= $r['guid'].'.'.$r['type'];
$r['type'] = 'id';
$r['href'] = '/download_file.php?id='.$r['id'];
$unix_time = filemtime($file);
$r['date'] = date('d.m.Y в H:i', $unix_time);
if(!isset($result['names'][$r['name_id']])){
$result['names'][$r['name_id']] = array('type'=>'id', 'from'=>'object', 'from_id'=>$r['object_id'], 'id'=>(int)$r['name_id']);
}
if(file_exists($file)){
$row[$r['name_id']][] = $r;
}
}
}
}
}
}
if($type == 'object'){
//Поиск файлов по заявкам
$sql_r = "SELECT id, type_id, object_id FROM requisitions WHERE object_id = {$id} AND type_id = 2 and deleted = 0";
$q_r = $pdo->query($sql_r, true);
if($pdo->num_rows($q_r) > 0){
$req = $pdo->fetch_assoc($q_r);
$sql = "SELECT * FROM `clients_files` as c WHERE req_id = {$req['id']} AND (SELECT id from user_client_events WHERE id=c.event_id)>0";
$q = $pdo->query($sql, true);
if($pdo->num_rows($q) > 0){
while($r = $pdo->fetch_assoc($q)){
if(!empty($r['name'])){
$file = $_SERVER['DOCUMENT_ROOT'] . "/upload/";
if($r['req_id'] > 0){
$file .= "reqs/".$req['id']."/";
}
$file .= $r['guid'].'.'.$r['type'];
$r['type'] = 'id';
$r['href'] = '/download_file.php?id='.$r['id'];
$unix_time = filemtime($file);
$r['date'] = date('d.m.Y в H:i', $unix_time);
if(!isset($result['names'][$r['name_id']])){
$result['names'][$r['name_id']] = array('type'=>'id', 'from'=>'req', 'from_id'=>$req['id'], 'id'=>(int)$r['name_id']);
}
if(file_exists($file)){
$row[$r['name_id']][] = $r;
}
}
}
}
$sql = "SELECT * FROM `funnel_files` WHERE req_id = {$req['id']}";
$q = $pdo->query($sql, true);
if($pdo->num_rows($q) > 0){
while($r = $pdo->fetch_assoc($q)){
if(!empty($r['name'])){
$file = $_SERVER['DOCUMENT_ROOT'] . "/upload/funnels/";
if($r['req_id'] > 0){
$file .= "req/".$r['req_id']."/";
}
$file .= $r['guid'].'.'.$r['type'];
$r['type'] = 'guid';
$r['href'] = '/download_file.php?guid='.$r['guid'];
$unix_time = filemtime($file);
$r['date'] = date('d.m.Y в H:i', $unix_time);
if(!isset($result['names'][$r['etap_id']])){
$result['names'][$r['etap_id']] = array('type'=>'guid', 'from'=>'req', 'from_id'=>$req['id'], 'id'=>(int)$r['etap_id']);
}
if(file_exists($file)){
$row[$r['etap_id']][] = $r;
}
}
}
}
}
}
$result['list'] = $row;
foreach ($result['names'] as $key => $res) {
if($res['type'] == 'id'){
if($key == 0){
$result['names'][$key]['name'] = "Без названия";
} else {
$sql_n = "SELECT * FROM names_client_files WHERE id={$key}";
$q_n = $pdo->query($sql_n, true);
$r_n = $pdo->fetch_assoc($q_n);
$result['names'][$key]['name'] = $r_n['name'];
}
} else if($res['type'] == 'guid'){
$sql_n = "SELECT * FROM funnel_steps WHERE id={$key}";
$q_n = $pdo->query($sql_n, true);
$r_n = $pdo->fetch_assoc($q_n);
$result['names'][$key]['name'] = $r_n['name'];
}
}
echo json_encode($result, JSON_UNESCAPED_UNICODE);
exit;
}