src/main/java/com/zy/asrs/controller/OpenController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/common/config/AdminInterceptor.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/common/config/ControllerResAdvice.java | ●●●●● 补丁 | 查看 | 原始文档 | 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; } }