自动化立体仓库 - WMS系统
luxiaotao1123
2022-04-22 adf3a1c6591b8db2c47f45c2ac2370e66d505edb
#三方接口日志
2个文件已修改
1个文件已添加
97 ■■■■ 已修改文件
src/main/java/com/zy/asrs/controller/OpenController.java 22 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/common/config/AdminInterceptor.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/common/config/ControllerResAdvice.java 63 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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;
        }
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");
src/main/java/com/zy/common/config/ControllerResAdvice.java
New file
@@ -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;
    }
}