This commit is contained in:
Jay Sheen
2025-11-03 16:12:17 +09:00
12 changed files with 99 additions and 18 deletions

View File

@@ -113,6 +113,7 @@ export interface ExtensionAlimtalkDownloadExcelParams {
toDate?: string;
sendType?: AlimtalkSendType;
sendCl?: AlimTalkSendCl;
email?: string;
};
export interface ExtensionAlimtalkDownloadExcelResponse {

View File

@@ -25,6 +25,16 @@ export interface ExtensionArsResendParams {
};
export interface ExtensionArsResendResponse {
status: boolean;
error?: {
root?: string;
errKey?: string;
code?: string;
message?: string;
timestamp?: string;
details?: {
path?: string;
};
};
};
export interface ExtensionArsListParams {
mid?: string;
@@ -54,6 +64,7 @@ export interface ExtensionArsListResponse extends DefaulResponsePagination {
export interface ExtensionArsDownloadExcelParams {
mid?: string;
moid?: string;
email?: string;
fromDate?: string;
toDate?: string;
paymentStatus?: PaymentStatus;
@@ -61,7 +72,7 @@ export interface ExtensionArsDownloadExcelParams {
minAmount?: number;
maxAmount?: number;
};
export interface ExtensionArsDownloadExcelResponse {};
export interface ExtensionArsDownloadExcelResponse { };
export interface ExtensionArsDetailParams {
mid: string;
tid: string;

View File

@@ -83,6 +83,7 @@ export interface ExtensionKeyinDownloadExcelParams extends ExtensionRequestParam
fromDate?: string;
toDate?: string;
paymentStatus?: string;
email?: string
minAmount?: number;
maxAmount?: number;
}

View File

@@ -132,7 +132,7 @@ export interface ExtensionSmsDownloadExcelParams extends ExtensionRequestParams
fromDate: string;
toDate: string;
smsCl: string;
email: string;
}
export interface ExtensionSmsDownloadExcelResponse {

View File

@@ -38,6 +38,18 @@ export const ListItem = ({
});
};
const getDotClass = () => {
let rs = 'gray';
if(periodType === SettlementPeriodType.SETTLEMENT_DATE && settlementAmount){
if(settlementAmount > 0) rs = 'blue';
}
else if(periodType === SettlementPeriodType.TRANSACTION_DATE && transactionAmount){
if(transactionAmount > 0) rs = 'blue';
}
return rs;
};
return (
<>
<div
@@ -45,7 +57,7 @@ export const ListItem = ({
onClick={ () => onClickToNavigate() }
>
<div className="transaction-status">
<div className={ `status-dot blue`}></div>
<div className={ `status-dot ${getDotClass()}`}></div>
</div>
<div className="transaction-content">
{ (periodType === SettlementPeriodType.SETTLEMENT_DATE) &&

View File

@@ -1,7 +1,7 @@
import { NumericFormat } from 'react-number-format';
import { PATHS } from '@/shared/constants/paths';
import { useNavigate } from '@/shared/lib/hooks/use-navigate';
import { ListItemProps, TransactionCategory } from '../model/types';
import { BillingRequestStatus, CashReceiptTransactionType, EscrowDeliveryStatus, ListItemProps, TransactionCategory } from '../model/types';
import moment from 'moment';
import { useStore } from '@/shared/model/store';
import { getAllTransactionStatusCode, getPaymentMethodName } from '../model/contant';
@@ -16,7 +16,7 @@ export const ListItem = ({
paymentMethod, processResult, transactionType,
transactionDateTime, transactionAmount,
deliveryStatus, settlementStatus,
cancelStatus, billKey, orderNumber
cancelStatus, billKey, orderNumber, requestStatus
}: ListItemProps) => {
const { navigate } = useNavigate();
const { t } = useTranslation();
@@ -34,17 +34,55 @@ export const ListItem = ({
return rs;
};
const getDotClass = (str?: string) => {
const getDotClass = () => {
let rs = '';
if(statusCode === '0'){
rs = '';
if(transactionCategory === TransactionCategory.AllTransaction){
if(statusCode === '0'
|| statusCode === '4'
){
rs = 'blue';
}
else if(statusCode === '1'
|| statusCode === '2'
|| statusCode === '3'
){
rs = 'gray';
}
}
else if(statusCode === '1'){
rs = 'blue';
else if(transactionCategory === TransactionCategory.CashReceipt){
if(transactionType === CashReceiptTransactionType.APPROVAL){
rs = 'blue';
}
else if(transactionType === CashReceiptTransactionType.CANCEL){
rs = 'gray';
}
}
else if(statusCode === '2'){
rs = 'gray';
else if(transactionCategory === TransactionCategory.Escrow){
if(deliveryStatus === EscrowDeliveryStatus.DELIVERY_INSERT
|| deliveryStatus === EscrowDeliveryStatus.DELIVERY_COMPLETE
|| deliveryStatus === EscrowDeliveryStatus.PURCHASE_CONFIRM
){
rs = 'blue';
}
else if(deliveryStatus === EscrowDeliveryStatus.PAY_COMPLETE
|| deliveryStatus === EscrowDeliveryStatus.PURCHASE_REJECT
|| deliveryStatus === EscrowDeliveryStatus.RETURN_PROCESSING
|| EscrowDeliveryStatus.DEPOSIT_COMPLETE
){
rs = 'gray';
}
}
else if(transactionCategory === TransactionCategory.Billing){
if(requestStatus === BillingRequestStatus.SUCCESS){
rs = 'blue';
}
else if(requestStatus === BillingRequestStatus.IN_PROGRESS
|| requestStatus === BillingRequestStatus.REQUEST_CANCEL
){
rs = 'gray';
}
}
return rs;
};

View File

@@ -150,7 +150,7 @@ export const AlimtalkListPage = () => {
toDate: toDate,
sendType: sendType,
sendCl: sendCl,
//email: selectedEmail
email: selectedEmail
};
extensionAlimtalkDownloadExcel(params).then((rs: ExtensionAlimtalkDownloadExcelResponse) => {
console.log('Excel Download Status:', rs.status);

View File

@@ -24,6 +24,7 @@ import moment from 'moment';
import { ArsResendSmsBottomSheet } from '@/entities/additional-service/ui/ars/resend-sms-bottom-sheet';
import { useExtensionArsResendMutation } from '@/entities/additional-service/api/ars/use-extension-ars-resend-mutation';
import { getArsOrderStatusName, getArsPaymentStatusName } from '@/entities/additional-service/model/ars/constant';
import { snackBar } from '@/shared/lib';
export const ArsDetailPage = () => {
const { t, i18n } = useTranslation();
@@ -74,7 +75,19 @@ export const ArsDetailPage = () => {
tid: tid
}
extensionArsResend(params).then((rs: ExtensionArsResendResponse) => {
console.log(rs);
if (rs.status) {
snackBar("SMS 재전송을 성공하였습니다.");
setBottomSheetOn(false);
callDetail(); // 상세 정보 갱신
} else {
const errorMessage = rs.error?.message || 'SMS 재전송이 실패하였습니다.';
snackBar(`[실패] ${errorMessage}`);
}
}).catch((error) => {
const errorMessage = error?.response?.data?.error?.message ||
error?.message ||
'SMS 재전송 중 오류가 발생했습니다.';
snackBar(`[실패] ${errorMessage}`);
});
};

View File

@@ -144,7 +144,7 @@ export const ArsListPage = () => {
orderStatus: orderStatus,
minAmount: minAmount,
maxAmount: maxAmount,
//email: selectedEmail
email: selectedEmail
};
extensionArsDownloadExcel(params).then((rs: ExtensionArsDownloadExcelResponse) => {
console.log('Excel Download Status:', rs);

View File

@@ -146,7 +146,7 @@ export const KeyInPaymentPage = () => {
paymentStatus: transactionType,
minAmount: minAmount,
maxAmount: maxAmount,
//email: selectedEmail
email: selectedEmail
}).then((rs) => {
console.log('Excel Download Status:', rs.status);
});

View File

@@ -81,6 +81,10 @@ export const KeyInPaymentRequestPage = () => {
};
keyInApply(keyInApplyParams).then((rs) => {
console.log('KEY-IN 결제 응답:', rs);
console.log('rs.data:', rs.data);
console.log('rs.data?.resultMessage:', rs.data?.resultMessage);
if (rs.status && rs.data?.success) {
// 성공: 화면 유지 & 입력 내용 초기화
snackBar("KEY-IN 결제 신청을 성공하였습니다.")
@@ -90,6 +94,7 @@ export const KeyInPaymentRequestPage = () => {
const errorMessage = rs.data?.resultMessage ||
rs.error?.message ||
'결제 신청에 실패했습니다.';
console.log('최종 errorMessage:', errorMessage);
// HTML 태그 제거
const cleanMessage = errorMessage.replace(/<br\s*\/?>/gi, ' ').trim();
snackBar(`[실패] ${cleanMessage}`);

View File

@@ -149,7 +149,7 @@ export const SmsPaymentPage = () => {
fromDate: fromDate,
toDate: toDate,
smsCl: smsCl,
//email: selectedEmail
email: selectedEmail
}).then((rs) => {
console.log('Excel Download Status:', rs.status);
});