워커 수정

This commit is contained in:
2026-04-27 15:03:36 +09:00
parent b0ec75ae56
commit f8c26acea8
30 changed files with 1317 additions and 1142 deletions

View File

@@ -14,34 +14,26 @@ if (!function_exists('limitHscpMarketPriceInfo')) {
if (!empty($hscp_no) && !empty($ptp_no)) {
$naver = new \App\Libraries\NaverApiClient();
$hscpMarketPriceInfo = $naver->hscpMarketPriceInfo($hscp_no, $ptp_no);
$hscpMarketPriceInfo = $naver->getComplexPriceByUnitType((int)$hscp_no, (int)$ptp_no);
if (isset($hscpMarketPriceInfo['error'])) { //결과값 확인
if ($hscpMarketPriceInfo['error']['code'] == 'VC027') {
$return = array();
} else {
$return = $hscpMarketPriceInfo['error'];
}
if (isset($hscpMarketPriceInfo['error']) && $hscpMarketPriceInfo['error']) { //결과값 확인
log_message('error', '네이버 시세 API 호출 실패: ' . json_encode($hscpMarketPriceInfo));
return array();
} else {
$limitH = 0;
$limitL = 0;
$sise = array();
$sise = $hscpMarketPriceInfo['data'];
// 상한가, 하한가 체크 ( 상한가 * 2, 하한가 * 0.7) 이내의 범위에 가격이 있어야 함.
if ($trade_type == 'A1') {
// 매매
if (isset($hscpMarketPriceInfo['result']['deal_uplmt_prc'])) {
$limitH = $hscpMarketPriceInfo['result']['deal_uplmt_prc'];
}
if (isset($hscpMarketPriceInfo['result']['deal_lwlmt_prc'])) {
$limitL = $hscpMarketPriceInfo['result']['deal_lwlmt_prc'];
}
$limitH = $sise['dealCeilingPrice'] ?? 0;
$limitL = $sise['dealFloorPrice'] ?? 0;
} elseif ($trade_type == 'B1') {
// 전세
if (isset($hscpMarketPriceInfo['result']['lease_uplmt_prc'])) {
$limitH = $hscpMarketPriceInfo['result']['lease_uplmt_prc'];
}
if (isset($hscpMarketPriceInfo['result']['lease_lwlmt_prc'])) {
$limitL = $hscpMarketPriceInfo['result']['lease_lwlmt_prc'];
}
$limitH = $sise['leaseCeilingPrice'] ?? 0;
$limitL = $sise['leaseFloorPrice'] ?? 0;
}
if (!empty($limitH)) {
@@ -317,3 +309,146 @@ function getOwnerTypeCodeNo($code)
break;
}
}
/**
* 무엇이 변경되었는지 확인한다.
* $table(DB의 원래 데이터), data (변경된 내용) ==> array
*/
function what_is_changed($table, $data){
$return = '';
if (empty($table) || empty($data)){
log_message('warning', 'what_is_changed 함수에 빈 데이터 전달 | table: ' . json_encode($table) . ', data: ' . json_encode($data));
return $return;
}
foreach ( $data as $key => $value ) {
if (!array_key_exists($key, $table)) {
$table[$key] = '';
}
if (strcmp(trim((string) $table[$key]), trim((string) $value)) != 0){
switch ( $key ) {
case 'trade_type': // 거래구분
$return .= ', 거래구분 : ';
$return .= $table[$key] . ' => ' . $value . "\n";
break;
case 'rcpt_product_info2': // 매매, 전세, 월세보증금
$return .= ', 거래가 :';
$return .= $table[$key] . ' => ' . $value . "\n";
break;
case 'rcpt_product_info3': // 월세
$return .= ', 월세 :';
$return .= $table[$key] . ' => ' . $value . "\n";
break;
case 'rcpt_dtl_addr': // 상세주소
$return .= ', 상세주소 :';
$return .= $table[$key] . ' => ' . $value . "\n";
break;
case 'rcpt_li_addr': //리 주소
$return .= ', 리 주소 :';
$return .= $table[$key] . ' => ' . $value . "\n";
break;
case 'rcpt_jibun_addr': //지번 주소
$return .= ', 지번 주소 :';
$return .= $table[$key] . ' => ' . $value . "\n";
break;
case 'rcpt_etc_addr': //기타 주소
$return .= ', 기타 주소 :';
$return .= $table[$key] . ' => ' . $value . "\n";
break;
case 'rcpt_ref_addr': // 상세주소
$return .= ', 기타주소2 :';
$return .= $table[$key] . ' => ' . $value . "\n";
break;
case 'rcpt_ho': // 기타주소
$return .= ', 기타주소 :';
$return .= $table[$key] . ' => ' . $value . "\n";
break;
case 'rcpt_hscp_no': // 단지
$return .= ', 단지번호 :';
$return .= $table[$key] . ' => ' . $value . "\n";
break;
case 'rcpt_ptp_no': // 평형
$return .= ', 평형 :';
$return .= $table[$key] . ' => ' . $value . "\n";
break;
case 'rcpt_floor': // 층
$return .= ', 층 :';
$return .= $table[$key] . ' => ' . $value . "\n";
break;
case 'exp_spc_yn': // 층
$return .= ', 면적확인여부 :';
$return .= $table[$key] . ' => ' . $value . "\n";
break;
case 'excls_spc1': // 층
$return .= ', 전용면적 첫번째 값 :';
$return .= $table[$key] . ' => ' . $value . "\n";
break;
case 'excls_spc2': // 층
$return .= ', 전용면적 두번째 값 :';
$return .= $table[$key] . ' => ' . $value . "\n";
break;
case 'room_cnt': // 층
$return .= ', 방개수 :';
$return .= $table[$key] . ' => ' . $value . "\n";
break;
case 'sply_spc': // 층
$return .= ', 공급면적 값 :';
$return .= $table[$key] . ' => ' . $value . "\n";
break;
case 'share_spc': // 층
$return .= ', 공용면적 값 :';
$return .= $table[$key] . ' => ' . $value . "\n";
break;
case 'tot_spc': // 층
$return .= ', 연면적 :';
$return .= $table[$key] . ' => ' . $value . "\n";
break;
case 'tot_spc1': // 층
$return .= ', 연면적 첫번째 값 :';
$return .= $table[$key] . ' => ' . $value . "\n";
break;
case 'tot_spc2': // 층
$return .= ', 연면적 두번째 값 :';
$return .= $table[$key] . ' => ' . $value . "\n";
break;
case 'grnd_spc1': // 층
$return .= ', 대지면적 첫번째 값 :';
$return .= $table[$key] . ' => ' . $value . "\n";
break;
case 'grnd_spc2': // 층
$return .= ', 대지면적 두번째 값 :';
$return .= $table[$key] . ' => ' . $value . "\n";
break;
case 'grnd_spc3': // 층
$return .= ', 대지면적 세번째 값 :';
$return .= $table[$key] . ' => ' . $value . "\n";
break;
case 'grnd_spc4': // 층
$return .= ', 대지면적 네번째 값 :';
$return .= $table[$key] . ' => ' . $value . "\n";
break;
case 'grnd_spc5': // 층
$return .= ', 대지면적 다섯번째 값 :';
$return .= $table[$key] . ' => ' . $value . "\n";
break;
case 'spc_stat': // 층
$return .= ', 면적구분 :';
$return .= $table[$key] . ' => ' . $value . "\n";
break;
case 'request_msg': // 층
$return .= ', 메모변경 :';
$return .= $table[$key] . ' => ' . $value . "\n";
break;
// case 'rcpt_x': // 좌표 x 12x.xxxxx (경도: longitude)
// $return .= '거래구분 :';
// break;
// case 'rcpt_y': // 좌표 y 3x.xxxx (위도: latitude)
// $return .= '거래구분 :';
// break;
}
}
}
return trim(substr($return, 1));
}