package com.ltkj.framework.interceptor; import cn.hutool.json.JSONUtil; import com.ltkj.common.core.domain.model.LoginUser; import com.ltkj.db.DataSourceConfig; import com.ltkj.db.DataSourceContextHolder; import com.ltkj.framework.config.UserHoder; import com.ltkj.framework.web.service.TokenService; import com.ltkj.hosp.service.IDictHospService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Configuration; import org.springframework.core.annotation.Order; import org.springframework.stereotype.Component; 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.Map; /** * @Company: 西安路泰科技有限公司 * @Author: zhaowenxuan * @Date: 2025/2/13 18:44 */ @Order(2) @Component public class JimuInterceptor implements HandlerInterceptor { @Autowired private IDictHospService dictHospService; @Autowired private DataSourceConfig dataSourceConfig; @Autowired private TokenService tokenService; private String db; @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { Map parameterMap = request.getParameterMap(); String[] tokens = parameterMap.get("token"); if (tokens != null && tokens.length > 0){ String token = tokens[0]; LoginUser loginUser = tokenService.getLoginUser(token); System.out.println("loginUser.getHospDB() ->"+loginUser.getHospDB()); dataSourceConfig.addDataSource(loginUser.getHospDB()); DataSourceContextHolder.setDataSourceKey(loginUser.getHospDB()); // UserHoder.setLoginUser(loginUser); db = loginUser.getHospDB(); }else { LoginUser loginUser = UserHoder.getLoginUser(); // System.out.println(JSONUtil.toJsonStr(user)); dataSourceConfig.addDataSource(db); DataSourceContextHolder.setDataSourceKey(db); // dataSourceConfig.addDataSource("ltkjpeis10_chkwyy"); // DataSourceContextHolder.setDataSourceKey("ltkjpeis10_chkwyy"); } return true; } @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 { DataSourceContextHolder.setDataSourceKey("default"); DataSourceContextHolder.clear(); HandlerInterceptor.super.afterCompletion(request, response, handler, ex); } }