Files
hfb_sys/frontend/src/features/admin/api/adminWallet.ts
T

48 lines
1.3 KiB
TypeScript

import { apiClient } from '@/shared/api/client'
import type { ApiResponse, PaginatedResult } from '@/shared/types/types'
import type { BalanceType, LedgerDirection } from '@/shared/types/status'
export interface AdminWalletLedger {
id: number
ledger_no: string
user_id: number
user_phone: string
user_nickname: string
order_id?: number
order_no: string
direction: LedgerDirection
amount_cent: number
balance_after_cent: number
balance_type: BalanceType
biz_type: string
biz_no: string
remark: string
created_at: string
}
export interface AdminWalletLedgerQuery {
user_id?: string
order_id?: string
biz_type?: string
page?: number
page_size?: number
}
export async function fetchAdminWalletLedger(query: AdminWalletLedgerQuery = {}) {
const params = Object.fromEntries(
Object.entries(query).filter(([, value]) => value !== '' && value !== undefined)
)
const { data } = await apiClient.get<ApiResponse<PaginatedResult<AdminWalletLedger>>>(
'/admin/wallet/ledger',
{ params }
)
const result = data.data
return {
items: Array.isArray(result?.items) ? result.items : [],
total: Number(result?.total ?? 0),
page: Number(result?.page ?? query.page ?? 1),
page_size: Number(result?.page_size ?? query.page_size ?? 20),
}
}