엑셀 다운로드 관련 수정

This commit is contained in:
focp212@naver.com
2025-11-07 13:24:57 +09:00
parent 7b7c9246bf
commit 92d01ec66c
15 changed files with 62 additions and 63 deletions

View File

@@ -16,7 +16,7 @@ import { ListSummaryExtendTransaction } from './list-summary-extend-transaction'
import SlideDown from 'react-slidedown';
import 'react-slidedown/lib/slidedown.css';
import { ListFilter } from './filter/list-filter';
import { useDownloadExcelMutation } from '@/entities/transaction/api/use-download-excel-mutation';
import {
SettlementPeriodType,
SettlementPaymentMethod,
@@ -90,8 +90,7 @@ export const ListWrap = ({
const { mutateAsync: settlementsHistorySummary} = useSettlementsHistorySummaryMutation();
const { mutateAsync: settlementsTransactionList } = useSettlementsTransactionListMutation();
const { mutateAsync: settlementsTransactionSummary } = useSettlementsTransactionSummaryMutation();
const { mutateAsync: downloadExcel } = useDownloadExcelMutation();
const callList = (type?: string) => {
setOnActionIntersect(false);
if(periodType === SettlementPeriodType.SETTLEMENT_DATE){

View File

@@ -23,7 +23,7 @@ export const allTransactionCancelInfo = (params: AllTransactionCancelInfoParams)
}
};
return resultify(
axios.post<AllTransactionCancelInfoResponse>(API_URL_TRANSACTION.allTransactionCancelInfo(), params, options),
axios.post<AllTransactionCancelInfoResponse>(API_URL_TRANSACTION.transactionCancelInfo(), params, options),
);
};

View File

@@ -23,7 +23,7 @@ export const allTransactionCancel = (params: AllTransactionCancelParams) => {
}
};
return resultify(
axios.post<AllTransactionCancelResponse>(API_URL_TRANSACTION.allTransactionCancel(), params, options),
axios.post<AllTransactionCancelResponse>(API_URL_TRANSACTION.transactionCancel(), params, options),
);
};

View File

@@ -23,7 +23,7 @@ export const allTransactionDetail = (params: AllTransactionDetailParams) => {
}
};
return resultify(
axios.post<DetailResponse>(API_URL_TRANSACTION.allTransactionDetail(), params, options),
axios.post<DetailResponse>(API_URL_TRANSACTION.transactionDetail(), params, options),
);
};

View File

@@ -23,7 +23,7 @@ export const allTransactionList = (params: AllTransactionListParams) => {
}
};
return resultify(
axios.post<AllTransactionListResponse>(API_URL_TRANSACTION.allTransactionList(), params, options),
axios.post<AllTransactionListResponse>(API_URL_TRANSACTION.transactionList(), params, options),
);
};

View File

@@ -23,7 +23,7 @@ export const allTransactionListSummary = (params: AllTransactionListSummaryParam
}
};
return resultify(
axios.post<AllTransactionListSummaryResponse>(API_URL_TRANSACTION.allTransactionListSummary(), params, options),
axios.post<AllTransactionListSummaryResponse>(API_URL_TRANSACTION.transactionListSummary(), params, options),
);
};

View File

@@ -23,7 +23,7 @@ export const downloadConfirmation = (params: DownloadConfirmationParams) => {
}
};
return resultify(
axios.post<DownloadConfirmationResponse>(API_URL_TRANSACTION.downloadConfirmation(), params, options),
axios.post<DownloadConfirmationResponse>(API_URL_TRANSACTION.transactionDownloadConfirmation(), params, options),
);
};

View File

@@ -1,39 +0,0 @@
import axios from 'axios';
import { API_URL_TRANSACTION } from '@/shared/api/api-url-transaction';
import { resultify } from '@/shared/lib/resultify';
import { NiceAxiosError } from '@/shared/@types/error';
import {
DownloadExcelParams,
DownloadExcelResponse
} from '../model/types';
import {
useMutation,
UseMutationOptions
} from '@tanstack/react-query';
import { getHeaderUserAgent } from '@/shared/constants/url';
export const downloadExcel = (params: DownloadExcelParams) => {
let headerOptions = {
menuId: 31,
apiType: 'DOWNLOAD'
};
let options = {
headers: {
'X-User-Agent': getHeaderUserAgent(headerOptions)
}
};
return resultify(
axios.post<DownloadExcelResponse>(API_URL_TRANSACTION.downloadExcel(), params, options),
);
};
export const useDownloadExcelMutation = (options?: UseMutationOptions<DownloadExcelResponse, NiceAxiosError, DownloadExcelParams>) => {
const mutation = useMutation<DownloadExcelResponse, NiceAxiosError, DownloadExcelParams>({
...options,
mutationFn: (params: DownloadExcelParams) => downloadExcel(params),
});
return {
...mutation,
};
};

