From 75a9ffadef2b63db0f028e272dee0f08c9d9fabb Mon Sep 17 00:00:00 2001 From: hailin Date: Sun, 28 Dec 2025 05:10:18 -0800 Subject: [PATCH] =?UTF-8?q?fix(admin-service):=20=E4=BF=AE=E5=A4=8D?= =?UTF-8?q?=E7=A7=BB=E5=8A=A8=E7=AB=AF=E7=BB=B4=E6=8A=A4=E7=8A=B6=E6=80=81?= =?UTF-8?q?API=E5=93=8D=E5=BA=94=E6=A0=BC=E5=BC=8F=E4=B8=8D=E5=8C=B9?= =?UTF-8?q?=E9=85=8D=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 移动端期望的格式: { "isUnderMaintenance": true, "maintenance": { "title", "message", "startTime", "endTime", "remainingMinutes" } } 后端之前返回的格式: { "inMaintenance": true, "title", "message", "endTime" } 修改内容: - 字段名 inMaintenance → isUnderMaintenance - 嵌套维护详情到 maintenance 对象 - 添加 startTime 和 remainingMinutes 字段 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 --- .../system-maintenance.controller.ts | 20 +++++++++--- .../dto/response/system-maintenance.dto.ts | 32 +++++++++++++------ 2 files changed, 38 insertions(+), 14 deletions(-) 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; }