Joywork/ajax/copyMyObject.php
2026-05-22 21:21:54 +03:00

305 lines
19 KiB
PHP
Raw 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");
ini_set('display_errors', 1);
error_reporting(E_ALL & ~E_DEPRECATED & ~E_STRICT & ~E_NOTICE);
if($_SESSION['id'] && isset($_POST['objId']) && is_numeric($_POST['objId'])) {
$db_sphinx = new MysqlPdo(hstsph2, null, null, null, true, '9306');
$post = clearInputData($_POST);
$sql3="SELECT * FROM objects WHERE objects.id = $post[objId]";
$rez_obj=mysql_query($sql3);
$obj=mysql_fetch_assoc($rez_obj);
if ($obj) {
$agency = new User;
$agency->get($_SESSION['id']);
if (!isset($agency->agencyId)) {
$agency->agencyId = $_SESSION['id'];
if (!empty($agency->agency_name) && $agency->agency)
$agency->agencyName = $agency->agency_name;
elseif (!empty($agency->agency_name) && $agency->agency)
$agency->agencyName = $agency->agency_name;
}
echo $obj['id'];
//переносим объект
$sql = "INSERT INTO `objects`(`type`, `rayon`, `adres`, `dom`, `korpus`, `litera`, `srok`, `komnat`, `etazh`, `etaz_first_type`, `ploshad`, `ploshad_k`, `holod`, `stirka`, `tv`, `mebel`, `stoim`, `date_add`, `ploshad_komn`, `etazh_iz`, `stoim_prim`, `peshkom`, `transport`, `nazv`, `opis`, `phone`, `archive`, `sobstv`, `phone_search`, `id_user`, `date_really_add`, `prim_srok`, `black`, `vsego_komn`, `moder`, `id_kv`, `id_add_user`, `commission`, `prepay`, `add_to_yandex_feed`, `add_from_archive`, `initial_object_id`, `initial_object_phone`, `initial_object_sobstv`, `type_category`, `use_in_advert`, `initial_object_stoim`, `operation_type`, `studio_flag`, `cadastral_number`, `cadastral_number_land`, `add_to_avito_feed`, `add_to_emls_feed`, `property_type_id`, `land_area`, `rent_house_type_id`, `country_wall_type_id`, `stoim_ky`, `lo_city_id`, `lease_deposit_id`, `add_to_bn_feed`, `kladr_id`, `add_to_zipal`, `add_to_domclick_feed`, `no_pets`, `no_child`, `land_purpose_id`, `land_distance`, `land_burden`, `electricity_type_id`, `gas_type_id`, `plumbing_type_id`, `sewerage_type_id`, `relief_type_id`, `shape_type_id`, `land_usage_type_id`, `lease`, `add_to_cian_feed`, `city_town_id`, `bath_type_id`, `hot_water_id`, `rubbish_chute`, `parking_type_id`, `id_rf_region`, `fbn_id`, `is_main`)
SELECT `type`, `rayon`, `adres`, `dom`, `korpus`, `litera`, `srok`, `komnat`, `etazh`, `etaz_first_type`, `ploshad`, `ploshad_k`, `holod`, `stirka`, `tv`, `mebel`, `stoim`, NOW(), `ploshad_komn`, `etazh_iz`, `stoim_prim`, `peshkom`, `transport`, `nazv`, `opis`, `phone`, `archive`, `sobstv`, `phone_search`, `id_user`, NOW(), `prim_srok`, `black`, `vsego_komn`, `moder`, `id_kv`, `id_add_user`, `commission`, `prepay`, 0, `add_from_archive`, `initial_object_id`, `initial_object_phone`, `initial_object_sobstv`, `type_category`, 0, `initial_object_stoim`, `operation_type`, `studio_flag`, `cadastral_number`, `cadastral_number_land`, 0, 0, `property_type_id`, `land_area`, `rent_house_type_id`, `country_wall_type_id`, `stoim_ky`, `lo_city_id`, `lease_deposit_id`, 0, `kladr_id`, 0, 0, `no_pets`, `no_child`, `land_purpose_id`, `land_distance`, `land_burden`, `electricity_type_id`, `gas_type_id`, `plumbing_type_id`, `sewerage_type_id`, `relief_type_id`, `shape_type_id`, `land_usage_type_id`, `lease`, 0, `city_town_id`, `bath_type_id`, `hot_water_id`, `rubbish_chute`, `parking_type_id`, `id_rf_region`, `fbn_id`, `is_main`
FROM `objects` WHERE id = $post[objId]";
mysql_query($sql);
$id = mysql_insert_id();
echo 'id=' . $id;
//Запрос в сфинкс
$currentTimestamp = time();
$sql_sh = "INSERT INTO objects_rt (id, type, rayon_id, adres, peshkom, transport, srok, komnat, etazh, ploshad, ploshad_k, ploshad_komn, holod, stirka, tv, mebel, stoim, sort_price, price_for_order, stoim_prim, moder, date_add, phone_search, id_add_user, commission, type_category, operation_type, id_rf_region, archive, date_really_add)
VALUES('$id', '$obj[type]', '$obj[rayon]', '$obj[adres]', '$obj[peshkom]', '$obj[transport]', '$obj[srok]', '$obj[komnat]', '$obj[etazh]', '$obj[ploshad]', '$obj[ploshad_k]', '$obj[ploshad_komn]', '$obj[holod]', '$obj[stirka]', '$obj[tv]', '$obj[mebel]', '$obj[stoim]', '$obj[stoim]', '$obj[stoim]', '$obj[stoim_prim]', '$obj[moder]', '" . $currentTimestamp ."', '$obj[phone_search]', '$obj[id_add_user]', '$obj[commission]', '$obj[type_category]', '$obj[operation_type]', '$obj[id_rf_region]', '$obj[archive]', '" . $currentTimestamp."')";
//echo $sql_sh;
$db_sphinx->query($sql_sh, true);
//переносим доп. инфу
$sql = "INSERT INTO `objects_additional_information`(`object_id`, `ceiling_height`, `bathroom_unit`, `balcony`, `renovation`, `window_view`, `apartments`, `video_url`, `video_url_vk`, `loggias`, `separate_wcs`, `combined_wcs`, `passenger_lifts`, `cargo_lifts`, `vat_type_id`, `house_category`, `commercial_object_id`, `isPartsEnabled`, `parts_area`, `legal_address`, `isOccupied`, `is_occupied_month`, `is_occupied_year`, `layout_id`, `number_wet_spots`, `electricity_power`, `commer_condition`, `isFurniture`, `commer_access`, `parking_price`, `parkingIsFree`, `building_nazv`, `commerc_year`, `commerc_building_type_id`, `commerc_building_class_id`, `building_area`, `commerc_site`, `commerc_owned`, `commerc_building_category_id`, `building_developer`, `building_management_company`, `commerc_building_ventilation`, `commerc_building_conditioning`, `commerc_building_heating`, `commerc_building_fire`, `commerc_houseLineType_id`, `commerc_opened_id`, `commerc_infrastructure`, `column_grid`, `tax_number`, `floor_material_id`, `commerc_portal_id`, `commerc_purpose`, `gsk_nazv`, `commerc_specifications`, `commerc_land_category_id`, `can_land_category_change`, `commerc_permitted_use_id`, `can_permitted_use_change`, `commerc_investproject`, `is_encumbrances`, `commerc_electricity_id`, `can_electricity`, `commerc_gas_id`, `can_gas`, `commerc_water_id`, `can_water`, `commerc_sewage_id`, `can_sewage`, `commerc_driveways_id`, `garage_type_id`, `commerc_lift1`, `lift1_carrying`, `commerc_lift2`, `lift2_carrying`, `commerc_lift3`, `lift3_carrying`, `commerc_crane1`, `crane1_carrying`, `commerc_crane2`, `crane2_carrying`, `commerc_crane3`, `crane3_carrying`, `commerc_crane4`, `crane4_carrying`, `parking_id`, `commerc_services`, `garage_vid_id`, `boks_vid_id`, `commerc_status_id`, `flat_number`, `restate_feed_id`, `avito_room_type_id`)
SELECT '$id', `ceiling_height`, `bathroom_unit`, `balcony`, `renovation`, `window_view`, `apartments`, `video_url`, `video_url_vk`, `loggias`, `separate_wcs`, `combined_wcs`, `passenger_lifts`, `cargo_lifts`, `vat_type_id`, `house_category`, `commercial_object_id`, `isPartsEnabled`, `parts_area`, `legal_address`, `isOccupied`, `is_occupied_month`, `is_occupied_year`, `layout_id`, `number_wet_spots`, `electricity_power`, `commer_condition`, `isFurniture`, `commer_access`, `parking_price`, `parkingIsFree`, `building_nazv`, `commerc_year`, `commerc_building_type_id`, `commerc_building_class_id`, `building_area`, `commerc_site`, `commerc_owned`, `commerc_building_category_id`, `building_developer`, `building_management_company`, `commerc_building_ventilation`, `commerc_building_conditioning`, `commerc_building_heating`, `commerc_building_fire`, `commerc_houseLineType_id`, `commerc_opened_id`, `commerc_infrastructure`, `column_grid`, `tax_number`, `floor_material_id`, `commerc_portal_id`, `commerc_purpose`, `gsk_nazv`, `commerc_specifications`, `commerc_land_category_id`, `can_land_category_change`, `commerc_permitted_use_id`, `can_permitted_use_change`, `commerc_investproject`, `is_encumbrances`, `commerc_electricity_id`, `can_electricity`, `commerc_gas_id`, `can_gas`, `commerc_water_id`, `can_water`, `commerc_sewage_id`, `can_sewage`, `commerc_driveways_id`, `garage_type_id`, `commerc_lift1`, `lift1_carrying`, `commerc_lift2`, `lift2_carrying`, `commerc_lift3`, `lift3_carrying`, `commerc_crane1`, `crane1_carrying`, `commerc_crane2`, `crane2_carrying`, `commerc_crane3`, `crane3_carrying`, `commerc_crane4`, `crane4_carrying`, `parking_id`, `commerc_services`, `garage_vid_id`, `boks_vid_id`, `commerc_status_id`, `flat_number`, `restate_feed_id`, `avito_room_type_id` FROM `objects_additional_information` WHERE object_id = $post[objId]";
mysql_query($sql);
//переносим activity
$sql = "INSERT INTO `objects_activities`(`activity_id`, `object_id`) SELECT `activity_id`, '$id' FROM `objects_activities` where `object_id` = $post[objId]";
mysql_query($sql);
//переносим price hist
$sqlPriceHist= "INSERT INTO `objects_price_history`(`object_id`, `date_change_price`, `price`, `price_ku`) SELECT '$id', `date_change_price`, `price`, `price_ku` FROM `objects_price_history` where `object_id` = $post[objId]";
mysql_query($sqlPriceHist);
//переносим новостройки
$sql = "INSERT INTO `object_nb_info`(`object_id`, `newbuilding_id`, `nb_end_date`, `zipal_new_flat_type_id`, `zipal_new_flat_decoration_type_id`, `investor_type_id`, `last_name_id`, `first_name_id`, `second_name_id`, `inn_id`, `documentation_url`) SELECT '$id', `newbuilding_id`, `nb_end_date`, `zipal_new_flat_type_id`, `zipal_new_flat_decoration_type_id`, `investor_type_id`, `last_name_id`, `first_name_id`, `second_name_id`, `inn_id`, `documentation_url` FROM `object_nb_info` where `object_id` = $post[objId]";
mysql_query($sql);
//переносим метро
$sql4="SELECT * FROM sp_metro WHERE id_obj = $post[objId]";
$rez_metro=mysql_query($sql4);
while($m = mysql_fetch_assoc($rez_metro)) {
$sql = "INSERT INTO sp_metro(id_obj, id_metro) VALUES('$id', '$m[id_metro]')";
mysql_query($sql);
}
//переносим планировку
$sqlSelectPlan = "SELECT * FROM objects_plan WHERE object_id=$post[objId]";
$rezSelectPlan = mysql_query($sqlSelectPlan);
if (mysql_num_rows($rezSelectPlan) > 0) {
$result = SelectelApi::getTokenAndUrl();
$token = $result[0];
$storageUrl = $result[1];
$plan = mysql_fetch_assoc($rezSelectPlan);
$pathInfo = pathinfo($plan['img_plan']);
if (stripos($plan['img_plan'], "http://") === false && stripos($plan['img_plan'], "https://") === false) {
$plan['img_plan'] = $_SERVER['DOCUMENT_ROOT'] . "/photos/" . $plan['img_plan'];
}
$content = file_get_contents($plan['img_plan']);
$ext = $pathInfo['extension'];
if (!$pathInfo['extension']) {
$ext = 'jpg';
}
if (strlen($ext) > 4) {
$ext = 'jpg';
}
$ph = md5($pathInfo['filename'].time())."_cpd.".$ext;
$one = mb_substr($ph, 0, 1);
$two = mb_substr($ph, 1, 1);
$three = mb_substr($ph, 3, 1);
$ph = "$one/$two/$three/$ph";
if (!is_dir($_SERVER['DOCUMENT_ROOT'] . "/photos/$one")) {
mkdir($_SERVER['DOCUMENT_ROOT'] . "/photos/$one");
}
if (!is_dir($_SERVER['DOCUMENT_ROOT'] . "/photos/$one/$two")) {
mkdir($_SERVER['DOCUMENT_ROOT'] . "/photos/$one/$two");
}
if (!is_dir($_SERVER['DOCUMENT_ROOT'] . "/photos/$one/$two/$three")) {
mkdir($_SERVER['DOCUMENT_ROOT'] . "/photos/$one/$two/$three");
}
$f1 = fopen($_SERVER['DOCUMENT_ROOT'] . "/photos/" . $ph, "a");
fwrite($f1, $content);
fclose($f1);
//загрузка в Selectel
$fp = $_SERVER['DOCUMENT_ROOT'] . "/photos/" . $ph;
$r = SelectelApi::uploadFile($storageUrl, $token, $fp, $ph, 'image/'.$ext);
//если выложили в Selectel
if ($r) {
//заменяем путь на новый
$ph = "https://data.joywork.ru/" . $ph;
//удаляем файл с локального сервера
unlink($fp);
}
$sqlInsPlan = "INSERT INTO objects_plan(object_id, img_plan) VALUES('$id','$ph')";
mysql_query($sqlInsPlan);
}
//переносим фото
$sqlSelectPhoto = "select oop.id, oop.object_photo_id, oop.sort_order from objects_object_photo oop where oop.object_id = $post[objId]";
$rezSelectPhoto = mysql_query($sqlSelectPhoto);
if (mysql_num_rows($rezSelectPhoto) > 0) {
$result = SelectelApi::getTokenAndUrl();
$token = $result[0];
$storageUrl = $result[1];
while ($objPh = mysql_fetch_assoc($rezSelectPhoto)) {
$sqlPhoto = "SELECT * FROM object_photo where id = $objPh[object_photo_id]";
$rezPhoto = mysql_query($sqlPhoto);
if (mysql_num_rows($rezPhoto) > 0) {
$photo = mysql_fetch_assoc($rezPhoto);
$pathInfo = pathinfo($photo['photo']);
if (stripos($photo['photo'], "http://") === false && stripos($photo['photo'], "https://") === false) {
$photo['photo'] = $_SERVER['DOCUMENT_ROOT'] . "/photos/" . $photo['photo'];
}
$content = file_get_contents($photo['photo']);
$ext = $pathInfo['extension'];
if (!$pathInfo['extension']) {
$ext = 'jpg';
}
if (strlen($ext) > 4) {
$ext = 'jpg';
}
$ph = md5($pathInfo['filename'].time())."_cpd.".$ext;
$one = mb_substr($ph, 0, 1);
$two = mb_substr($ph, 1, 1);
$three = mb_substr($ph, 3, 1);
$ph = "$one/$two/$three/$ph";
if (!is_dir($_SERVER['DOCUMENT_ROOT'] . "/photos/$one")) {
mkdir($_SERVER['DOCUMENT_ROOT'] . "/photos/$one");
}
if (!is_dir($_SERVER['DOCUMENT_ROOT'] . "/photos/$one/$two")) {
mkdir($_SERVER['DOCUMENT_ROOT'] . "/photos/$one/$two");
}
if (!is_dir($_SERVER['DOCUMENT_ROOT'] . "/photos/$one/$two/$three")) {
mkdir($_SERVER['DOCUMENT_ROOT'] . "/photos/$one/$two/$three");
}
$f1 = fopen($_SERVER['DOCUMENT_ROOT'] . "/photos/" . $ph, "a");
fwrite($f1, $content);
fclose($f1);
//загрузка в Selectel
$fp = $_SERVER['DOCUMENT_ROOT'] . "/photos/" . $ph;
$r = SelectelApi::uploadFile($storageUrl, $token, $fp, $ph, 'image/'.$ext);
//если выложили в Selectel
if ($r) {
//заменяем путь на новый
$ph = "https://data.joywork.ru/" . $ph;
//удаляем файл с локального сервера
unlink($fp);
}
$sqlInsPhoto = "INSERT INTO object_photo(photo) VALUES('$ph')";
mysql_query($sqlInsPhoto);
$photoId = mysql_insert_id();
$sqlInsPhotoLink = "INSERT INTO objects_object_photo(object_id, object_photo_id, sort_order) VALUES($id, $photoId, $objPh[sort_order])";
mysql_query($sqlInsPhotoLink);
}
}
}
//переносим адрес
$sqlLoc="SELECT * FROM object_location WHERE object_id = $post[objId]";
$rezLoc=mysql_query($sqlLoc);
while($loc = mysql_fetch_assoc($rezLoc)) {
$sqlInsLoc = "INSERT INTO object_location(`object_id`, `address`, `latitude`, `longitude`, `street`, `rf_region_rayon`, `city`, `deleted`, `part`) VALUES($id, '$loc[address]', '$loc[latitude]', '$loc[longitude]', '$loc[street]', '$loc[rf_region_rayon]', '$loc[city]', '$loc[deleted]', '$loc[part]')";
mysql_query($sqlInsLoc);
}
//переносим доп поля продажи
if ($obj['operation_type'] == 1) {
$sql77 = "SELECT * FROM sale_objects WHERE object_id=$post[objId]";
$rez77 = mysql_query($sql77);
while ($saleObj = mysql_fetch_assoc($rez77)) {
$sql88 = "INSERT INTO sale_objects (object_id, house_material, house_type, deal_type, build_year) VALUES ('$id', '$saleObj[house_material]', '$saleObj[house_type]', '$saleObj[deal_type]', '$saleObj[build_year]')";
mysql_query($sql88);
}
}
//переносим заметки
$sql4="SELECT * FROM user_object_events WHERE object_id = $post[objId]";
$rez_events=mysql_query($sql4);
while($event = mysql_fetch_assoc($rez_events)) {
$address = 'NULL';
if ($event['address']) {
$address = "'$event[address]'";
}
$sum = 'NULL';
if ($event['sum']) {
$sum = "'$event[sum]'";
}
$schDate = 'NULL';
if ($event['schedule_date']) {
$schDate = "'$event[schedule_date]'";
}
$comment = 'NULL';
if ($event['comment']) {
$comment = "'$event[comment]'";
}
$sql = "INSERT INTO user_object_events(user_id, object_id, create_date, type, address, sum, schedule_date, comment, calendar_view)
VALUES('$event[user_id]', '$id', '$event[create_date]', '$event[type]', $address, $sum, $schDate, $comment, '$event[calendar_view]')";
mysql_query($sql);
}
//переносим примечания
$sql5 = "SELECT * FROM object_notes WHERE object_id = $post[objId]";
$rez_notes = mysql_query($sql5);
while($note = mysql_fetch_assoc($rez_notes)) {
$sql = "INSERT INTO object_notes(object_id, message, created_at, created_by, updated_at, updated_by)
VALUES($id, '$note[message]', '$note[created_at]', '$note[created_by]', '$note[updated_at]', '$note[updated_by]')";
mysql_query($sql);
}
//Перенос комплекса в котором объект
$sql6 = "SELECT * FROM complex_objects WHERE object_id = {$post['objId']}";
$rez_complex = mysql_query($sql6);
if(mysql_num_rows($rez_complex) > 0){
while($complex = mysql_fetch_assoc($rez_complex)) {
$sql = "INSERT INTO complex_objects SET object_id={$id}, complex_id={$complex['complex_id']}, corpus_id={$complex['corpus_id']}";
mysql_query($sql);
$sql_sh = "UPDATE objects SET complex_id={$complex['complex_id']} WHERE id = {$id}";
$db_sphinx->query($sql_sh, true);
}
}
/**
* отправка хука
*/
$agencyId = (int)$agency->agencyId;
if($agencyId > 0){
$dataWhook = array('action'=>'object_create', 'object_id'=>$id, 'section'=>'object', 'user_id'=>$_SESSION['id'], 'agency_id'=>$agencyId);
$w_in = new WebHookIn(null, $agencyId);
$w_in->check_send($dataWhook);
}
}
}