Files
NextEdu/src/modules/dashboard/data-access.ts
SpecialX 138b6f1b00 feat(dashboard,diagnostic,elective): add widgets, layout, parent dashboard, role-config, services, elective components
dashboard:

- Add comparison-badge, dashboard-notification-widget, dashboard-responsive-layout, dashboard-time-range-filter

- Add parent-dashboard components directory

- Add config, hooks, and services directories

diagnostic:

- Add role-config and services directory

elective:

- Add elective-course-detail, elective-stats-cards, parent-selection-view components

- Add data-access-settings and data-access-stats
2026-07-03 10:25:46 +08:00

52 lines
2.0 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 "server-only"
import { cache } from "react"
import { getClassesDashboardStats } from "@/modules/classes/data-access"
import { getExamsDashboardStats } from "@/modules/exams/data-access"
import { getHomeworkDashboardStats } from "@/modules/homework/stats-service"
import { getQuestionsDashboardStats } from "@/modules/questions/data-access"
import { getTextbooksDashboardStats } from "@/modules/textbooks/data-access"
import { getUsersDashboardStats } from "@/modules/users/data-access"
import type { DataScope } from "@/shared/types/permissions"
import type { AdminDashboardData } from "./types"
export const getAdminDashboardData = cache(async (scope?: DataScope): Promise<AdminDashboardData> => {
const [
usersStats,
classesStats,
textbooksStats,
questionsStats,
examsStats,
homeworkStats,
] = await Promise.all([
getUsersDashboardStats(),
getClassesDashboardStats(),
getTextbooksDashboardStats(),
getQuestionsDashboardStats(),
getExamsDashboardStats(scope),
getHomeworkDashboardStats(scope),
])
return {
activeSessionsCount: usersStats.activeSessionsCount,
userCount: usersStats.userCount,
userRoleCounts: usersStats.userRoleCounts,
classCount: classesStats.classCount,
textbookCount: textbooksStats.textbookCount,
chapterCount: textbooksStats.chapterCount,
questionCount: questionsStats.questionCount,
examCount: examsStats.examCount,
homeworkAssignmentCount: homeworkStats.homeworkAssignmentCount,
homeworkAssignmentPublishedCount: homeworkStats.homeworkAssignmentPublishedCount,
homeworkSubmissionCount: homeworkStats.homeworkSubmissionCount,
homeworkSubmissionToGradeCount: homeworkStats.homeworkSubmissionToGradeCount,
recentUsers: usersStats.recentUsers,
// TODO(V4-P2-4): 接入真实趋势数据统计查询(按日期聚合用户注册数和作业提交数)
// 当前为占位空数组AdminTrendCharts 组件会渲染空状态
userGrowth: [],
homeworkTrend: [],
}
})