From 28f6317f7189d5c4a7e64f57dd6c7fc2011f8632 Mon Sep 17 00:00:00 2001
From: Fancy <Fancy.fx@outlook.com>
Date: 星期二, 07 一月 2025 15:41:46 +0800
Subject: [PATCH] attend user

---
 pms-parent/pms-global/src/main/java/com/dy/pmsGlobal/aop/LogAspect.java |   71 ++++++++++++++++++++++++-----------
 1 files changed, 49 insertions(+), 22 deletions(-)

diff --git a/pms-parent/pms-global/src/main/java/com/dy/pmsGlobal/aop/LogAspect.java b/pms-parent/pms-global/src/main/java/com/dy/pmsGlobal/aop/LogAspect.java
index db1e48e..fbe0486 100644
--- a/pms-parent/pms-global/src/main/java/com/dy/pmsGlobal/aop/LogAspect.java
+++ b/pms-parent/pms-global/src/main/java/com/dy/pmsGlobal/aop/LogAspect.java
@@ -1,12 +1,14 @@
 package com.dy.pmsGlobal.aop;
 
-import com.dy.common.util.ObjectToMapUtil;
+import com.alibaba.fastjson2.JSONObject;
 import com.dy.common.webFilter.UserTokenContext;
 import com.dy.common.webUtil.BaseResponse;
 import com.dy.common.webUtil.BaseResponseUtils;
 import com.dy.pmsGlobal.pojoBa.BaUser;
+import com.fasterxml.jackson.databind.ObjectMapper;
 import com.mysql.cj.util.StringUtils;
 import jakarta.servlet.http.HttpServletRequest;
+import lombok.extern.slf4j.Slf4j;
 import org.aspectj.lang.JoinPoint;
 import org.aspectj.lang.annotation.AfterReturning;
 import org.aspectj.lang.annotation.Aspect;
@@ -23,8 +25,7 @@
 import org.springframework.web.context.request.ServletRequestAttributes;
 import org.springframework.web.util.UriComponentsBuilder;
 
-import java.util.Map;
-
+@Slf4j
 @Aspect
 @Component
 public class LogAspect {
@@ -33,6 +34,8 @@
     public String SsoCurUserUrl ;
 
     private LogService logSv;
+    @Value("${pms.global.dev}")
+    public String isDevStage ;//鏄惁涓哄紑鍙戦樁娈�
     @Autowired
     public void setLogSv(LogService logSv){
         this.logSv = logSv;
@@ -44,24 +47,30 @@
     }
 
     @AfterReturning(pointcut = "@annotation(com.dy.pmsGlobal.aop.Log)", returning = "result")
-    public void logAfterReturning(JoinPoint joinPoint, Object result) {
-        //缁撴灉
-        BaseResponse res = (BaseResponse)result;
-        res.isSuccess();
-        // 鑾峰彇鐢ㄦ埛淇℃伅
-        BaUser user = (BaUser)getCurUser(res);
-        if(user!=null){
-            Long operator = user.id;
-            // 鑾峰彇鏂规硶鐨勪腑鏂囨弿杩�
-            MethodSignature sign = (MethodSignature) joinPoint.getSignature();
-            Log logDesc = sign.getMethod().getAnnotation(Log.class);
-            String operationName = logDesc.value();
-            // 鑾峰彇IP鍦板潃
-            String ip = getRemoteHost();
-            // 璁板綍鏃ュ織
-            logSv.save(operator, operationName,ip);
+    public void logAfterReturning(JoinPoint joinPoint, BaseResponse result) {
+        if(isDevStage != null && !isDevStage.trim().equals("") && isDevStage.trim().equalsIgnoreCase("true")){
+            return;
         }
-
+        try{
+            // 鑾峰彇鐢ㄦ埛淇℃伅
+            BaUser user = (BaUser)getCurUser(result);
+            if(user!=null && user.id !=null && !StringUtils.isNullOrEmpty(user.name)){
+                // 鑾峰彇鏂规硶鐨勪腑鏂囨弿杩�
+                MethodSignature sign = (MethodSignature) joinPoint.getSignature();
+                Log logDesc = sign.getMethod().getAnnotation(Log.class);
+                String operationName = logDesc.value();
+                // 鑾峰彇IP鍦板潃
+                String ip = getRemoteHost();
+                // 璁板綍鏃ュ織
+                //msg  鏂规硶鍚� + 鍙傛暟鍊� + 杩斿洖鍊�
+//                Stream.of(joinPoint.getArgs()).forEach(System.out::println);
+//                String args = JSONObject.toJSONString(joinPoint.getArgs());
+                //String args1 = Arrays.toString(joinPoint.getArgs());
+                logSv.save(user.id,user.name, operationName,ip,result.getCode(),result.getMsg());
+            }
+        }catch (Exception e){
+            log.error("璁板綍鏃ュ織寮傚父:"+e.getMessage());
+        }
     }
 
     /**
@@ -73,8 +82,10 @@
         if(!StringUtils.isNullOrEmpty(SsoCurUserUrl)){
             String token = UserTokenContext.get();
             if(StringUtils.isNullOrEmpty(token)){
-                Map<String,Object> resMap = ObjectToMapUtil.objectToMap(response.getContent());
-                token =resMap.containsKey("token")?resMap.get("token").toString():"";
+                JSONObject res = objectToJson(response.getContent());
+                if(res!=null && res.containsKey("token")){
+                    token = res.get("token").toString();
+                }
             }
 
             String url = UriComponentsBuilder.fromUriString(SsoCurUserUrl)
@@ -116,4 +127,20 @@
         }
         return "0:0:0:0:0:0:0:1".equals(ip) ? "127.0.0.1" : ip;
     }
+
+    /**
+     * 灏嗗璞¤浆鎹负JSONObject
+     * @param obj
+     * @return
+     */
+    public static JSONObject objectToJson(Object obj) {
+        ObjectMapper mapper = new ObjectMapper();
+        try {
+            JSONObject o = JSONObject.parseObject(mapper.writeValueAsString(obj));
+            return o;
+        } catch (Exception e) {
+            log.error("瀵硅薄杞崲涓篔SONObject澶辫触:"+e.getMessage());
+            return null;
+        }
+    }
 }

--
Gitblit v1.8.0