Files
gongxue-base/apps/server/src/dashboard/dashboard.controller.ts

52 lines
1.4 KiB
TypeScript

import { Controller, Get, Query, UseGuards } from '@nestjs/common';
import { DashboardService } from './dashboard.service';
import { JwtAuthGuard } from '../auth/guards/jwt-auth.guard';
import { RequirePermission } from '../auth/decorators/permission.decorator';
@UseGuards(JwtAuthGuard)
@RequirePermission('dashboard:view')
@Controller('dashboard')
export class DashboardController {
constructor(private service: DashboardService) {}
@Get('stats')
getStats() {
return this.service.getStats();
}
@Get('gantt')
getGanttData(
@Query('periodStart') periodStart?: string,
@Query('periodEnd') periodEnd?: string,
@Query('building') building?: string,
) {
return this.service.getGanttData({ periodStart, periodEnd, building });
}
@Get('expense-stats')
getExpenseStats(
@Query('periodStart') periodStart?: string,
@Query('periodEnd') periodEnd?: string,
) {
return this.service.getExpenseStats(periodStart, periodEnd);
}
@Get('room-ranking')
getRoomExpenseRanking(
@Query('periodStart') periodStart?: string,
@Query('periodEnd') periodEnd?: string,
) {
return this.service.getRoomExpenseRanking(periodStart, periodEnd);
}
@Get('class-attendance-ranking')
getClassAttendanceRanking() {
return this.service.getClassAttendanceRanking();
}
@Get('classroom-occupancy')
getClassroomOccupancy() {
return this.service.getClassroomOccupancy();
}
}