feat: 添加财务摘要接口,更新管理员抽奖模块和导航,优化权限管理逻辑
This commit is contained in:
19
src/api/admin-audit.ts
Normal file
19
src/api/admin-audit.ts
Normal file
@@ -0,0 +1,19 @@
|
||||
import { adminRequest } from "@/lib/admin-http";
|
||||
|
||||
import { API_V1_PREFIX } from "./paths";
|
||||
|
||||
import type { AdminAuditLogListData } from "@/types/api/admin-audit";
|
||||
|
||||
const A = `${API_V1_PREFIX}/admin`;
|
||||
|
||||
export async function getAdminAuditLogs(params?: {
|
||||
page?: number;
|
||||
per_page?: number;
|
||||
module_code?: string;
|
||||
action_code?: string;
|
||||
operator_type?: string;
|
||||
}): Promise<AdminAuditLogListData> {
|
||||
return adminRequest.get<AdminAuditLogListData>(`${A}/audit-logs`, {
|
||||
params,
|
||||
});
|
||||
}
|
||||
@@ -2,6 +2,7 @@ import { adminRequest } from "@/lib/admin-http";
|
||||
|
||||
import { API_V1_PREFIX } from "./paths";
|
||||
|
||||
import type { AdminDrawFinanceSummaryData } from "@/types/api/admin-draw-finance";
|
||||
import type {
|
||||
AdminDrawBatchesData,
|
||||
AdminDrawListData,
|
||||
@@ -30,6 +31,15 @@ export async function getAdminDrawResultBatches(drawId: number): Promise<AdminDr
|
||||
return adminRequest.get<AdminDrawBatchesData>(`${A}/draws/${drawId}/result-batches`);
|
||||
}
|
||||
|
||||
/** PRD §15.4:单期投注/派彩与结算批次摘要 */
|
||||
export async function getAdminDrawFinanceSummary(
|
||||
drawId: number,
|
||||
): Promise<AdminDrawFinanceSummaryData> {
|
||||
return adminRequest.get<AdminDrawFinanceSummaryData>(
|
||||
`${A}/draws/${drawId}/finance-summary`,
|
||||
);
|
||||
}
|
||||
|
||||
export async function postAdminPublishResultBatch(
|
||||
drawId: number,
|
||||
batchId: number,
|
||||
|
||||
17
src/api/admin-player-tickets.ts
Normal file
17
src/api/admin-player-tickets.ts
Normal file
@@ -0,0 +1,17 @@
|
||||
import { adminRequest } from "@/lib/admin-http";
|
||||
|
||||
import { API_V1_PREFIX } from "./paths";
|
||||
|
||||
import type { AdminPlayerTicketItemsData } from "@/types/api/admin-player-tickets";
|
||||
|
||||
const A = `${API_V1_PREFIX}/admin`;
|
||||
|
||||
export async function getAdminPlayerTicketItems(
|
||||
playerId: number,
|
||||
params?: { page?: number; per_page?: number; draw_no?: string },
|
||||
): Promise<AdminPlayerTicketItemsData> {
|
||||
return adminRequest.get<AdminPlayerTicketItemsData>(
|
||||
`${A}/players/${playerId}/ticket-items`,
|
||||
{ params },
|
||||
);
|
||||
}
|
||||
48
src/api/admin-reconcile.ts
Normal file
48
src/api/admin-reconcile.ts
Normal file
@@ -0,0 +1,48 @@
|
||||
import { adminRequest } from "@/lib/admin-http";
|
||||
|
||||
import { API_V1_PREFIX } from "./paths";
|
||||
|
||||
import type {
|
||||
AdminReconcileItemsData,
|
||||
AdminReconcileJobCreateResponse,
|
||||
AdminReconcileJobListData,
|
||||
} from "@/types/api/admin-reconcile";
|
||||
|
||||
const A = `${API_V1_PREFIX}/admin`;
|
||||
|
||||
export async function getAdminReconcileJobs(params?: {
|
||||
page?: number;
|
||||
per_page?: number;
|
||||
reconcile_type?: string;
|
||||
}): Promise<AdminReconcileJobListData> {
|
||||
return adminRequest.get<AdminReconcileJobListData>(`${A}/reconcile-jobs`, {
|
||||
params,
|
||||
});
|
||||
}
|
||||
|
||||
export async function postAdminReconcileJob(body: {
|
||||
reconcile_type: string;
|
||||
period_start?: string | null;
|
||||
period_end?: string | null;
|
||||
items?: {
|
||||
side_a_ref?: string | null;
|
||||
side_b_ref?: string | null;
|
||||
difference_amount?: number | null;
|
||||
status?: string | null;
|
||||
}[];
|
||||
}): Promise<AdminReconcileJobCreateResponse> {
|
||||
return adminRequest.post<AdminReconcileJobCreateResponse>(
|
||||
`${A}/reconcile-jobs`,
|
||||
body,
|
||||
);
|
||||
}
|
||||
|
||||
export async function getAdminReconcileJobItems(
|
||||
jobId: number,
|
||||
params?: { page?: number; per_page?: number },
|
||||
): Promise<AdminReconcileItemsData> {
|
||||
return adminRequest.get<AdminReconcileItemsData>(
|
||||
`${A}/reconcile-jobs/${jobId}/items`,
|
||||
{ params },
|
||||
);
|
||||
}
|
||||
30
src/api/admin-reports.ts
Normal file
30
src/api/admin-reports.ts
Normal file
@@ -0,0 +1,30 @@
|
||||
import { adminRequest } from "@/lib/admin-http";
|
||||
|
||||
import { API_V1_PREFIX } from "./paths";
|
||||
|
||||
import type {
|
||||
AdminReportJobCreateResponse,
|
||||
AdminReportJobListData,
|
||||
} from "@/types/api/admin-reports";
|
||||
|
||||
const A = `${API_V1_PREFIX}/admin`;
|
||||
|
||||
export async function getAdminReportJobs(params?: {
|
||||
page?: number;
|
||||
per_page?: number;
|
||||
}): Promise<AdminReportJobListData> {
|
||||
return adminRequest.get<AdminReportJobListData>(`${A}/report-jobs`, {
|
||||
params,
|
||||
});
|
||||
}
|
||||
|
||||
export async function postAdminReportJob(body: {
|
||||
report_type: string;
|
||||
export_format?: "csv" | "xlsx";
|
||||
filter_json?: Record<string, unknown> | null;
|
||||
}): Promise<AdminReportJobCreateResponse> {
|
||||
return adminRequest.post<AdminReportJobCreateResponse>(
|
||||
`${A}/report-jobs`,
|
||||
body,
|
||||
);
|
||||
}
|
||||
@@ -6,12 +6,21 @@ export {
|
||||
getAdminTransferOrders,
|
||||
getAdminWalletTransactions,
|
||||
} from "@/api/admin-wallet";
|
||||
export { getAdminReportJobs, postAdminReportJob } from "@/api/admin-reports";
|
||||
export {
|
||||
getAdminReconcileJobItems,
|
||||
getAdminReconcileJobs,
|
||||
postAdminReconcileJob,
|
||||
} from "@/api/admin-reconcile";
|
||||
export { getAdminAuditLogs } from "@/api/admin-audit";
|
||||
export {
|
||||
getAdminDraw,
|
||||
getAdminDrawFinanceSummary,
|
||||
getAdminDrawResultBatches,
|
||||
getAdminDraws,
|
||||
postAdminPublishResultBatch,
|
||||
} from "@/api/admin-draws";
|
||||
export { getAdminPlayerTicketItems } from "@/api/admin-player-tickets";
|
||||
export type {
|
||||
AdminAuthCaptchaResponse,
|
||||
AdminAuthLoginRequest,
|
||||
|
||||
Reference in New Issue
Block a user