forked from wangziqi/gongxue-base
- 后端: NestJS 11 + TypeORM + JWT认证 + SQLite/MySQL - 前端: React 19 + Ant Design 6 + Vite 8 + ECharts - 功能模块: 数据面板、学生管理、宿舍管理、入住管理、费用录入、账单管理、教室管理、押金管理、操作日志、账号管理 - 支持Docker一键部署
40 lines
1.1 KiB
TypeScript
40 lines
1.1 KiB
TypeScript
import { Controller, Get, Query, UseGuards } from '@nestjs/common';
|
|
import { DashboardService } from './dashboard.service';
|
|
import { JwtAuthGuard } from '../auth/guards/jwt-auth.guard';
|
|
|
|
@UseGuards(JwtAuthGuard)
|
|
@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);
|
|
}
|
|
}
|