부가서비스

- 계좌성명조회 - 조회신청 API 연결
This commit is contained in:
HyeonJongKim
2025-09-22 17:23:10 +09:00
parent b5bdd3d855
commit 546b623bb7
10 changed files with 80 additions and 29 deletions

View File

@@ -8,7 +8,7 @@ import {
ExtensionAccountHolderSearchDetailParams, ExtensionAccountHolderSearchDetailParams,
ExtensionAccountHolderSearchDetailResponse, ExtensionAccountHolderSearchDetailResponse,
DetailInfo DetailInfo
} from '../model/types'; } from '../../model/types';
import { import {
useMutation, useMutation,
UseMutationOptions UseMutationOptions

View File

@@ -2,7 +2,7 @@ import axios from 'axios';
import { API_URL_ADDITIONAL_SERVICE } from '@/shared/api/api-url-additional-service'; import { API_URL_ADDITIONAL_SERVICE } from '@/shared/api/api-url-additional-service';
import { resultify } from '@/shared/lib/resultify'; import { resultify } from '@/shared/lib/resultify';
import { CBDCAxiosError } from '@/shared/@types/error'; import { CBDCAxiosError } from '@/shared/@types/error';
import { ExtensionAccountHolderSearchDownloadExcelParams, ExtensionAccountHolderSearchDownloadExcelResponse } from '../model/types'; import { ExtensionAccountHolderSearchDownloadExcelParams, ExtensionAccountHolderSearchDownloadExcelResponse } from '../../model/types';
import { import {
useMutation, useMutation,
UseMutationOptions UseMutationOptions

View File

@@ -5,7 +5,7 @@ import { CBDCAxiosError } from '@/shared/@types/error';
import { import {
ExtensionAccountHolderSearchListParams, ExtensionAccountHolderSearchListParams,
ExtensionAccountHolderSearchListResponse, ExtensionAccountHolderSearchListResponse,
} from '../model/types'; } from '../../model/types';
import { import {
useMutation, useMutation,
UseMutationOptions UseMutationOptions

View File

@@ -0,0 +1,26 @@
import axios from 'axios';
import { API_URL_ADDITIONAL_SERVICE } from '@/shared/api/api-url-additional-service';
import { resultify } from '@/shared/lib/resultify';
import { CBDCAxiosError } from '@/shared/@types/error';
import { ExtensionAccountHolderSearchRequestParams, ExtensionAccountHolderSearchRequestResponse } from '../../model/types';
import {
useMutation,
UseMutationOptions
} from '@tanstack/react-query';
export const extensionAccountHolderSearchRequest = (params: ExtensionAccountHolderSearchRequestParams) => {
return resultify(
axios.post<ExtensionAccountHolderSearchRequestResponse>(API_URL_ADDITIONAL_SERVICE.extensionAccountHolderSearchRequest(), params),
);
};
export const useExtensionAccountHolderSearchRequestMutation = (options?: UseMutationOptions<ExtensionAccountHolderSearchRequestResponse, CBDCAxiosError, ExtensionAccountHolderSearchRequestParams>) => {
const mutation = useMutation<ExtensionAccountHolderSearchRequestResponse, CBDCAxiosError, ExtensionAccountHolderSearchRequestParams>({
...options,
mutationFn: (params: ExtensionAccountHolderSearchRequestParams) => extensionAccountHolderSearchRequest(params),
});
return {
...mutation,
};
};

View File

@@ -568,6 +568,15 @@ export interface ExtensionAccountHolderSearchDetailResponse {
requestWay: string; requestWay: string;
} }
export interface ExtensionAccountHolderSearchRequestParams extends ExtensionRequestParams {
bankCode: string;
accountNo: string;
}
export interface ExtensionAccountHolderSearchRequestResponse {
status : boolean;
}
export interface ExtensionAccountHolderSearchDownloadExcelParams extends ExtensionRequestParams { // Request export interface ExtensionAccountHolderSearchDownloadExcelParams extends ExtensionRequestParams { // Request
searchCl: string; searchCl: string;
searchValue: string; searchValue: string;
@@ -578,7 +587,7 @@ export interface ExtensionAccountHolderSearchDownloadExcelParams extends Extensi
} }
export interface ExtensionAccountHolderSearchDownloadExcelResponse { export interface ExtensionAccountHolderSearchDownloadExcelResponse {
status: boolean;
} }
// ======================================== // ========================================
@@ -614,7 +623,7 @@ export interface ExtensionKeyinDownloadExcelParams extends ExtensionRequestParam
} }
export interface ExtensionKeyinDownloadExcelResponse { export interface ExtensionKeyinDownloadExcelResponse {
status: boolean
} }
export interface ExtensionKeyinApplyParams extends ExtensionRequestParams { export interface ExtensionKeyinApplyParams extends ExtensionRequestParams {

View File

@@ -13,9 +13,9 @@ import {
useSetFooterMode, useSetFooterMode,
useSetOnBack useSetOnBack
} from '@/widgets/sub-layout/use-sub-layout'; } from '@/widgets/sub-layout/use-sub-layout';
import { useExtensionAccountHolderSearchListMutation } from '@/entities/additional-service/api/use-extension-account-holder-search-list-mutation'; import { useExtensionAccountHolderSearchListMutation } from '@/entities/additional-service/api/account-holder-search/use-extension-account-holder-search-list-mutation';
import { DEFAULT_PAGE_PARAM } from '@/entities/common/model/constant'; import { DEFAULT_PAGE_PARAM } from '@/entities/common/model/constant';
import { useExtensionAccountHolderSearchDownloadExcelMutation } from '@/entities/additional-service/api/use-extension-account-holder-search-download-excel-mutation'; import { useExtensionAccountHolderSearchDownloadExcelMutation } from '@/entities/additional-service/api/account-holder-search/use-extension-account-holder-search-download-excel-mutation';
import { SortOptionsBox } from '@/entities/additional-service/ui/sort-options-box'; import { SortOptionsBox } from '@/entities/additional-service/ui/sort-options-box';
import { AccountHolderSearchList } from '@/entities/additional-service/ui/account-holder-search/account-holder-search-list'; import { AccountHolderSearchList } from '@/entities/additional-service/ui/account-holder-search/account-holder-search-list';
@@ -104,7 +104,7 @@ export const AccountHolderSearchPage = () => {
bankCode: bank, bankCode: bank,
resultStatus: processResult resultStatus: processResult
}).then((rs) => { }).then((rs) => {
console.log('Excel Dowload Status : ' + rs.status)
}); });
}; };

