From 5d76f56ded85c32c50016b01135578a792c99b04 Mon Sep 17 00:00:00 2001 From: HyeonJongKim Date: Mon, 22 Sep 2025 14:51:04 +0900 Subject: [PATCH] =?UTF-8?q?=EB=B6=80=EA=B0=80=EC=84=9C=EB=B9=84=EC=8A=A4?= =?UTF-8?q?=20-=20=EB=A7=81=ED=81=AC=EA=B2=B0=EC=A0=9C=20=EB=B0=9C?= =?UTF-8?q?=EC=86=A1=EB=82=B4=EC=97=AD/=EB=B0=9C=EC=86=A1=EB=8C=80?= =?UTF-8?q?=EA=B8=B0=20=EC=97=91=EC=85=80=EB=8B=A4=EC=9A=B4=EB=A1=9C?= =?UTF-8?q?=EB=93=9C=20API=20=EC=97=B0=EA=B2=B0=20-=20=EB=A7=81=ED=81=AC?= =?UTF-8?q?=EA=B2=B0=EC=A0=9C=20=EB=B0=9C=EC=86=A1=EB=8C=80=EA=B8=B0=20?= =?UTF-8?q?=EC=83=81=EC=84=B8=20=ED=8E=98=EC=9D=B4=EC=A7=80=20=EB=AA=A9?= =?UTF-8?q?=EC=97=85=20API=20=EC=97=B0=EA=B2=B0=20-=20=EB=A7=81=ED=81=AC?= =?UTF-8?q?=EA=B2=B0=EC=A0=9C=20=EB=B0=9C=EC=86=A1=EB=8C=80=EA=B8=B0=20?= =?UTF-8?q?=EC=82=AD=EC=A0=9C=20API=20=EC=97=B0=EA=B2=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ension-link-pay-history-detail-mutation.ts | 3 +- ...ink-pay-history-download-excel-mutation.ts | 29 +++++ ...extension-link-pay-wait-delete-mutation.ts | 29 +++++ ...extension-link-pay-wait-detail-mutation.ts | 53 +++++++++ ...sion-link-pay-wait-download-excel-mutation | 0 ...n-link-pay-wait-download-excel-mutation.ts | 31 +++++ ...e-extension-link-pay-wait-list-mutation.ts | 4 - .../additional-service/model/types.ts | 67 ++++++++--- .../ui/info-wrap/detail-info-wrap.tsx | 4 +- .../ui/info-wrap/payment-info-wrap.tsx | 62 ++++++++-- .../ui/info-wrap/title-info-wrap.tsx | 20 +++- ...er.tsx => link-payment-history-filter.tsx} | 6 +- ...list.tsx => link-payment-history-list.tsx} | 6 +- ...wrap.tsx => link-payment-history-wrap.tsx} | 40 ++++--- .../link-payment-wait-send-wrap.tsx | 15 ++- .../additional-service/ui/list-item.tsx | 10 +- .../additional-service-pages.tsx | 4 +- .../key-in-payment/key-in-payment-page.tsx | 4 +- .../link-payment/link-payment-detail-page.tsx | 18 +-- ...page.tsx => link-payment-history-page.tsx} | 6 +- .../link-payment-wait-detail-page.tsx | 107 ++++++++++-------- src/shared/api/api-url-additional-service.ts | 17 ++- 22 files changed, 406 insertions(+), 129 deletions(-) create mode 100644 src/entities/additional-service/api/link-payment/use-extension-link-pay-wait-delete-mutation.ts delete mode 100644 src/entities/additional-service/api/link-payment/use-extension-link-pay-wait-download-excel-mutation create mode 100644 src/entities/additional-service/api/link-payment/use-extension-link-pay-wait-download-excel-mutation.ts rename src/entities/additional-service/ui/link-payment/filter/{link-payment-shipping-history-filter.tsx => link-payment-history-filter.tsx} (98%) rename src/entities/additional-service/ui/link-payment/{link-payment-shipping-history-list.tsx => link-payment-history-list.tsx} (77%) rename src/entities/additional-service/ui/link-payment/{link-payment-shipping-history-wrap.tsx => link-payment-history-wrap.tsx} (83%) rename src/pages/additional-service/link-payment/{link-payment-shipping-history-page.tsx => link-payment-history-page.tsx} (81%) diff --git a/src/entities/additional-service/api/link-payment/use-extension-link-pay-history-detail-mutation.ts b/src/entities/additional-service/api/link-payment/use-extension-link-pay-history-detail-mutation.ts index 3dea674..a212b72 100644 --- a/src/entities/additional-service/api/link-payment/use-extension-link-pay-history-detail-mutation.ts +++ b/src/entities/additional-service/api/link-payment/use-extension-link-pay-history-detail-mutation.ts @@ -23,7 +23,7 @@ export const extensionLinkPayHistoryDetail = async (params: ExtensionLinkPayHist titleInfo: { amount: response.amount, corpName: response.corpName, - requestDate: response.paymentDate + requestDate: response.sendDate } as TitleInfo, paymentInfo: { buyerName: response.buyerName, @@ -38,6 +38,7 @@ export const extensionLinkPayHistoryDetail = async (params: ExtensionLinkPayHist detailInfo: { email: response.email, phoneNumber: response.phoneNumber, + goodsName: response.goodsName, moid: response.moid } as DetailInfo } diff --git a/src/entities/additional-service/api/link-payment/use-extension-link-pay-history-download-excel-mutation.ts b/src/entities/additional-service/api/link-payment/use-extension-link-pay-history-download-excel-mutation.ts index e69de29..017a8b4 100644 --- a/src/entities/additional-service/api/link-payment/use-extension-link-pay-history-download-excel-mutation.ts +++ b/src/entities/additional-service/api/link-payment/use-extension-link-pay-history-download-excel-mutation.ts @@ -0,0 +1,29 @@ +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 { + ExtensionLinkPayHistoryDownloadExcelRespone, + ExtensionLinkPayHistoryDownloadExcelParams +} from '../../model/types'; +import { + useMutation, + UseMutationOptions +} from '@tanstack/react-query'; + +export const extensionLinkPayHistoryDownloadExcel = (params: ExtensionLinkPayHistoryDownloadExcelParams) => { + return resultify( + axios.post(API_URL_ADDITIONAL_SERVICE.extensionLinkPaymentHistoryDownloadExcel(), params), + ); +}; + +export const useExtensionLinkPayHistoryDownloadExcelMutation = (options?: UseMutationOptions) => { + const mutation = useMutation({ + ...options, + mutationFn: (params: ExtensionLinkPayHistoryDownloadExcelParams) => extensionLinkPayHistoryDownloadExcel(params), + }); + + return { + ...mutation, + }; +}; \ No newline at end of file diff --git a/src/entities/additional-service/api/link-payment/use-extension-link-pay-wait-delete-mutation.ts b/src/entities/additional-service/api/link-payment/use-extension-link-pay-wait-delete-mutation.ts new file mode 100644 index 0000000..b55ac87 --- /dev/null +++ b/src/entities/additional-service/api/link-payment/use-extension-link-pay-wait-delete-mutation.ts @@ -0,0 +1,29 @@ +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 { + ExtensionLinkPayWaitDeleteRespone +} from '../../model/types'; +import { + useMutation, + UseMutationOptions +} from '@tanstack/react-query'; +import { ExtensionLinkPayWaitDeleteParams } from '../../model/types'; + +export const extensionLinkPayWaitDelete = async (params: ExtensionLinkPayWaitDeleteParams)=> { + return resultify( + axios.post(API_URL_ADDITIONAL_SERVICE.extensionLinkPayMentWaitDelete(), params) + ); +}; + +export const useExtensionLinkPayWaitDeleteMutation = (options?: UseMutationOptions) => { + const mutation = useMutation({ + ...options, + mutationFn: (params: ExtensionLinkPayWaitDeleteParams) => extensionLinkPayWaitDelete(params), + }); + + return { + ...mutation, + }; +}; \ No newline at end of file diff --git a/src/entities/additional-service/api/link-payment/use-extension-link-pay-wait-detail-mutation.ts b/src/entities/additional-service/api/link-payment/use-extension-link-pay-wait-detail-mutation.ts index e69de29..a1a3a9b 100644 --- a/src/entities/additional-service/api/link-payment/use-extension-link-pay-wait-detail-mutation.ts +++ b/src/entities/additional-service/api/link-payment/use-extension-link-pay-wait-detail-mutation.ts @@ -0,0 +1,53 @@ +import axios from 'axios'; +import { CBDCAxiosError } from '@/shared/@types/error'; +import { resultify } from '@/shared/lib/resultify'; +import { API_URL_ADDITIONAL_SERVICE } from '@/shared/api/api-url-additional-service'; +import { + DetailResponse, + TitleInfo, + PaymentInfo, + ExtensionLinkPayWaitDetailParams, + ExtensionLinkPayWaitDetailResponse +} from '../../model/types'; +import { + useMutation, + UseMutationOptions +} from '@tanstack/react-query'; + +export const extensionLinkPayWaitDetail = async (params: ExtensionLinkPayWaitDetailParams): Promise => { + const response = await resultify( + axios.post(API_URL_ADDITIONAL_SERVICE.extensionLinkPaymentWaitDetail(), params), + ); + + const detailResponse: DetailResponse = { + titleInfo: { + amount: response.amount, + corpName: response.corpName, + scheduledSendDate: response.scheduledSendDate + } as TitleInfo, + + paymentInfo: { + processStatus: response.processStatus, + requestDate: response.requestDate, + paymentLimitDate: response.paymentLimitDate, + sendMethod: response.sendMethod, + buyerName: response.buyerName, + email: response.email, + phoneNumber: response.phoneNumber, + goodsName: response.goodsName, + moid: response.moid + } as PaymentInfo + } + + return detailResponse +} + +export const useExtensionLinkPayWaitDetailMutation = (options?: UseMutationOptions) => { + const mutation = useMutation({ + ...options, + mutationFn: (params: ExtensionLinkPayWaitDetailParams) => extensionLinkPayWaitDetail(params), + }); + return { + ...mutation, + }; +}; \ No newline at end of file diff --git a/src/entities/additional-service/api/link-payment/use-extension-link-pay-wait-download-excel-mutation b/src/entities/additional-service/api/link-payment/use-extension-link-pay-wait-download-excel-mutation deleted file mode 100644 index e69de29..0000000 diff --git a/src/entities/additional-service/api/link-payment/use-extension-link-pay-wait-download-excel-mutation.ts b/src/entities/additional-service/api/link-payment/use-extension-link-pay-wait-download-excel-mutation.ts new file mode 100644 index 0000000..4149590 --- /dev/null +++ b/src/entities/additional-service/api/link-payment/use-extension-link-pay-wait-download-excel-mutation.ts @@ -0,0 +1,31 @@ +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 { + ExtensionLinkPayHistoryDownloadExcelRespone, + ExtensionLinkPayHistoryDownloadExcelParams, + ExtensionLinkPayWaitDownloadExcelParams, + ExtensionLinkPayWaitDownloadExcelRespone +} from '../../model/types'; +import { + useMutation, + UseMutationOptions +} from '@tanstack/react-query'; + +export const extensionLinkPayWaitDownloadExcel = (params: ExtensionLinkPayWaitDownloadExcelParams) => { + return resultify( + axios.post(API_URL_ADDITIONAL_SERVICE.extensionLinkPaymentHistoryDownloadExcel(), params), + ); +}; + +export const useExtensionLinkPayWaitDownloadExcelMutation = (options?: UseMutationOptions) => { + const mutation = useMutation({ + ...options, + mutationFn: (params: ExtensionLinkPayWaitDownloadExcelParams) => extensionLinkPayWaitDownloadExcel(params), + }); + + return { + ...mutation, + }; +}; \ No newline at end of file diff --git a/src/entities/additional-service/api/link-payment/use-extension-link-pay-wait-list-mutation.ts b/src/entities/additional-service/api/link-payment/use-extension-link-pay-wait-list-mutation.ts index 6e5bda4..279cafe 100644 --- a/src/entities/additional-service/api/link-payment/use-extension-link-pay-wait-list-mutation.ts +++ b/src/entities/additional-service/api/link-payment/use-extension-link-pay-wait-list-mutation.ts @@ -3,10 +3,6 @@ import { API_URL_ADDITIONAL_SERVICE } from '@/shared/api/api-url-additional-serv import { resultify } from '@/shared/lib/resultify'; import { CBDCAxiosError } from '@/shared/@types/error'; import { - ExtensionKeyinListParams, - ExtensionKeyinListResponse, - ExtensionLinkPayHistoryListParams, - ExtensionLinkPayHistoryListResponse, ExtensionLinkPayWaitListParams, ExtensionLinkPayWaitListResponse } from '../../model/types'; diff --git a/src/entities/additional-service/model/types.ts b/src/entities/additional-service/model/types.ts index a61f7b7..8455414 100644 --- a/src/entities/additional-service/model/types.ts +++ b/src/entities/additional-service/model/types.ts @@ -1,5 +1,4 @@ import { DefaulResponsePagination, DefaultRequestPagination } from '@/entities/common/model/types'; -import { PayoutContent } from './payout/types'; // ======================================== // 공통 Enums 및 타입들 @@ -25,11 +24,10 @@ export interface SortOptionsBoxProps { export enum AdditionalServiceCategory { KeyInPayment = 'KeyInPayment', AccountHolderSearch = 'AccountHolderSearch', - LinkPaymentShipping = 'LinkPaymentShipping', + LinkPaymentHistory = 'LinkPaymentHistory', LinkPaymentPending = 'LinkPaymentPending', FundTransfer = 'FundTransfer', SettlementAgency = 'SettlementAgency', - Payout = 'Payout', } // ======================================== @@ -42,7 +40,8 @@ export interface TitleInfo { accountNo?: string, bankName?: string, requestDate?: string, - sendDate?: string + sendDate?: string, + scheduledSendDate?: string } export interface DetailInfo { @@ -56,12 +55,18 @@ export interface DetailInfo { email: string; phoneNumber: string; - //상품명 필요 + goodsName: string; moid: string; } export interface PaymentInfo { + processStatus?: string; + requestDate?: string; + email?: string; + phoneNumber?: string; + goodsName?: string; + moid?: string; buyerName?: string; sendMethod?: string; sendDate?: string; @@ -208,7 +213,7 @@ export enum LinkPaymentSendingStatus { SEND_CANCEL = "SEND_CANCEL" } -export interface LinkPaymentShippingListItem { +export interface LinkPaymentHistoryListItem { tid?: string; // TODO : buyerName 필요 paymentDate?: string; @@ -228,7 +233,7 @@ export interface LinkPaymentWaitListItem { amount?: number; } -export interface LinkPaymentShippingListProps { +export interface LinkPaymentHistoryListProps { additionalServiceCategory: AdditionalServiceCategory; listItems: Record>; } @@ -238,7 +243,7 @@ export interface LinkPaymentWaitListProps { listItems: Record>; } -export interface LinkPaymentShippingHistoryFilterProps extends FilterProps { +export interface LinkPaymentHistoryFilterProps extends FilterProps { mid: string; searchType: LinkPaymentSearchType; searchKeyword: string; @@ -329,11 +334,9 @@ export interface SettlementAgencyBottomAgreeProps { // 공통 리스트 관련 타입들 // ======================================== -export interface ListItemProps extends -KeyInPaymentListItem, AccountHolderSearchListItem, -LinkPaymentShippingListItem, LinkPaymentWaitListItem, -PayoutContent -{ +export interface ListItemProps extends + KeyInPaymentListItem, AccountHolderSearchListItem, + LinkPaymentHistoryListItem, LinkPaymentWaitListItem { additionalServiceCategory?: AdditionalServiceCategory; mid?: string } @@ -375,6 +378,21 @@ export interface ExtensionLinkPayHistoryListResponse extends DefaulResponsePagin content: Array } +export interface ExtensionLinkPayHistoryDownloadExcelParams extends ExtensionRequestParams { + searchCl: string; + searchValue: string; + paymentMethod: string; + fromDate: string; + toDate: string; + paymentStatus: string; + sendStatus: string; + sendMethod: string; +} + +export interface ExtensionLinkPayHistoryDownloadExcelRespone { + status: boolean; +} + export interface ExtensionLinkPayHistoryDetailParams extends ExtensionRequestParams { tid: string; } @@ -405,6 +423,7 @@ export interface ExtensionLinkPayHistoryResendResponse { status: boolean } + export interface ExtensionLinkPayWaitListParams extends ExtensionRequestParams { searchCl: string; searchValue: string; @@ -420,6 +439,20 @@ export interface ExtensionLinkPayWaitListResponse extends DefaulResponsePaginati content: Array } +export interface ExtensionLinkPayWaitDownloadExcelParams extends ExtensionRequestParams { + searchCl: string; + searchValue: string; + fromDate: string; + toDate: string; + sendStatus: string; + sendMethod: string; + processStatus: string; +} + +export interface ExtensionLinkPayWaitDownloadExcelRespone { + status: boolean; +} + export interface ExtensionLinkPayWaitDetailParams extends ExtensionRequestParams { tid: string; } @@ -440,6 +473,14 @@ export interface ExtensionLinkPayWaitDetailResponse { moid: string; } +export interface ExtensionLinkPayWaitDeleteParams extends ExtensionRequestParams { + tid: string; +} + +export interface ExtensionLinkPayWaitDeleteRespone { + status: boolean +} + // 계좌 성명 조회 확장 서비스 // ======================================== export interface ExtensionAccountHolderSearchListParams extends ExtensionRequestParams { // Request diff --git a/src/entities/additional-service/ui/info-wrap/detail-info-wrap.tsx b/src/entities/additional-service/ui/info-wrap/detail-info-wrap.tsx index 3a0d6a2..37aa24a 100644 --- a/src/entities/additional-service/ui/info-wrap/detail-info-wrap.tsx +++ b/src/entities/additional-service/ui/info-wrap/detail-info-wrap.tsx @@ -16,7 +16,7 @@ export const DetailInfoWrap = ({
상세 정보
    - {(additionalServiceCategory === AdditionalServiceCategory.LinkPaymentShipping) && + {(additionalServiceCategory === AdditionalServiceCategory.LinkPaymentHistory) && <> < li className="kv-row"> 이메일 @@ -28,7 +28,7 @@ export const DetailInfoWrap = ({
  • 상품명 - 상품명 respone 추가 필요 + {detailInfo?.goodsName && detailInfo?.goodsName}
  • 주문번호 diff --git a/src/entities/additional-service/ui/info-wrap/payment-info-wrap.tsx b/src/entities/additional-service/ui/info-wrap/payment-info-wrap.tsx index 4f8e19d..e412f31 100644 --- a/src/entities/additional-service/ui/info-wrap/payment-info-wrap.tsx +++ b/src/entities/additional-service/ui/info-wrap/payment-info-wrap.tsx @@ -8,9 +8,6 @@ export const PaymentInfoWrap = ({ paymentInfo }: DetailInfoSectionProps) => { - const checkValue = (val: any) => { - return (!!val || val === 0); - }; console.log("PaymentInfo Check: ", paymentInfo) return ( @@ -18,7 +15,7 @@ export const PaymentInfoWrap = ({
    결제 정보
      - {(additionalServiceCategory === AdditionalServiceCategory.LinkPaymentShipping) && + {(additionalServiceCategory === AdditionalServiceCategory.LinkPaymentHistory) && <>
    • 구매자명 @@ -38,12 +35,6 @@ export const PaymentInfoWrap = ({ 결제상태(실패횟수) {`${getPaymentStatusText(paymentInfo?.paymentStatus)}(${paymentInfo?.failCount})`}
    • - {checkValue(paymentInfo?.failCount) && ( -
    • - 실패횟수 - {paymentInfo?.failCount}회 -
    • - )}
    • 결제수단 {paymentInfo?.paymentMethod} @@ -51,7 +42,7 @@ export const PaymentInfoWrap = ({
    • 결제일자 - {paymentInfo?.paymentDate && paymentInfo.paymentDate} + {paymentInfo?.paymentDate && moment(paymentInfo.paymentDate,'YYYYMMDDHHmmss').format('YYYY.MM.DD')}
    • @@ -61,6 +52,55 @@ export const PaymentInfoWrap = ({
    • + }{(additionalServiceCategory === AdditionalServiceCategory.LinkPaymentPending) && + <> +
    • + 진행상태 + {paymentInfo?.processStatus} +
    • +
    • + 요청일자 + {paymentInfo?.requestDate && moment(paymentInfo.requestDate,'YYYYMMDDHHmmss').format('YYYY.MM.DD')} +
    • +
    • + 결제유효일자 + + {paymentInfo?.paymentLimitDate && moment(paymentInfo.paymentLimitDate).format('YYYY.MM.DD')} + +
    • +
    • + 발송수단 + {paymentInfo?.sendMethod} +
    • +
    • + 구매자명 + {paymentInfo?.buyerName} +
    • +
    • + 이메일 + + {paymentInfo?.email && paymentInfo.email} + +
    • +
    • + 휴대폰번호 + + {paymentInfo?.phoneNumber && paymentInfo.phoneNumber} + +
    • +
    • + 상품명 + + {paymentInfo?.goodsName && paymentInfo.goodsName} + +
    • +
    • + 주문번호 + + {paymentInfo?.moid && paymentInfo?.moid} + +
    • + }
    diff --git a/src/entities/additional-service/ui/info-wrap/title-info-wrap.tsx b/src/entities/additional-service/ui/info-wrap/title-info-wrap.tsx index a268a1b..8fb7dbe 100644 --- a/src/entities/additional-service/ui/info-wrap/title-info-wrap.tsx +++ b/src/entities/additional-service/ui/info-wrap/title-info-wrap.tsx @@ -36,7 +36,7 @@ export const TitleInfoWrap = ({
    {titleInfo?.requestDate}
    )} - {additionalServiceCategory === AdditionalServiceCategory.LinkPaymentShipping && ( + {additionalServiceCategory === AdditionalServiceCategory.LinkPaymentHistory && ( <>
    @@ -44,16 +44,30 @@ export const TitleInfoWrap = ({ value={titleInfo?.amount} thousandSeparator displayType="text" - suffix={ '원' } + suffix={'원'} >
    {titleInfo?.corpName}
    -
    {titleInfo?.requestDate}
    +
    {titleInfo?.sendDate}
    )} {additionalServiceCategory === AdditionalServiceCategory.LinkPaymentPending && ( <> + <> +
    + + + +
    +
    {titleInfo?.corpName}
    +
    {titleInfo?.scheduledSendDate}
    + )} 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-history-filter.tsx similarity index 98% rename from src/entities/additional-service/ui/link-payment/filter/link-payment-shipping-history-filter.tsx rename to src/entities/additional-service/ui/link-payment/filter/link-payment-history-filter.tsx index 32629fe..43145e1 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-history-filter.tsx @@ -6,7 +6,7 @@ import { ChangeEvent, useState } from 'react'; import { LinkPaymentSearchType, LinkPaymentSendMethod, - LinkPaymentShippingHistoryFilterProps, + LinkPaymentHistoryFilterProps, LinkPaymentTransactionStatus, ProcessResult } from "../../../model/types"; @@ -16,7 +16,7 @@ import { FilterDateOptions } from '@/entities/common/model/types'; import { FilterCalendar } from '@/shared/ui/filter/calendar'; import { FilterButtonGroups } from '@/shared/ui/filter/button-groups'; -export const LinkPaymentShippingHistoryFilter = ({ +export const LinkPaymentHistoryFilter = ({ filterOn, setFilterOn, mid, @@ -35,7 +35,7 @@ export const LinkPaymentShippingHistoryFilter = ({ setTransactionStatus, setProcessResult, setSendMethod -}: LinkPaymentShippingHistoryFilterProps) => { +}: LinkPaymentHistoryFilterProps) => { const [filterMid, setFilterMid] = useState(mid); diff --git a/src/entities/additional-service/ui/link-payment/link-payment-shipping-history-list.tsx b/src/entities/additional-service/ui/link-payment/link-payment-history-list.tsx similarity index 77% rename from src/entities/additional-service/ui/link-payment/link-payment-shipping-history-list.tsx rename to src/entities/additional-service/ui/link-payment/link-payment-history-list.tsx index 93f120a..7a0c430 100644 --- a/src/entities/additional-service/ui/link-payment/link-payment-shipping-history-list.tsx +++ b/src/entities/additional-service/ui/link-payment/link-payment-history-list.tsx @@ -1,10 +1,10 @@ -import { LinkPaymentShippingListProps } from '../../model/types'; +import { LinkPaymentHistoryListProps } from '../../model/types'; import { ListDateGroup } from '../list-date-group'; -export const LinkPaymentShippingHistoryList = ({ +export const LinkPaymentHistoryList = ({ additionalServiceCategory, listItems -}: LinkPaymentShippingListProps) => { +}: LinkPaymentHistoryListProps) => { const getListDateGroup = () => { let rs = []; 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-history-wrap.tsx similarity index 83% rename from src/entities/additional-service/ui/link-payment/link-payment-shipping-history-wrap.tsx rename to src/entities/additional-service/ui/link-payment/link-payment-history-wrap.tsx index 0ea1985..d4dea3f 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-history-wrap.tsx @@ -1,16 +1,16 @@ import moment from 'moment'; import { IMAGE_ROOT } from "@/shared/constants/common"; import { useState, useEffect } from "react"; -import { LinkPaymentShippingHistoryFilter } from "./filter/link-payment-shipping-history-filter"; +import { LinkPaymentHistoryFilter } from "./filter/link-payment-history-filter"; import { useNavigate } from '@/shared/lib/hooks/use-navigate'; import { PATHS } from "@/shared/constants/paths"; -import { LinkPaymentShippingHistoryList } from "./link-payment-shipping-history-list"; +import { LinkPaymentHistoryList } from "./link-payment-history-list"; import { SortOptionsBox } from "../sort-options-box"; -import { AdditionalServiceCategory, LinkPaymentSendMethod, LinkPaymentShippingListItem, LinkPaymentTransactionStatus, ProcessResult, SortByKeys } from "../../model/types"; +import { AdditionalServiceCategory, LinkPaymentSendMethod, LinkPaymentHistoryListItem, LinkPaymentTransactionStatus, ProcessResult, SortByKeys } from "../../model/types"; import { LinkPaymentSearchType, } from "../../model/types"; import { useExtensionLinkPayHistoryListMutation } from '../../api/link-payment/use-extension-link-pay-history-list-mutation'; import { DEFAULT_PAGE_PARAM } from '@/entities/common/model/constant'; -import { todo } from 'node:test'; +import { useExtensionLinkPayHistoryDownloadExcelMutation } from '../../api/link-payment/use-extension-link-pay-history-download-excel-mutation'; const processResultBtnGroup = [ { name: '전체', value: ProcessResult.ALL }, @@ -18,7 +18,7 @@ const processResultBtnGroup = [ { name: '실패', value: ProcessResult.FAIL } ] -export const LinkPaymentShippingHistoryWrap = () => { +export const LinkPaymentHistoryWrap = () => { const { navigate } = useNavigate(); const [filterOn, setFilterOn] = useState(false); @@ -35,7 +35,7 @@ export const LinkPaymentShippingHistoryWrap = () => { const [sendMethod, setSendMethod] = useState(LinkPaymentSendMethod.ALL) const { mutateAsync: linkPayHistoryList } = useExtensionLinkPayHistoryListMutation(); - + const { mutateAsync: downloadExcel } = useExtensionLinkPayHistoryDownloadExcelMutation(); const onClickToNavigate = () => { navigate(PATHS.additionalService.linkPayment.request) @@ -66,7 +66,7 @@ export const LinkPaymentShippingHistoryWrap = () => { }) }; - const assembleData = (content: Array) => { + const assembleData = (content: Array) => { let data: any = {}; if (content && content.length > 0) { for (let i = 0; i < content?.length; i++) { @@ -85,8 +85,20 @@ export const LinkPaymentShippingHistoryWrap = () => { }; const onClickToDownloadExcel = () => { - - } + downloadExcel({ + mid: mid, + searchCl: searchType === LinkPaymentSearchType.ALL ? '' : searchType, + searchValue: searchKeyword, + paymentMethod: 'st', // 추후 변경 필요 빼야함 + fromDate: startDate, + toDate: endDate, + paymentStatus: transactionStatus === LinkPaymentTransactionStatus.ALL ? '' : transactionStatus, + sendStatus: processResult === ProcessResult.ALL ? '' : processResult, + sendMethod: sendMethod === LinkPaymentSendMethod.ALL ? '' : sendMethod, + }).then((rs) => { + console.log('Excel Dowload Status : ' + rs.status) + }); + }; const onClickProcessResult = (val: ProcessResult) => { setProcessResult(val); @@ -159,17 +171,17 @@ export const LinkPaymentShippingHistoryWrap = () => {
- + additionalServiceCategory={AdditionalServiceCategory.LinkPaymentHistory} + >
- { setTransactionStatus={setTransactionStatus} setProcessResult={setProcessResult} setSendMethod={setSendMethod} - > + > ) } \ No newline at end of file diff --git a/src/entities/additional-service/ui/link-payment/link-payment-wait-send-wrap.tsx b/src/entities/additional-service/ui/link-payment/link-payment-wait-send-wrap.tsx index a55d256..d3903d7 100644 --- a/src/entities/additional-service/ui/link-payment/link-payment-wait-send-wrap.tsx +++ b/src/entities/additional-service/ui/link-payment/link-payment-wait-send-wrap.tsx @@ -9,6 +9,7 @@ import { AdditionalServiceCategory, LinkPaymentWaitListItem, LinkPaymentSearchTy import { SortOptionsBox } from '../sort-options-box'; import { useExtensionLinkPayWaitListMutation } from '../../api/link-payment/use-extension-link-pay-wait-list-mutation'; import { DEFAULT_PAGE_PARAM } from '@/entities/common/model/constant'; +import { useExtensionLinkPayWaitDownloadExcelMutation } from '../../api/link-payment/use-extension-link-pay-wait-download-excel-mutation'; const sendingStatusBtnGrouup = [ { name: '전체', value: LinkPaymentSendingStatus.ALL }, { name: '발송요청', value: LinkPaymentSendingStatus.SEND_REQUEST }, @@ -31,6 +32,7 @@ export const LinkPaymentWaitSendWrap = () => { const [pageParam, setPageParam] = useState(DEFAULT_PAGE_PARAM); const { mutateAsync: pendingSendList } = useExtensionLinkPayWaitListMutation(); + const { mutateAsync: downloadExcel } = useExtensionLinkPayWaitDownloadExcelMutation(); const onClickToOpenFilter = () => { setFilterOn(!filterOn); @@ -82,7 +84,18 @@ export const LinkPaymentWaitSendWrap = () => { }; const onClickToDownloadExcel = () => { - + downloadExcel({ + mid: mid, + searchCl: searchType === LinkPaymentSearchType.ALL ? '' : searchType, + searchValue: searchKeyword, + fromDate: startDate, + toDate: endDate, + sendStatus: sendingStatus === LinkPaymentSendingStatus.ALL ? '' : sendingStatus, // 추후 삭제 필요 + sendMethod: sendMethod === LinkPaymentSendMethod.ALL ? '' : sendMethod, + processStatus: sendingStatus === LinkPaymentSendingStatus.ALL ? '' : sendingStatus, + }).then((rs) => { + console.log('Excel Dowload Status : ' + rs.status) + }); }; const onClickToSort = (sort: SortByKeys) => { diff --git a/src/entities/additional-service/ui/list-item.tsx b/src/entities/additional-service/ui/list-item.tsx index 1fdeccd..085aca1 100644 --- a/src/entities/additional-service/ui/list-item.tsx +++ b/src/entities/additional-service/ui/list-item.tsx @@ -59,7 +59,7 @@ export const ListItem = ({ rs = 'gray'; } } - else if (additionalServiceCategory === AdditionalServiceCategory.LinkPaymentShipping) { + else if (additionalServiceCategory === AdditionalServiceCategory.LinkPaymentHistory) { if (paymentStatus === "PAYMENT_COMPLETE") { rs = 'blue'; } @@ -101,7 +101,7 @@ export const ListItem = ({ } }); } - else if (additionalServiceCategory === AdditionalServiceCategory.LinkPaymentShipping) { + else if (additionalServiceCategory === AdditionalServiceCategory.LinkPaymentHistory) { navigate(PATHS.additionalService.linkPayment.detail, { state: { additionalServiceCategory: additionalServiceCategory, @@ -163,7 +163,7 @@ export const ListItem = ({ else if (additionalServiceCategory === AdditionalServiceCategory.AccountHolderSearch) { str = `${accountNo}` } - else if (additionalServiceCategory === AdditionalServiceCategory.LinkPaymentShipping || + else if (additionalServiceCategory === AdditionalServiceCategory.LinkPaymentHistory || additionalServiceCategory === AdditionalServiceCategory.LinkPaymentPending ) { if (sendMethod === "SMS") { @@ -199,7 +199,7 @@ export const ListItem = ({ ); } - else if (additionalServiceCategory === AdditionalServiceCategory.LinkPaymentShipping) { + else if (additionalServiceCategory === AdditionalServiceCategory.LinkPaymentHistory) { if (paymentStatus === "PAYMENT_FAIL" || paymentStatus === "INACTIVE") { rs.push(
@@ -262,7 +262,7 @@ export const ListItem = ({
); } - else if (additionalServiceCategory === AdditionalServiceCategory.LinkPaymentShipping || + else if (additionalServiceCategory === AdditionalServiceCategory.LinkPaymentHistory || additionalServiceCategory === AdditionalServiceCategory.LinkPaymentPending ) { rs.push( diff --git a/src/pages/additional-service/additional-service-pages.tsx b/src/pages/additional-service/additional-service-pages.tsx index 020dd14..cf4ceb0 100644 --- a/src/pages/additional-service/additional-service-pages.tsx +++ b/src/pages/additional-service/additional-service-pages.tsx @@ -9,7 +9,7 @@ import { KeyInPaymentPage } from './key-in-payment/key-in-payment-page'; import { SmsPaymentNotificationPage } from './sms-payment-notification/sms-payment-notification-page'; import { AccountHolderSearchPage } from './account-holder-search/account-holder-search-page'; import { AccountHolderAuthPage } from './account-holder-auth/account-holder-auth-page'; -import { LinkPaymentShippingHistoryPage } from './link-payment/link-payment-shipping-history-page'; +import { LinkPaymentHistoryPage } from './link-payment/link-payment-history-page'; import { LinkPaymentWaitSendPage } from './link-payment/link-payment-wait-send-page'; import { KakaoPaymentNotificationListPage } from './kakao-payment-notification/list-page'; import { KakaoPaymentNotificationSettingPage } from './kakao-payment-notification/setting-page'; @@ -58,7 +58,7 @@ export const AdditionalServicePages = () => { } /> - } /> + } /> } /> } /> } /> diff --git a/src/pages/additional-service/key-in-payment/key-in-payment-page.tsx b/src/pages/additional-service/key-in-payment/key-in-payment-page.tsx index 4fe7024..23549ff 100644 --- a/src/pages/additional-service/key-in-payment/key-in-payment-page.tsx +++ b/src/pages/additional-service/key-in-payment/key-in-payment-page.tsx @@ -119,8 +119,8 @@ export const KeyInPaymentPage = () => { fromDate: startDate, toDate: endDate, paymentStatus: transactionStatus, - minAmount: minAmount, - maxAmount: maxAmount + minAmount: newMinAmount, + maxAmount: newMaxAmount }).then((rs) => { }); diff --git a/src/pages/additional-service/link-payment/link-payment-detail-page.tsx b/src/pages/additional-service/link-payment/link-payment-detail-page.tsx index 13eaa68..096aac8 100644 --- a/src/pages/additional-service/link-payment/link-payment-detail-page.tsx +++ b/src/pages/additional-service/link-payment/link-payment-detail-page.tsx @@ -2,21 +2,17 @@ import { useEffect, useState } from 'react'; import { PATHS } from '@/shared/constants/paths'; import { useLocation } from 'react-router'; import { useNavigate } from '@/shared/lib/hooks/use-navigate'; -import { DetailPaymentInfoSection } from '@/entities/additional-service/ui/link-payment/detail/detail-payment-info-section'; import { HeaderType } from '@/entities/common/model/types'; -import { IMAGE_ROOT } from '@/shared/constants/common'; import { useSetOnBack, useSetHeaderTitle, useSetHeaderType, useSetFooterMode } from '@/widgets/sub-layout/use-sub-layout'; -import { DetailDeetsInfoSection } from '@/entities/additional-service/ui/link-payment/detail/detail-deets-Info-section'; import { overlay } from 'overlay-kit'; import { Dialog } from '@/shared/ui/dialogs/dialog'; -import { extensionLinkPayHistoryDetail, useExtensionLinkPayHistoryDetailMutation } from '@/entities/additional-service/api/link-payment/use-extension-link-pay-history-detail-mutation'; +import { useExtensionLinkPayHistoryDetailMutation } from '@/entities/additional-service/api/link-payment/use-extension-link-pay-history-detail-mutation'; import { AdditionalServiceCategory, DetailInfo, DetailResponse, ExtensionLinkPayHistoryDetailParams, ExtensionLinkPayHistoryResendParams, PaymentInfo, TitleInfo } from '@/entities/additional-service/model/types'; -import { resourceLimits } from 'worker_threads'; import { TitleInfoWrap } from '@/entities/additional-service/ui/info-wrap/title-info-wrap'; import { PaymentInfoWrap } from '@/entities/additional-service/ui/info-wrap/payment-info-wrap'; import { DetailInfoWrap } from '@/entities/additional-service/ui/info-wrap/detail-info-wrap'; @@ -28,17 +24,11 @@ export const LinkPaymentDetailPage = () => { const { mid, tid } = location.state || {}; - const [transactionId, setTransactionId] = useState(location?.state?.transactionId || ''); - const [titleInfo, setTitleInfo] = useState(); const [detailInfo, setDetailInfo] = useState(); const [paymentInfo, setPaymentInfo] = useState(); - - const [deetsInfo, setDeetsInfo] = useState(); - const [showPayment, setShowPayment] = useState(false); - const [showDeets, setShowDeets] = useState(false); useSetHeaderTitle('링크결제 상세'); useSetHeaderType(HeaderType.RightClose); @@ -116,19 +106,19 @@ export const LinkPaymentDetailPage = () => {
diff --git a/src/pages/additional-service/link-payment/link-payment-shipping-history-page.tsx b/src/pages/additional-service/link-payment/link-payment-history-page.tsx similarity index 81% rename from src/pages/additional-service/link-payment/link-payment-shipping-history-page.tsx rename to src/pages/additional-service/link-payment/link-payment-history-page.tsx index 57b79be..e53617d 100644 --- a/src/pages/additional-service/link-payment/link-payment-shipping-history-page.tsx +++ b/src/pages/additional-service/link-payment/link-payment-history-page.tsx @@ -5,7 +5,7 @@ import { IMAGE_ROOT } from '@/shared/constants/common'; import { HeaderType } from '@/entities/common/model/types'; import { LinkPaymentTab } from '@/entities/additional-service/ui/link-payment/link-payment-tab'; import { LinkPaymentTabKeys } from '@/entities/additional-service/model/types'; -import { LinkPaymentShippingHistoryWrap } from '../../../entities/additional-service/ui/link-payment/link-payment-shipping-history-wrap'; +import { LinkPaymentHistoryWrap } from '../../../entities/additional-service/ui/link-payment/link-payment-history-wrap'; import { useSetHeaderTitle, useSetHeaderType, @@ -17,7 +17,7 @@ import { * 발송내역 탭 화면 */ -export const LinkPaymentShippingHistoryPage = () => { +export const LinkPaymentHistoryPage = () => { const { navigate } = useNavigate(); const [activeTab, setActiveTab] = useState(LinkPaymentTabKeys.ShippingHistory) @@ -35,7 +35,7 @@ export const LinkPaymentShippingHistoryPage = () => {
- +
diff --git a/src/pages/additional-service/link-payment/link-payment-wait-detail-page.tsx b/src/pages/additional-service/link-payment/link-payment-wait-detail-page.tsx index 243497a..11fa9a8 100644 --- a/src/pages/additional-service/link-payment/link-payment-wait-detail-page.tsx +++ b/src/pages/additional-service/link-payment/link-payment-wait-detail-page.tsx @@ -2,31 +2,27 @@ import { useEffect, useState } from 'react'; import { PATHS } from '@/shared/constants/paths'; import { useLocation } from 'react-router'; import { useNavigate } from '@/shared/lib/hooks/use-navigate'; -import { DetailPaymentInfoSection } from '@/entities/additional-service/ui/link-payment/detail/detail-payment-info-section'; import { HeaderType } from '@/entities/common/model/types'; -import { IMAGE_ROOT } from '@/shared/constants/common'; import { useSetOnBack, useSetHeaderTitle, useSetHeaderType, useSetFooterMode } from '@/widgets/sub-layout/use-sub-layout'; -import { DetailDeetsInfoSection } from '@/entities/additional-service/ui/link-payment/detail/detail-deets-Info-section'; import { overlay } from 'overlay-kit'; import { Dialog } from '@/shared/ui/dialogs/dialog'; import { TitleInfoWrap } from '@/entities/additional-service/ui/info-wrap/title-info-wrap'; -import { AdditionalServiceCategory, TitleInfo } from '@/entities/additional-service/model/types'; +import { AdditionalServiceCategory, DetailResponse, ExtensionLinkPayWaitDeleteParams, ExtensionLinkPayWaitDetailParams, PaymentInfo, TitleInfo } from '@/entities/additional-service/model/types'; +import { useExtensionLinkPayWaitDetailMutation, } from '@/entities/additional-service/api/link-payment/use-extension-link-pay-wait-detail-mutation'; +import { PaymentInfoWrap } from '@/entities/additional-service/ui/info-wrap/payment-info-wrap'; +import { useExtensionLinkPayWaitDeleteMutation } from '@/entities/additional-service/api/link-payment/use-extension-link-pay-wait-delete-mutation'; export const LinkPaymentWaitDetailPage = () => { const { navigate } = useNavigate(); const location = useLocation(); - - const [transactionId, setTransactionId] = useState(location?.state?.transactionId || ''); - + const { mid, tid } = location.state || {}; const [titleInfo, setTitleInfo] = useState(); - const [paymentInfo, setPaymentInfo] = useState(); - - const [showPayment, setShowPayment] = useState(false); + const [paymentInfo, setPaymentInfo] = useState(); useSetHeaderTitle('링크결제 상세_발송대기'); useSetHeaderType(HeaderType.RightClose); @@ -35,6 +31,38 @@ export const LinkPaymentWaitDetailPage = () => { }); useSetFooterMode(false); + const { mutateAsync: linkPayWaitDetail } = useExtensionLinkPayWaitDetailMutation(); + const { mutateAsync: linkPayWaitDelete } = useExtensionLinkPayWaitDeleteMutation(); + const callDetail = () => { + let detailParam: ExtensionLinkPayWaitDetailParams = { + mid: mid, + tid: tid + } + + linkPayWaitDetail(detailParam).then((rs: DetailResponse) => { + console.log("Detail Info: ", rs) + setTitleInfo(rs.titleInfo) + setPaymentInfo(rs.paymentInfo) + }) + + } + + const deletePayment = () => { + let deleteParam: ExtensionLinkPayWaitDeleteParams = { + mid: mid, + tid: tid + } + linkPayWaitDelete(deleteParam) + .then((response) => { + console.log("Delete 성공 응답: ", response) + onClickToNavigate(PATHS.additionalService.linkPayment.pendingSend) + }) + .catch((error) => { + console.error("Resend 실패: ", error); + + }); + } + const onClickToNavigate = (path: string) => { let timeout = setTimeout(() => { clearTimeout(timeout); @@ -43,10 +71,6 @@ export const LinkPaymentWaitDetailPage = () => { }, 10) }; - const onClickToShowInfo = () => { - setShowPayment(!showPayment); - }; - const onClickToCancel = () => { let msg = '삭제 하시겠습니까?'; @@ -60,7 +84,7 @@ export const LinkPaymentWaitDetailPage = () => { afterLeave={unmount} open={isOpen} onClose={close} - onConfirmClick={() => onClickToNavigate(PATHS.additionalService.linkPayment.pendingSend)} + onConfirmClick={() => deletePayment()} message={msg} buttonLabel={['취소', '확인']} /> @@ -68,46 +92,35 @@ export const LinkPaymentWaitDetailPage = () => { }); }; + useEffect(() => { + callDetail(); + }, []); + return ( <> -
+
-
-
- +
+ -
-
-
3,500,000
-
-
- 나이스테스트가맹점 -
-
- 2025.06.09 -
-
+
-
- - -
-
-
- +
+
+ +
diff --git a/src/shared/api/api-url-additional-service.ts b/src/shared/api/api-url-additional-service.ts index ca0af34..58bf113 100644 --- a/src/shared/api/api-url-additional-service.ts +++ b/src/shared/api/api-url-additional-service.ts @@ -1,4 +1,4 @@ -import { +import { API_BASE_URL, API_URL_KEY, } from './../constants/url'; @@ -21,19 +21,34 @@ export const API_URL_ADDITIONAL_SERVICE = { // POST: 링크결제 - 발송내역 리스트 조회 return `${API_BASE_URL}/api/v1/${API_URL_KEY}/extension/linkpay/history/list`; }, + extensionLinkPaymentHistoryDownloadExcel: () => { + // POST: 링크결제 - 발송내역 엑셀 다운 + return `${API_BASE_URL}/api/v1/${API_URL_KEY}/extension/linkpay/history/excel`; + }, extensionLinkPaymentHistoryDetail: () => { + // POST: 링크결제 - 발송내역 상세 조회 return `${API_BASE_URL}/api/v1/${API_URL_KEY}/extension/linkpay/history/detail`; }, extensionLinkPaymentHistoryResend: () => { + // POST: 링크결제 - 발송내역 상세 > 재발송 return `${API_BASE_URL}/api/v1/${API_URL_KEY}/extension/linkpay/resend`; }, extensionLinkPaymentWaitList: () => { // POST: 링크결제 - 발송대기 리스트 조회 return `${API_BASE_URL}/api/v1/${API_URL_KEY}/extension/linkpay/wait/list`; }, + extensionLinkPaymentWaitDownloadExcel: () => { + // POST: 링크결제 - 발송내역 엑셀 다운 + return `${API_BASE_URL}/api/v1/${API_URL_KEY}/extension/linkpay/wait/excel`; + }, extensionLinkPaymentWaitDetail: () => { + // POST: 링크결제 - 발송대기 상세 내역 조회 return `${API_BASE_URL}/api/v1/${API_URL_KEY}/extension/linkpay/wait/detail`; }, + extensionLinkPayMentWaitDelete: () => { + // POST: 링크결제 - 발송대기 삭제 + return `${API_BASE_URL}/api/v1/${API_URL_KEY}/extension/linkpay/wait/delete`; + }, extensionSmsResend: () => { // POST: SMS 결제 통보 > SMS 재발송 return `${API_BASE_URL}/api/v1/${API_URL_KEY}/extension/sms/resend`;