From adf3a1c6591b8db2c47f45c2ac2370e66d505edb Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@163.com>
Date: 星期五, 22 四月 2022 23:01:55 +0800
Subject: [PATCH] #三方接口日志

---
 src/main/java/com/zy/asrs/controller/OpenController.java    |   22 ++---------
 src/main/java/com/zy/common/config/AdminInterceptor.java    |   12 ++++++
 src/main/java/com/zy/common/config/ControllerResAdvice.java |   63 +++++++++++++++++++++++++++++++
 3 files changed, 79 insertions(+), 18 deletions(-)

diff --git a/src/main/java/com/zy/asrs/controller/OpenController.java b/src/main/java/com/zy/asrs/controller/OpenController.java
index 7c29e2a..19883d4 100644
--- a/src/main/java/com/zy/asrs/controller/OpenController.java
+++ b/src/main/java/com/zy/asrs/controller/OpenController.java
@@ -1,21 +1,19 @@
 package com.zy.asrs.controller;
 
 import com.alibaba.fastjson.JSON;
+import com.core.annotations.AppAuth;
 import com.core.common.*;
 import com.core.exception.CoolException;
 import com.zy.asrs.entity.param.OpenOrderCompleteParam;
 import com.zy.asrs.entity.param.OpenOrderPakinParam;
 import com.zy.asrs.entity.param.OpenOrderPakoutParam;
-import com.zy.asrs.service.ApiLogService;
 import com.zy.asrs.service.OpenService;
 import com.zy.common.model.DetlDto;
-import com.zy.common.utils.IpTools;
 import com.zy.common.web.BaseController;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
-import javax.servlet.http.HttpServletRequest;
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
@@ -35,8 +33,6 @@
 
     @Autowired
     private OpenService openService;
-    @Autowired
-    private ApiLogService apiLogService;
 
 
 
@@ -46,24 +42,14 @@
 
 
     @PostMapping("/order/pakin/new/package/v1")
+    @AppAuth(memo = "鎵撳寘涓婄嚎鎺ュ彛")
     public synchronized R pakinOrderPackage(@RequestHeader(required = false) String appkey,
-                                            @RequestParam(required = false) String barcode,
-                                            HttpServletRequest request) {
+                                            @RequestParam(required = false) String barcode) {
         auth(appkey, barcode);
         if (Cools.isEmpty(barcode)) {
             return R.parse(BaseRes.PARAM);
         }
         openService.packageUp(barcode);
-        // 淇濆瓨鎺ュ彛鏃ュ織
-        apiLogService.save(
-                "鎵撳寘涓婄嚎鎺ュ彛",
-                request.getRequestURI(),
-                appkey,
-                IpTools.gainRealIp(request),
-                barcode,
-                JSON.toJSONString(R.ok()),
-                Boolean.TRUE
-        );
         return R.ok();
     }
 
