feat(api): 新增仪表盘监控API服务层

This commit is contained in:
Leo 2025-09-23 22:28:11 +08:00
parent e7eb349272
commit e1804a43e0
2 changed files with 175 additions and 0 deletions

View File

@ -0,0 +1,84 @@
import { request } from '../../http'
import type {
DailyActivityStatsVo,
DashboardQueryBo,
DashboardStatisticsVo,
LoginStatsVo,
LoginTrendVo,
StorageStatsVo,
UserStatsVo,
} from './types'
// 重新导出类型供外部使用
export type {
DailyActivityStatsVo,
DashboardQueryBo,
DashboardStatisticsVo,
LoginStatsVo,
LoginTrendItemVo,
LoginTrendVo,
StorageStatsVo,
UserStatsVo,
} from './types'
// 仪表盘相关API
/**
*
*/
export function getDashboardStatistics() {
return request.Get<Service.ResponseResult<DashboardStatisticsVo>>('/coder/dashboard/getStatistics')
}
/**
*
* @param days 7
*/
export function getLoginTrend(days: number = 7) {
return request.Get<Service.ResponseResult<LoginTrendVo>>('/coder/dashboard/getLoginTrend', {
params: { days },
})
}
/**
*
* @param params
*/
export function getAllDashboardData(params: DashboardQueryBo = {}) {
const { includeTrend = true, trendDays = 7 } = params
return request.Get<Service.ResponseResult<DashboardStatisticsVo>>('/coder/dashboard/getAllData', {
params: { includeTrend, trendDays },
})
}
/**
*
*/
export function getUserStats() {
return request.Get<Service.ResponseResult<UserStatsVo>>('/coder/dashboard/getUserStats')
}
/**
*
* @param params
*/
export function getLoginStats(params: DashboardQueryBo = {}) {
const { includeTrend = false, trendDays = 7 } = params
return request.Get<Service.ResponseResult<LoginStatsVo>>('/coder/dashboard/getLoginStats', {
params: { includeTrend, trendDays },
})
}
/**
*
*/
export function getStorageStats() {
return request.Get<Service.ResponseResult<StorageStatsVo>>('/coder/dashboard/getStorageStats')
}
/**
*
*/
export function getDailyActivityStats() {
return request.Get<Service.ResponseResult<DailyActivityStatsVo>>('/coder/dashboard/getDailyActivityStats')
}

View File

@ -0,0 +1,91 @@
// 仪表盘API类型定义
// 用户统计数据
export interface UserStatsVo {
/** 总用户数 */
totalUsers: number
/** 今日新增用户数 */
todayNewUsers: number
/** 活跃用户数 */
activeUsers: number
/** 当前在线用户数 */
onlineUsers: number
}
// 登录趋势项
export interface LoginTrendItemVo {
/** 日期YYYY-MM-DD格式 */
date: string
/** 当日登录次数 */
count: number
/** 显示标签(用于图表展示) */
label: string
}
// 登录统计数据
export interface LoginStatsVo {
/** 今日登录次数 */
todayLogins: number
/** 累计登录次数 */
totalLogins: number
/** 登录趋势数据 */
loginTrend?: LoginTrendItemVo[]
}
// 存储统计数据
export interface StorageStatsVo {
/** 总文件数 */
totalFiles: number
/** 总图片数 */
totalImages: number
/** 总存储大小(格式化) */
totalSize: string
/** 今日上传文件数 */
todayUploads: number
/** 存储使用率(百分比) */
storageUsage: number
/** 可用空间(格式化) */
availableSpace: string
}
// 今日活跃统计数据
export interface DailyActivityStatsVo {
/** 今日访问量 */
todayVisits: number
/** 今日操作数 */
todayOperations: number
/** 活跃用户数 */
activeUsers: number
/** 新增内容数 */
newContent: number
/** API调用次数 */
apiCalls: number
/** 平均响应时间(毫秒) */
avgResponseTime: number
}
// 仪表盘统计数据响应对象
export interface DashboardStatisticsVo {
/** 用户统计数据 */
userStats?: UserStatsVo
/** 登录统计数据 */
loginStats?: LoginStatsVo
/** 存储统计数据 */
storageStats?: StorageStatsVo
/** 今日活跃统计数据 */
dailyActivityStats?: DailyActivityStatsVo
}
// 登录趋势数据响应对象
export interface LoginTrendVo {
/** 登录趋势数据列表 */
loginTrend: LoginTrendItemVo[]
}
// 查询参数类型
export interface DashboardQueryBo {
/** 是否包含趋势数据 */
includeTrend?: boolean
/** 趋势数据天数 */
trendDays?: number
}