- 링크결제 누락된 결제수단 필터 및 리스트 누락항목 추가

This commit is contained in:
HyeonJongKim
2025-11-21 13:53:58 +09:00
parent 4caaaae054
commit 8f873c3f74
7 changed files with 93 additions and 15 deletions

View File

@@ -1,8 +1,40 @@
import { TFunction } from 'i18next'; import { TFunction } from 'i18next';
import { LinkPaymentProcessStatus } from "./types"; import { LinkPaymentPaymentMethod, LinkPaymentProcessStatus } from "./types";
export const getProcessStatusBtnGroup = (t: TFunction) => [ export const getProcessStatusBtnGroup = (t: TFunction) => [
{ name: t('transaction.constants.all'), value: LinkPaymentProcessStatus.ALL }, { name: t('transaction.constants.all'), value: LinkPaymentProcessStatus.ALL },
{ name: t('additionalService.linkPay.sendRequest'), value: LinkPaymentProcessStatus.SEND_REQUEST }, { name: t('additionalService.linkPay.sendRequest'), value: LinkPaymentProcessStatus.SEND_REQUEST },
{ name: t('additionalService.linkPay.sendCancel'), value: LinkPaymentProcessStatus.SEND_CANCEL } { name: t('additionalService.linkPay.sendCancel'), value: LinkPaymentProcessStatus.SEND_CANCEL }
] ]
export const getPaymentMethodOptionGroup = (t: TFunction) => [
{ name: t('additionalService.linkPayment.paymentMethod.all'), value: '' },
{ name: t('additionalService.linkPayment.paymentMethod.card'), value: LinkPaymentPaymentMethod.CARD},
{ name: t('additionalService.linkPayment.paymentMethod.bank'), value: LinkPaymentPaymentMethod.BANK},
{ name: t('additionalService.linkPayment.paymentMethod.virtualAccount'), value: LinkPaymentPaymentMethod.VIRTURE_BANK},
{ name: t('additionalService.linkPayment.paymentMethod.phone'), value: LinkPaymentPaymentMethod.PHONE},
{ name: t('additionalService.linkPayment.paymentMethod.cultureland'), value: LinkPaymentPaymentMethod.CULTURELAND},
{ name: t('additionalService.linkPayment.paymentMethod.ssgMoney'), value: LinkPaymentPaymentMethod.SSG_MONEY},
{ name: t('additionalService.linkPayment.paymentMethod.ssgBank'), value: LinkPaymentPaymentMethod.SSG_BANK},
{ name: t('additionalService.linkPayment.paymentMethod.cmsBank'), value: LinkPaymentPaymentMethod.CMS_BANK}, //계좌간편결제
{ name: t('additionalService.linkPayment.paymentMethod.tmoneyPay'), value: LinkPaymentPaymentMethod.TMONEY_PAY},
]
export const getPaymentMethodText = (t: TFunction) => (status?: string): string => {
if (!status) return '';
const paymentMethodMap: Record<LinkPaymentPaymentMethod, string> = {
[LinkPaymentPaymentMethod.ALL]: t('additionalService.linkPayment.paymentMethod.all'),
[LinkPaymentPaymentMethod.CARD]: t('additionalService.linkPayment.paymentMethod.card'),
[LinkPaymentPaymentMethod.BANK]: t('additionalService.linkPayment.paymentMethod.bank'),
[LinkPaymentPaymentMethod.VIRTURE_BANK]: t('additionalService.linkPayment.paymentMethod.virtualAccount'),
[LinkPaymentPaymentMethod.PHONE]: t('additionalService.linkPayment.paymentMethod.phone'),
[LinkPaymentPaymentMethod.CULTURELAND]: t('additionalService.linkPayment.paymentMethod.cultureland'),
[LinkPaymentPaymentMethod.SSG_MONEY]: t('additionalService.linkPayment.paymentMethod.ssgMoney'),
[LinkPaymentPaymentMethod.SSG_BANK]: t('additionalService.linkPayment.paymentMethod.ssgBank'),
[LinkPaymentPaymentMethod.CMS_BANK]: t('additionalService.linkPayment.paymentMethod.cmsBank'),
[LinkPaymentPaymentMethod.TMONEY_PAY]: t('additionalService.linkPayment.paymentMethod.tmoneyPay')
}
return paymentMethodMap[status as LinkPaymentPaymentMethod] || status;
}

