Files
as-partner-frontend/src/api/manage/stats.ts

74 lines
1.9 KiB
TypeScript
Raw Normal View History

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)
}