api_receiver 리턴 메세지 수정

This commit is contained in:
2026-01-02 10:05:55 +09:00
parent 7627951c09
commit 094fa7c640
3 changed files with 55 additions and 34 deletions

View File

@@ -39,22 +39,25 @@ class NaverService
// 로그 기록
write_custom_log("ARTICLE_INFO | ArticleNumber: $articleNumber", 'INFO', 'service');
// 2. 파라미터 매핑 (기존의 $vrfc_params 생성 로직)
$vrfcParams = $this->mapVrfcParams($articleInfo, $requestDatetime);
// 2. 가공 로직 (insertVrfc에 있던 긴 배열 생성 로직)
$vrfcParams = $this->mapToDatabaseParams($articleInfo, $payload);
//
write_custom_log("VRFC_PARAMS | " . json_encode($vrfcParams, JSON_UNESCAPED_UNICODE), 'INFO', 'service');
// 3. DB 저장
if (!$this->v2ArticleModel->insert($vrfcParams)) {
$errorMessages = implode(', ', $this->v2ArticleModel->errors());
if (!$this->VrfcReqModel->insert($vrfcParams)) {
$errorMessages = implode(', ', $this->VrfcReqModel->errors());
throw new \Exception("V2 매물 삽입 오류: " . $errorMessages);
}
return $this->v2ArticleModel->getInsertID();
return $this->VrfcReqModel->getInsertID();
}
/**
* API 데이터를 DB 컬럼에 맞게 변환
*/
private function mapVrfcParams(array $articleInfo, string $requestDatetime): array
private function mapToDatabaseParams(array $articleInfo, array $payload): array
{
$files = $articleInfo['files'] ?? [];
$certRegister = [];
@@ -72,25 +75,42 @@ class NaverService
}
}
return [
'atcl_no' => $articleInfo['articleNumber'],
'cpid' => $articleInfo['cpId'],
'cp_atcl_id' => $articleInfo['cpArticleNumber'],
'trade_type' => $articleInfo['tradeTypeCode'],
'realtor_nm' => $articleInfo['realtor']['realtorName'] ?? '',
'realtor_tel_no' => $articleInfo['realtor']['representativeCellphoneNumber'] ?? '',
'seller_tel_no' => $articleInfo['seller']['sellerTelephoneNumber'] ?? '',
'vrfc_type' => $articleInfo['verificationTypeCode'],
'rgbk_confirm' => ($articleInfo['isUnregisteredVerificationRequested'] ?? false) ? 'Y' : 'N',
'rdate' => $requestDatetime,
'stat_cd' => '10',
'insert_user' => 'admin',
'insert_tm' => date('Y-m-d H:i:s'),
$vrfc_params = [
'reqSeq' => '',
'atcl_no' => $articleInfo['articleNumber'],
'step' => '',
'cpid' => $articleInfo['cpId'],
'cp_atcl_id' => $articleInfo['cpArticleNumber'],
'trade_type' => $articleInfo['tradeTypeCode'],
'realtor_nm' => $articleInfo['realtor']['realtorName'],
'realtor_tel_no' => $articleInfo['realtor']['representativeCellphoneNumber'],
'seller_tel_no' => $articleInfo['seller']['sellerTelephoneNumber'],
'vrfc_type' => $articleInfo['verificationTypeCode'],
'rgbk_confirm' => $articleInfo['isUnregisteredVerificationRequested'] ? 'Y' : 'N',
'req_type' => '',
'rdate' => $requestDatetime ?? db_now('Y-m-d H:i:s'),
'cpTelNo' => $articleInfo['seller']['sellerTelephoneNumber'],
'stat_cd' => '10',
'try_cnt' => '0',
'insert_user' => 'admin',
'insert_tm' => db_now(),
'memo' => '',
'contact_fail_cnt' => '0',
'sync_yn' => 'N',
'reg_try_cnt' => '0',
'tel_fail_cause' => null,
'rgbk_confirm_owner_nm' => $articleInfo['seller']['ownerName'] ?? null,
'confirm_doc_img_url' => json_encode($confirm_doc_img_url, JSON_UNESCAPED_UNICODE),
'certRegister' => json_encode($certRegister, JSON_UNESCAPED_UNICODE),
'referenceFileUrl' => json_encode($referenceFileUrl, JSON_UNESCAPED_UNICODE),
// 필요한 나머지 컬럼들 추가...
'direct_trad_yn' => $articleInfo['seller']['isDirectTrade'] === true ? 'Y' : 'N',
'confirm_doc_img_url' => empty($confirm_doc_img_url) ? null : json_encode($confirm_doc_img_url, JSON_UNESCAPED_UNICODE),
'confirm_doc_owner_check_yn' => '',
'owner_verifiable' => null,
'vrfc_cmpl_type' => null,
'rgbk_doc_img_url' => null,
'certRegister' => empty($certRegister) ? null : json_encode($certRegister, JSON_UNESCAPED_UNICODE),
'referenceFileUrl' => empty($referenceFileUrl) ? null : json_encode($referenceFileUrl, JSON_UNESCAPED_UNICODE),
];
return $vrfc_params;
}
}