Merge branch 'master' of http://192.168.10.243:3000/owrainfo/confirms
This commit is contained in:
57
app/Libraries/FormValidation.php
Normal file
57
app/Libraries/FormValidation.php
Normal file
@@ -0,0 +1,57 @@
|
||||
<?php
|
||||
|
||||
namespace App\Libraries;
|
||||
|
||||
class FormValidation
|
||||
{
|
||||
/**
|
||||
* 한글, 영문, 숫자, 대시, 언더바만 가능하게 한다. utf-8 기준.
|
||||
*
|
||||
* @param string $str 검증할 문자열
|
||||
* @param string|null $error 에러 메시지 (참조로 전달)
|
||||
* @return bool
|
||||
*/
|
||||
public function korean_alpha_dash(string $str, ?string &$error = null): bool
|
||||
{
|
||||
if (!preg_match('/^[\x{1100}-\x{11FF}\x{3130}-\x{318F}\x{AC00}-\x{D7AF}0-9a-zA-Z_-]+$/u', $str)) {
|
||||
$error = '한글, 영문, 숫자, 대시, 언더바만 입력 가능합니다.';
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* 문자열 형식이 Date가 맞는지 확인한다.
|
||||
*
|
||||
* @param string $str 검증할 날짜 문자열
|
||||
* @param string $format 날짜 형식 (기본값: Y-m-d)
|
||||
* @param string|null $error 에러 메시지 (참조로 전달)
|
||||
* @return bool
|
||||
*/
|
||||
public function is_date(string $str, string $format = 'Y-m-d', ?string &$error = null): bool
|
||||
{
|
||||
try {
|
||||
if (empty($format)) {
|
||||
$format = 'Y-m-d';
|
||||
}
|
||||
|
||||
$date = strtotime($str);
|
||||
|
||||
if ($date === false) {
|
||||
$error = '올바른 날짜 형식이 아닙니다.';
|
||||
return false;
|
||||
}
|
||||
|
||||
$strDate = date($format, $date);
|
||||
|
||||
if (strcmp($str, $strDate) !== 0) {
|
||||
$error = "날짜 형식이 {$format}와 일치하지 않습니다.";
|
||||
return false;
|
||||
}
|
||||
} catch (\Exception $e) {
|
||||
$error = '날짜 검증 중 오류가 발생했습니다.';
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
@@ -2,11 +2,20 @@
|
||||
|
||||
namespace App\Libraries;
|
||||
|
||||
use App\Models\common\CommonModel;
|
||||
|
||||
class NaverApiClient
|
||||
{
|
||||
protected $baseUrl = 'https://test-b2b.land.naver.com';
|
||||
protected $charger = '';
|
||||
|
||||
private $commonModel;
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
$this->commonModel = new CommonModel();
|
||||
}
|
||||
|
||||
/**
|
||||
* [GET] 매물 정보 조회
|
||||
*/
|
||||
@@ -27,7 +36,7 @@ class NaverApiClient
|
||||
{
|
||||
$this->charger = $charger;
|
||||
$url = "{$this->baseUrl}/kiso/center/verification-article/{$articleNumber}?charger={$this->charger}";
|
||||
|
||||
|
||||
return $this->request('PUT', $url, $updateData);
|
||||
}
|
||||
|
||||
@@ -59,6 +68,212 @@ class NaverApiClient
|
||||
return $this->request('GET', $url);
|
||||
}
|
||||
|
||||
/**
|
||||
* 단지상세정보조회
|
||||
* hscpNo : 단지번호(숫자)
|
||||
*/
|
||||
public function aptDetail($hscpNo)
|
||||
{
|
||||
$url = $this->commonModel->getCompanyInfo(2);
|
||||
$url = $url['api_server'] . "/confirms/APTDetail?hscpNo={$hscpNo}";
|
||||
return $this->request('GET', $url);
|
||||
}
|
||||
|
||||
/**
|
||||
* 빌라 단지상세정보 조회
|
||||
* hscpNo : 단지번호(숫자)
|
||||
*/
|
||||
|
||||
public function villaDetail($hscpNo)
|
||||
{
|
||||
$url = $this->commonModel->getCompanyInfo(2);
|
||||
$url = $url['api_server'] . "/confirms/villa/{$hscpNo}";
|
||||
return $this->request('GET', $url);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 단지목록
|
||||
* cortarNo : 법정동코드
|
||||
*/
|
||||
public function complexList($cortarNo)
|
||||
{
|
||||
$url = $this->commonModel->getCompanyInfo(2);
|
||||
$url = $url['api_server'] . "/common/complexList.nhn?cortarNo={$cortarNo}";
|
||||
return $this->request('GET', $url);
|
||||
}
|
||||
|
||||
/**
|
||||
* 평형목록
|
||||
* rletNo : 단지번호
|
||||
*/
|
||||
public function ptpList($rletNo)
|
||||
{
|
||||
$url = $this->commonModel->getCompanyInfo(2);
|
||||
$url = $url['api_server'] . "/common/ptpList.nhn?rletNo={$rletNo}";
|
||||
return $this->request('GET', $url);
|
||||
}
|
||||
|
||||
/**
|
||||
* 가격수정
|
||||
* @param String atclNo 매물번호
|
||||
* @param integer dealAmt 매매가, 전세(보증금) 단위 : 만원
|
||||
* @param integer wrrntAmt 전세가(보증금) 단위 : 만원
|
||||
* @param integer leaseAmt 월세가 단위 : 만원
|
||||
* @param integer isaleAmt 분양가 단위 : 만원
|
||||
* @param integer premAmt 프리미엄 단위 : 만원
|
||||
* @param integer charger 담당자id
|
||||
*/
|
||||
public function priceChange($atclNo, $dealAmt, $wrrntAmt, $leaseAmt, $isaleAmt, $premAmt, $charger)
|
||||
{
|
||||
$url = $this->commonModel->getCompanyInfo(3);
|
||||
$url = $url['api_server'] . "/confirms/priceChange";
|
||||
|
||||
$postData = [
|
||||
"atclNo" => $atclNo,
|
||||
"dealAmt" => $dealAmt,
|
||||
"wrrntAmt" => $wrrntAmt,
|
||||
"leaseAmt" => $leaseAmt,
|
||||
"isaleAmt" => $isaleAmt,
|
||||
"premAmt" => $premAmt,
|
||||
"charger" => $charger
|
||||
];
|
||||
|
||||
return $this->request('POST', $url, $postData);
|
||||
}
|
||||
|
||||
/**
|
||||
* 매물정보수정
|
||||
* @param String atclNo 매물번호
|
||||
* @param integer hscpNo 단지번호
|
||||
* @param integer ptpNo 평형번호
|
||||
* @param String bildNm 동이름
|
||||
* @param String rmNo 호수
|
||||
* @param String tradeType 거래종류(A1,B1,B2 / 변경시 B1 <-> B2만 가능)
|
||||
* @param integer dealAmt 매매가, 전세(보증금) 단위 : 만원
|
||||
* @param integer wrrntAmt 전세가(보증금) 단위 : 만원
|
||||
* @param integer leaseAmt 월세가 단위 : 만원
|
||||
* @param integer isaleAmt 분양가 단위 : 만원
|
||||
* @param integer premAmt 프리미엄 단위 : 만원
|
||||
* @param integer floor 층
|
||||
* @param integer charger 담당자id
|
||||
*
|
||||
* @param String addressCode 주소코드 : 비공동 주택 법정동 코드
|
||||
* @param String address2 지번주소 : 비공동 주택 지번 주소
|
||||
* @param String address3 기타주소 : 비공동 주택 기타 주소
|
||||
* @param float splySpc 공급면적
|
||||
* @param float exclsSpc 대지면적
|
||||
* @param float totSpc 전체면적
|
||||
* @param float grndSpc 대지면적
|
||||
* @param float bldgSpc 건축면적
|
||||
*
|
||||
*/
|
||||
public function modifyInfo($atclNo, $hscpNo, $ptpNo, $bildNm, $rmNo, $tradeType, $dealAmt, $wrrntAmt, $leaseAmt, $isaleAmt, $premAmt, $floor, $floor2, $charger, $addressCode, $address2, $address2a, $address2b, $address3, $splySpc, $exclsSpc, $totSpc, $grndSpc, $bldgSpc)
|
||||
{
|
||||
$url = $this->commonModel->getCompanyInfo(3);
|
||||
$url = $url['api_server'] . "/confirms/modifyInfo";
|
||||
|
||||
// 공통
|
||||
$postData = [
|
||||
"atclNo" => $atclNo,
|
||||
"tradeType" => $tradeType,
|
||||
"dealAmt" => $dealAmt,
|
||||
"wrrntAmt" => $wrrntAmt,
|
||||
"leaseAmt" => $leaseAmt,
|
||||
"isaleAmt" => $isaleAmt,
|
||||
"charger" => $charger
|
||||
];
|
||||
|
||||
// 공동주택
|
||||
$apartData["hscpNo"] = $hscpNo;
|
||||
$apartData["ptpNo"] = $ptpNo;
|
||||
$apartData["bildNm"] = $address2; // 네이버에서 보내주는거랑 수정되어 전달하는 거랑 다른 타입임. 2014년 11월 13일 수정
|
||||
$apartData["rmNo"] = $address3; // 네이버에서 보내주는거랑 수정되어 전달하는 거랑 다른 타입임. 2014년 11월 13일 수정
|
||||
// $apartData["bildNm"] = $bildNm;
|
||||
// $apartData["rmNo"] = $rmNo;
|
||||
$apartData["premAmt"] = $premAmt;
|
||||
$apartData["floor"] = $floor;
|
||||
$apartData["floor2"] = $floor2;
|
||||
|
||||
// 비공동주택 연동
|
||||
$detachData["addressCode"] = $addressCode;
|
||||
$detachData["address2"] = $address2;
|
||||
$detachData["address2a"] = $address2a;
|
||||
$detachData["address2b"] = $address2b;
|
||||
$detachData["address3"] = $address3;
|
||||
$detachData["splySpc"] = $splySpc;
|
||||
$detachData["exclsSpc"] = $exclsSpc;
|
||||
$detachData["totSpc"] = $totSpc;
|
||||
$detachData["grndSpc"] = $grndSpc;
|
||||
$detachData["bldgSpc"] = $bldgSpc;
|
||||
$detachData["floor"] = $floor;
|
||||
$detachData["floor2"] = $floor2;
|
||||
|
||||
if (!empty($hscpNo)) { //공동주택일 때
|
||||
$postData = array_merge($postData, $apartData);
|
||||
} else { //비공동주택일 때
|
||||
$postData = array_merge($postData, $detachData);
|
||||
}
|
||||
|
||||
return $this->request('POST', $url, $postData);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 검증결과 전송
|
||||
* @param String atclNo 매물번호
|
||||
* @param boolean success 성공여부
|
||||
* @param array checkList 확인정보 array('type'=>'T11','code'=>'10000','comment'=>'01|02|03'); 또는 array('type'=>'T11','code'=>'10000','comment'=>'코멘트');
|
||||
* @param String charger 담당자 사번
|
||||
* @param array modifyInfo 공동 비공동에 따라 다른 배열을 넘긴다.
|
||||
* @param String date 상담일시
|
||||
*/
|
||||
public function confirm($atclNo, $success, $checkList, $charger, $modifyInfo, $date)
|
||||
{
|
||||
$url = $this->commonModel->getCompanyInfo(3);
|
||||
$url = $url['api_server'] . "/confirms/confirm";
|
||||
|
||||
$postData = [
|
||||
"atclNo" => $atclNo,
|
||||
"success" => $success,
|
||||
"checkList" => $checkList,
|
||||
"charger" => $charger,
|
||||
"modifyInfo" => $modifyInfo,
|
||||
"date" => $date,
|
||||
];
|
||||
|
||||
return $this->request('POST', $url, $postData);
|
||||
}
|
||||
|
||||
/**
|
||||
* 등기부 등본 확인 결과
|
||||
* @param String atclNo 매물번호
|
||||
* @param String type 1: 1차 확인(등기부확인) / 2: 2차 확인(최종확인 또는 중개업소 TM)
|
||||
* @param boolean success 성공여부
|
||||
* @param array checkList 확인정보
|
||||
* @param String charger 담당자 사번
|
||||
* @param String date 상담일시
|
||||
* @param array modifyInfo 수정정보 - success:true 에서만 허용
|
||||
*/
|
||||
public function certification($atclNo, $type, $success, $checkList, $charger, $date, $modifyInfo, $ownerVerifiable)
|
||||
{
|
||||
$url = $this->commonModel->getCompanyInfo(3);
|
||||
$url = $url['api_server'] . "/confirms/certification";
|
||||
|
||||
$postData = [
|
||||
"atclNo" => $atclNo,
|
||||
"type" => $type,
|
||||
"success" => $success,
|
||||
"checkList" => $checkList,
|
||||
"charger" => $charger,
|
||||
"date" => $date,
|
||||
"modifyInfo" => $modifyInfo,
|
||||
"ownerVerifiable" => $ownerVerifiable
|
||||
];
|
||||
|
||||
return $this->request('POST', $url, $postData);
|
||||
}
|
||||
|
||||
/**
|
||||
* CURL 공통 실행 함수
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user