This commit is contained in:
focp212@naver.com
2025-10-16 18:10:11 +09:00
parent fd502d71b2
commit f4e2fe4769
14 changed files with 421 additions and 138 deletions

View File

@@ -1,53 +1,104 @@
import moment from 'moment';
import { NumericFormat } from 'react-number-format';
import { InfoSectionProps, TransactionCategory } from '../../model/types';
import { useStore } from '@/shared/model/store';
import { AllTracsactionStatusCode } from '../../model/contant';
export const ImportantInfoSection = ({
transactionCategory,
importantInfo,
serviceCode
}: InfoSectionProps) => {
}: InfoSectionProps) => {
let serviceCodes = useStore.getState().CommonStore.serviceCodes;
let serviceName = '';
let statusName = '';
const getServiceName = (serviceCode: string) => {
let serviceName = '';
for(let i=0;i<serviceCodes.length;i++){
if(serviceCodes[i].value === serviceCode){
serviceName = serviceCodes[i].name;
break;
}
}
return serviceName;
};
const getStatusName = (serviceCode: string, statusCode: string) => {
let str;
if(transactionCategory === TransactionCategory.AllTransaction){
Loop1:
for(let i=0;i<AllTracsactionStatusCode.length;i++){
if(serviceCode === AllTracsactionStatusCode[i]?.serviceCode){
let list = AllTracsactionStatusCode[i]?.list;
if(!!list){
Loop2:
for(let j=0;j<list.length;j++){
if(list[j]?.code === statusCode){
str = list[j]?.ko;
break Loop1;
}
}
}
}
}
}
return str || '';
};
if(serviceCode){
serviceName = getServiceName(serviceCode);
if(importantInfo){
importantInfo.serviceName = serviceName;
}
}
if(serviceCode && importantInfo?.transactionStatus){
statusName = getStatusName(serviceCode, importantInfo.transactionStatus);
if(importantInfo){
importantInfo.statusName = statusName;
}
}
const subItems: Record<string, Record<string, string>> = {
ordNo: {name: '주문번호', type: 'string'},
moid: {name: '주문번호', type: 'string'},
tid: {name: 'TID', type: 'string'},
tradeStatus: {name: '거래상태', type: 'string'},
tradeMethod: {name: '거래수단', type: 'string'},
statusName: {name: '거래상태', type: 'string'},
serviceName: {name: '거래수단', type: 'string'},
approvalDate: {name: '승인일', type: 'date'},
tradeDate: {name: '거래일', type: 'date'},
transactionDate: {name: '거래일', type: 'date'},
requestDate: {name: '요청일', type: 'date'},
cancelDate: {name: '취소일', type: 'date'},
productName: {name: '상품명', type: 'string'}
goodsName: {name: '상품명', type: 'string'}
};
const openSubItems: Record<string, Array<string>> = {
// 신용카드
'01': ['ordNo', 'tid', 'tradeStatus', 'tradeMethod',
'approvalDate', 'cancelDate', 'productName'],
'01': ['moid', 'tid', 'statusName', 'serviceName',
'approvalDate', 'cancelDate', 'goodsName'],
// 계좌이체
'02': ['ordNo', 'tid', 'tradeStatus', 'tradeMethod',
'tradeDate', 'cancelDate', 'productName'],
'02': ['moid', 'tid', 'statusName', 'serviceName',
'transactionDate', 'cancelDate', 'goodsName'],
// 가상계좌
'03': ['ordNo', 'tid', 'tradeStatus', 'tradeMethod',
'requestDate', 'cancelDate', 'productName'],
'03': ['moid', 'tid', 'statusName', 'serviceName',
'requestDate', 'cancelDate', 'goodsName'],
// 휴대폰
'04': ['ordNo', 'tid', 'tradeStatus', 'tradeMethod',
'tradeDate', 'cancelDate', 'productName'],
// 계좌간편결제
'26': ['ordNo', 'tid', 'tradeStatus', 'tradeMethod',
'tradeDate', 'cancelDate', 'productName'],
// SSG머니
'21': ['ordNo', 'tid', 'tradeStatus', 'tradeMethod',
'tradeDate', 'cancelDate', 'productName'],
// SSG은행계좌
'24': ['ordNo', 'tid', 'tradeStatus', 'tradeMethod',
'tradeDate', 'cancelDate', 'productName'],
'05': ['moid', 'tid', 'statusName', 'serviceName',
'transactionDate', 'cancelDate', 'goodsName'],
// 문화상품권
'14': ['ordNo', 'tid', 'tradeStatus', 'tradeMethod',
'tradeDate', 'cancelDate', 'productName'],
'14': ['moid', 'tid', 'statusName', 'serviceName',
'transactionDate', 'cancelDate', 'goodsName'],
// SSG머니
'21': ['moid', 'tid', 'statusName', 'serviceName',
'transactionDate', 'cancelDate', 'goodsName'],
// SSG은행계좌
'24': ['moid', 'tid', 'statusName', 'serviceName',
'transactionDate', 'cancelDate', 'goodsName'],
// 계좌간편결제
'26': ['moid', 'tid', 'statusName', 'serviceName',
'transactionDate', 'cancelDate', 'goodsName'],
// 티머니페이
'31': ['ordNo', 'tid', 'tradeStatus', 'tradeMethod',
'tradeDate', 'cancelDate', 'productName'],
'31': ['moid', 'tid', 'statusName', 'serviceName',
'transactionDate', 'cancelDate', 'goodsName'],
};
const checkValue = (val: any) => {
@@ -56,7 +107,7 @@ export const ImportantInfoSection = ({
let newImportantInfo: Record<string, any> | undefined = importantInfo;
const subLi = () => {
let rs = [];
if(!!newImportantInfo && !!serviceCode && !!openSubItems[serviceCode]){
for(let i=0;i<openSubItems[serviceCode].length;i++){
let k = openSubItems[serviceCode][i];
@@ -100,7 +151,9 @@ export const ImportantInfoSection = ({
{ (transactionCategory === TransactionCategory.AllTransaction) &&
subLi()
}
{ (transactionCategory === TransactionCategory.Escrow) &&
{
/*
(transactionCategory === TransactionCategory.Escrow) &&
<>
<li className="kv-row">
<span className="k">주문번호</span>
@@ -120,17 +173,18 @@ export const ImportantInfoSection = ({
</li>
<li className="kv-row">
<span className="k">승인일</span>
<span className="v">{ moment(importantInfo?.approvalDateTime).format('YYYY.MM.DD HH:mm:ss') }</span>
<span className="v">{ moment(importantInfo?.approvalDate).format('YYYY.MM.DD') }</span>
</li>
<li className="kv-row">
<span className="k">취소일</span>
<span className="v">{ importantInfo?.cancelDate }</span>
<span className="v">{ moment(importantInfo?.cancelDate).format('YYYY.MM.DD') }</span>
</li>
<li className="kv-row">
<span className="k">상품명</span>
<span className="v">{ importantInfo?.productName }</span>
<span className="v">{ importantInfo?.goodsName }</span>
</li>
</>
*/
}
</ul>

View File

@@ -14,40 +14,40 @@ export const SettlementInfoSection = ({
}: InfoSectionProps) => {
const subItems: Record<string, Record<string, string>> = {
approvalSettleDate: {name: '승인정산일', type: 'date'},
approvalSettleAmount: {name: '승인정산금액', type: 'number'},
cancelSettleDate: {name: '취소정산일', type: 'date'},
cancelSettleAmount: {name: '취소정산금액', type: 'number'},
approvalSettlementDate: {name: '승인정산일', type: 'date'},
approvalSettlementAmount: {name: '승인정산금액', type: 'number'},
cancelSettlementDate: {name: '취소정산일', type: 'date'},
cancelSettlementAmount: {name: '취소정산금액', type: 'number'},
};
const openSubItems: Record<string, Array<string>> = {
// 신용카드
'01': ['approvalSettleDate', 'approvalSettleAmount',
'cancelSettleDate', 'cancelSettleAmount'],
'01': ['approvalSettlementDate', 'approvalSettlementAmount',
'cancelSettlementDate', 'cancelSettlementAmount'],
// 계좌이체
'02': ['approvalSettleDate', 'approvalSettleAmount',
'cancelSettleDate', 'cancelSettleAmount'],
'02': ['approvalSettlementDate', 'approvalSettlementAmount',
'cancelSettlementDate', 'cancelSettlementAmount'],
// 가상계좌
'03': ['approvalSettleDate', 'approvalSettleAmount',
'cancelSettleDate', 'cancelSettleAmount'],
'03': ['approvalSettlementDate', 'approvalSettlementAmount',
'cancelSettlementDate', 'cancelSettlementAmount'],
// 휴대폰
'04': ['approvalSettleDate', 'approvalSettleAmount',
'cancelSettleDate', 'cancelSettleAmount'],
// 계좌간편결제
'26': ['approvalSettleDate', 'approvalSettleAmount',
'cancelSettleDate', 'cancelSettleAmount'],
// SSG머니
'21': ['approvalSettleDate', 'approvalSettleAmount',
'cancelSettleDate', 'cancelSettleAmount'],
// SSG은행계좌
'24': ['approvalSettleDate', 'approvalSettleAmount',
'cancelSettleDate', 'cancelSettleAmount'],
'05': ['approvalSettlementDate', 'approvalSettlementAmount',
'cancelSettlementDate', 'cancelSettlementAmount'],
// 문화상품권
'14': ['approvalSettleDate', 'approvalSettleAmount',
'cancelSettleDate', 'cancelSettleAmount'],
'14': ['approvalSettlementDate', 'approvalSettlementAmount',
'cancelSettlementDate', 'cancelSettlementAmount'],
// SSG머니
'21': ['approvalSettlementDate', 'approvalSettlementAmount',
'cancelSettlementDate', 'cancelSettlementAmount'],
// SSG은행계좌
'24': ['approvalSettlementDate', 'approvalSettlementAmount',
'cancelSettlementDate', 'cancelSettlementAmount'],
// 계좌간편결제
'26': ['approvalSettlementDate', 'approvalSettlementAmount',
'cancelSettlementDate', 'cancelSettlementAmount'],
// 티머니페이
'31': ['approvalSettleDate', 'approvalSettleAmount',
'cancelSettleDate', 'cancelSettleAmount'],
'31': ['approvalSettlementDate', 'approvalSettlementAmount',
'cancelSettlementDate', 'cancelSettlementAmount'],
};
const checkValue = (val: any) => {