From 22e8a676ee42c0d78b3526bcd9a635abbe8dca03 Mon Sep 17 00:00:00 2001
From: java110 <928255095@qq.com>
Date: 星期二, 28 六月 2022 11:28:21 +0800
Subject: [PATCH] 优化databus bug

---
 java110-core/src/main/java/com/java110/core/trace/Java110TraceLogAop.java |   45 ++++++++++++++++++++++++++++++++-------------
 1 files changed, 32 insertions(+), 13 deletions(-)

diff --git a/java110-core/src/main/java/com/java110/core/trace/Java110TraceLogAop.java b/java110-core/src/main/java/com/java110/core/trace/Java110TraceLogAop.java
index 4c6cb4a..5f53d2c 100644
--- a/java110-core/src/main/java/com/java110/core/trace/Java110TraceLogAop.java
+++ b/java110-core/src/main/java/com/java110/core/trace/Java110TraceLogAop.java
@@ -1,12 +1,17 @@
 package com.java110.core.trace;
 
 import com.alibaba.fastjson.JSONObject;
+import com.java110.core.log.LoggerFactory;
 import com.java110.dto.trace.TraceParamDto;
 import org.aspectj.lang.ProceedingJoinPoint;
 import org.aspectj.lang.annotation.Around;
 import org.aspectj.lang.annotation.Aspect;
 import org.aspectj.lang.annotation.Pointcut;
+import org.slf4j.Logger;
 import org.springframework.stereotype.Component;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
 
 /**
  * trace log  api aop
@@ -14,6 +19,7 @@
 @Component
 @Aspect
 public class Java110TraceLogAop {
+    private static Logger logger = LoggerFactory.getLogger(Java110FeignClientInterceptor.class);
 
     @Pointcut("@annotation(com.java110.core.trace.Java110TraceLog) || execution(public * com.java110..*.*InnerServiceSMOImpl.*(..))")
     public void dataProcess() {
@@ -26,20 +32,33 @@
         TraceParamDto traceParamDto = new TraceParamDto();
         JSONObject paramIn = new JSONObject();
         JSONObject paramOut = new JSONObject();
-
-        Object[] args = pjp.getArgs();
-        for (int paramIndex = 0; paramIndex < args.length; paramIndex++) {
-            paramIn.put("param" + paramIndex, args[paramIndex]);
+        try {
+            Object[] args = pjp.getArgs();
+            for (int paramIndex = 0; paramIndex < args.length; paramIndex++) {
+                if (args[paramIndex] instanceof HttpServletRequest) {
+//                HttpServletRequest request = (HttpServletRequest) args[paramIndex];
+//                paramIn.put("param" + paramIndex, request.getParameterMap());
+                    continue;
+                }
+                if (args[paramIndex] instanceof HttpServletResponse) {
+                    continue;
+                }
+                paramIn.put("param" + paramIndex, args[paramIndex]);
+            }
+            traceParamDto.setReqParam(paramIn.toJSONString());
+            out = pjp.proceed();
+        }catch (Exception e){
+            throw e;
+        }finally {
+            if (out != null) {
+                paramOut.put("param", out);
+            } else {
+                paramOut.put("param", new JSONObject());
+            }
+            traceParamDto.setResParam(paramOut.toJSONString());
+            Java110TraceFactory.putParams(traceParamDto);
+            logger.debug("--Java110TraceLog---:{}", JSONObject.toJSONString(traceParamDto));
         }
-        traceParamDto.setReqParam(paramIn.toJSONString());
-        out = pjp.proceed();
-        if (paramOut != null) {
-            paramOut.put("param", out);
-        } else {
-            paramOut.put("param", new JSONObject());
-        }
-        traceParamDto.setResParam(paramOut.toJSONString());
-        Java110TraceFactory.putParams(traceParamDto);
         return out;
     }
 }

--
Gitblit v1.8.0