164 lines
7.8 KiB
PHP
164 lines
7.8 KiB
PHP
<?php
|
|
|
|
class CatalogModel extends BaseModel {
|
|
|
|
public function getCatalog($params) {
|
|
$id = $this->arrToString($params);
|
|
$catalog = "SELECT * FROM sent_catalog WHERE id = '$id'";
|
|
$catalogQuery = $this->db->query($catalog);
|
|
$catalogArr = [];
|
|
|
|
if ($catalogRes = $this->db->fetch_assoc($catalogQuery)) {
|
|
$agent_id = $catalogRes['agent_id'];
|
|
$agent = "SELECT users.first_name, last_name, middle_name, phone, photo, email, user_logo, phoneAgency, site, agency_name FROM users WHERE id = '$agent_id'";
|
|
$agentQuery = $this->db->query($agent);
|
|
$agentArr = [];
|
|
|
|
if ($agentRes = $this->db->fetch_assoc($agentQuery)) {
|
|
$agentRes['agency_name'] = html_entity_decode($agentRes['agency_name'], ENT_QUOTES, 'UTF-8');
|
|
$agentArr = $agentRes;
|
|
}
|
|
}
|
|
|
|
$sendedPdf = "SELECT * FROM sended_pdf_newbuildings WHERE sent_catalog_id = '$id'";
|
|
$sendedPdfQuery = $this->db->query($sendedPdf);
|
|
$sendedPdfArr = [];
|
|
|
|
while ($sendedRes = $this->db->fetch_assoc($sendedPdfQuery)) {
|
|
$sendedPdfArr[] = $sendedRes['sent_catalog_id'];
|
|
}
|
|
|
|
$blocks = "SELECT blocks.*, regions.name AS region_name
|
|
, COUNT(catalogs_apartments_favorite.id) AS count_favorite_apartments
|
|
FROM blocks
|
|
LEFT JOIN regions ON regions.id = blocks.region_id
|
|
LEFT JOIN apartments ON apartments.block_id = blocks.id
|
|
LEFT JOIN catalogs_apartments_favorite ON catalogs_apartments_favorite.apartment_id = apartments.id AND catalogs_apartments_favorite.catalog_id = '$id'
|
|
WHERE apartments.id IN (
|
|
SELECT id_object
|
|
FROM sended_pdf_newbuildings
|
|
WHERE sent_catalog_id = '$id'
|
|
)
|
|
GROUP BY blocks.id";
|
|
$blocksQuery = $this->db->query($blocks);
|
|
$blocksArr = [];
|
|
|
|
while ($blocksRes = $this->db->fetch_assoc($blocksQuery)) {
|
|
$block_id = $blocksRes['id'];
|
|
// Тут фото блока
|
|
$block_img = "SELECT image from block_images WHERE model_id = '$block_id'";
|
|
$block_imgQuery = $this->db->query($block_img);
|
|
$block_imgArr = [];
|
|
while ($block_imgRes = $this->db->fetch_assoc($block_imgQuery)) {
|
|
$block_imgArr[] = $block_imgRes['image'];
|
|
}
|
|
// Находим метро
|
|
$metro = "SELECT subway_id, distance, metro FROM block_subways LEFT JOIN metro ON block_subways.subway_id = metro.id WHERE block_subways.block_id = '$block_id'";
|
|
$metroQuery = $this->db->query($metro);
|
|
$metroArr = [];
|
|
while ($metroRes = $this->db->fetch_assoc($metroQuery)) {
|
|
$metroArr[] = $metroRes;
|
|
}
|
|
|
|
$apartments = "SELECT IF(catalogs_apartments_favorite.id IS NOT NULL, 1, 0) AS is_favorite, room_types.name AS room_type_name, decoration_types.name AS decoration, apartments.*, buildings.corp AS building_corp, buildings.floors AS building_floors, buildings.deadline AS building_deadline
|
|
FROM apartments
|
|
JOIN buildings ON buildings.id = apartments.building_id
|
|
JOIN decoration_types ON decoration_types.id = apartments.decoration_id
|
|
JOIN room_types ON room_types.id = apartments.room_type_id
|
|
LEFT JOIN catalogs_apartments_favorite ON catalogs_apartments_favorite.apartment_id = apartments.id AND catalogs_apartments_favorite.catalog_id = '$id'
|
|
WHERE apartments.id IN (
|
|
SELECT id_object
|
|
FROM sended_pdf_newbuildings
|
|
WHERE sent_catalog_id = '$id'
|
|
AND apartments.block_id = '$block_id')";
|
|
$apartmentsQuery = $this->db->query($apartments);
|
|
$apartmentsArr = [];
|
|
while ($apartmentsRes = $this->db->fetch_assoc($apartmentsQuery)) {
|
|
$apartmentsRes['is_favorite'] = (bool)$apartmentsRes['is_favorite'];
|
|
$apartmentsArr[] = $apartmentsRes;
|
|
}
|
|
|
|
|
|
$blocksRes['apartments'] = $apartmentsArr;
|
|
$blocksRes['block_img'] = $block_imgArr;
|
|
$blocksRes['metros'] = $metroArr;
|
|
$blocksArr[] = $blocksRes;
|
|
}
|
|
|
|
return [
|
|
'id' => $catalogRes['id'],
|
|
'agent_id' => $catalogRes['agent_id'],
|
|
'agent' => $agentArr,
|
|
'blocks' => $blocksArr,
|
|
'sendedPdf' => $sendedPdfArr
|
|
];
|
|
}
|
|
|
|
public function getApartment($id, $token)
|
|
{
|
|
$user = [];
|
|
$id = $this->arrToString($id);
|
|
if ($token) {
|
|
$userSql = "SELECT id, fio, phone, photo, email, site, first_name, last_name, middle_name, id_manager, user_logo FROM users WHERE MD5(id)='$token'";
|
|
$rez_user = $this->db->query($userSql);
|
|
$user = $this->db->fetch_assoc($rez_user);
|
|
if ($user['id_manager']) {
|
|
$sql = "SELECT id_manager, photo, fio FROM users WHERE id='$user[id_manager]'";
|
|
$rez = $this->db->query($sql);
|
|
$manager = $this->db->fetch_assoc($rez);
|
|
|
|
if ($manager['id_manager']) {
|
|
$agency = $this->db->fetch_assoc($this->db->query("SELECT id_manager, email, site, first_name, last_name, middle_name, photo, fio FROM users WHERE id='$manager[id_manager]'"));
|
|
} else {
|
|
$agency = $manager;
|
|
}
|
|
$user['photo'] = $agency['photo'];
|
|
$user['agency_name'] = trim($agency['last_name'] . ' ' . $agency['first_name'] . ' ' . $agency['middle_name']);
|
|
} else {
|
|
$user['agency_name'] = $user['fio'];
|
|
}
|
|
}
|
|
|
|
$apartments = "SELECT IF(catalogs_apartments_favorite.id IS NOT NULL, 1, 0) AS is_favorite, room_types.name AS room_type_name, decoration_types.name AS decoration, apartments.*, buildings.corp AS building_corp, buildings.floors AS building_floors, buildings.deadline AS building_deadline
|
|
FROM apartments
|
|
JOIN buildings ON buildings.id = apartments.building_id
|
|
JOIN decoration_types ON decoration_types.id = apartments.decoration_id
|
|
JOIN room_types ON room_types.id = apartments.room_type_id
|
|
LEFT JOIN catalogs_apartments_favorite ON catalogs_apartments_favorite.apartment_id = apartments.id AND catalogs_apartments_favorite.catalog_id = '$id'
|
|
LEFT JOIN blocks on blocks.id = apartments.block_id
|
|
WHERE apartments.id = {$id}";
|
|
// var_dump($apartments);die;
|
|
$apartmentsQuery = $this->db->query($apartments);
|
|
$apartment = $this->db->fetch_assoc($apartmentsQuery);
|
|
$block_id = $apartment['block_id'];
|
|
|
|
// var_dump($apartment);die;
|
|
$blockQuery = "SELECT * FROM blocks WHERE id = '$block_id'";
|
|
$block = $this->db->fetch_assoc($this->db->query($blockQuery));
|
|
|
|
$metro = "SELECT subway_id, distance, metro FROM block_subways LEFT JOIN metro ON block_subways.subway_id = metro.id WHERE block_subways.block_id = '$block_id'";
|
|
$metroQuery = $this->db->query($metro);
|
|
$metroArr = [];
|
|
while ($metroRes = $this->db->fetch_assoc($metroQuery)) {
|
|
$metroArr[] = $metroRes;
|
|
}
|
|
|
|
$block['metros'] = $metroArr;
|
|
|
|
$block_img = "SELECT image from block_images WHERE model_id = '$block_id'";
|
|
$block_imgQuery = $this->db->query($block_img);
|
|
$block_imgArr = [];
|
|
while ($block_imgRes = $this->db->fetch_assoc($block_imgQuery)) {
|
|
$block_imgArr[] = $block_imgRes['image'];
|
|
}
|
|
|
|
$block['block_img'] = $block_imgArr;
|
|
|
|
return [
|
|
"user" => $user,
|
|
"apartment" => $apartment,
|
|
"block" => $block
|
|
];
|
|
}
|
|
}
|