From 327099e963591bf1deb43e43cf23feb6944b5e56 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=99=BD=E8=8C=B6=E6=B8=85=E6=AC=A2?= Date: Sat, 7 Jun 2025 17:01:52 +0800 Subject: [PATCH] =?UTF-8?q?=E6=95=B0=E6=8D=AE=E9=AA=8C=E8=AF=81=E5=A4=B1?= =?UTF-8?q?=E8=B4=A5,=20=E4=BC=98=E5=8C=96=E8=AF=A6=E7=BB=86=E4=BF=A1?= =?UTF-8?q?=E6=81=AF=E8=BE=93=E5=87=BA=20+=20=E4=BC=98=E5=8C=96request=5Fi?= =?UTF-8?q?d=E7=94=9F=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../handler/GlobalExceptionHandler.java | 17 +++++++++++++++-- .../cn/zhangdeman/filter/RequestInitFilter.java | 4 ++-- 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/src/main/java/cn/zhangdeman/exception/handler/GlobalExceptionHandler.java b/src/main/java/cn/zhangdeman/exception/handler/GlobalExceptionHandler.java index e0aa8f6..825a160 100644 --- a/src/main/java/cn/zhangdeman/exception/handler/GlobalExceptionHandler.java +++ b/src/main/java/cn/zhangdeman/exception/handler/GlobalExceptionHandler.java @@ -13,6 +13,7 @@ import org.springframework.web.bind.annotation.RestControllerAdvice; import org.springframework.web.context.request.WebRequest; import java.util.ArrayList; +import java.util.HashMap; import java.util.List; import java.util.Map; @@ -45,11 +46,23 @@ public class GlobalExceptionHandler { // 处理参数校验异常(如@NotNull、@Size等校验失败)对应validate库 @ExceptionHandler(MethodArgumentNotValidException.class) public ResponseEntity handleValidationException(MethodArgumentNotValidException ex, HttpServletRequest httpServletRequest) { + List> errDetailList = new ArrayList<>(); List errors = new ArrayList<>(); - ex.getBindingResult().getFieldErrors().forEach(itemErr -> errors.add(itemErr.getField() + ":" + itemErr.getDefaultMessage())); + ex.getBindingResult().getFieldErrors().forEach(itemErr -> { + // message 层面显示的信息 + errors.add(itemErr.getField() + ":" + itemErr.getDefaultMessage()); + // err detail信息 + Map detail = new HashMap<>(); + detail.put("object_name", itemErr.getObjectName()); + detail.put("field", itemErr.getField()); + detail.put("input", itemErr.getRejectedValue()); + detail.put("code", itemErr.getCode()); + detail.put("binding_failure", itemErr.isBindingFailure()); + errDetailList.add(detail); + }); RuntimeContext runtimeContext = getRuntimeContext(httpServletRequest); - Response response = new Response<>(runtimeContext).failure("400", String.join(" - ", errors), ex.getFieldErrors()); + Response response = new Response<>(runtimeContext).failure("400", String.join(" - ", errors), errDetailList); return getResponseEntity(response); } diff --git a/src/main/java/cn/zhangdeman/filter/RequestInitFilter.java b/src/main/java/cn/zhangdeman/filter/RequestInitFilter.java index effca5e..422d7a7 100644 --- a/src/main/java/cn/zhangdeman/filter/RequestInitFilter.java +++ b/src/main/java/cn/zhangdeman/filter/RequestInitFilter.java @@ -123,9 +123,9 @@ public class RequestInitFilter extends HttpFilter { List list = new ArrayList<>(); Instant instant = Instant.ofEpochMilli(runtimeContext.getStartTimeStamp()); ZonedDateTime zdt = instant.atZone(ZoneId.systemDefault()); - DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMddHHmmss"); String formatted = zdt.format(formatter); - list.add(runtimeContext.getServerIp()); // 服务器IP + list.add(runtimeContext.getServerIp().replace(".", "")); // 服务器IP list.add(formatted); // 请求时间 list.add(UUID.randomUUID().toString()); // 随机字符串 String requestId = String.join("-", list); // 拼接成请求ID