From b72d68ede6023e8a8b7737fa9000e58f1da7deff Mon Sep 17 00:00:00 2001 From: HyeonJongKim Date: Tue, 11 Nov 2025 18:14:03 +0900 Subject: [PATCH] =?UTF-8?q?-=20=EC=A7=80=EA=B8=89=EB=8C=80=ED=96=89=20?= =?UTF-8?q?=EC=9E=85=EA=B8=88=ED=99=95=EC=9D=B8=EC=84=9C=20=EB=8B=A4?= =?UTF-8?q?=EC=9A=B4=EB=A1=9C=EB=93=9C=20=ED=99=9C=EC=84=B1=ED=99=94=20?= =?UTF-8?q?=EC=A1=B0=EA=B1=B4=20=EC=88=98=EC=A0=95=20-=20=EC=9D=BC?= =?UTF-8?q?=EB=B6=80=20=ED=99=95=EC=9D=B8=20=EC=8A=A4=EB=82=B5=EB=B0=94=20?= =?UTF-8?q?=EB=AC=B8=EC=9E=90=EC=97=B4=20=EB=8B=A4=EA=B5=AD=EC=96=B4?= =?UTF-8?q?=ED=99=94=20=EC=A0=81=EC=9A=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../additional-service/model/payout/types.ts | 11 ++++- .../additional-service/model/types.ts | 1 + .../additional-service/ui/list-date-group.tsx | 1 + .../additional-service/ui/list-item.tsx | 6 ++- .../ui/payout/detail/payout-detail.tsx | 43 +++++++++++++------ .../common/ui/deposit-receipt-sample.tsx | 2 +- src/locales/en.json | 3 +- src/locales/ko.json | 3 +- .../account-holder-search-page.tsx | 13 +++--- .../account-holder-search/request-page.tsx | 30 ++++--------- .../additional-service/payout/list-page.tsx | 5 +++ 11 files changed, 69 insertions(+), 49 deletions(-) diff --git a/src/entities/additional-service/model/payout/types.ts b/src/entities/additional-service/model/payout/types.ts index 13607ee..bec8d61 100644 --- a/src/entities/additional-service/model/payout/types.ts +++ b/src/entities/additional-service/model/payout/types.ts @@ -29,6 +29,7 @@ export interface PayoutListItem { companyName?: string; status?: PayoutDisbursementStatus; amount?: number; + depositAmount?: number; }; export interface ExtensionPayoutRequestParams { @@ -93,4 +94,12 @@ export interface ExtensionPayoutDetailDownloadCertificateParams extends Extensio email: string; }; -export interface ExtensionPayoutDetailDownloadCertificateResponse { }; +export interface ExtensionPayoutDetailDownloadCertificateResponse { + depositDateTime?: string; + depositBank?: string; + depositAccount?: string; + amount?: number; + depositRemark?: string; + depositId?: string; + message?: string; +}; diff --git a/src/entities/additional-service/model/types.ts b/src/entities/additional-service/model/types.ts index 8abd012..67eeafc 100644 --- a/src/entities/additional-service/model/types.ts +++ b/src/entities/additional-service/model/types.ts @@ -154,6 +154,7 @@ export interface DetailData { requestId?: string; subReqId?: string; detailOn: boolean; + depositAmount?: number; } // ======================================== diff --git a/src/entities/additional-service/ui/list-date-group.tsx b/src/entities/additional-service/ui/list-date-group.tsx index 51a304f..59c63ce 100644 --- a/src/entities/additional-service/ui/list-date-group.tsx +++ b/src/entities/additional-service/ui/list-date-group.tsx @@ -64,6 +64,7 @@ export const ListDateGroup = ({ settlementDate={ items[i]?.settlementDate } companyName={ items[i]?. companyName } status={ items[i]?.status } + depositAmount={ items[i]?.depositAmount } orderStatus={ items[i]?.orderStatus } orderTime={ items[i]?.orderTime } diff --git a/src/entities/additional-service/ui/list-item.tsx b/src/entities/additional-service/ui/list-item.tsx index cbadc04..6a45f76 100644 --- a/src/entities/additional-service/ui/list-item.tsx +++ b/src/entities/additional-service/ui/list-item.tsx @@ -35,7 +35,8 @@ export const ListItem = ({ authResult, failReason, requestTime, resendEnabled, onResendClick, - setDetailData + setDetailData, + depositAmount }: ListItemProps) => { const { navigate } = useNavigate(); const { t, i18n } = useTranslation(); @@ -222,7 +223,8 @@ export const ListItem = ({ setDetailData({ mid: mid, tid: tid, - detailOn: true + detailOn: true, + depositAmount: depositAmount }); } } diff --git a/src/entities/additional-service/ui/payout/detail/payout-detail.tsx b/src/entities/additional-service/ui/payout/detail/payout-detail.tsx index ee6b3c2..55c7293 100644 --- a/src/entities/additional-service/ui/payout/detail/payout-detail.tsx +++ b/src/entities/additional-service/ui/payout/detail/payout-detail.tsx @@ -12,19 +12,22 @@ import { showAlert } from '@/widgets/show-alert'; import { checkGrant } from '@/shared/lib/check-grant'; import { snackBar } from '@/shared/lib'; import { DepositReceiptSample } from '@/entities/common/ui/deposit-receipt-sample'; +import { DepositInfo } from '@/entities/transaction/model/types'; export interface PayoutDetailProps { detailOn: boolean; setDetailOn: (detailOn: boolean) => void; mid: string; tid: string; + depositAmount?: number; }; export const PayoutDetail = ({ detailOn, setDetailOn, mid, - tid + tid, + depositAmount }: PayoutDetailProps) => { const { t } = useTranslation(); @@ -32,6 +35,7 @@ export const PayoutDetail = ({ const [downloadBottomSheetOn, setDownloadBottomSheetOn] = useState(false); const [depositReceiptSampleOn, setDepositReceiptSampleOn] = useState(false); + const [depositReceiptData, setDepositReceiptData] = useState(); const { mutateAsync: extensionPayoutDetail } = useExtensionPayoutDetailMutation(); const { mutateAsync: extensionPayoutDetailDownloadCertification } = useExtensionPayoutDetailDownloadCertificateMutation(); @@ -70,12 +74,13 @@ export const PayoutDetail = ({ requestType: selectedMode, email: '' }; - extensionPayoutDetailDownloadCertification(params).then((rs: ExtensionPayoutDetailDownloadCertificateResponse) => { + extensionPayoutDetailDownloadCertification(params).then((rs: any) => { console.log('Certificate Download Status:', rs); if (selectedMode === DownloadSelectedMode.IMAGE) { - setDepositReceiptSampleOn(true) + setDepositReceiptData(rs); + setDepositReceiptSampleOn(true); } else if (selectedMode === DownloadSelectedMode.EMAIL) { - snackBar('입금확인서 다운 성공') + console.log('Certificate Download Status:', rs); } }).catch((error) => { console.error('Certificate Download Failed:', error); @@ -136,16 +141,18 @@ export const PayoutDetail = ({
{detail?.companyName}
{moment(detail?.settlementDate).format('YYYY.MM.DD')}
-
- -
+ {depositAmount != null && ( +
+ +
+ )}
@@ -208,6 +215,14 @@ export const PayoutDetail = ({ } diff --git a/src/entities/common/ui/deposit-receipt-sample.tsx b/src/entities/common/ui/deposit-receipt-sample.tsx index dd661d6..b403999 100644 --- a/src/entities/common/ui/deposit-receipt-sample.tsx +++ b/src/entities/common/ui/deposit-receipt-sample.tsx @@ -95,7 +95,7 @@ export const DepositReceiptSample = ({ value={depositInfo?.amount} thousandSeparator displayType='text' - suffix='원' + suffix=' 원' >
diff --git a/src/locales/en.json b/src/locales/en.json index cdac86a..4e7199f 100644 --- a/src/locales/en.json +++ b/src/locales/en.json @@ -1020,7 +1020,8 @@ "select": "Select", "request": "Request", "searchRequest": "Search Request", - "searchRequestSuccess": "Search Reqeust Complete" + "searchRequestSuccess": "Search Reqeust Complete", + "accountNumberWrong": "Invalid account number. Please check the account number." }, "faceAuth": { "authentication": "Authentication", diff --git a/src/locales/ko.json b/src/locales/ko.json index b750781..ee20349 100644 --- a/src/locales/ko.json +++ b/src/locales/ko.json @@ -1020,7 +1020,8 @@ "select": "선택", "request": "신청", "searchRequest": "조회 신청", - "searchRequestSuccess": "조회 신청을 성공하였습니다." + "searchRequestSuccess": "조회 신청을 성공하였습니다.", + "accountNumberWrong": "잘못된 계좌번호입니다. 계좌번호를 확인해주세요." }, "faceAuth": { "authentication": "인증", 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 35d9cc4..13a4bdd 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 @@ -172,13 +172,12 @@ export const AccountHolderSearchPage = () => { bankCode: bank, resultStatus: resultStatus }).then((rs) => { - // if (rs.status) { - // setTimeout(() => { - // snackBar("다운로드가 완료되었습니다."); - // }, 2000); - // } else { - // snackBar("다운로드에 실패했습니다.") - // } + console.log('Excel Download Status:', rs.status); + }).catch((e: any) => { + if(e.response?.data?.error?.message){ + snackBar(e.response?.data?.error?.message); + return; + } }); } }; diff --git a/src/pages/additional-service/account-holder-search/request-page.tsx b/src/pages/additional-service/account-holder-search/request-page.tsx index 3f69ec6..c72dd72 100644 --- a/src/pages/additional-service/account-holder-search/request-page.tsx +++ b/src/pages/additional-service/account-holder-search/request-page.tsx @@ -20,9 +20,6 @@ import { AccountHolderSearchDetail } from '@/entities/additional-service/ui/acco export const AccountHolderSearchRequestPage = () => { const { navigate } = useNavigate(); const { t } = useTranslation(); - // const [detailOn, setDetailOn] = useState(false); - // const [detailMid, setDetailMid] = useState(''); - // const [detailTid, setDetailTid] = useState(''); const userMid = useStore.getState().UserStore.mid; const midOptionsWithoutGids = useStore.getState().UserStore.selectOptionsMidsWithoutGids; @@ -59,16 +56,6 @@ export const AccountHolderSearchRequestPage = () => { setFormData({ ...formData, [field]: value }); }; - // const setDetailData = (response: ExtensionAccountHolderSearchRequestResponse) => { - // if (formData.mid) { - // setDetailMid(formData.mid); - // } - // if (response?.data?.tid) { - // setDetailTid(response.data.tid); - // } - // setDetailOn(true); - // } - const onClickToRequest = () => { const requestParams: ExtensionAccountHolderSearchRequestParams = { mid: formData.mid, @@ -83,10 +70,15 @@ export const AccountHolderSearchRequestPage = () => { console.log("Account holder search request success: ", response.status) snackBar(t('additionalService.accountHolderSearch.searchRequestSuccess')) navigate(PATHS.additionalService.accountHolderSearch.list); - //setDetailData(response) } else { - const errorMessage = response.error?.message || t('common.requestFailed'); - snackBar(`[${t('common.failed')}] ${errorMessage}`); + console.log("AccountHolder Fail", response.error?.code) + if (response.error?.code === "007") { + const errorMessage = t('additionalService.accountHolderSEarch.accountNumberWrong') + snackBar(`[${t('common.failed')}] ${errorMessage}`) + } else { + const errorMessage = response.error?.message || t('common.requestFailed'); + snackBar(`[${t('common.failed')}] ${errorMessage}`); + } } }) .catch((e) => { @@ -180,12 +172,6 @@ export const AccountHolderSearchRequestPage = () => { - {/* */} ) } \ No newline at end of file diff --git a/src/pages/additional-service/payout/list-page.tsx b/src/pages/additional-service/payout/list-page.tsx index 9b245ce..46c2e21 100644 --- a/src/pages/additional-service/payout/list-page.tsx +++ b/src/pages/additional-service/payout/list-page.tsx @@ -65,6 +65,7 @@ export const PayoutListPage = () => { const [detailOn, setDetailOn] = useState(false); const [detailMid, setDetailMid] = useState(''); const [detailTid, setDetailTid] = useState(''); + const [detailDepositAmount, setDetailDepositAmount] = useState(); const { mutateAsync: extensionPayoutList } = useExtensionPayoutListMutation(); const { mutateAsync: extensionPayoutExcel } = useExtensionPayoutExcelMutation(); @@ -196,6 +197,9 @@ export const PayoutListPage = () => { if (detailData.tid) { setDetailTid(detailData.tid); } + if (detailData.depositAmount !== undefined) { + setDetailDepositAmount(detailData.depositAmount); + } }; const onClickToOpenFilter = () => { @@ -378,6 +382,7 @@ export const PayoutListPage = () => { setDetailOn={setDetailOn} mid={detailMid} tid={detailTid} + depositAmount={detailDepositAmount} > { !!downloadBottomSheetOn &&