Files
as-partner-frontend/src/api/manage/stats.ts
2026-07-26 12:54:46 +08:00

74 lines
1.9 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import http from '@/utils/httpRequest'
import type { ManageResponse } from './types'
/**
* 总览看板统计
*/
export interface OverviewStats {
totalOrders: number
todayOrders: number
totalRevenue: number
todayRevenue: number
totalPool: number
availablePool: number
usedPool: number
activateFailed: number
}
/**
* 订单趋势统计项
*/
export interface OrderTrendItem {
date: string
orderCount: number
revenue: number
}
/**
* 库存统计
* 实际返回:statusStats / activateStats 均为 Map<状态, 数量>
*/
export interface PoolStats {
/** 按库存状态:{ UNUSED: 1, USED: 2 } */
statusStats: Record<string, number>
/** 按激活状态:{ PENDING: 2, FAILED: 1 } */
activateStats: Record<string, number>
}
/**
* 渠道统计项
*/
export interface ChannelStatItem {
channelOrgId: number
orderCount: number
revenue: number
}
/**
* 订单趋势统计查询参数
*/
export interface OrderStatsParams {
startDate: string
endDate: string
}
/** 总览看板 */
export function getOverviewStats(): Promise<ManageResponse<{ overview?: OverviewStats }>> {
return http.get(http.adornUrl('/manage/stats/overview'), { params: http.adornParams() }).then(res => res.data)
}
/** 订单趋势统计 */
export function getOrderStats(params: OrderStatsParams): Promise<ManageResponse<{ orderStats?: { list: OrderTrendItem[] } }>> {
return http.get(http.adornUrl('/manage/stats/orders'), { params: http.adornParams(params) }).then(res => res.data)
}
/** 库存统计 */
export function getPoolStats(): Promise<ManageResponse<{ poolStats?: PoolStats }>> {
return http.get(http.adornUrl('/manage/stats/pool'), { params: http.adornParams() }).then(res => res.data)
}
/** 渠道统计 */
export function getChannelStats(): Promise<ManageResponse<{ channelStats?: { list: ChannelStatItem[] } }>> {
return http.get(http.adornUrl('/manage/stats/channels'), { params: http.adornParams() }).then(res => res.data)
}