package com.fdkankan.web.response; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.fdkankan.web.annotation.NotResponseAdvice; import lombok.extern.slf4j.Slf4j; import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; 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.web.bind.annotation.RestControllerAdvice; import org.springframework.web.servlet.mvc.method.annotation.ResponseBodyAdvice; import java.util.Objects; @ConditionalOnMissingBean(name = "customResponseAdvice") @RestControllerAdvice @Slf4j public class BaseResponseAdvice implements ResponseBodyAdvice { @Override public boolean supports(MethodParameter methodParameter, Class> aClass) { NotResponseAdvice methodAnnotation = methodParameter.getMethodAnnotation(NotResponseAdvice.class); if(Objects.nonNull(methodAnnotation)){ return false; } return true; } @Override public Object beforeBodyWrite(Object body, MethodParameter methodParameter, MediaType mediaType, Class> aClass, ServerHttpRequest serverHttpRequest, ServerHttpResponse serverHttpResponse) { // if(serverHttpRequest.getURI().getPath().contains("feign")){ // return body; // } // log.info("响应拦截成功。。。"); // List strings = serverHttpRequest.getHeaders().get("Accept-Language"); // System.out.println(strings.get(0)); //admin监控请求,直接返回 if(serverHttpRequest.getURI().getPath().contains("actuator")){ return body; } if(body instanceof String){ return JSONObject.toJSONString(ResultData.ok(body)); } if (body instanceof ResultData) { return body; } else { return ResultData.ok(body); } } }