diff --git a/backend/services/admin-service/src/api/controllers/system-maintenance.controller.ts b/backend/services/admin-service/src/api/controllers/system-maintenance.controller.ts index c8c2a879..211b4100 100644 --- a/backend/services/admin-service/src/api/controllers/system-maintenance.controller.ts +++ b/backend/services/admin-service/src/api/controllers/system-maintenance.controller.ts @@ -210,14 +210,24 @@ export class MobileMaintenanceController { const active = await this.maintenanceRepo.findActiveMaintenance(); if (!active) { - return { inMaintenance: false }; + return { isUnderMaintenance: false, maintenance: null }; } + // 计算剩余分钟数 + const now = new Date(); + const endTime = new Date(active.endTime); + const remainingMs = endTime.getTime() - now.getTime(); + const remainingMinutes = Math.max(0, Math.ceil(remainingMs / 60000)); + return { - inMaintenance: true, - title: active.title, - message: active.message, - endTime: active.endTime, + isUnderMaintenance: true, + maintenance: { + title: active.title, + message: active.message, + startTime: active.startTime, + endTime: active.endTime, + remainingMinutes, + }, }; } } diff --git a/backend/services/admin-service/src/api/dto/response/system-maintenance.dto.ts b/backend/services/admin-service/src/api/dto/response/system-maintenance.dto.ts index 4e6629a2..64d87e46 100644 --- a/backend/services/admin-service/src/api/dto/response/system-maintenance.dto.ts +++ b/backend/services/admin-service/src/api/dto/response/system-maintenance.dto.ts @@ -66,19 +66,33 @@ export class MaintenanceListResponseDto { total: number; } +/** + * 维护详情(嵌套在状态响应中) + */ +export class MaintenanceDetailDto { + @ApiProperty({ description: '维护标题' }) + title: string; + + @ApiProperty({ description: '维护说明' }) + message: string; + + @ApiProperty({ description: '开始时间' }) + startTime: Date; + + @ApiProperty({ description: '预计结束时间' }) + endTime: Date; + + @ApiProperty({ description: '预计剩余分钟数' }) + remainingMinutes: number; +} + /** * 维护状态响应(给移动端,无需登录) */ export class MaintenanceStatusResponseDto { @ApiProperty({ description: '是否在维护中' }) - inMaintenance: boolean; + isUnderMaintenance: boolean; - @ApiPropertyOptional({ description: '维护标题' }) - title?: string; - - @ApiPropertyOptional({ description: '维护说明' }) - message?: string; - - @ApiPropertyOptional({ description: '预计结束时间' }) - endTime?: Date; + @ApiPropertyOptional({ description: '维护详情', type: MaintenanceDetailDto }) + maintenance?: MaintenanceDetailDto | null; }