View File

@@ -20,6 +20,7 @@ export enum LinkPaymentSearchCl {
} }
export enum LinkPaymentPaymentMethod { export enum LinkPaymentPaymentMethod {
ALL = "",
CARD = "CARD", CARD = "CARD",
BANK = "BANK", BANK = "BANK",
VIRTURE_BANK = "VIRTURE_BANK", VIRTURE_BANK = "VIRTURE_BANK",
@@ -124,6 +125,7 @@ export interface LinkPaymentHistoryFilterProps extends FilterProps {
mid: string; mid: string;
searchCl: LinkPaymentSearchCl; searchCl: LinkPaymentSearchCl;
searchValue: string; searchValue: string;
paymentMethod: LinkPaymentPaymentMethod;
fromDate: string; fromDate: string;
toDate: string; toDate: string;
paymentStatus: LinkPaymentPaymentStatus; paymentStatus: LinkPaymentPaymentStatus;
@@ -132,6 +134,7 @@ export interface LinkPaymentHistoryFilterProps extends FilterProps {
setMid: (mid: string) => void; setMid: (mid: string) => void;
setSearchType: (searchType: LinkPaymentSearchCl) => void; setSearchType: (searchType: LinkPaymentSearchCl) => void;
setSearchKeyword: (searchKeyWorld: string) => void; setSearchKeyword: (searchKeyWorld: string) => void;
setPaymentMethod: (paymentMethod: LinkPaymentPaymentMethod) => void;
setStartDate: (startDate: string) => void; setStartDate: (startDate: string) => void;
setEndDate: (endDate: string) => void; setEndDate: (endDate: string) => void;
setPaymentStatus: (transactionStatus: LinkPaymentPaymentStatus) => void; setPaymentStatus: (transactionStatus: LinkPaymentPaymentStatus) => void;
@@ -161,6 +164,7 @@ export interface LinkPaymentWaitFilterProps extends FilterProps {
export interface ExtensionLinkPayHistoryListParams extends ExtensionRequestParams { export interface ExtensionLinkPayHistoryListParams extends ExtensionRequestParams {
searchCl: string; searchCl: string;
searchValue: string; searchValue: string;
paymentMethod: LinkPaymentPaymentMethod;
fromDate: string; fromDate: string;
toDate: string; toDate: string;
paymentStatus: LinkPaymentPaymentStatus; paymentStatus: LinkPaymentPaymentStatus;

View File

@@ -13,11 +13,12 @@ import { FilterCalendar } from '@/shared/ui/filter/calendar';
import { FilterButtonGroups } from '@/shared/ui/filter/button-groups'; import { FilterButtonGroups } from '@/shared/ui/filter/button-groups';
import { FilterMotionDuration, FilterMotionStyle, FilterMotionVariants } from '@/entities/common/model/constant'; import { FilterMotionDuration, FilterMotionStyle, FilterMotionVariants } from '@/entities/common/model/constant';
import { useStore } from '@/shared/model/store'; import { useStore } from '@/shared/model/store';
import { LinkPaymentHistoryFilterProps, LinkPaymentPaymentStatus, LinkPaymentSearchCl, LinkPaymentSendMethod, LinkPaymentSendStatus } from '@/entities/additional-service/model/link-pay/types'; import { LinkPaymentHistoryFilterProps, LinkPaymentPaymentMethod, LinkPaymentPaymentStatus, LinkPaymentSearchCl, LinkPaymentSendMethod, LinkPaymentSendStatus } from '@/entities/additional-service/model/link-pay/types';
import { FilterSelectMid } from '@/shared/ui/filter/select-mid'; import { FilterSelectMid } from '@/shared/ui/filter/select-mid';
import { useTranslation } from 'react-i18next'; import { useTranslation } from 'react-i18next';
import { FullMenuClose } from '@/entities/common/ui/full-menu-close'; import { FullMenuClose } from '@/entities/common/ui/full-menu-close';
import { useKeyboardAware } from '@/shared/lib/hooks'; import { useKeyboardAware } from '@/shared/lib/hooks';
import { getPaymentMethodOptionGroup } from '@/entities/additional-service/model/link-pay/constant';
export const LinkPaymentHistoryFilter = ({ export const LinkPaymentHistoryFilter = ({
filterOn, filterOn,
@@ -25,6 +26,7 @@ export const LinkPaymentHistoryFilter = ({
mid, mid,
searchCl, searchCl,
searchValue, searchValue,
paymentMethod,
fromDate, fromDate,
toDate, toDate,
paymentStatus, paymentStatus,
@@ -33,6 +35,7 @@ export const LinkPaymentHistoryFilter = ({
setMid, setMid,
setSearchType, setSearchType,
setSearchKeyword, setSearchKeyword,
setPaymentMethod,
setStartDate, setStartDate,
setEndDate, setEndDate,
setPaymentStatus, setPaymentStatus,
@@ -44,6 +47,7 @@ export const LinkPaymentHistoryFilter = ({
const [filterMid, setFilterMid] = useState<string>(mid); const [filterMid, setFilterMid] = useState<string>(mid);
const [filterSearchCl, setFilterSearchCl] = useState<LinkPaymentSearchCl>(searchCl); const [filterSearchCl, setFilterSearchCl] = useState<LinkPaymentSearchCl>(searchCl);
const [filterSearchValue, setFilterSearchValue] = useState<string>(searchValue); const [filterSearchValue, setFilterSearchValue] = useState<string>(searchValue);
const [filterPaymentMethod, setFilterPaymentMethod] = useState<LinkPaymentPaymentMethod>(paymentMethod);
const [filterStartDate, setFilterStartDate] = useState<string>(fromDate); const [filterStartDate, setFilterStartDate] = useState<string>(fromDate);
const [filterEndDate, setFilterEndDate] = useState<string>(toDate); const [filterEndDate, setFilterEndDate] = useState<string>(toDate);
const [filterTransactionStatus, setFilterTransactionStatus] = useState<LinkPaymentPaymentStatus>(paymentStatus) const [filterTransactionStatus, setFilterTransactionStatus] = useState<LinkPaymentPaymentStatus>(paymentStatus)
@@ -85,6 +89,7 @@ export const LinkPaymentHistoryFilter = ({
setMid(filterMid); setMid(filterMid);
setSearchType(filterSearchCl); setSearchType(filterSearchCl);
setSearchKeyword(filterSearchValue); setSearchKeyword(filterSearchValue);
setPaymentMethod(filterPaymentMethod);
setStartDate(filterStartDate); setStartDate(filterStartDate);
setEndDate(filterEndDate); setEndDate(filterEndDate);
setPaymentStatus(filterTransactionStatus); setPaymentStatus(filterTransactionStatus);
@@ -112,7 +117,7 @@ export const LinkPaymentHistoryFilter = ({
<div className="full-menu-actions"> <div className="full-menu-actions">
<FullMenuClose <FullMenuClose
addClass='full-menu-close' addClass='full-menu-close'
onClickToCallback={ onClickToClose } onClickToCallback={onClickToClose}
></FullMenuClose> ></FullMenuClose>
</div> </div>
</div> </div>
@@ -131,8 +136,14 @@ export const LinkPaymentHistoryFilter = ({
selectOptions={searchTypeOption} selectOptions={searchTypeOption}
inputValue={filterSearchValue} inputValue={filterSearchValue}
inputSetter={setFilterSearchValue} inputSetter={setFilterSearchValue}
handleInputFocus={ handleInputFocus } handleInputFocus={handleInputFocus}
></FilterSelectInput> ></FilterSelectInput>
<FilterSelect
title={t('filter.paymentMethod')}
selectValue={filterPaymentMethod}
selectSetter={setFilterPaymentMethod}
selectOptions={getPaymentMethodOptionGroup(t)}
></FilterSelect>
<FilterCalendar <FilterCalendar
startDate={filterStartDate} startDate={filterStartDate}
endDate={filterEndDate} endDate={filterEndDate}

View File

@@ -35,7 +35,7 @@ const defaultParams = {
toDate: moment().format('YYYYMMDD'), toDate: moment().format('YYYYMMDD'),
searchCl: LinkPaymentSearchCl.PHONE, searchCl: LinkPaymentSearchCl.PHONE,
searchValue: '', searchValue: '',
paymentMethod: LinkPaymentPaymentMethod.CARD, paymentMethod: LinkPaymentPaymentMethod.ALL,
paymentStatus: LinkPaymentPaymentStatus.ALL, paymentStatus: LinkPaymentPaymentStatus.ALL,
sendStatus: LinkPaymentSendStatus.ALL, sendStatus: LinkPaymentSendStatus.ALL,
sendMethod: LinkPaymentSendMethod.ALL sendMethod: LinkPaymentSendMethod.ALL
@@ -109,6 +109,7 @@ export const LinkPaymentHistoryWrap = () => {
mid: mid, mid: mid,
searchCl: searchCl, searchCl: searchCl,
searchValue: searchValue, searchValue: searchValue,
paymentMethod: paymentMethod,
fromDate: fromDate, fromDate: fromDate,
toDate: toDate, toDate: toDate,
paymentStatus: paymentStatus, paymentStatus: paymentStatus,
@@ -333,6 +334,7 @@ export const LinkPaymentHistoryWrap = () => {
mid={mid} mid={mid}
searchCl={searchCl} searchCl={searchCl}
searchValue={searchValue} searchValue={searchValue}
paymentMethod={paymentMethod}
fromDate={fromDate} fromDate={fromDate}
toDate={toDate} toDate={toDate}
paymentStatus={paymentStatus} paymentStatus={paymentStatus}
@@ -341,6 +343,7 @@ export const LinkPaymentHistoryWrap = () => {
setMid={setMid} setMid={setMid}
setSearchType={setSearchCl} setSearchType={setSearchCl}
setSearchKeyword={setSearchValue} setSearchKeyword={setSearchValue}
setPaymentMethod={setPaymentMethod}
setStartDate={setFromDate} setStartDate={setFromDate}
setEndDate={setToDate} setEndDate={setToDate}
setPaymentStatus={setPaymentStatus} setPaymentStatus={setPaymentStatus}

View File

@@ -14,6 +14,7 @@ import { ServiceCode } from '../model/alimtalk/types';
import { getAlimtalkAlimClText, getAlimtalkSendClTypeText, getAlimtalkSendTypeText, getAlimtalkServiceCodeText } from '../model/alimtalk/constant'; import { getAlimtalkAlimClText, getAlimtalkSendClTypeText, getAlimtalkSendTypeText, getAlimtalkServiceCodeText } from '../model/alimtalk/constant';
import { getAuthResultStatusText, getTransTypeText } from '../model/face-auth/constant'; import { getAuthResultStatusText, getTransTypeText } from '../model/face-auth/constant';
import { getPayoutStatusText } from '../model/payout/constant'; import { getPayoutStatusText } from '../model/payout/constant';
import { getPaymentMethodText } from '../model/link-pay/constant';
export const ListItem = ({ export const ListItem = ({
additionalServiceCategory, additionalServiceCategory,
@@ -376,9 +377,9 @@ export const ListItem = ({
} }
else if (additionalServiceCategory === AdditionalServiceCategory.LinkPaymentHistory else if (additionalServiceCategory === AdditionalServiceCategory.LinkPaymentHistory
) { ) {
str = `${getMaskedName(buyerName)}`; str = receiverInfo ? `${getMaskedName(buyerName)}(${receiverInfo})` : `${getMaskedName(buyerName)}`;
} else if (additionalServiceCategory === AdditionalServiceCategory.LinkPaymentWait) { } else if (additionalServiceCategory === AdditionalServiceCategory.LinkPaymentWait) {
str = `${getMaskedName(buyerName)}(${receiverInfo})`; str = receiverInfo ? `${getMaskedName(buyerName)}(${receiverInfo})` : `${getMaskedName(buyerName)}`;
} }
else if (additionalServiceCategory === AdditionalServiceCategory.Payout) { else if (additionalServiceCategory === AdditionalServiceCategory.Payout) {
str = companyName; str = companyName;
@@ -452,7 +453,7 @@ export const ListItem = ({
); );
} }
else if (additionalServiceCategory === AdditionalServiceCategory.LinkPaymentHistory) { else if (additionalServiceCategory === AdditionalServiceCategory.LinkPaymentHistory) {
if (paymentStatus === "0" || paymentStatus === "3" || paymentStatus === "4") { if (paymentStatus === "2" || paymentStatus === "4") {
rs.push( rs.push(
<div key="link-payment-history" className="transaction-details"> <div key="link-payment-history" className="transaction-details">
<span>{getPaymentStatusText(t)(paymentStatus)}</span> <span>{getPaymentStatusText(t)(paymentStatus)}</span>
@@ -466,8 +467,12 @@ export const ListItem = ({
<span>{getPaymentStatusText(t)(paymentStatus)}</span> <span>{getPaymentStatusText(t)(paymentStatus)}</span>
<span className="separator">|</span> <span className="separator">|</span>
<span>{getSendMethodText(t)(sendMethod)}</span> <span>{getSendMethodText(t)(sendMethod)}</span>
{paymentMethod && (
<>
<span className="separator">|</span> <span className="separator">|</span>
<span>{paymentMethod}</span> <span>{getPaymentMethodText(t)(paymentMethod)}</span>
</>
)}
</div> </div>
); );
} }

View File

@@ -1291,7 +1291,18 @@
"apply": "Apply", "apply": "Apply",
"sendRequest": "Send Request", "sendRequest": "Send Request",
"sendCancel": "Send Cancel", "sendCancel": "Send Cancel",
"progressStatus": "Progress Status" "progressStatus": "Progress Status",
"paymentMethod": {
"card": "Credit Card",
"bank": "Bank Transfer",
"virtualAccount": "Virtual Account",
"phone": "Mobile Phone",
"cultureland": "Cultureland",
"ssgMoney": "SSG Money",
"ssgBank": "SSG Bank",
"cmsBank": "Easy Account Payment",
"tmoneyPay": "T-money Pay"
}
}, },
"infoWrap": { "infoWrap": {
"paymentInfo": "Payment Information", "paymentInfo": "Payment Information",

View File

@@ -1286,13 +1286,25 @@
"kakao": "카카오", "kakao": "카카오",
"merchant": "가맹점", "merchant": "가맹점",
"phoneNumberEmail": "휴대폰번호/이메일", "phoneNumberEmail": "휴대폰번호/이메일",
"transactionStatus": "거래 상태", "transactionStatus": "결제 상태",
"sendResult": "발송 결과", "sendResult": "전송결과",
"sendMethod": "발송수단", "sendMethod": "발송수단",
"apply": "적용", "apply": "적용",
"sendRequest": "발송요청", "sendRequest": "발송요청",
"sendCancel": "발송취소", "sendCancel": "발송취소",
"progressStatus": "진행상태" "progressStatus": "진행상태",
"paymentMethod": {
"all": "전체",
"card": "신용카드",
"bank": "계좌이체",
"virtualAccount": "가상계좌",
"phone": "휴대폰",
"cultureland": "문화상품권",
"ssgMoney": "SSG머니",
"ssgBank": "SSG뱅크",
"cmsBank": "계좌간편결제",
"tmoneyPay": "티머니페이"
}
}, },
"infoWrap": { "infoWrap": {
"paymentInfo": "결제 정보", "paymentInfo": "결제 정보",