From 9bfdf1ff20086c04bbe6576706bfee95c9d7fea0 Mon Sep 17 00:00:00 2001
From: 刘小明 <liuxm_a@163.com>
Date: 星期二, 13 八月 2024 10:46:55 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 pms-parent/pms-common/src/main/java/com/dy/common/webUtil/GlExceptionHandler.java |   28 ++++++++++++++++++++++++++--
 1 files changed, 26 insertions(+), 2 deletions(-)

diff --git a/pms-parent/pms-common/src/main/java/com/dy/common/webUtil/GlExceptionHandler.java b/pms-parent/pms-common/src/main/java/com/dy/common/webUtil/GlExceptionHandler.java
index cfafcf9..19ac9e4 100644
--- a/pms-parent/pms-common/src/main/java/com/dy/common/webUtil/GlExceptionHandler.java
+++ b/pms-parent/pms-common/src/main/java/com/dy/common/webUtil/GlExceptionHandler.java
@@ -1,6 +1,8 @@
 package com.dy.common.webUtil;
 
 import lombok.extern.slf4j.Slf4j;
+import org.springframework.validation.BindingResult;
+import org.springframework.web.bind.MethodArgumentNotValidException;
 import org.springframework.web.bind.annotation.ControllerAdvice;
 import org.springframework.web.bind.annotation.ExceptionHandler;
 import org.springframework.web.bind.annotation.ResponseBody;
@@ -9,6 +11,7 @@
  * 鍏ㄥ眬寮傚父澶勭悊锛屽鐞嗗湪Controller涓姏鍑虹殑寮傚父锛屽湪Controller涔嬪墠锛堝Fileter锛夊彂鐢熺殑閿欒鎴栧紓甯哥敱GlErrorCtrl澶勭悊
  * 姝ょ被鏄熀浜庢嫤鎴櫒鍜屽疄鐜版寚瀹氭帴鍙o紙GlExceptionHandler鍜孏lExceptionHandlerImpl锛�
  * 鍙︿竴绉嶅疄鐜版柟寮忔槸鍩轰簬娉ㄨВ鍒囬潰瀹炵幇锛圙lExceptionAspect锛�
+ * handleValidationExceptions()澶勭悊鍙傛暟楠岃瘉鎬у紓甯�,涓� @Valid閰嶅悎浣跨敤
  */
 @ControllerAdvice
 @ResponseBody
@@ -20,9 +23,30 @@
         log.error("鎹曡幏鍒癎lException锛歿}", e.getMsg(), e);
         return BaseResponseUtils.buildException(e.getMsg());
     }
-
+    @ExceptionHandler
+    public BaseResponse handleValidationExceptions(MethodArgumentNotValidException e) {
+        log.error("鎹曡幏鍒伴獙璇佹�у紓甯革細{}锛屽紓甯告爤杞ㄨ抗锛歿}", e.getMessage(), e.getStackTrace());
+        // 妫�鏌ユ槸鍚︽湁閿欒锛岄伩鍏嶇┖鍒楄〃鎯呭喌涓嬬殑涓嶅繀瑕佹搷浣�
+        BindingResult bindingResult = e.getBindingResult();
+        if (bindingResult.hasErrors()) {
+            StringBuilder sb = new StringBuilder();
+            bindingResult.getAllErrors().forEach(error -> {
+                // 蹇界暐浜嗗瓧娈靛悕鐨勮幏鍙栵紝濡傛灉闇�瑕佸彲浠ユ寜闇�鎭㈠骞朵娇鐢�
+                // String fieldName = ((FieldError) error).getField();
+                String errorMessage = error.getDefaultMessage();
+                sb.append(errorMessage).append("锛�");
+            });
+            // 浼樺寲杩斿洖鍊肩殑娉涘瀷鎸囧畾
+            return BaseResponseUtils.buildException(sb.substring(0, sb.length() - 1));
+        } else {
+            // 濡傛灉娌℃湁閿欒锛岃繑鍥炰竴涓�氱敤閿欒娑堟伅锛岄伩鍏嶈繑鍥炵┖鎴杗ull
+            log.warn("棰勬湡鐨勯獙璇侀敊璇笉瀛樺湪锛岃繖鍙兘鏄竴涓紓甯稿鐞嗛�昏緫鐨勯敊璇��");
+            return BaseResponseUtils.buildException("鍙戠敓浜嗕竴涓湭鐭ョ殑楠岃瘉閿欒銆�");
+        }
+    }
+    @ExceptionHandler
     public BaseResponse exceptionHandler(Throwable t) {
         log.error("鎹曡幏鍒板紓甯革細{}",t.getMessage(),t);
-        return BaseResponseUtils.buildException("鍦–ontroller涓垨鍚庝骇鐢熷紓甯革細" + t.getMessage());
+        return BaseResponseUtils.buildException( t.getMessage());
     }
 }

--
Gitblit v1.8.0