View File

@@ -0,0 +1,39 @@
import axios from 'axios';
import { API_URL_TRANSACTION } from '@/shared/api/api-url-transaction';
import { resultify } from '@/shared/lib/resultify';
import { NiceAxiosError } from '@/shared/@types/error';
import {
TransactionDownloadExcelParams,
TransactionDownloadExcelResponse
} from '../model/types';
import {
useMutation,
UseMutationOptions
} from '@tanstack/react-query';
import { getHeaderUserAgent } from '@/shared/constants/url';
export const transactionDownloadExcel = (params: TransactionDownloadExcelParams) => {
let headerOptions = {
menuId: 31,
apiType: 'DOWNLOAD'
};
let options = {
headers: {
'X-User-Agent': getHeaderUserAgent(headerOptions)
}
};
return resultify(
axios.post<TransactionDownloadExcelResponse>(API_URL_TRANSACTION.transactionDownloadExcel(), params, options),
);
};
export const useTransactionDownloadExcelMutation = (options?: UseMutationOptions<TransactionDownloadExcelResponse, NiceAxiosError, TransactionDownloadExcelParams>) => {
const mutation = useMutation<TransactionDownloadExcelResponse, NiceAxiosError, TransactionDownloadExcelParams>({
...options,
mutationFn: (params: TransactionDownloadExcelParams) => transactionDownloadExcel(params),
});
return {
...mutation,
};
};

View File

