2025-06-07 11:28:36 +08:00
|
|
|
'use server'
|
|
|
|
|
|
2025-06-23 18:59:31 +08:00
|
|
|
import {ApiResponse, ExtraResp} from '@/lib/api'
|
2025-06-07 11:28:36 +08:00
|
|
|
import {callByUser} from './base'
|
2025-06-23 18:59:31 +08:00
|
|
|
import {listAnnouncements} from './announcement'
|
2025-06-07 11:28:36 +08:00
|
|
|
|
2025-07-01 11:32:37 +08:00
|
|
|
type statisticsResourceUsageReq = {
|
2025-12-20 10:09:38 +08:00
|
|
|
time_start?: Date
|
|
|
|
|
time_end?: Date
|
2025-06-07 11:28:36 +08:00
|
|
|
}
|
|
|
|
|
|
2025-07-01 11:32:37 +08:00
|
|
|
type statisticsResourceUsageResp = {
|
2025-06-30 16:08:08 +08:00
|
|
|
date: string
|
2025-06-07 11:28:36 +08:00
|
|
|
count: number
|
|
|
|
|
}[]
|
|
|
|
|
|
2025-07-01 11:32:37 +08:00
|
|
|
export async function statisticsResourceUsage(props: statisticsResourceUsageReq) {
|
|
|
|
|
return await callByUser<statisticsResourceUsageResp>('/api/resource/statistics/usage', props)
|
2025-06-23 18:59:31 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export async function statisticsResourceFree() {
|
|
|
|
|
return await callByUser<{
|
|
|
|
|
long: {
|
2025-07-01 11:32:37 +08:00
|
|
|
resource_count: number
|
|
|
|
|
resource_daily_free_sum: number
|
|
|
|
|
resource_quota_sum: number
|
2025-06-23 18:59:31 +08:00
|
|
|
}
|
|
|
|
|
short: {
|
2025-07-01 11:32:37 +08:00
|
|
|
resource_count: number
|
|
|
|
|
resource_daily_free_sum: number
|
|
|
|
|
resource_quota_sum: number
|
2025-06-23 18:59:31 +08:00
|
|
|
}
|
|
|
|
|
}>('/api/resource/statistics/free')
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
type listInitializationResp = {
|
|
|
|
|
anno: ExtraResp<typeof listAnnouncements>
|
|
|
|
|
free: ExtraResp<typeof statisticsResourceFree>
|
2025-07-01 11:32:37 +08:00
|
|
|
usage: ExtraResp<typeof statisticsResourceUsage>
|
2025-06-23 18:59:31 +08:00
|
|
|
}
|
|
|
|
|
export async function listInitialization(): Promise<ApiResponse<listInitializationResp>> {
|
|
|
|
|
const free = await statisticsResourceFree()
|
|
|
|
|
if (!free.success) {
|
|
|
|
|
return {
|
|
|
|
|
success: false,
|
|
|
|
|
status: 500,
|
|
|
|
|
message: '套餐剩余数据获取失败',
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
const anno = await listAnnouncements({
|
|
|
|
|
page: 1,
|
|
|
|
|
size: 5,
|
|
|
|
|
})
|
|
|
|
|
if (!anno.success) {
|
|
|
|
|
return {
|
|
|
|
|
success: false,
|
|
|
|
|
status: 500,
|
|
|
|
|
message: '公告数据获取失败',
|
|
|
|
|
}
|
|
|
|
|
}
|
2025-12-20 10:09:38 +08:00
|
|
|
const usage = await statisticsResourceUsage({})
|
2025-06-23 18:59:31 +08:00
|
|
|
if (!usage.success) {
|
|
|
|
|
return {
|
|
|
|
|
success: false,
|
|
|
|
|
status: 500,
|
|
|
|
|
message: '套餐用量数据获取失败',
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
const data = {
|
|
|
|
|
anno: anno.data,
|
|
|
|
|
free: free.data,
|
|
|
|
|
usage: usage.data,
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return {
|
|
|
|
|
success: true,
|
|
|
|
|
data: data,
|
|
|
|
|
}
|
2025-06-07 11:28:36 +08:00
|
|
|
}
|