diff --git a/src/entities/additional-service/api/use-extension-account-holder-search-download-excel-mutation.ts b/src/entities/additional-service/api/use-extension-account-holder-search-download-excel-mutation.ts new file mode 100644 index 0000000..1466dce --- /dev/null +++ b/src/entities/additional-service/api/use-extension-account-holder-search-download-excel-mutation.ts @@ -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 { ExtensionAccountHolderSearchDownloadExcelParams, ExtensionAccountHolderSearchDownloadExcelResponse } from '../model/types'; +import { + useMutation, + UseMutationOptions +} from '@tanstack/react-query'; + +export const extensionAccountHolderSearchDownloadExcel = (params: ExtensionAccountHolderSearchDownloadExcelParams) => { + return resultify( + axios.post(API_URL_ADDITIONAL_SERVICE.extensionKeyinDownloadExcel(), params), + ); +}; + +export const useExtensionAccountHolderSearchDownloadExcelMutation = (options?: UseMutationOptions) => { + const mutation = useMutation({ + ...options, + mutationFn: (params: ExtensionAccountHolderSearchDownloadExcelParams) => extensionAccountHolderSearchDownloadExcel(params), + }); + + return { + ...mutation, + }; +}; diff --git a/src/entities/additional-service/api/use-extension-account-holder-search-list-mutation.ts b/src/entities/additional-service/api/use-extension-account-holder-search-list-mutation.ts new file mode 100644 index 0000000..a8dc8da --- /dev/null +++ b/src/entities/additional-service/api/use-extension-account-holder-search-list-mutation.ts @@ -0,0 +1,28 @@ +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 { + ExtensionAccountHolderSearchListParams, + ExtensionAccountHolderSearchListResponse, +} from '../model/types'; +import { + useMutation, + UseMutationOptions +} from '@tanstack/react-query'; + +export const extensionAccountHolderSearchList = (params: ExtensionAccountHolderSearchListParams) => { + return resultify( + axios.post(API_URL_ADDITIONAL_SERVICE.extensionAccountHolderSearchList(), params), + ); +}; + +export const useExtensionAccountHolderSearchListMutation = (options?: UseMutationOptions) => { + const mutation = useMutation({ + ...options, + mutationFn: (params: ExtensionAccountHolderSearchListParams) => extensionAccountHolderSearchList(params), + }); + return { + ...mutation, + }; +} \ No newline at end of file diff --git a/src/entities/additional-service/model/types.ts b/src/entities/additional-service/model/types.ts index dcdf9d4..36564b6 100644 --- a/src/entities/additional-service/model/types.ts +++ b/src/entities/additional-service/model/types.ts @@ -1,73 +1,24 @@ import { DefaulResponsePagination, DefaultRequestPagination } from '@/entities/common/model/types'; -export enum FundTransferTabKeys { - RequestList = 'RequestList', - ResultInquiry = 'ResultInquiry' -}; -export interface FundTransferTabProps { - activeTab: FundTransferTabKeys; -}; -export enum LinkPaymentTabKeys { - ShippingHistory = 'ShippingHistory', - PendingSend = 'PendingSend' -}; -export interface LinkPaymentTabProps { - activeTab: LinkPaymentTabKeys; -}; -export enum SettlementAgencyTabKeys { - Manage = 'Manage', - Deposit = 'Deposit', - Member = 'Member', -}; +// ======================================== +// 공통 Enums 및 타입들 +// ======================================== + export enum SortByKeys { New = 'New', Amount = 'Amount', -}; +} + export enum ProcessResult { ALL = 'ALL', SUCCESS = 'SUCCESS', - FAILURE = 'FAILURE' -}; -export enum KeyInPaymentTransactionStatus { - ALL = 'ALL', - APPROVE = 'APPROVE', - ALL_CANCEL = 'ALL_CANCEL', - AFTER_CANCEL = 'AFTER_CANCEL' -} -export enum AccountHolderSearchType { - ALL = 'ALL', - ACCOUNT_HOLDER = 'ACCOUNT_HOLDER', - ACCOUNT_NUMBER = 'ACCOUNT_NUMBER' -}; -export enum LinkPaymentSearchType { - ALL = "ALL", - PHONE = "PHONE", - EMAIL = "EMAIL" -}; -export enum LinkPaymentSendMethod { - ALL = "ALL", - SMS = "SMS", - EMAIL = "EMAIL", - KAKAO = "KAKAO" -}; -export enum LinkPaymentTransactionStatus { - ALL = "ALL", - ACTIVATE = "ACTIVATE", - DEPOSIT_REQUEST = "DEPOSIT_REQUEST", - TRANSACTION_COMPLETE = "TRANSACTION_COMPLETE", - TRANSACTION_FAIL = "TRANSACTION_FAIL", - INACTIVE = "INACTIVE" -} -export enum LinkPaymentSendingStatus { - ALL = "ALL", - SEND_REQUEST = "SEND_REQUEST", - SEND_CANCEL = "SEND_CANCEL" + FAIL = 'FAIL' } export interface SortOptionsBoxProps { sortBy: SortByKeys; onClickToSort: (sortBy: SortByKeys) => void; -}; +} // 부가서비스 카테고리 enum export enum AdditionalServiceCategory { @@ -79,7 +30,26 @@ export enum AdditionalServiceCategory { SettlementAgency = 'SettlementAgency', } -// 각 서비스별 개별 타입들 +// ======================================== +// 공통 Filter 타입들 +// ======================================== + +export interface FilterProps { + filterOn: boolean; + setFilterOn: (filterOn: boolean) => void; +} + +// ======================================== +// 키인결제 관련 타입들 +// ======================================== + +export enum KeyInPaymentTransactionStatus { + ALL = 'ALL', + APPROVE = 'APPROVE', + ALL_CANCEL = 'ALL_CANCEL', + AFTER_CANCEL = 'AFTER_CANCEL' +} + export interface KeyInPaymentListItem { tid?: string; paymentDate?: string; @@ -87,13 +57,105 @@ export interface KeyInPaymentListItem { amount?: number; } +export interface KeyInPaymentListProps { + additionalServiceCategory: AdditionalServiceCategory; + listItems: Record>; +} + +export interface KeyInPaymentFilterProps extends FilterProps { + mid: string, + startDate: string; + endDate: string; + transactionStatus: KeyInPaymentTransactionStatus; + minAmount?: number | string; + maxAmount?: number | string; + setMid: (mid: string) => void; + setStartDate: (startDate: string) => void; + setEndDate: (endDate: string) => void; + setTransactionStatus: (transactionStatus: KeyInPaymentTransactionStatus) => void; + setMinAmount: (minAmount: string | number) => void; + setMaxAmount: (maxAmount: string | number) => void; +} + +// ======================================== +// 계좌성명 조회 관련 타입들 +// ======================================== + +export enum AccountHolderSearchType { + ACCOUNT_NAME = 'ACCOUNT_NAME', + ACCOUNT_NO = 'ACCOUNT_NO' +} + export interface AccountHolderSearchListItem { - requestId?: string; + tid?: string; + accountNo?: string; requestDate?: string; - bank?: string; - accountNumber?: string; - accountHolder?: string; - processResult?: string; + bankName?: string; + resultStatus?: string; +} + +export interface AccountHolderSearchListProps { + additionalServiceCategory: AdditionalServiceCategory; + listItems: Record>; + mid: string; +} + +export interface AccountHolderSearchFilterProps extends FilterProps { + mid: string; + searchType: AccountHolderSearchType; + searchKeyword: string; + startDate: string; + endDate: string; + bank: string; + processResult: ProcessResult; + setMid: (mid: string) => void; + setSearchType: (searchType: AccountHolderSearchType) => void; + setSearchKeyword: (searchKeyWorld: string) => void; + setStartDate: (startDate: string) => void; + setEndDate: (endDate: string) => void; + setBank: (bank: string) => void; + setProcessResult: (processResult: ProcessResult) => void; +} + +// ======================================== +// 링크결제 관련 타입들 +// ======================================== + +export enum LinkPaymentTabKeys { + ShippingHistory = 'ShippingHistory', + PendingSend = 'PendingSend' +} + +export interface LinkPaymentTabProps { + activeTab: LinkPaymentTabKeys; +} + +export enum LinkPaymentSearchType { + ALL = "ALL", + PHONE = "PHONE", + EMAIL = "EMAIL" +} + +export enum LinkPaymentSendMethod { + ALL = "ALL", + SMS = "SMS", + EMAIL = "EMAIL", + KAKAO = "KAKAO" +} + +export enum LinkPaymentTransactionStatus { + ALL = "ALL", + ACTIVATE = "ACTIVATE", + DEPOSIT_REQUEST = "DEPOSIT_REQUEST", + TRANSACTION_COMPLETE = "TRANSACTION_COMPLETE", + TRANSACTION_FAIL = "TRANSACTION_FAIL", + INACTIVE = "INACTIVE" +} + +export enum LinkPaymentSendingStatus { + ALL = "ALL", + SEND_REQUEST = "SEND_REQUEST", + SEND_CANCEL = "SEND_CANCEL" } export interface LinkPaymentShippingListItem { @@ -115,364 +177,16 @@ export interface LinkPaymentPendingListItem { requestDate?: string; } -// 공통 ListItemProps (transaction과 동일한 패턴) -export interface ListItemProps extends KeyInPaymentListItem, AccountHolderSearchListItem, LinkPaymentShippingListItem, LinkPaymentPendingListItem { - additionalServiceCategory?: AdditionalServiceCategory; -} - -// 공통 ListDateGroupProps -export interface ListDateGroupProps { - additionalServiceCategory?: AdditionalServiceCategory; - date?: string; - items?: Array; -} -// 공통 리스트 Props -export interface AdditionalServiceListProps { - additionalServiceCategory: AdditionalServiceCategory; - listItems: Record>; -} export interface LinkPaymentShippingListProps { additionalServiceCategory: AdditionalServiceCategory; listItems: Record>; } + export interface LinkPaymentPendingListProps { additionalServiceCategory: AdditionalServiceCategory; listItems: Record>; } -export interface AccountHolderSearchListProps { - additionalServiceCategory: AdditionalServiceCategory; - listItems: Record>; -} -export interface KeyInPaymentListProps { - additionalServiceCategory: AdditionalServiceCategory; - listItems: Record>; -} -export interface SettlementAgencyTabProps { - activeTab: SettlementAgencyTabKeys; -}; -export interface ExtensionRequestParams { - mid: string; -}; -export interface ExtensionSmsResendParams extends ExtensionRequestParams { - tid: string; -}; -export interface ExtensionSmsResendResponse { - -}; -export interface ExtensionSmsListParams extends ExtensionRequestParams { - tid: string; - searchCl: string; - searchValue: string; - fromDate: string; - toDate: string; - smsCl: string; -}; -export interface ExtensionSmsListItemProps { - mid: string; - tid: string; - paymentDate: string; - paymentStatus: string; - smsCl: string; -}; -export interface ExtensionSmsListResponse extends DefaulResponsePagination { - content: Array -}; -export interface ExtensionSmsDownloadExcelParams extends ExtensionRequestParams { - searchCl: string; - searchValue: string; - fromDate: string; - toDate: string; - smsCl: string; -}; -export interface ExtensionSmsDownloadExcelResponse { - -}; -export interface ExtensionSmsDetailParams extends ExtensionRequestParams { - tid: string; -}; -export interface ExtensionSmsDetailResponse { - senderNumber: string; - senderName: string; - receiverNumber: string; - receiverName: string; - sendMessage: string; -}; -export interface ExtensionListParams extends ExtensionRequestParams { - -}; -export interface activeExtensionListItem { - extensionCode: string; - extensionName: string; - extensionInformation: string; -}; -export interface availableExtensionListItem { - extensionCode: string; - extensionName: string; - extensionInformation: string; -}; -export interface ExtensionListItemProps { - activeExtensionList: Array; - availableExtensionList: Array; -}; -export interface ExtensionListResponse extends DefaulResponsePagination { - content: Array -}; -export interface ExtensionKeyinListParams extends ExtensionRequestParams { - fromDate: string; - toDate: string; - paymentStatus: KeyInPaymentTransactionStatus; - minAmount?: number | string; - maxAmount?: number | string; - page?: DefaultRequestPagination; -}; -export interface ExtensionKeyinListItemProps { - tid: string; - paymentDate: string; - paymentStatus: string; - amount: number; -}; -export interface ExtensionKeyinListResponse extends DefaulResponsePagination { - content: Array -}; -export interface ExtensionKeyinDownloadExcelParams extends ExtensionRequestParams { - fromDate?: string; - toDate?: string; - paymentStatus?: string; - minAmount?: number | string; - maxAmount?: number | string; -}; -export interface ExtensionKeyinDownloadExcelResponse { - -}; -export interface ExtensionKeyinApplyParams extends ExtensionRequestParams { - goodsName: string; - amount: number; - buyerName: string; - email: string; - phoneNumber: string; - cardNo: string; - cardExpirationDate: string; - instmntMonth: string; - moid: string; -}; -export interface ExtensionKeyinApplyResponse { - -}; -export interface ExtensionArsResendParams extends ExtensionRequestParams { - tid: string; -}; -export interface ExtensionArsResendResponse { - -}; -export interface ExtensionArsListParams extends ExtensionRequestParams { - moid: string; - fromDate: string; - toDate: string; - paymentStatus: string; - orderStatus: string; - minAmount: number; - maxAmount: number; -}; -export interface ExtensionArsListItemProps { - tid: string; - paymentDate: string; - paymentStatus: string; - orderStatus: string; - arsPaymentMethod: string; - amount: number; -}; -export interface ExtensionArsListResponse extends DefaulResponsePagination { - content: Array -}; -export interface ExtensionArsDownloadExcelParams extends ExtensionRequestParams { - moid: string; - fromDate: string; - toDate: string; - paymentStatus: string; - orderStatus: string; - minAmount: number; - maxAmount: number; -}; -export interface ExtensionArsDownloadExcelResponse { - -}; -export interface ExtensionArsDetailParams extends ExtensionRequestParams { - tid: string; -}; -export interface ExtensionArsDetailResponse { - corpName: string; - mid: string; - arsPaymentMethod: string; - paymentStatus: string; - orderStatus: string; - paymentDate: string; - goodsName: string; - tid: string; - buyerName: string; - phoneNumber: string; - maskPhoneNumber: string; - email: string; - smsVerificationCode: string; -}; -export interface ExtensionArsApplyParams extends ExtensionRequestParams { - moid: string; - goodsName: string; - amount: number; - instmntMonth: string; - buyerName: string; - phoneNumber: string; - email: string; - arsPaymentMethod: string; -}; -export interface ExtensionArsApplyResponse { - -}; -export interface SendMerchantInfoItem { - cardApprovalFlag: boolean; - cardCancelFlag: boolean; - bankApprovalFlag: boolean; - bankCancelFlag: boolean; - virtureAccountDepositRequestFlag: boolean; - virtureAccountDepositCompleteFlag: boolean; - virtureAccountRefundFlag: boolean; -}; -export interface SendUserInfoItem { - cardApprovalFlag: boolean; - cardCancelFlag: boolean; - bankApprovalFlag: boolean; - bankCancelFlag: boolean; - virtureAccountDepositRequestFlag: boolean; - virtureAccountDepositCompleteFlag: boolean; - virtureAccountRefundFlag: boolean; -}; -export interface ExtensionAlimtalkSettingSaveParams extends ExtensionRequestParams { - sendMerchantInfo: SendMerchantInfoItem; - sendUserInfo: SendUserInfoItem; -}; -export interface ExtensionAlimtalkSettingSaveResponse { - -}; -export interface ExtensionAlimtalkSettingDetailParams extends ExtensionRequestParams { - -}; -export interface ExtensionAlimtalkSettingDetailItem { - sendMerchantInfo: SendMerchantInfoItem; - sendUserInfo: SendUserInfoItem; -}; -export interface ExtensionAlimtalkSettingDetailResponse extends DefaulResponsePagination { - content: Array -}; -export interface ExtensionAlimtalkListParams extends ExtensionRequestParams { - searchCl: string; - searchValue: string; - paymentMethod: string; - alimCl: string; - fromDate: string; - toDate: string; - sendType: string; - sendCl: string; -}; -export interface ExtensionAlimtalkListItem { - tid: string; - sendDate: string; - alimCl: string; - sendType: string; - sendCl: string; - paymentMethod: string; - receiverName: string; -}; -export interface ExtensionAlimtalkListResponse extends DefaulResponsePagination { - content: Array -}; -export interface ExtensionAlimtalkDownloadExcelParams extends ExtensionRequestParams { - searchCl: string; - searchValue: string; - paymentMethod: string; - alimCl: string; - fromDate: string; - toDate: string; - sendType: string; - sendCl: string; -}; -export interface ExtensionAlimtalkDownloadExcelResponse { - -}; -export interface ExtensionAlimtalkDetailParams extends ExtensionRequestParams { - tid: string; -}; -export interface ExtensionAlimtalkDetailResponse { - receiverName: string; - merchantName: string; - sendDate: string; - mid: string; - tid: string; - serviceName: string; - sendType: string; - senderName: string; - paymentMethod: string; - alimCl: string; - sendCl: string; -}; -export interface IntroListItemProps { - className?: string; - serviceName?: string; - serviceDesc?: string; - icon?: string; - path?: string; -}; -export interface ArsCardPaymentFinishProps { - requestSuccess: boolean; - setRequestSuccess: (requestSuccess: boolean) => void; -}; -export interface SmsPaymentDetailResendProps { - bottomSmsPaymentDetailResendOn: boolean; - setBottomSmsPaymentDetailResendOn: (bottomSmsPaymentDetailResendOn: boolean) => void; -}; -export interface SettlementAgencyBottomAgreeProps { - bottomAgreeOn: boolean; - setBottomAgreeOn: (bottomAgreeOn: boolean) => void; -}; -/** - * FilterProps - */ -export interface FilterProps { - filterOn: boolean; - setFilterOn: (filterOn: boolean) => void; -}; -export interface KeyInPaymentFilterProps extends FilterProps { - mid: string, - startDate: string; - endDate: string; - transactionStatus: KeyInPaymentTransactionStatus; - minAmount?: number | string; - maxAmount?: number | string; - setMid: (mid: string) => void; - setStartDate: (startDate: string) => void; - setEndDate: (endDate: string) => void; - setTransactionStatus: (transactionStatus: KeyInPaymentTransactionStatus) => void; - setMinAmount: (minAmount: string | number) => void; - setMaxAmount: (maxAmount: string | number) => void; -} -// 계좌성명 조회 필터 -export interface AccountHolderSearchFilterProps extends FilterProps { - mid: string; - searchType: AccountHolderSearchType; - searchKeyword: string; - startDate: string; - endDate: string; - bank: string; - processResult: ProcessResult; - setMid: (mid: string) => void; - setSearchType: (searchType: AccountHolderSearchType) => void; - setSearchKeyword: (searchKeyWorld: string) => void; - setStartDate: (startDate: string) => void; - setEndDate: (endDate: string) => void; - setBank: (bank: string) => void; - setProcessResult: (processResult: ProcessResult) => void; -} - -// 링크결제 - 발송내역 탭 필터 export interface LinkPaymentShippingHistoryFilterProps extends FilterProps { mid: string; searchType: LinkPaymentSearchType; @@ -492,7 +206,6 @@ export interface LinkPaymentShippingHistoryFilterProps extends FilterProps { setSendMethod: (sendMethod: LinkPaymentSendMethod) => void; } -// 링크결제 - 발송대기 탭 필터 export interface LinkPaymentPendingSendFilterProps extends FilterProps { mid: string; searchType: LinkPaymentSearchType; @@ -508,24 +221,473 @@ export interface LinkPaymentPendingSendFilterProps extends FilterProps { setEndDate: (endDate: string) => void; setSendMethod: (sendMethod: LinkPaymentSendMethod) => void; setSendingStatus: (sendingStatus: LinkPaymentSendingStatus) => void; -}; +} export enum DetailInfoSectionKeys { Payment = 'Payment', Deets = 'Deets' } + export interface DetailPaymentInfoProps { -}; +} + export interface DetailDeetsInfoProps { -}; +} + export interface DetailResponse { paymentInfo?: DetailPaymentInfoProps deetsInfo?: DetailDeetsInfoProps } + export interface DetailInfoSectionProps extends DetailResponse { show?: boolean; tid?: string; onClickToShowInfo?: (info: DetailInfoSectionKeys) => void; +} + +// ======================================== +// 자금이체 관련 타입들 +// ======================================== + +export enum FundTransferTabKeys { + RequestList = 'RequestList', + ResultInquiry = 'ResultInquiry' +} + +export interface FundTransferTabProps { + activeTab: FundTransferTabKeys; +} + +// ======================================== +// 정산기관 관련 타입들 +// ======================================== + +export enum SettlementAgencyTabKeys { + Manage = 'Manage', + Deposit = 'Deposit', + Member = 'Member', +} + +export interface SettlementAgencyTabProps { + activeTab: SettlementAgencyTabKeys; +} + +export interface SettlementAgencyBottomAgreeProps { + bottomAgreeOn: boolean; + setBottomAgreeOn: (bottomAgreeOn: boolean) => void; +} + +// ======================================== +// 공통 리스트 관련 타입들 +// ======================================== + +export interface ListItemProps extends KeyInPaymentListItem, AccountHolderSearchListItem, LinkPaymentShippingListItem, LinkPaymentPendingListItem { + additionalServiceCategory?: AdditionalServiceCategory; + mid?: string +} + +export interface ListDateGroupProps { + additionalServiceCategory?: AdditionalServiceCategory; + date?: string; + items?: Array; + mid?: string; +} + +export interface AdditionalServiceListProps { + additionalServiceCategory: AdditionalServiceCategory; + listItems: Record>; +} + +// ======================================== +// 확장 서비스 API 타입들 +// ======================================== + +export interface ExtensionRequestParams { + mid: string; +} + +// 계좌 성명 조회 확장 서비스 +// ======================================== +export interface ExtensionAccountHolderSearchListParams extends ExtensionRequestParams { // Request + searchCl: string; + searchValue: string; + fromDate: string; + toDate: string; + bankCode: string; + resultStatus: string; + page?: DefaultRequestPagination; +} +export interface ExtensionAccountHolderSearchListResponse extends DefaulResponsePagination { // Response + content: Array +} + +export interface ExtensionAccountHolderSearchListItemProps { // Response - content + +} + +export interface ExtensionAccountHolderSearchDetailParams extends ExtensionRequestParams { // Request + tid: string; +} + +export interface ExtensionAccountHolderSearchDetailResponse { + tid: string; + accountNo: string; + bankName: string; + requestDate: string; + accountName: string; + resultStatus: string; + failReason: string; + requestWay: string; +} + +export interface ExtensionAccountHolderSearchDownloadExcelParams extends ExtensionRequestParams { // Request + searchCl: string; + searchValue: string; + fromDate?: string; + toDate?: string; + bankCode: string; + resultStatus: string; +} + +export interface ExtensionAccountHolderSearchDownloadExcelResponse { + +} +// ======================================== + + +// KEY-IN 결제 확장 서비스 +// ======================================== +export interface ExtensionKeyinListParams extends ExtensionRequestParams { + fromDate: string; + toDate: string; + paymentStatus: string; + minAmount?: number | string; + maxAmount?: number | string; + page?: DefaultRequestPagination; +} + +export interface ExtensionKeyinListItemProps { + tid: string; + paymentDate: string; + paymentStatus: string; + amount: number; +} + +export interface ExtensionKeyinListResponse extends DefaulResponsePagination { + content: Array +} + +export interface ExtensionKeyinDownloadExcelParams extends ExtensionRequestParams { + fromDate?: string; + toDate?: string; + paymentStatus?: string; + minAmount?: number | string; + maxAmount?: number | string; +} + +export interface ExtensionKeyinDownloadExcelResponse { + +} + +export interface ExtensionKeyinApplyParams extends ExtensionRequestParams { + goodsName: string; + amount: number; + buyerName: string; + email: string; + phoneNumber: string; + cardNo: string; + cardExpirationDate: string; + instmntMonth: string; + moid: string; +} + +export interface ExtensionKeyinApplyResponse { + +} +// ======================================== + +// SMS 결제알림 확장 서비스 +export interface ExtensionSmsResendParams extends ExtensionRequestParams { + tid: string; +} + +export interface ExtensionSmsResendResponse { + +} + +export interface ExtensionSmsListParams extends ExtensionRequestParams { + tid: string; + searchCl: string; + searchValue: string; + fromDate: string; + toDate: string; + smsCl: string; +} + +export interface ExtensionSmsListItemProps { + mid: string; + tid: string; + paymentDate: string; + paymentStatus: string; + smsCl: string; +} + +export interface ExtensionSmsListResponse extends DefaulResponsePagination { + content: Array +} + +export interface ExtensionSmsDownloadExcelParams extends ExtensionRequestParams { + searchCl: string; + searchValue: string; + fromDate: string; + toDate: string; + smsCl: string; +} + +export interface ExtensionSmsDownloadExcelResponse { + +} + +export interface ExtensionSmsDetailParams extends ExtensionRequestParams { + tid: string; +} + +export interface ExtensionSmsDetailResponse { + senderNumber: string; + senderName: string; + receiverNumber: string; + receiverName: string; + sendMessage: string; +} + +// ARS 카드결제 확장 서비스 +export interface ExtensionArsResendParams extends ExtensionRequestParams { + tid: string; +} + +export interface ExtensionArsResendResponse { + +} + +export interface ExtensionArsListParams extends ExtensionRequestParams { + moid: string; + fromDate: string; + toDate: string; + paymentStatus: string; + orderStatus: string; + minAmount: number; + maxAmount: number; +} + +export interface ExtensionArsListItemProps { + tid: string; + paymentDate: string; + paymentStatus: string; + orderStatus: string; + arsPaymentMethod: string; + amount: number; +} + +export interface ExtensionArsListResponse extends DefaulResponsePagination { + content: Array +} + +export interface ExtensionArsDownloadExcelParams extends ExtensionRequestParams { + moid: string; + fromDate: string; + toDate: string; + paymentStatus: string; + orderStatus: string; + minAmount: number; + maxAmount: number; +} + +export interface ExtensionArsDownloadExcelResponse { + +} + +export interface ExtensionArsDetailParams extends ExtensionRequestParams { + tid: string; +} + +export interface ExtensionArsDetailResponse { + corpName: string; + mid: string; + arsPaymentMethod: string; + paymentStatus: string; + orderStatus: string; + paymentDate: string; + goodsName: string; + tid: string; + buyerName: string; + phoneNumber: string; + maskPhoneNumber: string; + email: string; + smsVerificationCode: string; +} + +export interface ExtensionArsApplyParams extends ExtensionRequestParams { + moid: string; + goodsName: string; + amount: number; + instmntMonth: string; + buyerName: string; + phoneNumber: string; + email: string; + arsPaymentMethod: string; +} + +export interface ExtensionArsApplyResponse { + +} + +// 알림톡 확장 서비스 +export interface SendMerchantInfoItem { + cardApprovalFlag: boolean; + cardCancelFlag: boolean; + bankApprovalFlag: boolean; + bankCancelFlag: boolean; + virtureAccountDepositRequestFlag: boolean; + virtureAccountDepositCompleteFlag: boolean; + virtureAccountRefundFlag: boolean; +} + +export interface SendUserInfoItem { + cardApprovalFlag: boolean; + cardCancelFlag: boolean; + bankApprovalFlag: boolean; + bankCancelFlag: boolean; + virtureAccountDepositRequestFlag: boolean; + virtureAccountDepositCompleteFlag: boolean; + virtureAccountRefundFlag: boolean; +} + +export interface ExtensionAlimtalkSettingSaveParams extends ExtensionRequestParams { + sendMerchantInfo: SendMerchantInfoItem; + sendUserInfo: SendUserInfoItem; +} + +export interface ExtensionAlimtalkSettingSaveResponse { + +} + +export interface ExtensionAlimtalkSettingDetailParams extends ExtensionRequestParams { + +} + +export interface ExtensionAlimtalkSettingDetailItem { + sendMerchantInfo: SendMerchantInfoItem; + sendUserInfo: SendUserInfoItem; +} + +export interface ExtensionAlimtalkSettingDetailResponse extends DefaulResponsePagination { + content: Array +} + +export interface ExtensionAlimtalkListParams extends ExtensionRequestParams { + searchCl: string; + searchValue: string; + paymentMethod: string; + alimCl: string; + fromDate: string; + toDate: string; + sendType: string; + sendCl: string; +} + +export interface ExtensionAlimtalkListItem { + tid: string; + sendDate: string; + alimCl: string; + sendType: string; + sendCl: string; + paymentMethod: string; + receiverName: string; +} + +export interface ExtensionAlimtalkListResponse extends DefaulResponsePagination { + content: Array +} + +export interface ExtensionAlimtalkDownloadExcelParams extends ExtensionRequestParams { + searchCl: string; + searchValue: string; + paymentMethod: string; + alimCl: string; + fromDate: string; + toDate: string; + sendType: string; + sendCl: string; +} + +export interface ExtensionAlimtalkDownloadExcelResponse { + +} + +export interface ExtensionAlimtalkDetailParams extends ExtensionRequestParams { + tid: string; +} + +export interface ExtensionAlimtalkDetailResponse { + receiverName: string; + merchantName: string; + sendDate: string; + mid: string; + tid: string; + serviceName: string; + sendType: string; + senderName: string; + paymentMethod: string; + alimCl: string; + sendCl: string; +} + +// 확장 서비스 목록 관련 +export interface ExtensionListParams extends ExtensionRequestParams { + +} + +export interface activeExtensionListItem { + extensionCode: string; + extensionName: string; + extensionInformation: string; +} + +export interface availableExtensionListItem { + extensionCode: string; + extensionName: string; + extensionInformation: string; +} + +export interface ExtensionListItemProps { + activeExtensionList: Array; + availableExtensionList: Array; +} + +export interface ExtensionListResponse extends DefaulResponsePagination { + content: Array +} + +// ======================================== +// 기타 UI 컴포넌트 타입들 +// ======================================== + +export interface IntroListItemProps { + className?: string; + serviceName?: string; + serviceDesc?: string; + icon?: string; + path?: string; +} + +export interface ArsCardPaymentFinishProps { + requestSuccess: boolean; + setRequestSuccess: (requestSuccess: boolean) => void; +} + +export interface SmsPaymentDetailResendProps { + bottomSmsPaymentDetailResendOn: boolean; + setBottomSmsPaymentDetailResendOn: (bottomSmsPaymentDetailResendOn: boolean) => void; } \ No newline at end of file diff --git a/src/entities/additional-service/ui/account-holder-search/account-holder-search-list.tsx b/src/entities/additional-service/ui/account-holder-search/account-holder-search-list.tsx new file mode 100644 index 0000000..3ff0a9c --- /dev/null +++ b/src/entities/additional-service/ui/account-holder-search/account-holder-search-list.tsx @@ -0,0 +1,46 @@ +import { PATHS } from '@/shared/constants/paths'; +import { useNavigate } from '@/shared/lib/hooks/use-navigate'; +import { ListDateGroup } from '../list-date-group'; +import { AccountHolderSearchListProps } from '../../model/types' + +export const AccountHolderSearchList = ({ + additionalServiceCategory, + listItems, + mid +}: AccountHolderSearchListProps) => { + const { navigate } = useNavigate(); + + const getListDateGroup = () => { + let rs = []; + for (const [key, value] of Object.entries(listItems)) { + rs.push( + + ); + } + return rs; + }; + + const onClickToNavigate = () => { + navigate(PATHS.additionalService.accountHolderSearch.request) + }; + + return ( + <> +
+ {getListDateGroup()} +
+ +
+
+ + ); +} \ No newline at end of file diff --git a/src/entities/additional-service/ui/account-holder-search/account-holder-search-filter.tsx b/src/entities/additional-service/ui/account-holder-search/filter/account-holder-search-filter.tsx similarity index 96% rename from src/entities/additional-service/ui/account-holder-search/account-holder-search-filter.tsx rename to src/entities/additional-service/ui/account-holder-search/filter/account-holder-search-filter.tsx index e6d64c4..e862532 100644 --- a/src/entities/additional-service/ui/account-holder-search/account-holder-search-filter.tsx +++ b/src/entities/additional-service/ui/account-holder-search/filter/account-holder-search-filter.tsx @@ -7,7 +7,7 @@ import { AccountHolderSearchType, AccountHolderSearchFilterProps, ProcessResult -} from '../../model/types'; +} from '../../../model/types'; import { FilterSelect } from '@/shared/ui/filter/select'; import { FilterSelectInput } from '@/shared/ui/filter/select-input'; import { FilterDateOptions } from '@/entities/common/model/types'; @@ -66,6 +66,7 @@ export const AccountHolderSearchFilter = ({ setEndDate(filterEndDate); setBank(filterBank); setProcessResult(filterProcessResult); + onClickToClose(); }; let MidOptions = [ @@ -74,19 +75,19 @@ export const AccountHolderSearchFilter = ({ ]; let bankOptions = [ - { name: '우리은행', value: '우리은행'}, - { name: '토스뱅킹', value: '토스뱅킹'} + { name: '우리은행', value: '우리은행' }, + { name: '토스뱅킹', value: '토스뱅킹' } ] let searchTypeOption = [ - { name: '예금주', value: AccountHolderSearchType.ACCOUNT_HOLDER }, - { name: '계좌번호', value: AccountHolderSearchType.ACCOUNT_NUMBER }, + { name: '예금주', value: AccountHolderSearchType.ACCOUNT_NAME }, + { name: '계좌번호', value: AccountHolderSearchType.ACCOUNT_NO }, ] let processResultBtnGroup = [ { name: '전체', value: ProcessResult.ALL }, { name: '성공', value: ProcessResult.SUCCESS }, - { name: '실패', value: ProcessResult.FAILURE }, + { name: '실패', value: ProcessResult.FAIL }, ]; return ( diff --git a/src/entities/additional-service/ui/key-in-payment/key-in-payment-list.tsx b/src/entities/additional-service/ui/key-in-payment/key-in-payment-list.tsx index f0f2e59..6e62608 100644 --- a/src/entities/additional-service/ui/key-in-payment/key-in-payment-list.tsx +++ b/src/entities/additional-service/ui/key-in-payment/key-in-payment-list.tsx @@ -4,22 +4,22 @@ import { KeyInPaymentListProps } from '../../model/types' import { ListDateGroup } from '../list-date-group'; export const KeyInPaymentList = ({ - additionalServiceCategory, - listItems -}: KeyInPaymentListProps ) => { - const { navigate } = useNavigate(); + additionalServiceCategory, + listItems +}: KeyInPaymentListProps) => { + const { navigate } = useNavigate(); const getListDateGroup = () => { let rs = []; for (const [key, value] of Object.entries(listItems)) { rs.push( - ); + ); } return rs; }; @@ -27,18 +27,18 @@ export const KeyInPaymentList = ({ const onClickToNavigate = () => { navigate(PATHS.additionalService.keyInPayment.request) }; - + return ( <>
- { getListDateGroup() } + {getListDateGroup()}
-
-
+ ); } \ No newline at end of file diff --git a/src/entities/additional-service/ui/link-payment/filter/link-payment-shipping-history-filter.tsx b/src/entities/additional-service/ui/link-payment/filter/link-payment-shipping-history-filter.tsx index bdf2ccd..32629fe 100644 --- a/src/entities/additional-service/ui/link-payment/filter/link-payment-shipping-history-filter.tsx +++ b/src/entities/additional-service/ui/link-payment/filter/link-payment-shipping-history-filter.tsx @@ -98,7 +98,7 @@ export const LinkPaymentShippingHistoryFilter = ({ let processResultOption = [ { name: '전체', value: ProcessResult.ALL }, { name: '성공', value: ProcessResult.SUCCESS }, - { name: '실패', value: ProcessResult.FAILURE }, + { name: '실패', value: ProcessResult.FAIL }, ] let sendMethodOption = [ diff --git a/src/entities/additional-service/ui/link-payment/link-payment-shipping-history-wrap.tsx b/src/entities/additional-service/ui/link-payment/link-payment-shipping-history-wrap.tsx index 5a00f34..b7c6576 100644 --- a/src/entities/additional-service/ui/link-payment/link-payment-shipping-history-wrap.tsx +++ b/src/entities/additional-service/ui/link-payment/link-payment-shipping-history-wrap.tsx @@ -12,7 +12,7 @@ import { LinkPaymentSearchType, } from "../../model/types"; const processResultBtnGroup = [ { name: '전체', value: ProcessResult.ALL }, { name: '성공', value: ProcessResult.SUCCESS }, - { name: '실패', value: ProcessResult.FAILURE } + { name: '실패', value: ProcessResult.FAIL } ] export const LinkPaymentShippingHistoryWrap = () => { diff --git a/src/entities/additional-service/ui/list-date-group.tsx b/src/entities/additional-service/ui/list-date-group.tsx index 31f87ec..f9f4935 100644 --- a/src/entities/additional-service/ui/list-date-group.tsx +++ b/src/entities/additional-service/ui/list-date-group.tsx @@ -6,7 +6,8 @@ import { ListItem } from '../ui/list-item'; export const ListDateGroup = ({ additionalServiceCategory, date, - items + items, + mid }: ListDateGroupProps) => { moment.locale('ko'); const getStateDate = () => { @@ -27,12 +28,10 @@ export const ListDateGroup = ({ paymentDate= { items[i]?.paymentDate} paymentStatus={ items[i]?.paymentStatus} - requestId={ items[i]?.requestId } requestDate={ items[i]?.requestDate } - bank={ items[i]?.bank } - accountNumber={ items[i]?.accountNumber } - accountHolder={ items[i]?.accountHolder } - processResult={ items[i]?.processResult } + bankName={ items[i]?.bankName} + accountNo={ items[i]?.accountNo } + resultStatus={ items[i]?.resultStatus } transactionId={ items[i]?.transactionId } customerName={ items[i]?.customerName } diff --git a/src/entities/additional-service/ui/list-item.tsx b/src/entities/additional-service/ui/list-item.tsx index 4498665..488d92a 100644 --- a/src/entities/additional-service/ui/list-item.tsx +++ b/src/entities/additional-service/ui/list-item.tsx @@ -6,10 +6,9 @@ import moment from 'moment'; export const ListItem = ({ additionalServiceCategory, - tid, paymentDate, paymentStatus, + mid, tid, paymentDate, paymentStatus, - requestId, requestDate, bank, accountNumber, - accountHolder, processResult, + requestDate, bankName, accountNo, resultStatus, transactionId, customerName, status, channel, amount, sendDate, transactionDate @@ -34,46 +33,67 @@ export const ListItem = ({ const getDotClass = (str?: string) => { let rs = ''; - if (paymentStatus === '') { - rs = ''; + if (additionalServiceCategory === AdditionalServiceCategory.KeyInPayment) { + if (paymentStatus === '') { + rs = ''; + } + else if (paymentStatus === "APPROVAL") { + rs = 'blue'; + } + else if (paymentStatus === "ALL_CANCEL") { + rs = 'gray'; + } + else if (paymentStatus === 'AFTER_CANCEL') { + rs = 'gray'; + } + } - else if (paymentStatus === "APPROVAL") { - rs = 'blue'; - } - else if (paymentStatus === "ALL_CANCEL") { - rs = 'gray'; - } - else if (paymentStatus === 'AFTER_CANCEL') { - rs = 'gray'; + else if (additionalServiceCategory === AdditionalServiceCategory.AccountHolderSearch) { + if (resultStatus === "SUCCESS") { + rs = 'blue'; + } + else if (resultStatus === "FAIL") { + rs = 'gray'; + } } return rs; + }; const onClickToNavigate = () => { if (additionalServiceCategory === AdditionalServiceCategory.KeyInPayment) { - + return; } else if (additionalServiceCategory === AdditionalServiceCategory.AccountHolderSearch) { navigate(PATHS.additionalService.accountHolderSearch.detail, { state: { - requestId: requestId + mid: mid, + tid: tid } }); } else if (additionalServiceCategory === AdditionalServiceCategory.LinkPaymentShipping) { navigate(PATHS.additionalService.linkPayment.detail, { state: { - transactionId: transactionId + mid: mid, + tid: tid } }); } else if (additionalServiceCategory === AdditionalServiceCategory.LinkPaymentPending) { navigate(PATHS.additionalService.linkPayment.detail, { state: { - transactionId: transactionId + mid: mid, + tid: tid } }); + } + else if (additionalServiceCategory === AdditionalServiceCategory.FundTransfer) { + + } + else if (additionalServiceCategory === AdditionalServiceCategory.SettlementAgency) { + } else { alert('additionalServiceCategory가 존재하지 않습니다.'); @@ -87,7 +107,8 @@ export const ListItem = ({ timeStr = time?.substring(0, 2) + ':' + time?.substring(2, 4); } else if (additionalServiceCategory === AdditionalServiceCategory.AccountHolderSearch) { - timeStr = moment(requestDate).format('HH:mm'); + let time = requestDate?.substring(8, 14); + timeStr = time?.substring(0, 2) + ':' + time?.substring(2, 4) + ':' + time?.substring(4, 6); } else if (additionalServiceCategory === AdditionalServiceCategory.LinkPaymentShipping) { timeStr = moment(transactionDate).format('HH:mm'); @@ -104,7 +125,7 @@ export const ListItem = ({ str = `${tid}(${amount})`; } else if (additionalServiceCategory === AdditionalServiceCategory.AccountHolderSearch) { - str = `${accountHolder}(${accountNumber})` + str = `${accountNo}` } else if (additionalServiceCategory === AdditionalServiceCategory.LinkPaymentShipping) { str = `${customerName}(${transactionId})` @@ -131,9 +152,7 @@ export const ListItem = ({
{getTime()} | - {bank} - | - {processResult} + {bankName}
); } @@ -162,6 +181,30 @@ export const ListItem = ({ return rs; }; + const getAmount = () => { + let rs: any[] = []; + if (additionalServiceCategory === AdditionalServiceCategory.AccountHolderSearch) { + rs.push( +
+ {resultStatus === 'SUCCESS' ? '성공' : '실패'} +
+ ); + } + else if (additionalServiceCategory === AdditionalServiceCategory.KeyInPayment) { + rs.push( +
+ +
+ ); + } + return rs; + } + return ( <>
{getTitle()}
{getDetail()} -
- -
+ {getAmount()} ); diff --git a/src/pages/additional-service/account-holder-search/account-holder-search-page.tsx b/src/pages/additional-service/account-holder-search/account-holder-search-page.tsx index 00d691e..a9f1231 100644 --- a/src/pages/additional-service/account-holder-search/account-holder-search-page.tsx +++ b/src/pages/additional-service/account-holder-search/account-holder-search-page.tsx @@ -5,21 +5,35 @@ import { useNavigate } from '@/shared/lib/hooks/use-navigate'; import { IMAGE_ROOT } from '@/shared/constants/common'; import { HeaderType } from '@/entities/common/model/types'; import { useDownloadExcelMutation } from '@/entities/transaction/api/use-download-excel-mutation'; -import { AccountHolderSearchFilter } from '@/entities/additional-service/ui/account-holder-search/account-holder-search-filter'; -import { ProcessResult, AccountHolderSearchType } from '@/entities/additional-service/model/types'; +import { AccountHolderSearchFilter } from '@/entities/additional-service/ui/account-holder-search/filter/account-holder-search-filter'; +import { ProcessResult, AccountHolderSearchType, SortByKeys, AccountHolderSearchListItem, AdditionalServiceCategory } from '@/entities/additional-service/model/types'; import { useSetHeaderTitle, useSetHeaderType, - useSetFooterMode + useSetFooterMode, + useSetOnBack } from '@/widgets/sub-layout/use-sub-layout'; +import { useExtensionAccountHolderSearchListMutation } from '@/entities/additional-service/api/use-extension-account-holder-search-list-mutation'; +import { DEFAULT_PAGE_PARAM } from '@/entities/common/model/constants'; +import { useExtensionAccountHolderSearchDownloadExcelMutation } from '@/entities/additional-service/api/use-extension-account-holder-search-download-excel-mutation'; +import { SortOptionsBox } from '@/entities/additional-service/ui/sort-options-box'; +import { AccountHolderSearchList } from '@/entities/additional-service/ui/account-holder-search/account-holder-search-list'; +const resultStatusBtnGroup = [ + { name: '전체', value: ProcessResult.ALL }, + { name: '성공', value: ProcessResult.SUCCESS }, + { name: '실패', value: ProcessResult.FAIL }, +] export const AccountHolderSearchPage = () => { const { navigate } = useNavigate(); + const [sortBy, setSortBy] = useState(SortByKeys.New); + const [listItems, setListItems] = useState({}); + const [pageParam, setPageParam] = useState(DEFAULT_PAGE_PARAM); const [filterOn, setFilterOn] = useState(false); const [mid, setMid] = useState('nictest001m'); - const [searchType, setSearchType] = useState(AccountHolderSearchType.ALL) + const [searchType, setSearchType] = useState(AccountHolderSearchType.ACCOUNT_NO) const [searchKeyword, setSearchKeyword] = useState(''); const [startDate, setStartDate] = useState(moment().format('YYYY-MM-DD')); const [endDate, setEndDate] = useState(moment().format('YYYY-MM-DD')); @@ -28,79 +42,86 @@ export const AccountHolderSearchPage = () => { useSetHeaderTitle('계좌성명조회'); useSetHeaderType(HeaderType.LeftArrow); - useSetFooterMode(true); + useSetFooterMode(false); + useSetOnBack(() => { + navigate(PATHS.home); + }); - const { mutateAsync: downloadExcel } = useDownloadExcelMutation(); + const { mutateAsync: accountHolderSearchList } = useExtensionAccountHolderSearchListMutation(); + const { mutateAsync: downloadExcel } = useExtensionAccountHolderSearchDownloadExcelMutation(); - const transactionData = [ - { - id: '1', - accountNumber: '10002464******', - time: '20:00', - bank: '우리은행', - status: 'success', - statusColor: 'blue', - className: 'approved' - }, - { - id: '2', - accountNumber: '10002464******', - time: '20:00', - details: '결제완료ㅣ결제성공ㅣ호전환', - status: 'success', - statusColor: 'gray', - className: 'refund' - }, - { - id: '3', - accountNumber: '10002464******', - time: '20:00', - details: '결제완료ㅣ결제성공ㅣ호전환', - status: 'success', - statusColor: 'blue', - className: 'approved' - }, - { - id: '4', - accountNumber: '10002464******', - time: '20:00', - details: '미결제ㅣ취소완료ㅣSMS', - status: 'success', - statusColor: 'gray', - className: 'refund' - }, - { - id: '5', - accountNumber: '10002464******', - time: '20:00', - details: '미결제ㅣ기간만료ㅣSMS', - status: 'fail', - statusColor: 'blue', - className: 'approved' + const callList = (option?: { + sortBy?: string, + val?: string + }) => { + pageParam.sortBy = (option?.sortBy) ? option.sortBy : sortBy; + setPageParam(pageParam); + let listParams = { + mid: mid, + searchCl: searchType, + searchValue: searchKeyword, + fromDate: startDate, + toDate: endDate, + bankCode: bank, + resultStatus: processResult } - ]; + + accountHolderSearchList(listParams).then((rs) => { + setListItems(assembleData(rs.content)); + }); + } + + const assembleData = (content: Array) => { + console.log('rs.content:', content) + let data: any = {}; + if (content && content.length > 0) { + for (let i = 0; i < content?.length; i++) { + let requestDate = content[i]?.requestDate?.substring(0, 8); + let groupDate = moment(requestDate).format('YYYYMMDD'); + if (!!groupDate && !data.hasOwnProperty(groupDate)) { + data[groupDate] = []; + } + if (!!groupDate && data.hasOwnProperty(groupDate)) { + data[groupDate].push(content[i]); + } + } + } + console.log('Data : ', data) + return data; + }; const onClickToOpenFilter = () => { setFilterOn(!filterOn); }; const onClickToDownloadExcel = () => { - // tid??? 확인 필요 downloadExcel({ - // tid: tid + mid: mid, + searchCl: searchType, + searchValue: searchKeyword, + fromDate: startDate, + toDate: endDate, + bankCode: bank, + resultStatus: processResult }).then((rs) => { }); }; - const onClickToNavigation = () => { - navigate(PATHS.additionalService.accountHolderSearch.request); + const onClickToSort = (sort: SortByKeys) => { + setSortBy(sort); + callList({ sortBy: sort }) }; - const onClickToGoDetail = (tid?: string) => { - navigate(PATHS.additionalService.accountHolderSearch.detail); + const onClickToTransactionStatus = (val: ProcessResult) => { + setProcessResult(val); + callList({ val: val }); }; + useEffect(() => { + callList(); + }, []); + return ( <>
@@ -112,7 +133,7 @@ export const AccountHolderSearchPage = () => { -
-
- - | - -
+
+
- 전체 - 성공 - 실패 + { + resultStatusBtnGroup.map((value, index) => ( + onClickToTransactionStatus(value.value)} + >{value.name} + )) + }
-
- -
-
-
25.06.08(일)
- {transactionData.map((item) => ( -
onClickToGoDetail(item.id)} - > -
-
-
-
-
{item.accountNumber}
-
- - {item.time}ㅣ{item.bank || item.details} - -
-
-
- {item.status === 'success' ? '성공' : '실패'} -
-
- ))} -
-
-
-
+
diff --git a/src/shared/api/api-url-additional-service.ts b/src/shared/api/api-url-additional-service.ts index cc38aa6..430387f 100644 --- a/src/shared/api/api-url-additional-service.ts +++ b/src/shared/api/api-url-additional-service.ts @@ -5,6 +5,18 @@ import { /* Extension Management - 부가서비스 API */ export const API_URL_ADDITIONAL_SERVICE = { + extensionAccountHolderSearchList: () => { + // POST: 계좌성명조회 목록 조회 + return `${API_BASE_URL}/api/v1/${API_URL_KEY}/extension/search-account-name/list`; + }, + extensionAccountHolderSearchDetail: () => { + // POST: 계좌성명조회 상세 조회 + return `${API_BASE_URL}/api/v1/${API_URL_KEY}/extension/search-account-name/detail`; + }, + extensionAccountHolderSearchDownloadExcel: () => { + // POST: 계좌성명조회 엑셀 다운 + return `${API_BASE_URL}/api/v1/${API_URL_KEY}/extension/search-account-name/excel`; + }, extensionSmsResend: () => { // POST: SMS 결제 통보 > SMS 재발송 return `${API_BASE_URL}/api/v1/${API_URL_KEY}/extension/sms/resend`;