diff --git a/backend/services/admin-service/src/api/controllers/version.controller.ts b/backend/services/admin-service/src/api/controllers/version.controller.ts index f79bdb93..45327daf 100644 --- a/backend/services/admin-service/src/api/controllers/version.controller.ts +++ b/backend/services/admin-service/src/api/controllers/version.controller.ts @@ -335,6 +335,9 @@ export class VersionController { file: Express.Multer.File, @Body() dto: UploadVersionDto, ): Promise { + // Debug: log isForceUpdate value + console.log('[VersionController] uploadVersion - dto.isForceUpdate:', dto.isForceUpdate, 'type:', typeof dto.isForceUpdate) + // Validate file extension const ext = file.originalname.toLowerCase().split('.').pop() if (dto.platform === Platform.ANDROID && ext !== 'apk') { diff --git a/backend/services/admin-service/src/api/dto/request/upload-version.dto.ts b/backend/services/admin-service/src/api/dto/request/upload-version.dto.ts index d64d71f9..d2918381 100644 --- a/backend/services/admin-service/src/api/dto/request/upload-version.dto.ts +++ b/backend/services/admin-service/src/api/dto/request/upload-version.dto.ts @@ -34,7 +34,13 @@ export class UploadVersionDto { @ApiPropertyOptional({ description: '是否强制更新', default: false }) @IsOptional() - @Transform(({ value }) => value === 'true' || value === true) + @Transform(({ value }) => { + // Handle string "true"/"false" from FormData + if (typeof value === 'string') { + return value.toLowerCase() === 'true' + } + return value === true + }) @IsBoolean() isForceUpdate?: boolean