package com.yuanchu.mom.config; import com.yuanchu.mom.exception.ErrorException; import com.yuanchu.mom.mapper.SystemLogMapper; import com.yuanchu.mom.pojo.SystemLog; import io.swagger.annotations.ApiOperation; import org.springframework.stereotype.Component; import org.springframework.web.method.HandlerMethod; import org.springframework.web.servlet.HandlerInterceptor; import org.springframework.web.servlet.ModelAndView; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.lang.reflect.Method; /** * @Author 戴卓 * @Date 2024/2/27 */ @Component public class LogConfig implements HandlerInterceptor { @Resource private SystemLogMapper systemLogMapper; @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { if (handler instanceof HandlerMethod) { if (request.getRequestURL().toString().contains("/error") || request.getRequestURL().toString().contains("/outPath") || request.getRequestURL().toString().contains("/user/enter")) { return HandlerInterceptor.super.preHandle(request, response, handler); } HandlerMethod h = (HandlerMethod)handler; Method method = h.getMethod(); ApiOperation annotation = method.getAnnotation(ApiOperation.class); if (annotation == null) { return HandlerInterceptor.super.preHandle(request, response, handler); } String value = annotation.value(); if (value.contains("获取")||value.contains("查询")){ return HandlerInterceptor.super.preHandle(request, response, handler); } SystemLog systemLog = new SystemLog(); systemLog.setMethod(method.getName()); systemLog.setMethodName(value); systemLogMapper.insert(systemLog); } return HandlerInterceptor.super.preHandle(request, response, handler); } @Override public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception { HandlerInterceptor.super.postHandle(request, response, handler, modelAndView); } @Override public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception { HandlerInterceptor.super.afterCompletion(request, response, handler, ex); } }