@@ -147,7 +133,7 @@
 
 
     private void auth(String appkey, Object obj) {
-        log.info("{}鎺ュ彛琚闂紒appkey:{},璇锋眰鏁版嵁锛歿}", "open/sensorType/list/auth/v1", appkey, JSON.toJSONString(obj));
+        log.info("{}鎺ュ彛琚闂紱appkey:{}锛涜姹傛暟鎹細{}", "open/sensorType/list/auth/v1", appkey, JSON.toJSONString(obj));
         if (!auth) {
             return;
         }
diff --git a/src/main/java/com/zy/common/config/AdminInterceptor.java b/src/main/java/com/zy/common/config/AdminInterceptor.java
index b42a596..3932e07 100644
--- a/src/main/java/com/zy/common/config/AdminInterceptor.java
+++ b/src/main/java/com/zy/common/config/AdminInterceptor.java
@@ -2,6 +2,7 @@
 
 import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.core.annotations.AppAuth;
 import com.core.annotations.ManagerAuth;
 import com.core.common.BaseRes;
 import com.core.common.Cools;
@@ -73,6 +74,12 @@
         // response.setHeader("Access-Control-Allow-Origin", "*");
         HandlerMethod handlerMethod = (HandlerMethod) handler;
         Method method = handlerMethod.getMethod();
+        if (method.isAnnotationPresent(AppAuth.class)){
+            AppAuth annotation = method.getAnnotation(AppAuth.class);
+            if (annotation.value().equals(AppAuth.Auth.CHECK)){
+                request.setAttribute("appAuth", annotation.memo());
+            }
+        }
         if (method.isAnnotationPresent(ManagerAuth.class)){
             ManagerAuth annotation = method.getAnnotation(ManagerAuth.class);
             if (annotation.value().equals(ManagerAuth.Auth.CHECK)){
@@ -92,6 +99,11 @@
         }
     }
 
+    @Override
+    public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, @Nullable Exception ex) throws Exception {
+//        Object r = request.getAttribute("cool-response");
+    }
+
     private boolean check(HttpServletRequest request, HttpServletResponse response, String memo) {
         try {
             String token = request.getHeader("token");
diff --git a/src/main/java/com/zy/common/config/ControllerResAdvice.java b/src/main/java/com/zy/common/config/ControllerResAdvice.java
new file mode 100644
index 0000000..08b22d1
--- /dev/null
+++ b/src/main/java/com/zy/common/config/ControllerResAdvice.java
@@ -0,0 +1,63 @@
+package com.zy.common.config;
+
+import com.alibaba.fastjson.JSON;
+import com.core.common.Cools;
+import com.core.common.R;
+import com.zy.asrs.service.ApiLogService;
+import com.zy.common.utils.IpTools;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.core.MethodParameter;
+import org.springframework.http.MediaType;
+import org.springframework.http.converter.HttpMessageConverter;
+import org.springframework.http.server.ServerHttpRequest;
+import org.springframework.http.server.ServerHttpResponse;
+import org.springframework.http.server.ServletServerHttpRequest;
+import org.springframework.web.bind.annotation.ControllerAdvice;
+import org.springframework.web.servlet.mvc.method.annotation.ResponseBodyAdvice;
+
+import javax.servlet.http.HttpServletRequest;
+
+/**
+ * 杩斿洖鍊煎鐞�
+ * Created by vincent on 2022/4/22
+ */
+@Slf4j
+@ControllerAdvice
+public class ControllerResAdvice implements ResponseBodyAdvice<Object> {
+
+    @Autowired
+    private ApiLogService apiLogService;
+
+    @Override
+    public boolean supports(MethodParameter methodParameter, Class<? extends HttpMessageConverter<?>> aClass) {
+        return true;
+    }
+
+    @Override
+    public Object beforeBodyWrite(Object o, MethodParameter methodParameter, MediaType mediaType, Class<? extends HttpMessageConverter<?>> aClass, ServerHttpRequest serverHttpRequest, ServerHttpResponse serverHttpResponse) {
+        if (serverHttpRequest instanceof ServletServerHttpRequest) {
+            HttpServletRequest request = ((ServletServerHttpRequest) serverHttpRequest).getServletRequest();
+            Object appAuth = request.getAttribute("appAuth");
+            if (appAuth != null) {
+                if (o instanceof R) {
+                    String appkey = request.getHeader("appkey");
+                    if (!Cools.isEmpty(appkey)) {
+                        // 淇濆瓨鎺ュ彛鏃ュ織
+                        apiLogService.save(
+                                String.valueOf(appAuth),
+                                request.getRequestURI(),
+                                appkey,
+                                IpTools.gainRealIp(request),
+                                JSON.toJSONString(request.getParameterMap()),
+                                JSON.toJSONString(o),
+                                Boolean.TRUE
+                        );
+                    }
+                }
+            }
+        }
+        return o;
+    }
+
+}

--
Gitblit v1.9.1