package com.yanzuoguang.cloud.aop; import com.rabbitmq.client.Channel; import com.yanzuoguang.util.vo.CloudConfig; import com.yanzuoguang.cloud.vo.YzgFileUploadReqVo; import com.yanzuoguang.util.helper.JsonHelper; import org.aspectj.lang.ProceedingJoinPoint; import org.springframework.amqp.core.Message; import org.springframework.stereotype.Component; import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.nio.charset.StandardCharsets; import java.util.ArrayList; import java.util.List; /** * 配置文件处理 * * @author 颜佐光 */ @Component public class AspectLogBody { /** * 获取请求内容 * * @param joinPoint 方法 * @return 方法的请求参数 */ public Object getRequestBody(ProceedingJoinPoint joinPoint) { return getFirstDataParameter(joinPoint.getArgs()); } /** * 获取请求的参数 * * @param args 所有参数 * @return 地一个参数对象 */ private Object getFirstDataParameter(Object[] args) { // 获取请求参数 List<Object> para = getDataParameters(args); Object paraTo = para; if (para.size() == 1) { paraTo = para.get(0); } return paraTo; } /** * 获取数据参数 * * @param args 所有参数 * @return 有效参数 */ private List<Object> getDataParameters(Object[] args) { List<Object> para = new ArrayList<>(); for (Object item : args) { if (item instanceof HttpServlet || item instanceof HttpServletResponse || item instanceof HttpServletRequest || item instanceof MultipartFile || item instanceof Message || item instanceof Channel || item instanceof YzgFileUploadReqVo ) { continue; } para.add(item); } return para; } /** * 获取消息内容 * * @param message 消息 * @return 消息内容 */ public String getRequestBody(Message message) { return new String(message.getBody(), StandardCharsets.UTF_8); } }