@@ -594,6 +594,12 @@ export interface DownloadExcelParams {
export interface DownloadExcelResponse {
};
export interface TransactionDownloadExcelParams extends AllTransactionListParams {
email: string;
};
export interface TransactionDownloadExcelResponse {};
export interface AllTransactionCancelParams{
tid: string;
cancelAmount: number;

View File

@@ -17,7 +17,6 @@ import {
} from '@/entities/transaction/model/types';
import { useAllTransactionListMutation } from '@/entities/transaction/api/use-all-transaction-list-mutation';
import { useAllTransactionListSummaryMutation } from '@/entities/transaction/api/use-all-transaction-list-summary-mutation';
import { useDownloadExcelMutation } from '@/entities/transaction/api/use-download-excel-mutation';
import { DEFAULT_PAGE_PARAM } from '@/entities/common/model/constant';
import { AllTransactionFilter } from '@/entities/transaction/ui/filter/all-transaction-filter';
import { SortTypeBox } from '@/entities/common/ui/sort-type-box';
@@ -35,6 +34,7 @@ import { AllTransactionDetail } from '@/entities/transaction/ui/detail/all-trans
import { showAlert } from '@/widgets/show-alert';
import { snackBar } from '@/shared/lib';
import { checkGrant } from '@/shared/lib/check-grant';
import { useTransactionDownloadExcelMutation } from '@/entities/transaction/api/use-transaction-download-excel-mutation';
/* 거래내역조회 31 */
const menuId = 31;
@@ -85,7 +85,7 @@ export const AllTransactionListPage = () => {
const { mutateAsync: allTransactionList } = useAllTransactionListMutation();
const { mutateAsync: allTransactionListSummary } = useAllTransactionListSummaryMutation();
const { mutateAsync: downloadExcel } = useDownloadExcelMutation();
const { mutateAsync: downloadExcel } = useTransactionDownloadExcelMutation();
const onIntersect: IntersectionObserverCallback = (entries: Array<IntersectionObserverEntry>) => {
entries.forEach((entry: IntersectionObserverEntry) => {
if(entry.isIntersecting){

View File

@@ -18,7 +18,6 @@ import {
DetailData
} from '@/entities/transaction/model/types';
import { useBillingListMutation } from '@/entities/transaction/api/use-billing-list-mutation';
import { useDownloadExcelMutation } from '@/entities/transaction/api/use-download-excel-mutation';
import { DEFAULT_PAGE_PARAM } from '@/entities/common/model/constant';
import { BillingFilter } from '@/entities/transaction/ui/filter/billing-filter';
import { SortTypeBox } from '@/entities/common/ui/sort-type-box';
@@ -71,7 +70,6 @@ export const BillingListPage = () => {
useSetFooterMode(false);
const { mutateAsync: billingList } = useBillingListMutation();
const { mutateAsync: downloadExcel } = useDownloadExcelMutation();
const onIntersect: IntersectionObserverCallback = (entries: Array<IntersectionObserverEntry>) => {
entries.forEach((entry: IntersectionObserverEntry) => {
if(entry.isIntersecting){

View File

@@ -19,7 +19,6 @@ import {
DetailData
} from '@/entities/transaction/model/types';
import { useCashReceiptListMutation } from '@/entities/transaction/api/use-cash-receipt-list-mutation';
import { useDownloadExcelMutation } from '@/entities/transaction/api/use-download-excel-mutation';
import { DEFAULT_PAGE_PARAM } from '@/entities/common/model/constant';
import { CashReceiptFilter } from '@/entities/transaction/ui/filter/cash-receipt-filter';
import { SortTypeBox } from '@/entities/common/ui/sort-type-box';
@@ -80,7 +79,6 @@ export const CashReceiptListPage = () => {
const { mutateAsync: cashReceiptList } = useCashReceiptListMutation();
const { mutateAsync: cashReceiptSummary } = useCashReceiptSummaryMutation();
const { mutateAsync: downloadExcel } = useDownloadExcelMutation();
const onIntersect: IntersectionObserverCallback = (entries: Array<IntersectionObserverEntry>) => {
entries.forEach((entry: IntersectionObserverEntry) => {
if(entry.isIntersecting){

View File

@@ -17,7 +17,6 @@ import {
DetailData
} from '@/entities/transaction/model/types';
import { useEscrowListMutation } from '@/entities/transaction/api/use-escrow-list-mutation';
import { useDownloadExcelMutation } from '@/entities/transaction/api/use-download-excel-mutation';
import { DEFAULT_PAGE_PARAM } from '@/entities/common/model/constant';
import { EscrowFilter } from '@/entities/transaction/ui/filter/escrow-filter';
import { getEscrowDeliveryStatusBtnGroup } from '@/entities/transaction/model/contant';
@@ -72,7 +71,6 @@ export const EscrowListPage = () => {
useSetFooterMode(false);
const { mutateAsync: escrowList } = useEscrowListMutation();
const { mutateAsync: downloadExcel } = useDownloadExcelMutation();
const onIntersect: IntersectionObserverCallback = (entries: Array<IntersectionObserverEntry>) => {
entries.forEach((entry: IntersectionObserverEntry) => {
if(entry.isIntersecting){

View File

@@ -6,32 +6,32 @@ import {
export const API_URL_TRANSACTION = {
/* transaction Management - 거래관리 API */
allTransactionList: () => {
transactionList: () => {
// POST: 거래 내역 조회
return `${API_BASE_URL}/api/v1/${API_URL_KEY}/transaction/list`;
},
allTransactionListSummary: () => {
transactionListSummary: () => {
// POST: 거래 내역 합계 조회
return `${API_BASE_URL}/api/v1/${API_URL_KEY}/transaction/list/summary`;
},
downloadExcel: () => {
transactionDownloadExcel: () => {
// POST: 거래 엑셀 다운로드
return `${API_BASE_URL}/api/v1/${API_URL_KEY}/transaction/download/excel`;
},
downloadConfirmation: () => {
transactionDownloadConfirmation: () => {
// POST: 거래 확인서 다운로드
return `${API_BASE_URL}/api/v1/${API_URL_KEY}/transaction/download/confirmation`;
},
allTransactionDetail: () => {
transactionDetail: () => {
// POST: 거래내역 상세
return `${API_BASE_URL}/api/v1/${API_URL_KEY}/transaction/detail`;
},
allTransactionCancel: () => {
transactionCancel: () => {
// POST: 거래취소 요청
return `${API_BASE_URL}/api/v1/${API_URL_KEY}/transaction/cancel`;
},
allTransactionCancelInfo: () => {
transactionCancelInfo: () => {
// POST: 거래취소 정보 조회
return `${API_BASE_URL}/api/v1/${API_URL_KEY}/transaction/cancel-info`;
},