You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
80 lines
2.9 KiB
80 lines
2.9 KiB
//package com.teaching.backend.utils; |
|
// |
|
///** |
|
// * @Author:youhang |
|
// * @Date:2024-06-17-23:15 |
|
// * @Description: |
|
// */ |
|
// |
|
// |
|
// |
|
//import cn.hutool.json.JSONObject; |
|
//import cn.hutool.json.JSONUtil; |
|
//import com.teaching.backend.common.ErrorCode; |
|
//import com.teaching.backend.exception.BusinessException; |
|
//import org.aspectj.lang.JoinPoint; |
|
//import org.aspectj.lang.annotation.Aspect; |
|
//import org.aspectj.lang.annotation.Before; |
|
//import org.aspectj.lang.reflect.MethodSignature; |
|
//import org.springframework.core.LocalVariableTableParameterNameDiscoverer; |
|
//import org.springframework.stereotype.Component; |
|
// |
|
//import javax.servlet.http.HttpServletRequest; |
|
//import javax.servlet.http.HttpServletResponse; |
|
//import java.lang.reflect.Method; |
|
//import java.util.Arrays; |
|
//import java.util.List; |
|
//import java.util.stream.Collectors; |
|
// |
|
// |
|
//@Component |
|
//@Aspect |
|
//public class ParamOutAspect { |
|
// |
|
// |
|
// //对包下所有的controller结尾的类的所有方法增强 |
|
// private final String executeExpr = "execution(public * com.teaching.backend.controller..*.*(..))"; |
|
// |
|
// @Before(executeExpr) |
|
// public void processLog(JoinPoint joinPoint) { |
|
// Method method = ((MethodSignature) joinPoint.getSignature()).getMethod(); |
|
// //获取方法名称 |
|
// String methodName = method.getName(); |
|
// //获取参数名称 |
|
// LocalVariableTableParameterNameDiscoverer paramNames = new LocalVariableTableParameterNameDiscoverer(); |
|
// String[] params = paramNames.getParameterNames(method); |
|
// |
|
// |
|
// //获取参数f |
|
// Object[] args = joinPoint.getArgs(); |
|
// //过滤掉request和response,不能序列化 |
|
// List<Object> filteredArgs = Arrays.stream(args) |
|
// .filter(arg -> (!(arg instanceof HttpServletRequest) && !(arg instanceof HttpServletResponse))).collect(Collectors.toList()); |
|
// final Object[] array = filteredArgs.stream().toArray(); |
|
// |
|
// for (int i = 0; i < array.length; i++) { |
|
// System.out.println(array[i]); |
|
// String jsonStr = JSONUtil.toJsonStr(array[i]); |
|
// System.out.println(jsonStr); |
|
// Class<?> myClass = array[i].getClass(); // 获取类的 Class 对象 |
|
// System.out.println("class "+myClass); |
|
// JSONObject entries = JSONUtil.parseObj(jsonStr); |
|
// System.out.println(entries); |
|
// // 遍历JSONObject的属性 |
|
// entries.forEach((key, value) -> { |
|
// if(value == null || "".equals(value)){ |
|
// //可以设置为空的字段 |
|
// if(key.equals( "sortField")||key.equals( "sortOrder")){ |
|
// }else{ |
|
// throw new BusinessException(ErrorCode.PARAMS_NULL); |
|
// } |
|
// |
|
// } |
|
// System.out.println(key + ": " + value); |
|
// }); |
|
// } |
|
// } |
|
// } |
|
// |
|
// |
|
//
|
|
|