增加提现相关的与打款相关逻辑

This commit is contained in:
yml
2026-06-06 13:16:44 +08:00
parent 8a2d2f2a18
commit 5c830fe1f4
32 changed files with 3835 additions and 72 deletions
@@ -0,0 +1,126 @@
import { apiClient } from '@/shared/api/client'
import type { ApiResponse, PaginatedResult } from '@/shared/types/types'
// 收款账号类型
export type AccountType = 'alipay' | 'wechat' | 'bank'
// 收款账号接口
export interface PaymentAccount {
id: number
user_id: number
account_type: AccountType
account_name: string
account_no: string // 脱敏显示
bank_name: string
bank_branch: string
certificate_urls: string[]
is_default: boolean
status: string
created_at: string
updated_at: string
}
// 创建收款账号请求
export interface CreatePaymentAccountRequest {
account_type: AccountType
account_name: string
account_no: string
bank_name?: string
bank_branch?: string
certificate_urls?: string[]
}
// 更新收款账号请求
export interface UpdatePaymentAccountRequest {
bank_branch?: string
certificate_urls?: string[]
is_default?: boolean
}
// 提现状态
export type WithdrawalStatus = 'pending' | 'processing' | 'completed' | 'rejected' | 'cancelled'
// 提现申请接口
export interface WithdrawalRequest {
id: number
withdraw_no: string
user_id: number
amount: number
fee: number
actual_amount: number
account_type: AccountType
account_name: string
account_no: string
bank_name: string
status: WithdrawalStatus
review_remark: string
created_at: string
updated_at: string
reviewed_at: string | null
paid_at: string | null
}
// 创建提现申请请求
export interface CreateWithdrawalRequest {
payment_account_id: number
amount: number
}
// ========== 收款账号管理 API ==========
export async function fetchPaymentAccounts(page = 1, pageSize = 20) {
const { data } = await apiClient.get<ApiResponse<PaginatedResult<PaymentAccount>>>('/payment-accounts', {
params: { page, page_size: pageSize },
})
return data.data
}
export async function fetchPaymentAccount(id: number) {
const { data } = await apiClient.get<ApiResponse<PaymentAccount>>(`/payment-accounts/${id}`)
return data.data
}
export async function createPaymentAccount(req: CreatePaymentAccountRequest) {
const { data } = await apiClient.post<ApiResponse<PaymentAccount>>('/payment-accounts', req)
return data.data
}
export async function updatePaymentAccount(id: number, req: UpdatePaymentAccountRequest) {
const { data } = await apiClient.put<ApiResponse<PaymentAccount>>(`/payment-accounts/${id}`, req)
return data.data
}
export async function deletePaymentAccount(id: number) {
const { data } = await apiClient.delete<ApiResponse<{ deleted: boolean }>>(`/payment-accounts/${id}`)
return data.data
}
export async function setDefaultPaymentAccount(id: number) {
const { data } = await apiClient.post<ApiResponse<{ updated: boolean }>>(`/payment-accounts/${id}/set-default`)
return data.data
}
// ========== 提现申请 API ==========
export async function createWithdrawal(req: CreateWithdrawalRequest) {
const { data } = await apiClient.post<ApiResponse<WithdrawalRequest>>('/withdrawals', req)
return data.data
}
export async function fetchWithdrawals(page = 1, pageSize = 20) {
const { data } = await apiClient.get<ApiResponse<PaginatedResult<WithdrawalRequest>>>('/withdrawals', {
params: { page, page_size: pageSize },
})
return data.data
}
export async function fetchWithdrawal(id: number) {
const { data } = await apiClient.get<ApiResponse<WithdrawalRequest>>(`/withdrawals/${id}`)
return data.data
}
export async function cancelWithdrawal(id: number) {
const { data } = await apiClient.post<ApiResponse<{ cancelled: boolean }>>(`/withdrawals/${id}/cancel`)
return data.data
}