아파트단지 추가

This commit is contained in:
yangsh
2025-12-23 17:26:40 +09:00
parent 2ca6683a96
commit f0ad8c2a0e
13 changed files with 7025 additions and 83 deletions

View File

@@ -0,0 +1,995 @@
<?php
namespace App\Controllers\article;
use App\Controllers\article\Exception;
use App\Controllers\BaseController;
use App\Libraries\MyUpload;
use App\Models\article\AptModel;
use App\Models\common\CodeModel;
use MY_Upload;
class Apt extends BaseController
{
private $aptModel, $codeModel;
public function __construct()
{
$this->aptModel = new AptModel();
$this->codeModel = new CodeModel();
}
// 아파트단지
public function lists(): string
{
$codes = $this->codeModel->getCodeLists(['VIDEO_TARGET', 'APT_STEP', 'PHO_YN', 'VDO_YN']); // 코드조회
$sido = $this->aptModel->getAreaList(); // 지역조회
$bonbu = $this->aptModel->getBonbuList(); // 본부
$team = $this->aptModel->getTeamList(); // 팀
$user = $this->aptModel->getUserList(); // 유저
return view("pages/article/lists", [
'codes' => $codes,
'sido' => $sido,
'bonbu' => $bonbu,
'team' => $team,
'user' => $user,
]);
}
// 아파트단지목록 조회
public function getAptLists()
{
$start = (int) $this->request->getGet('start') ?: 0;
$end = (int) $this->request->getGet('length') ?: 10;
$data = [
'hscp_no' => $this->request->getGet('hscp_no'), // 단지코드
'pho_no' => $this->request->getGet('pho_no'), // 사진코드
'srcSido' => $this->request->getGet('srcSido'), // 시|도
'srcGugun' => $this->request->getGet('srcGugun'), // 시|군|구
'srcDong' => $this->request->getGet('srcDong'), // 읍|면|동
'rcpt_hscp_nm' => $this->request->getGet('rcpt_hscp_nm'), // 단지명
'sdate' => $this->request->getGet('sdate'), // 시작일
'edate' => $this->request->getGet('edate'), // 종료일
'households_cnt1' => $this->request->getGet('households_cnt1'), // 총세대수1
'households_cnt2' => $this->request->getGet('households_cnt2'), // 총세대수2
'dong_cnt1' => $this->request->getGet('dong_cnt1'), // 총동수1
'dong_cnt2' => $this->request->getGet('dong_cnt2'), // 총동수2
'bonbu' => $this->request->getGet('bonbu'), // 본부
'team' => $this->request->getGet('team'), // 팀
'damdang' => $this->request->getGet('damdang'), // 담당
'stat' => $this->request->getGet('stat'), // 진행상태
];
$totalCount = $this->aptModel->getTotalCount($data);
$datas = $this->aptModel->getAptLists($start, $end, $data);
$deptStatistics = $this->aptModel->getDeptStatistics($data); // 조직별통계
$areaStatistics = $this->aptModel->getStatistics($data); // 지역별통계
return $this->response->setJSON(body: [
'draw' => (int) ($this->request->getGetPost('draw') ?? 0), // 서버사이드면 권장
'recordsTotal' => $totalCount,
'recordsFiltered' => $totalCount,
'data' => $datas,
'widgets' => [
'deptList' => $deptStatistics,
'areaStats' => $areaStatistics,
],
]);
}
// 전체촬영불가 단지 확인
public function chkTakeAptPhotoCnt()
{
$data = $this->aptModel->chkTakeAptPhotoCnt();
return $this->response->setJSON(
body:
$data
);
}
// 관할포인트 인쇄 - 화면
public function print(): string
{
$deptSq = $this->request->getGet('depChk');
$dept_cnt = count($deptSq);
$listDept = $this->aptModel->getDeptMapList($deptSq);
if (!empty($listDept)) {
$lati = 0;
$long = 0;
foreach ($listDept as $dept) {
$lati += $dept['rcpt_y'];
$long += $dept['rcpt_x'];
}
$lati = $lati / $dept_cnt;
$long = $long / $dept_cnt;
}
return view("pages/article/printMap", [
// 'lati' => $lati,
// 'long' => $long,
'listDept' => $listDept,
]);
}
// 아파트단지 정보저장
public function saveAptMemo()
{
try {
$rcpt_no = $this->request->getPost('rcpt_no');
$video_target = $this->request->getPost('video_target');
if (empty($rcpt_no)) {
throw new Exception("단지정보 누락");
}
$params = [
'target' => $video_target,
'memo' => $this->request->getPost('memo') ?: '',
'rcpt_no' => $rcpt_no,
];
// UPDATE apt_result
$this->aptModel->saveAptMemo($params);
return $this->response->setJSON([
'code' => '0',
'msg' => 'success'
]);
} catch (\Exception $e) {
return $this->response->setJSON([
'code' => '9',
'msg' => $e->getMessage(),
]);
}
}
// 담당자정보변경
public function chgAptDamdang()
{
try {
$team = $this->request->getPost('team');
$damdang = $this->request->getPost(index: 'damdang');
if (empty($team)) {
throw new Exception("팀정보 누락");
}
if (empty($damdang)) {
throw new Exception("담당자정보 누락");
}
$rows = $this->request->getPost('rows');
$rows = json_decode($rows, true);
if (count($rows) > 0) {
foreach ($rows as $row) {
$params = [
$team,
$damdang,
$row['rcpt_no'],
];
// UPDATE apt_result
$this->aptModel->updateAptDamdang($params);
}
} else {
throw new Exception("저장할 데이터 누락");
}
return $this->response->setJSON([
'code' => '0',
'msg' => 'success'
]);
} catch (\Exception $e) {
return $this->response->setJSON([
'code' => '9',
'msg' => $e->getMessage(),
]);
}
}
// 영상담당 정보 저장
public function chgAptVideoTarget()
{
try {
$target = $this->request->getPost('video');
if (empty($target)) {
throw new Exception("영상대상 정보 누락");
}
$rows = $this->request->getPost('rows');
$rows = json_decode($rows, true);
if (count($rows) > 0) {
foreach ($rows as $row) {
$params = [
'target' => $target,
'apt_step' => $row['apt_step'],
'rcpt_no' => $row['rcpt_no'],
'usr_id' => session('usr_id'),
];
// UPDATE apt_result
$this->aptModel->updateAptVideoTarget($params);
}
} else {
throw new Exception("저장할 데이터 누락");
}
return $this->response->setJSON([
'code' => '0',
'msg' => 'success'
]);
} catch (\Exception $e) {
return $this->response->setJSON([
'code' => '9',
'msg' => $e->getMessage(),
]);
}
}
// 엑셀 다운로드
public function excel()
{
try {
$data = [
'hscp_no' => $this->request->getGet('hscp_no'), // 단지코드
'pho_no' => $this->request->getGet('pho_no'), // 사진코드
'srcSido' => $this->request->getGet('srcSido'), // 시|도
'srcGugun' => $this->request->getGet('srcGugun'), // 시|군|구
'srcDong' => $this->request->getGet('srcDong'), // 읍|면|동
'rcpt_hscp_nm' => $this->request->getGet('rcpt_hscp_nm'), // 단지명
'sdate' => $this->request->getGet('sdate'), // 시작일
'edate' => $this->request->getGet('edate'), // 종료일
'households_cnt1' => $this->request->getGet('households_cnt1'), // 총세대수1
'households_cnt2' => $this->request->getGet('households_cnt2'), // 총세대수2
'dong_cnt1' => $this->request->getGet('dong_cnt1'), // 총동수1
'dong_cnt2' => $this->request->getGet('dong_cnt2'), // 총동수2
'bonbu' => $this->request->getGet('bonbu'), // 본부
'team' => $this->request->getGet('team'), // 팀
'damdang' => $this->request->getGet('damdang'), // 담당
'stat' => $this->request->getGet('stat'), // 진행상태
];
$datas = $this->aptModel->getExcelList($data);
return $this->response->setJSON(body: [
'data' => $datas,
]);
} catch (\Exception $e) {
$e->getPrevious()->getTraceAsString();
}
}
// 아파트단지 상세화면
public function detail($id = null): string
{
$rcpt_no = (int) $id;
if ($rcpt_no == null) {
throw \CodeIgniter\Exceptions\PageNotFoundException::forPageNotFound();
}
$bonbu = $this->aptModel->getBonbuList();
$team = $this->aptModel->getTeamList();
$user = $this->aptModel->getUserList();
$codes = $this->codeModel->getCodeLists(['VIDEO_TARGET', 'PHO_CATE1', 'PHO_CATE2']); // 코드조회
$apt = $this->aptModel->getDetail($rcpt_no);
//이미지 리스트
$image = $this->aptModel->getImgList($rcpt_no);
//이미지 총 개수
$cntAllPho = $this->aptModel->cntAllPho($rcpt_no);
if (empty($cntAllPho)) {
$cntAllPho = 0;
}
//동영상 리스트
$vdo = $this->aptModel->getVideoList($rcpt_no);
//사진및 설명정보의 카테고리 리스트
$cateInfo = $this->aptModel->getCateInfoList($rcpt_no);
//정보변경이력
$history = $this->aptModel->getHistory($rcpt_no);
$code1 = [];
$code2 = [];
$video = [];
if (!empty($codes)) {
foreach ($codes as $code) {
if ($code['category'] === "PHO_CATE1") {
array_push($code1, $code);
} else if ($code['category'] === "PHO_CATE2") {
array_push($code2, $code);
} else if ($code['category'] === "VIDEO_TARGET") {
array_push($video, $code);
}
}
}
// return print_r($image);
return view("pages/article/detail", [
'apt' => $apt,
'bonbu' => $bonbu,
'team' => $team,
'user' => $user,
'code1' => $code1,
'code2' => $code2,
'video' => $video,
'image' => $image,
'vdo' => $vdo,
'history' => $history,
'cateInfo' => $cateInfo,
'cntAllPho' => $cntAllPho
]);
}
public function cateJson()
{
$params = [
$this->request->getGet('pho_cate1'),
];
$datas = $this->aptModel->getCateJson($params);
return $this->response->setJSON($datas);
}
// 담당자 정보 저장
public function saveKeeper()
{
try {
$params = [
'rcpt_no' => $this->request->getPost('rcpt_no'),
'bonbu' => $this->request->getPost('bonbu'),
'team' => $this->request->getPost('team'),
'user' => $this->request->getPost('user'),
];
// UPDATE apt_result
$this->aptModel->saveKeeper($params);
return $this->response->setJSON([
'code' => '0',
'msg' => 'success'
]);
} catch (\Exception $e) {
return $this->response->setJSON([
'code' => '9',
'msg' => $e->getMessage(),
]);
}
}
// 지도좌표 수정
public function saveCoordinate()
{
try {
$params = [
'rcpt_no' => $this->request->getPost('rcpt_no'),
'rcpt_x' => $this->request->getPost('rcpt_x'),
'rcpt_y' => $this->request->getPost('rcpt_y'),
];
// UPDATE apt_receipt, apt_result
$this->aptModel->saveCoordinate($params);
return $this->response->setJSON([
'code' => '0',
'msg' => 'success'
]);
} catch (\Exception $e) {
return $this->response->setJSON([
'code' => '9',
'msg' => $e->getMessage(),
]);
}
}
// 단지 특이사항 저장
public function saveNote()
{
try {
$params = [
'rcpt_no' => $this->request->getPost('rcpt_no'),
'note' => $this->request->getPost('note'),
];
// UPDATE apt_result
$this->aptModel->saveNote($params);
return $this->response->setJSON([
'code' => '0',
'msg' => 'success'
]);
} catch (\Exception $e) {
return $this->response->setJSON([
'code' => '9',
'msg' => $e->getMessage(),
]);
}
}
// 동영상 촬영정보 저장
public function saveVideoTarget()
{
try {
$params = [
'rcpt_no' => $this->request->getPost('rcpt_no'),
'target' => $this->request->getPost('video_target'),
];
// UPDATE apt_result
$this->aptModel->saveVideoTarget($params);
return $this->response->setJSON([
'code' => '0',
'msg' => 'success'
]);
} catch (\Exception $e) {
return $this->response->setJSON([
'code' => '9',
'msg' => $e->getMessage(),
]);
}
}
// 촬영불가사유 저장
public function saveVideoReason()
{
try {
$params = [
'rcpt_no' => $this->request->getPost('rcpt_no'),
'not_vdo_reson' => $this->request->getPost('not_vdo_reson'),
'vdo_up_ynx' => $this->request->getPost('vdo_up_ynx'),
];
// UPDATE apt_result
$this->aptModel->saveVideoReason($params);
return $this->response->setJSON([
'code' => '0',
'msg' => 'success'
]);
} catch (\Exception $e) {
return $this->response->setJSON([
'code' => '9',
'msg' => $e->getMessage(),
]);
}
}
// 사진업로드 불가사유 저장
public function savePhoReason()
{
try {
$params = [
'rcpt_no' => $this->request->getPost('rcpt_no'),
'pho_cate2' => $this->request->getPost('pho_cate2'),
'pho_up_nu' => $this->request->getPost('pho_up_nu'),
'usr_id' => session('usr_id'),
];
// UPDATE apt_category
$this->aptModel->savePhoReason($params);
return $this->response->setJSON([
'code' => '0',
'msg' => 'success'
]);
} catch (\Exception $e) {
return $this->response->setJSON([
'code' => '9',
'msg' => $e->getMessage(),
]);
}
}
// 사진 카테고리 수정
public function saveCate()
{
try {
$phoNo = $this->request->getPost('pho_no');
if (!is_array($phoNo)) {
$phoNo = [$phoNo];
}
$params = [
'pho_no' => $phoNo,
'pho_cate1' => $this->request->getPost('pho_cate1'),
'pho_cate2' => $this->request->getPost('pho_cate2'),
'rcpt_no' => $this->request->getPost('rcpt_no'),
'now_cate' => $this->request->getPost('nowCate2'),
];
$this->aptModel->saveCate($params);
return $this->response->setJSON([
'code' => '0',
'msg' => 'success'
]);
} catch (\Exception $e) {
return $this->response->setJSON([
'code' => '9',
'msg' => $e->getMessage(),
]);
}
}
// 사진 노출정보 저장
public function savePhotoView()
{
try {
$phoNo = $this->request->getPost('pho_no');
if (!is_array($phoNo)) {
$phoNo = [$phoNo];
}
$pho_cate2 = $this->request->getPost('pho_cate2');
$params = [
'pho_no' => $phoNo,
'pho_view_yn' => $this->request->getPost('pho_view_yn_' . $pho_cate2),
'rcpt_no' => $this->request->getPost('rcpt_no'),
];
$this->aptModel->savePhotoView($params);
return $this->response->setJSON([
'code' => '0',
'msg' => 'success'
]);
} catch (\Exception $e) {
return $this->response->setJSON([
'code' => '9',
'msg' => $e->getMessage(),
]);
}
}
// 사진정보삭제
public function removePhoto()
{
try {
$phoNo = $this->request->getPost('pho_no');
if (!is_array($phoNo)) {
$phoNo = [$phoNo];
}
$pho_cate2 = $this->request->getPost('pho_cate2');
$params = [
'pho_no' => $phoNo,
'rcpt_no' => $this->request->getPost('rcpt_no'),
'cate2_cd' => $this->request->getPost('cate2_cd'),
];
$this->aptModel->removePhoto($params);
return $this->response->setJSON([
'code' => '0',
'msg' => 'success'
]);
} catch (\Exception $e) {
return $this->response->setJSON([
'code' => '9',
'msg' => $e->getMessage(),
]);
}
}
// 사진설명 저장
public function savePhoExplain()
{
try {
$params = [
'rcpt_no' => $this->request->getPost('rcpt_no'),
'pho_cate2' => $this->request->getPost('pho_cate2'),
'pho_explain' => session('pho_explain'),
'usr_id' => session('usr_id'),
];
$this->aptModel->savePhoExplain($params);
return $this->response->setJSON([
'code' => '0',
'msg' => 'success'
]);
} catch (\Exception $e) {
return $this->response->setJSON([
'code' => '9',
'msg' => $e->getMessage(),
]);
}
}
// 검수완료 저장
public function confirmAptInfo()
{
try {
$rcpt_no = $this->request->getPost('rcpt_no');
$hscp_no = $this->request->getPost('hscp_no');
$params = [
'rcpt_no' => $rcpt_no,
'hscp_no' => $hscp_no,
];
$apiData = $this->aptModel->new_api_photo_send_data($rcpt_no);
$ip_addr = array(
'172.16.100.2',
'172.16.100.3',
'172.16.100.4',
'172.16.100.5'
);
if (
isset($_SERVER['HTTPS']) &&
($_SERVER['HTTPS'] == 'on' || $_SERVER['HTTPS'] == 1) ||
isset($_SERVER['HTTP_X_FORWARDED_PROTO']) &&
$_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https'
) {
$protocol = 'https://';
} else {
$protocol = 'http://';
}
if (in_array($_SERVER['SERVER_ADDR'], $ip_addr) == false) {
$domain = $protocol . $_SERVER['HTTP_HOST'];
// $domain = $protocol . 'test-admin.confirms.co.kr';
} else {
$domain = $protocol . 'admin.confirms.co.kr';
}
foreach ($apiData as $key => $d) {
$isExposed = ($d['use_yn'] == 'Y' ? true : false);
$array[] = array('mainCategory' => $d['cate1_cd'], 'subCategory' => $d['cate2_cd'], 'comment' => $d['pho_explain']);
$array1[] = array(
'photoNumber' => $d['pho_no'],
'mainCategory' => $d['cate1_cd'],
'subCategory' => $d['cate2_cd'],
'lat' => $d['pho_lati'],
'lng' => $d['pho_long'],
'url' => $d['url'],
'isExposed' => $isExposed,
'order' => 1
);
}
$serializedArray = array_map('serialize', $array);
$uniqueArray = array_unique($serializedArray);
$post_data_array['categories'] = array_map('unserialize', array_values($uniqueArray));
$post_data_array['photos'] = $array1;
$send_post_data = json_encode($post_data_array, JSON_UNESCAPED_UNICODE);
/**API시작**/
$result = $this->syncRequestListNew($hscp_no, $send_post_data);
/**API끝**/
if ($result['code'] == 'success') {
$syncId = '';
$this->aptModel->saveCheck($rcpt_no, $syncId);
return $this->response->setJSON([
'code' => '0',
'msg' => 'success'
]);
} else {
return $this->response->setJSON([
'code' => '9',
'msg' => '저장실패'
]);
}
} catch (\Exception $e) {
return $this->response->setJSON([
'code' => '9',
'msg' => $e->getMessage(),
]);
}
}
// 재전송
public function resendAptInfo()
{
try {
$rcpt_no = $this->request->getPost('rcpt_no');
$hscp_no = $this->request->getPost('hscp_no');
$params = [
'rcpt_no' => $rcpt_no,
'hscp_no' => $hscp_no,
];
$apiData = $this->aptModel->new_api_photo_send_data($rcpt_no);
$ip_addr = array(
'172.16.100.2',
'172.16.100.3',
'172.16.100.4',
'172.16.100.5'
);
if (
isset($_SERVER['HTTPS']) &&
($_SERVER['HTTPS'] == 'on' || $_SERVER['HTTPS'] == 1) ||
isset($_SERVER['HTTP_X_FORWARDED_PROTO']) &&
$_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https'
) {
$protocol = 'https://';
} else {
$protocol = 'http://';
}
if (in_array($_SERVER['SERVER_ADDR'], $ip_addr) == false) {
$domain = $protocol . $_SERVER['HTTP_HOST'];
// $domain = $protocol . 'test-admin.confirms.co.kr';
} else {
$domain = $protocol . 'admin.confirms.co.kr';
}
foreach ($apiData as $key => $d) {
$isExposed = ($d['use_yn'] == 'Y' ? true : false);
$array[] = array('mainCategory' => $d['cate1_cd'], 'subCategory' => $d['cate2_cd'], 'comment' => $d['pho_explain']);
$array1[] = array(
'photoNumber' => $d['pho_no'],
'mainCategory' => $d['cate1_cd'],
'subCategory' => $d['cate2_cd'],
'lat' => $d['pho_lati'],
'lng' => $d['pho_long'],
'url' => $d['url'],
'isExposed' => $isExposed,
'order' => 1
);
}
$serializedArray = array_map('serialize', $array);
$uniqueArray = array_unique($serializedArray);
$post_data_array['categories'] = array_map('unserialize', array_values($uniqueArray));
$post_data_array['photos'] = $array1;
$send_post_data = json_encode($post_data_array, JSON_UNESCAPED_UNICODE);
log_message('debug', 'APT_SEND rcpt_no:::::::' . $rcpt_no . ':::::::' . $send_post_data);
// $send_post_data = to_han( json_encode( $post_data_array) );
/**API시작**/
$result = $this->syncRequestListNew($hscp_no, $send_post_data);
/**API끝**/
if ($result['code'] == 'success') {
$syncId = '';
$this->aptModel->saveResend($rcpt_no, $syncId);
return $this->response->setJSON([
'code' => '0',
'msg' => 'success'
]);
} else {
return $this->response->setJSON([
'code' => '9',
'msg' => '저장실패'
]);
}
} catch (\Exception $e) {
return $this->response->setJSON([
'code' => '9',
'msg' => $e->getMessage(),
]);
}
}
// 파일업로드 - 동영상, 사진
public function uploadFile()
{
$lib = new MyUpload();
try {
$rcpt_no = $this->request->getPost('rcpt_no');
$uploadType = $this->request->getPost('upload_type');
$files = $this->request->getFiles();
$imgPath = "/upload/apt_file/" . $rcpt_no . "/";
$imgPath = NCLOUD_OBJECT_STORAGE_URL . $imgPath;
$moviePath = $imgPath;
$photo360Path = $imgPath;
if (!isset($files['files'])) {
return $this->response->setJSON([
'success' => false,
'msg' => '파일 없음'
]);
}
if ($uploadType === "photo") {
// foreach ($files['files'] as $file) {
// if ($file->isValid()) {
// $file->move(WRITEPATH . 'uploads');
// INSERT apt_photo
print_r($_FILES);
// }
// $imageDataBlob = file_get_contents($object_storage_url);
// $im = new Imagick();
// $im->readImageBlob($imageDataBlob);
// $im->thumbnailImage(105, 80, false);
// $thumb_im = $im->getImageBlob();
// $lib->upload_object_storage_imagick();
// }
} else if ($uploadType === "video") {
}
} catch (\Exception $e) {
return $this->response->setJSON([
'code' => '9',
'msg' => $e->getMessage(),
]);
}
}
/**
* 동기화요청 API
*/
public function syncRequestListNew($hscp_no, $postData)
{
$addr = $this->apt_model->getSyncAddr();
$key = $addr['api_key'];
$server = $addr['api_server'];
$secret = $addr['api_secret'];
$urlString = $server . "/kiso/confirms/complex/" . $hscp_no . "/photo";
$postData = str_replace("\\/", '/', $postData);
$headers = array();
$headers[] = 'x-naver-client-id: ' . $key;
if (!empty($secret)) {
$headers[] = 'x-naver-client-secret: ' . $secret;
}
$headers[] = 'Accept: application/json';
$headers[] = 'Content-Type: application/json';
// var_dump( $urlString );
// var_dump( $headers );
log_message('debug', ' syncRequestListNew => url =>' . $urlString . '===============postData =>' . $postData);
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => $urlString,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS => $postData,
CURLOPT_HTTPHEADER => $headers,
));
$response = curl_exec($curl);
$info = curl_getinfo($curl, CURLINFO_HTTP_CODE);
curl_close($curl);
$result = json_decode($response, TRUE);
log_message('debug', ' syncRequestListNew => url =>' . $urlString . '===============returnData =>' . $response . '====http_code===' . $info);
// if ( $info == "200" ) {
if (isset($result) && $result['code'] == 'success') {
return $result;
} else {
return array('code' => 'fail', 'message' => '전송실패', "timeStamp" => date("Y-m-dTH:i:s"));
}
// $jsonArray = json_decode($response, TRUE);
// if ($response === false || $info['http_code'] != 200){
// $return = "false";
// }else{
// $jsonArray = json_decode($response, TRUE);
// if ($jsonArray['code'] == "success"){
// // $return = $jsonArray['syncList'];
// $return = "true";
// }else{
// $return = "false";
// }
// }
// return $return;
}
}