View File

@@ -9,7 +9,7 @@ import {
useSetFooterMode, useSetFooterMode,
useSetOnBack useSetOnBack
} from '@/widgets/sub-layout/use-sub-layout'; } from '@/widgets/sub-layout/use-sub-layout';
import { useExtensionAccountHolderSearchDetailMutation } from '@/entities/additional-service/api/use-extension-account-holder-search-detail-mutation'; import { useExtensionAccountHolderSearchDetailMutation } from '@/entities/additional-service/api/account-holder-search/use-extension-account-holder-search-detail-mutation';
import { AdditionalServiceCategory, DetailInfo, DetailResponse, ExtensionAccountHolderSearchDetailParams, TitleInfo } from '@/entities/additional-service/model/types'; import { AdditionalServiceCategory, DetailInfo, DetailResponse, ExtensionAccountHolderSearchDetailParams, TitleInfo } from '@/entities/additional-service/model/types';
import { TitleInfoWrap } from '@/entities/additional-service/ui/info-wrap/title-info-wrap'; import { TitleInfoWrap } from '@/entities/additional-service/ui/info-wrap/title-info-wrap';
import { useLocation } from 'react-router'; import { useLocation } from 'react-router';

View File

@@ -1,7 +1,6 @@
import { useState } from 'react'; import { useState } from 'react';
import { PATHS } from '@/shared/constants/paths'; import { PATHS } from '@/shared/constants/paths';
import { useNavigate } from '@/shared/lib/hooks/use-navigate'; import { useNavigate } from '@/shared/lib/hooks/use-navigate';
import { IMAGE_ROOT } from '@/shared/constants/common';
import { HeaderType } from '@/entities/common/model/types'; import { HeaderType } from '@/entities/common/model/types';
import { import {
useSetHeaderTitle, useSetHeaderTitle,
@@ -9,11 +8,12 @@ import {
useSetFooterMode, useSetFooterMode,
useSetOnBack useSetOnBack
} from '@/widgets/sub-layout/use-sub-layout'; } from '@/widgets/sub-layout/use-sub-layout';
import { useExtensionAccountHolderSearchRequestMutation } from '@/entities/additional-service/api/account-holder-search/use-extension-account-holder-search-reqeust-mutation';
import { ExtensionAccountHolderSearchRequestParams } from '@/entities/additional-service/model/types';
export const AccountHolderSearchRequestPage = () => { export const AccountHolderSearchRequestPage = () => {
const { navigate } = useNavigate(); const { navigate } = useNavigate();
useSetHeaderTitle('계좌성명조회_신청'); useSetHeaderTitle('계좌성명조회_신청');
useSetHeaderType(HeaderType.LeftArrow); useSetHeaderType(HeaderType.LeftArrow);
useSetFooterMode(false); useSetFooterMode(false);
@@ -21,25 +21,35 @@ export const AccountHolderSearchRequestPage = () => {
navigate(PATHS.additionalService.accountHolderSearch.list); navigate(PATHS.additionalService.accountHolderSearch.list);
}); });
const { mutateAsync: accountHolderSearchRequest } = useExtensionAccountHolderSearchRequestMutation();
const [formData, setFormData] = useState({ const [formData, setFormData] = useState({
mid: 'nictest001m', mid: 'nictest001m',
bank: '', bankCode: '',
accountNum: '' accountNo: ''
}) })
const handleInputChange = (field: string, value: string) => { const handleInputChange = (field: string, value: string) => {
setFormData(prev => ({ setFormData({ ...formData, [field]: value });
...prev,
[field]: value
}));
}; };
useSetOnBack(() => {
navigate(PATHS.additionalService.accountHolderSearch.list);
});
const onClickToRequest = () => { const onClickToRequest = () => {
navigate(PATHS.additionalService.accountHolderSearch.list) const reuqestParams: ExtensionAccountHolderSearchRequestParams = {
mid: formData.mid,
bankCode: formData.bankCode, // 추후 진짜 은행코드 삽입 필요
accountNo: formData.accountNo
}
console.log("계좌성명 조회 조회신청 요청 파라미터 : ", reuqestParams);
accountHolderSearchRequest(reuqestParams)
.then((response) => {
console.log("계좌성명 조회 조회 신청 성공 응답: ", response.status)
navigate(PATHS.additionalService.accountHolderSearch.list);
})
.catch((error) => {
console.error("계좌성명 조회 조회 신청 실패: ", error)
})
}; };
return ( return (
@@ -67,8 +77,8 @@ export const AccountHolderSearchRequestPage = () => {
<div className="billing-field"> <div className="billing-field">
<select <select
className="wid-100" className="wid-100"
value={formData.bank} value={formData.bankCode}
onChange={(e) => handleInputChange('bank', e.target.value)} onChange={(e) => handleInputChange('bankCode', e.target.value)}
> >
<option></option> <option></option>
<option></option> <option></option>
@@ -80,9 +90,11 @@ export const AccountHolderSearchRequestPage = () => {
<div className="billing-label"></div> <div className="billing-label"></div>
<div className="billing-field"> <div className="billing-field">
<input <input
type="number" type="number"
value="10002464******" placeholder=''
/> value={formData.accountNo}
onChange={(e) => handleInputChange('accountNo', e.target.value)}
></input>
</div> </div>
</div> </div>
</div> </div>
@@ -90,7 +102,7 @@ export const AccountHolderSearchRequestPage = () => {
<div className="apply-row"> <div className="apply-row">
<button <button
className="btn-50 btn-blue flex-1" className="btn-50 btn-blue flex-1"
onClick={() => onClickToRequest() } onClick={() => onClickToRequest()}
></button> ></button>
</div> </div>
</div> </div>

View File

@@ -122,7 +122,7 @@ export const KeyInPaymentPage = () => {
minAmount: newMinAmount, minAmount: newMinAmount,
maxAmount: newMaxAmount maxAmount: newMaxAmount
}).then((rs) => { }).then((rs) => {
console.log('Excel Dowload Status : ' + rs.status)
}); });
}; };

View File

@@ -17,6 +17,10 @@ export const API_URL_ADDITIONAL_SERVICE = {
// POST: 계좌성명조회 엑셀 다운 // POST: 계좌성명조회 엑셀 다운
return `${API_BASE_URL}/api/v1/${API_URL_KEY}/extension/search-account-name/excel`; return `${API_BASE_URL}/api/v1/${API_URL_KEY}/extension/search-account-name/excel`;
}, },
extensionAccountHolderSearchRequest: () => {
// POST: 계좌성명조회 조회 신청
return `${API_BASE_URL}/api/v1/${API_URL_KEY}/extension/search-account-name/request`;
},
extensionLinkPaymentHistoryList: () => { extensionLinkPaymentHistoryList: () => {
// POST: 링크결제 - 발송내역 리스트 조회 // POST: 링크결제 - 발송내역 리스트 조회
return `${API_BASE_URL}/api/v1/${API_URL_KEY}/extension/linkpay/history/list`; return `${API_BASE_URL}/api/v1/${API_URL_KEY}/extension/linkpay/history/list`;