diff --git a/cash-api/api-config/pom.xml b/cash-api/api-config/pom.xml
index 46d17c12..5f077a7b 100644
--- a/cash-api/api-config/pom.xml
+++ b/cash-api/api-config/pom.xml
@@ -19,7 +19,15 @@
+
+ org.projectlombok
+ lombok
+
+
+ com.czg
+ cash-common-tools
+
diff --git a/cash-api/api-config/src/main/java/com/czg/config/CorsFilter.java b/cash-api/api-config/src/main/java/com/czg/config/CorsFilter.java
new file mode 100644
index 00000000..38e0cac8
--- /dev/null
+++ b/cash-api/api-config/src/main/java/com/czg/config/CorsFilter.java
@@ -0,0 +1,28 @@
+package com.czg.config;
+
+import jakarta.servlet.*;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
+import org.springframework.context.annotation.Configuration;
+
+import java.io.IOException;
+
+/**
+ * @author GYJoker
+ */
+@Configuration
+public class CorsFilter implements Filter {
+ @Override
+ public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain)
+ throws IOException, ServletException {
+ HttpServletResponse response = (HttpServletResponse) resp;
+ HttpServletRequest reqs = (HttpServletRequest) req;
+ String curOrigin = reqs.getHeader("Origin");
+ response.setHeader("Access-Control-Allow-Origin", curOrigin == null ? "true" : curOrigin);
+ response.setHeader("Access-Control-Allow-Methods", "*");
+ response.setHeader("Access-Control-Max-Age", "3600");
+ response.setHeader("Access-Control-Allow-Headers", "token");
+ response.setHeader("Access-Control-Allow-Credentials", "true");
+ chain.doFilter(req, resp);
+ }
+}
diff --git a/cash-api/api-config/src/main/java/com/czg/exception/CzgControllerAdvice.java b/cash-api/api-config/src/main/java/com/czg/exception/CzgControllerAdvice.java
new file mode 100644
index 00000000..907b11a5
--- /dev/null
+++ b/cash-api/api-config/src/main/java/com/czg/exception/CzgControllerAdvice.java
@@ -0,0 +1,45 @@
+package com.czg.exception;
+
+import com.czg.resp.CzgRespCode;
+import com.czg.resp.CzgResult;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.context.support.DefaultMessageSourceResolvable;
+import org.springframework.http.HttpStatus;
+import org.springframework.validation.ObjectError;
+import org.springframework.web.bind.MethodArgumentNotValidException;
+import org.springframework.web.bind.annotation.ExceptionHandler;
+import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.bind.annotation.ResponseStatus;
+import org.springframework.web.bind.annotation.RestControllerAdvice;
+
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * @author GYJoker
+ */
+@RestControllerAdvice
+@Slf4j
+public class CzgControllerAdvice {
+ @ResponseBody
+ @ExceptionHandler(value = Exception.class)
+ @ResponseStatus(HttpStatus.OK)
+ public CzgResult