From 6d01ee90e93bc8f5c007bc33aab97e390a4e1998 Mon Sep 17 00:00:00 2001 From: chenyuan Date: Tue, 4 Aug 2026 15:20:45 +0800 Subject: [PATCH] fix: standardize Chinese validation messages --- .../application/PlatformTokenVerifier.java | 4 ++-- .../digitalrmb/shared/web/GlobalExceptionHandler.java | 2 +- .../digitalrmb/shared/GlobalExceptionHandlerTest.java | 9 +++++++++ 3 files changed, 12 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/yau/digitalrmb/platformintegration/application/PlatformTokenVerifier.java b/src/main/java/com/yau/digitalrmb/platformintegration/application/PlatformTokenVerifier.java index 037699f..a8c7d0e 100644 --- a/src/main/java/com/yau/digitalrmb/platformintegration/application/PlatformTokenVerifier.java +++ b/src/main/java/com/yau/digitalrmb/platformintegration/application/PlatformTokenVerifier.java @@ -67,7 +67,7 @@ public class PlatformTokenVerifier { } catch (PlatformTokenException exception) { throw exception; } catch (Exception exception) { - throw new PlatformTokenException("Invalid platform token", exception); + throw new PlatformTokenException("平台登录凭据无效", exception); } } @@ -85,5 +85,5 @@ public class PlatformTokenVerifier { private long requiredLong(JsonNode payload, String name) { JsonNode node = payload.path(name); if (!node.canConvertToLong()) throw invalid(); return node.asLong(); } private String requiredText(JsonNode payload, String name) { String value = payload.path(name).asText(); if (value == null || value.trim().isEmpty()) throw invalid(); return value; } private String optionalText(JsonNode payload, String name) { JsonNode node = payload.path(name); return node.isMissingNode() || node.isNull() ? null : node.asText(); } - private PlatformTokenException invalid() { return new PlatformTokenException("Invalid platform token"); } + private PlatformTokenException invalid() { return new PlatformTokenException("平台登录凭据无效"); } } diff --git a/src/main/java/com/yau/digitalrmb/shared/web/GlobalExceptionHandler.java b/src/main/java/com/yau/digitalrmb/shared/web/GlobalExceptionHandler.java index f52fb6f..ddd9f53 100644 --- a/src/main/java/com/yau/digitalrmb/shared/web/GlobalExceptionHandler.java +++ b/src/main/java/com/yau/digitalrmb/shared/web/GlobalExceptionHandler.java @@ -22,7 +22,7 @@ public class GlobalExceptionHandler { @ExceptionHandler({ConstraintViolationException.class, MethodArgumentNotValidException.class}) @ResponseStatus(HttpStatus.BAD_REQUEST) public ApiResponse handleValidation(Exception exception) { - return ApiResponse.failure(ErrorCode.VALIDATION_ERROR, exception.getMessage(), traceId()); + return ApiResponse.failure(ErrorCode.VALIDATION_ERROR, "请求参数校验失败", traceId()); } @ExceptionHandler(BusinessException.class) diff --git a/src/test/java/com/yau/digitalrmb/shared/GlobalExceptionHandlerTest.java b/src/test/java/com/yau/digitalrmb/shared/GlobalExceptionHandlerTest.java index 501e682..918e0c6 100644 --- a/src/test/java/com/yau/digitalrmb/shared/GlobalExceptionHandlerTest.java +++ b/src/test/java/com/yau/digitalrmb/shared/GlobalExceptionHandlerTest.java @@ -8,6 +8,7 @@ import org.springframework.test.context.ActiveProfiles; import org.springframework.test.web.servlet.MockMvc; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get; +import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; @@ -26,4 +27,12 @@ class GlobalExceptionHandlerTest { .andExpect(jsonPath("$.code").value("VALIDATION_ERROR")) .andExpect(jsonPath("$.traceId").isNotEmpty()); } + + @Test + void invalidRequestBodyReturnsChineseValidationMessage() throws Exception { + mvc.perform(post("/api/v1/auth/login").contentType("application/json").content("{}")) + .andExpect(status().isBadRequest()) + .andExpect(jsonPath("$.code").value("VALIDATION_ERROR")) + .andExpect(jsonPath("$.message").value("请求参数校验失败")); + } }