rwadurian/frontend/admin-web/src/services/withdrawalService.ts

88 lines
3.1 KiB
TypeScript

/**
* 法币提现管理服务
* 用于管理后台审核和处理用户的法币提现申请
*/
import apiClient from '@/infrastructure/api/client';
import { API_ENDPOINTS } from '@/infrastructure/api/endpoints';
import type {
FiatWithdrawalOrder,
FiatWithdrawalListResponse,
QueryFiatWithdrawalsParams,
ReviewFiatWithdrawalRequest,
StartPaymentRequest,
CompletePaymentRequest,
FiatWithdrawalStatus,
} from '@/types/withdrawal.types';
/**
* 法币提现管理服务
*
* API 响应结构(经过 apiClient 拦截器解包后):
* { success: true, data: { code: "OK", message: "success", data: {...} } }
*
* 需要访问 .data.data 获取实际业务数据
*/
export const withdrawalService = {
/**
* 获取待审核的提现订单
*/
async getPendingReview(params: QueryFiatWithdrawalsParams = {}): Promise<FiatWithdrawalListResponse> {
const response = await apiClient.get(API_ENDPOINTS.FIAT_WITHDRAWALS.PENDING_REVIEW, { params });
// eslint-disable-next-line @typescript-eslint/no-explicit-any
const result = (response as any)?.data?.data;
return result ?? { items: [], total: 0, page: 1, limit: 20 };
},
/**
* 获取待打款的提现订单
*/
async getPendingPayment(params: QueryFiatWithdrawalsParams = {}): Promise<FiatWithdrawalListResponse> {
const response = await apiClient.get(API_ENDPOINTS.FIAT_WITHDRAWALS.PENDING_PAYMENT, { params });
// eslint-disable-next-line @typescript-eslint/no-explicit-any
const result = (response as any)?.data?.data;
return result ?? { items: [], total: 0, page: 1, limit: 20 };
},
/**
* 按状态获取提现订单
*/
async getByStatus(status: FiatWithdrawalStatus, params: QueryFiatWithdrawalsParams = {}): Promise<FiatWithdrawalListResponse> {
const response = await apiClient.get(API_ENDPOINTS.FIAT_WITHDRAWALS.BY_STATUS, {
params: { ...params, status },
});
// eslint-disable-next-line @typescript-eslint/no-explicit-any
const result = (response as any)?.data?.data;
return result ?? { items: [], total: 0, page: 1, limit: 20 };
},
/**
* 审核提现订单
*/
async review(orderNo: string, data: ReviewFiatWithdrawalRequest): Promise<FiatWithdrawalOrder> {
const response = await apiClient.post(API_ENDPOINTS.FIAT_WITHDRAWALS.REVIEW(orderNo), data);
// eslint-disable-next-line @typescript-eslint/no-explicit-any
return (response as any)?.data?.data;
},
/**
* 开始打款
*/
async startPayment(orderNo: string, data: StartPaymentRequest = {}): Promise<FiatWithdrawalOrder> {
const response = await apiClient.post(API_ENDPOINTS.FIAT_WITHDRAWALS.START_PAYMENT(orderNo), data);
// eslint-disable-next-line @typescript-eslint/no-explicit-any
return (response as any)?.data?.data;
},
/**
* 完成打款
*/
async completePayment(orderNo: string, data: CompletePaymentRequest = {}): Promise<FiatWithdrawalOrder> {
const response = await apiClient.post(API_ENDPOINTS.FIAT_WITHDRAWALS.COMPLETE_PAYMENT(orderNo), data);
// eslint-disable-next-line @typescript-eslint/no-explicit-any
return (response as any)?.data?.data;
},
};
export default withdrawalService;