Joywork/engine/classes/UnisenderClass.php
2026-05-22 21:21:54 +03:00

164 lines
4.6 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
class UnisenderClass {
private $db = null;
private $user;
private $agency_id = 0;
private $debug;
private $sphinx = null;
private $sphinx2 = null;
public function __construct($db = null, $agency_id, $debug = false) {
if ($debug == true) {
$this->debug = true;
error_reporting(E_ALL | E_STRICT);
ini_set('display_errors', 1);
}
if(!isset($agency_id) || (int)$agency_id == 0){
die('Не задано агентство');
}
$this->agency_id = $agency_id;
if (!is_null($db)) {
$this->db = $db;
} else {
$pdo = new MysqlPdo(hst, ndb, user, pass);
$pdo->query("SET NAMES 'utf8'");
$this->db = $pdo;
}
}
private function set_sphinx2(){
$pdo = new MysqlPdo(hstsph2, null, null, null, true, '9306');
$sql = "SET NAMES 'utf8'";
$pdo->query($sql);
$this->sphinx2 = $pdo;
}
/**
* Сохраненние ключа
*/
public function save_key($key){
$sql = "SELECT * FROM unisender_agency WHERE agency_id = {$this->agency_id}";
$q = $this->db->query($sql);
if($this->db->num_rows($q) > 0){
$sql_up = "UPDATE unisender_agency SET api_key = '{$key}' WHERE agency_id = {$this->agency_id}";
$this->db->query($sql_up);
} else {
$sql_in = "INSERT INTO unisender_agency (api_key, agency_id) VALUES ('{$key}', {$this->agency_id})";
$this->db->query($sql_in);
}
}
/**
* Получение ключа
*/
public function get_key(){
$api_key = '';
$sql = "SELECT * FROM unisender_agency WHERE agency_id = {$this->agency_id}";
$q = $this->db->query($sql);
$r = $this->db->fetch_assoc($q);
if(isset($r['api_key'])){
$api_key = $r['api_key'];
}
return $api_key;
}
public function get_list_client($type, $all = true, $ids){
$result = array();
if($type == 'client'){
if(!$all){
$where = "AND id in (".implode(',', $ids).")" ;
} else
if (isset($_SESSION['where_campaigns'])) {
$where = $_SESSION['where_campaigns'];
}
$sql = "SELECT * FROM clients WHERE 1 ".$where;
$q=$this->db->query($sql);
while($r = $this->db->fetch_assoc($q)){
$result['client_list'][] = $r;
}
} else if($type == 'req'){
if(!$all){
$where = "AND id in (".implode(',', $ids).")" ;
$sql_req = "SELECT client_id FROM requisitions WHERE 1 $where";
} else {
$sql_req = $_SESSION['where_req_campaigns'];
}
$q_req = $this->db->query($sql_req);
$clients_ids = array();
while($r_req = $this->db->fetch_assoc($q_req)){
$clients_ids[] = $r_req['client_id'];
}
$clients_ids = array_unique($clients_ids);
$sql = "SELECT * FROM clients WHERE id in (".implode(',', $clients_ids).")";
$q=$this->db->query($sql);
while($r = $this->db->fetch_assoc($q)){
$result['client_list'][] = $r;
}
} else if ($type == 'object'){
$whereClPart = [];
$this->set_sphinx2();
if(!$all){
if (is_array($_SESSION['checked'])) {
$ids = array_map('intval', $_SESSION['checked']);
$sql_cl_obj = "SELECT client_id FROM client_objects WHERE object_id in (".implode(',', $ids).")";
$q_cl_obj = $this->db->query($sql_cl_obj);
while($r_cl_obj = $this->db->fetch_assoc($q_cl_obj)){
$whereClPart[] = $r_cl_obj['client_id'];
}
}
} else {
if(isset($_SESSION['agency_objects_export'])){
$ids = array();
$sql_obj = $_SESSION['agency_objects_export'];
// echo $sql_obj;
$q_obj = $this->sphinx2->query($sql_obj);
while($r_obj = $this->sphinx2->fetch_assoc($q_obj)){
$sql_cl_obj = "SELECT client_id FROM client_objects WHERE object_id = {$r_obj['id']}";
$q_cl_obj = $this->db->query($sql_cl_obj);
while($r_cl_obj = $this->db->fetch_assoc($q_cl_obj)){
$whereClPart[] = $r_cl_obj['client_id'];
}
}
}
}
$sqlClients = "SELECT * FROM `clients` WHERE id in (" . implode(", ", $whereClPart) .")";
//echo $sqlClients;
$rezClient =$this->db->query($sqlClients);
if ($this->db->num_rows($rezClient) > 0) {
while ($client = $this->db->fetch_assoc($rezClient)) {
if(!empty($client['email'])){
$result['client_list'][] = $client;
}
}
}
}
$result['title_list'] = 'Список '.date('d.m.Y H:i:s');
return $result;
}
}