feat(dashboard): 增加极品专区与保险成交统计

- 仪表盘新增今日极品专区、保险8%、保险4%成交数量
- 展示近7日每日成交趋势和明细
- 按已支付订单口径统计,补充回归测试
This commit is contained in:
yml2213
2026-11-06 19:09:35 +08:00
parent ee08e343f4
commit 87d252bbee
6 changed files with 382 additions and 0 deletions
@@ -42,6 +42,20 @@ export interface ListingDailyOverview {
timezone: string
}
export interface TradingDayStats {
date: string
premium_order_count: number
insurance_8_order_count: number
insurance_4_order_count: number
}
export interface TradingDailyOverview {
today: TradingDayStats
trend: TradingDayStats[]
days: number
timezone: string
}
export interface ListingUploaderDayStats {
date: string
uploader_id: number
@@ -82,6 +96,7 @@ export interface AdminDashboard {
metrics: DashboardMetrics
pending: DashboardPending
listing_daily: ListingDailyOverview
trading_daily: TradingDailyOverview
manual_entry_today: ManualEntryTodayStats[]
recent_orders: DashboardRecentOrder[]
recent_disputes: DashboardRecentDispute[]
@@ -95,10 +110,18 @@ const emptyDayStats = (): ListingDayStats => ({
trade_leave_count: 0,
})
const emptyTradingDayStats = (): TradingDayStats => ({
date: '',
premium_order_count: 0,
insurance_8_order_count: 0,
insurance_4_order_count: 0,
})
export async function fetchAdminDashboard() {
const { data } = await apiClient.get<ApiResponse<AdminDashboard>>('/admin/dashboard')
const payload = data.data
const listingDaily = payload.listing_daily
const tradingDaily = payload.trading_daily
return {
...payload,
listing_daily: {
@@ -111,6 +134,12 @@ export async function fetchAdminDashboard() {
days: listingDaily?.days ?? 7,
timezone: listingDaily?.timezone ?? 'Asia/Shanghai',
},
trading_daily: {
today: tradingDaily?.today ?? emptyTradingDayStats(),
trend: tradingDaily?.trend ?? [],
days: tradingDaily?.days ?? 7,
timezone: tradingDaily?.timezone ?? 'Asia/Shanghai',
},
manual_entry_today: payload.manual_entry_today ?? [],
recent_orders: payload.recent_orders ?? [],
recent_disputes: payload.recent_disputes ?? [],