This commit is contained in:
2026-06-15 18:40:54 +08:00
parent 216726337b
commit 1ca02a119f
9 changed files with 193 additions and 119 deletions
+18 -9
View File
@@ -94,9 +94,12 @@ export async function getAdminStats(startDate?: string, endDate?: string): Promi
return api.get(`/admin/stats${query ? `?${query}` : ''}`);
}
export async function getAdminUsers(search?: string): Promise<AdminUser[]> {
const q = search ? `?search=${encodeURIComponent(search)}` : '';
return api.get(`/admin/users${q}`);
export async function getAdminUsers(page = 1, pageSize = 20, search?: string): Promise<{ items: AdminUser[]; total: number }> {
const params = new URLSearchParams();
params.set('page', String(page));
params.set('page_size', String(pageSize));
if (search) params.set('search', search);
return api.get(`/admin/users?${params.toString()}`);
}
export async function adjustCredits(userId: string, amount: number, description: string): Promise<void> {
@@ -245,20 +248,26 @@ export async function getPaymentStats(params?: {
return api.get(url);
}
export async function getAdminPaymentOrders(params?: { method?: string; status?: string }): Promise<{ items: any[] }> {
export async function getAdminPaymentOrders(params?: { method?: string; status?: string; startDate?: string; endDate?: string; page?: number; pageSize?: number }): Promise<{ items: any[]; total: number }> {
const qs = new URLSearchParams();
if (params?.method) qs.set('method', params.method);
if (params?.method) qs.set('payment_method', params.method);
if (params?.status) qs.set('status', params.status);
const suffix = qs.toString() ? `?${qs.toString()}` : '';
return api.get(`/admin/payment-orders${suffix}`);
if (params?.startDate) qs.set('start_date', params.startDate);
if (params?.endDate) qs.set('end_date', params.endDate);
if (params?.page) qs.set('page', String(params.page));
if (params?.pageSize) qs.set('page_size', String(params.pageSize));
return api.get(`/admin/payment-orders?${qs.toString()}`);
}
export async function refundPaymentOrder(orderNo: string): Promise<void> {
await api.post(`/admin/payment-orders/${orderNo}/refund`);
}
export async function getAdminNotifications(): Promise<{ total: number; items: any[] }> {
return api.get('/admin/notifications');
export async function getAdminNotifications(page = 1, pageSize = 20): Promise<{ total: number; items: any[] }> {
const params = new URLSearchParams();
params.set('page', String(page));
params.set('page_size', String(pageSize));
return api.get(`/admin/notifications?${params.toString()}`);
}
export async function createAdminNotification(data: { title: string; content: string; type: string; target_user_id?: string }): Promise<void> {