debug:카드 사용내역 조회 디버그 로그 추가
- API 호출 파라미터 로깅 - SOAP 응답 데이터 구조 로깅 - 에러 코드 및 파싱 결과 로깅 Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -219,6 +219,17 @@ public function transactions(Request $request): JsonResponse
|
||||
$barobillMember = BarobillMember::where('tenant_id', $tenantId)->first();
|
||||
$userId = $barobillMember?->barobill_id ?? '';
|
||||
|
||||
// 디버그 로그
|
||||
Log::info('[ECard] 조회 요청', [
|
||||
'tenantId' => $tenantId,
|
||||
'userId' => $userId,
|
||||
'startDate' => $startDate,
|
||||
'endDate' => $endDate,
|
||||
'cardNum' => $cardNum,
|
||||
'page' => $page,
|
||||
'limit' => $limit,
|
||||
]);
|
||||
|
||||
// DB에서 저장된 계정과목 데이터 조회
|
||||
$savedData = CardTransaction::getByDateRange($tenantId, $startDate, $endDate, $cardNum ?: null);
|
||||
|
||||
@@ -228,7 +239,7 @@ public function transactions(Request $request): JsonResponse
|
||||
}
|
||||
|
||||
// 단일 카드 조회
|
||||
$result = $this->callSoap('GetPeriodCardApprovalLog', [
|
||||
$params = [
|
||||
'ID' => $userId,
|
||||
'CardNum' => $cardNum,
|
||||
'StartDate' => $startDate,
|
||||
@@ -236,6 +247,17 @@ public function transactions(Request $request): JsonResponse
|
||||
'CountPerPage' => $limit,
|
||||
'CurrentPage' => $page,
|
||||
'OrderDirection' => 2 // 2:내림차순
|
||||
];
|
||||
|
||||
Log::info('[ECard] GetPeriodCardApprovalLog 호출', $params);
|
||||
|
||||
$result = $this->callSoap('GetPeriodCardApprovalLog', $params);
|
||||
|
||||
Log::info('[ECard] GetPeriodCardApprovalLog 응답', [
|
||||
'success' => $result['success'],
|
||||
'error' => $result['error'] ?? null,
|
||||
'error_code' => $result['error_code'] ?? null,
|
||||
'data_keys' => $result['success'] && isset($result['data']) ? (is_object($result['data']) ? get_object_vars($result['data']) : 'not_object') : null,
|
||||
]);
|
||||
|
||||
if (!$result['success']) {
|
||||
@@ -250,6 +272,8 @@ public function transactions(Request $request): JsonResponse
|
||||
|
||||
// 에러 코드 체크
|
||||
$errorCode = $this->checkErrorCode($resultData);
|
||||
Log::info('[ECard] 에러 코드 체크', ['errorCode' => $errorCode]);
|
||||
|
||||
if ($errorCode && !in_array($errorCode, [-24005, -24001])) {
|
||||
return response()->json([
|
||||
'success' => false,
|
||||
@@ -260,6 +284,7 @@ public function transactions(Request $request): JsonResponse
|
||||
|
||||
// 데이터가 없는 경우
|
||||
if ($errorCode && in_array($errorCode, [-24005, -24001])) {
|
||||
Log::info('[ECard] 데이터 없음 (에러코드로 판단)');
|
||||
return response()->json([
|
||||
'success' => true,
|
||||
'data' => [
|
||||
@@ -273,6 +298,11 @@ public function transactions(Request $request): JsonResponse
|
||||
// 데이터 파싱 (저장된 계정과목 병합)
|
||||
$logs = $this->parseTransactionLogs($resultData, $savedData);
|
||||
|
||||
Log::info('[ECard] 파싱 결과', [
|
||||
'logs_count' => count($logs['logs']),
|
||||
'summary' => $logs['summary'],
|
||||
]);
|
||||
|
||||
return response()->json([
|
||||
'success' => true,
|
||||
'data' => [
|
||||
@@ -287,7 +317,9 @@ public function transactions(Request $request): JsonResponse
|
||||
]
|
||||
]);
|
||||
} catch (\Throwable $e) {
|
||||
Log::error('카드 사용내역 조회 오류: ' . $e->getMessage());
|
||||
Log::error('카드 사용내역 조회 오류: ' . $e->getMessage(), [
|
||||
'trace' => $e->getTraceAsString()
|
||||
]);
|
||||
return response()->json([
|
||||
'success' => false,
|
||||
'error' => '서버 오류: ' . $e->getMessage()
|
||||
@@ -300,9 +332,20 @@ public function transactions(Request $request): JsonResponse
|
||||
*/
|
||||
private function getAllCardsTransactions(string $userId, string $startDate, string $endDate, int $page, int $limit, $savedData = null): JsonResponse
|
||||
{
|
||||
Log::info('[ECard] 전체 카드 조회 시작', [
|
||||
'userId' => $userId,
|
||||
'startDate' => $startDate,
|
||||
'endDate' => $endDate,
|
||||
]);
|
||||
|
||||
// 먼저 카드 목록 조회 (GetCardEx2 사용)
|
||||
$cardResult = $this->callSoap('GetCardEx2', ['AvailOnly' => 0]);
|
||||
|
||||
Log::info('[ECard] GetCardEx2 응답', [
|
||||
'success' => $cardResult['success'],
|
||||
'error' => $cardResult['error'] ?? null,
|
||||
]);
|
||||
|
||||
if (!$cardResult['success']) {
|
||||
return response()->json([
|
||||
'success' => false,
|
||||
@@ -316,6 +359,15 @@ private function getAllCardsTransactions(string $userId, string $startDate, stri
|
||||
$cardList = is_array($data->CardEx) ? $data->CardEx : [$data->CardEx];
|
||||
}
|
||||
|
||||
Log::info('[ECard] 카드 목록', [
|
||||
'count' => count($cardList),
|
||||
'cards' => array_map(fn($c) => [
|
||||
'CardNum' => $c->CardNum ?? 'N/A',
|
||||
'Alias' => $c->Alias ?? 'N/A',
|
||||
'Status' => $c->Status ?? 'N/A',
|
||||
], $cardList),
|
||||
]);
|
||||
|
||||
$allLogs = [];
|
||||
$totalAmount = 0;
|
||||
$approvalCount = 0;
|
||||
@@ -327,7 +379,7 @@ private function getAllCardsTransactions(string $userId, string $startDate, stri
|
||||
$cardNum = $card->CardNum ?? '';
|
||||
if (empty($cardNum) || (is_numeric($cardNum) && $cardNum < 0)) continue;
|
||||
|
||||
$cardResult = $this->callSoap('GetPeriodCardApprovalLog', [
|
||||
$params = [
|
||||
'ID' => $userId,
|
||||
'CardNum' => $cardNum,
|
||||
'StartDate' => $startDate,
|
||||
@@ -335,14 +387,41 @@ private function getAllCardsTransactions(string $userId, string $startDate, stri
|
||||
'CountPerPage' => 1000,
|
||||
'CurrentPage' => 1,
|
||||
'OrderDirection' => 2
|
||||
];
|
||||
|
||||
Log::info('[ECard] 카드별 사용내역 조회', ['cardNum' => $cardNum, 'params' => $params]);
|
||||
|
||||
$cardResult = $this->callSoap('GetPeriodCardApprovalLog', $params);
|
||||
|
||||
Log::info('[ECard] 카드별 응답', [
|
||||
'cardNum' => $cardNum,
|
||||
'success' => $cardResult['success'],
|
||||
'error' => $cardResult['error'] ?? null,
|
||||
'data_type' => isset($cardResult['data']) ? gettype($cardResult['data']) : 'null',
|
||||
'data_props' => isset($cardResult['data']) && is_object($cardResult['data'])
|
||||
? array_keys(get_object_vars($cardResult['data']))
|
||||
: null,
|
||||
]);
|
||||
|
||||
if ($cardResult['success']) {
|
||||
$cardData = $cardResult['data'];
|
||||
$errorCode = $this->checkErrorCode($cardData);
|
||||
|
||||
Log::info('[ECard] 카드별 에러코드', [
|
||||
'cardNum' => $cardNum,
|
||||
'errorCode' => $errorCode,
|
||||
'CurrentPage' => $cardData->CurrentPage ?? 'N/A',
|
||||
'MaxIndex' => $cardData->MaxIndex ?? 'N/A',
|
||||
'hasCardLogList' => isset($cardData->CardLogList),
|
||||
'hasCardApprovalLog' => isset($cardData->CardLogList->CardApprovalLog ?? null),
|
||||
]);
|
||||
|
||||
if (!$errorCode || in_array($errorCode, [-24005, -24001])) {
|
||||
$parsed = $this->parseTransactionLogs($cardData, $savedData);
|
||||
Log::info('[ECard] 카드별 파싱 결과', [
|
||||
'cardNum' => $cardNum,
|
||||
'logs_count' => count($parsed['logs']),
|
||||
]);
|
||||
foreach ($parsed['logs'] as $log) {
|
||||
$log['cardBrand'] = $this->getCardCompanyName($card->CardCompany ?? '');
|
||||
$allLogs[] = $log;
|
||||
|
||||
Reference in New Issue
Block a user