본문으로 건너뛰기

비회원 주문 취소 복원 처리 개선

PHP 8 · GODO26
변경 파일 수: 1개
변경 파일 목록
1
변경 파일 코드
추가삭제
Component/Order/ReOrderCalculation.php+19-20
변경 전ReOrderCalculation.php
private function precheckRestoreAddPayment(string $orderNo, string $claimStatus): array
{
$original = $this->getOrderOriginalDepositMileageData($orderNo, $claimStatus);
$current = $this->getOrderDepositMileageData($orderNo);
 
// precheck 는 setOrderRestore 진입 직후(member 초기화 이전)에 호출되므로 직접 로드한다.
if (!is_object($this->member)) {
$this->member = \App::load('\\Component\\Member\\Member');
}
 
$memInfo = [];
if (is_array($original) && !empty($original['memNo'])) {
$memInfo = $this->member->getMemberInfo($original['memNo']);
}
 
$exceptMsg = [];
$checks = [
['field' => 'useDeposit', 'hold' => 'deposit', 'msg' => '고객이 보유한 예치금 부족'],
['field' => 'useMileage', 'hold' => 'mileage', 'msg' => '고객이 보유한 마일리지 부족'],
];
foreach ($checks as $check) {
$diff = gd_isset($current[$check['field']], 0) - gd_isset($original[$check['field']], 0);
if ($diff === 0) {
continue;
}
if (empty($memInfo) || (gd_isset($memInfo[$check['hold']], 0) - abs($diff) < 0)) {
$exceptMsg[] = $check['msg'];
 
 
 
 
 
 
 
 
 
 
 
 
}
}
 
 
변경 후ReOrderCalculation.php
private function precheckRestoreAddPayment(string $orderNo, string $claimStatus): array
{
$original = $this->getOrderOriginalDepositMileageData($orderNo, $claimStatus);
 
 
$exceptMsg = [];
 
 
 
 
 
if (is_array($original) && !empty($original['memNo'])) {
$current = $this->getOrderDepositMileageData($orderNo);
 
 
// precheck 는 setOrderRestore 진입 직후(member 초기화 이전)에 호출되므로 직접 로드한다.
if (!is_object($this->member)) {
$this->member = \App::load('\\Component\\Member\\Member');
 
 
 
 
 
 
}
 
$memInfo = $this->member->getMemberInfo($original['memNo']);
$checks = [
['field' => 'useDeposit', 'hold' => 'deposit', 'msg' => '고객이 보유한 예치금 부족'],
['field' => 'useMileage', 'hold' => 'mileage', 'msg' => '고객이 보유한 마일리지 부족'],
];
foreach ($checks as $check) {
$diff = ($current[$check['field']] ?? 0) - ($original[$check['field']] ?? 0);
if ($diff === 0) {
continue;
}
if (empty($memInfo) || (($memInfo[$check['hold']] ?? 0) - abs($diff) < 0)) {
$exceptMsg[] = $check['msg'];
}
}
}