From ff31d592924958958c21fdef1975d499586d964f Mon Sep 17 00:00:00 2001
From: skyouc <creaycat@gmail.com>
Date: 星期五, 26 十二月 2025 17:41:43 +0800
Subject: [PATCH] BUG修复

---
 rsf-server/src/main/java/com/vincent/rsf/server/common/exception/GlobalExceptionHandler.java |   25 +++++++++++++++++++++++++
 1 files changed, 25 insertions(+), 0 deletions(-)

diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/common/exception/GlobalExceptionHandler.java b/rsf-server/src/main/java/com/vincent/rsf/server/common/exception/GlobalExceptionHandler.java
index 1c1bbc5..f26d109 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/common/exception/GlobalExceptionHandler.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/common/exception/GlobalExceptionHandler.java
@@ -6,6 +6,7 @@
 import com.vincent.rsf.server.common.utils.CommonUtil;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
+import org.springframework.dao.DuplicateKeyException;
 import org.springframework.security.access.AccessDeniedException;
 import org.springframework.web.HttpRequestMethodNotSupportedException;
 import org.springframework.web.bind.annotation.ControllerAdvice;
@@ -13,6 +14,8 @@
 import org.springframework.web.bind.annotation.ResponseBody;
 
 import javax.servlet.http.HttpServletResponse;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
 
 /**
  * 鍏ㄥ眬寮傚父澶勭悊鍣�
@@ -54,6 +57,28 @@
         return R.error(e.getMessage());
     }
 
+    @ResponseBody
+    @ExceptionHandler(DuplicateKeyException.class)
+    public R duplicateKeyExceptionHandler(DuplicateKeyException e, HttpServletResponse response) {
+        CommonUtil.addCrossHeaders(response);
+        String msg = e.getMessage();
+        String out = "鍞竴绱㈠紩鍐茬獊";
+        try {
+            Pattern p = Pattern.compile("Duplicate entry '(.+?)' for key '(.+?)'");
+            Matcher m = p.matcher(msg);
+            if (m.find()) {
+                String value = m.group(1);
+                String key = m.group(2);
+                if ("idx_code".equalsIgnoreCase(key)) {
+                    out = "缂栫爜宸插瓨鍦細" + value;
+                } else {
+                    out = "鍞竴绱㈠紩[" + key + "]鍊煎凡瀛樺湪锛�" + value;
+                }
+            }
+        } catch (Exception ignore) {}
+        return R.error(out);
+    }
+
 
     @ResponseBody
     @ExceptionHandler(Throwable.class)

--
Gitblit v1.9.1