package com.vincent.rsf.server.common.interceptor; import com.vincent.rsf.framework.common.SpringUtils; import com.vincent.rsf.server.common.utils.FieldsUtils; import com.vincent.rsf.server.system.entity.Fields; import com.vincent.rsf.server.system.service.FieldsService; import lombok.extern.slf4j.Slf4j; import org.springframework.web.servlet.HandlerInterceptor; import org.springframework.web.servlet.ModelAndView; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.util.List; import java.util.Set; import java.util.stream.Collectors; /** * @author Ryan * @version 1.0 * @title DynamicFieldsInterceptor * @description * @create 2025/4/16 16:10 */ @Slf4j public class DynamicFieldsInterceptor implements HandlerInterceptor { @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { List fields = FieldsUtils.getFieldsSta(); List fieldsKey = fields.stream().filter(item -> item.getFlagEnable() == 1).map(Fields::getFields).collect(Collectors.toList()); fieldsKey.forEach(key -> { if (request.getParameterMap().keySet().contains(key)) { request.setAttribute(key, request.getParameterMap().get(key)); } }) 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 { System.out.println(response.getOutputStream().toString()); HandlerInterceptor.super.afterCompletion(request, response, handler, ex); } }