From b2fef519c89360cf7eeba2c781f1043caca75fc6 Mon Sep 17 00:00:00 2001
From: zhaowenxuan <chacca165@163.com>
Date: 星期四, 13 二月 2025 20:36:56 +0800
Subject: [PATCH] 积木报表拦截切库

---
 ltkj-framework/src/main/java/com/ltkj/framework/web/service/SysLoginService.java |   15 ++++++++++++++-
 1 files changed, 14 insertions(+), 1 deletions(-)

diff --git a/ltkj-framework/src/main/java/com/ltkj/framework/web/service/SysLoginService.java b/ltkj-framework/src/main/java/com/ltkj/framework/web/service/SysLoginService.java
index c5d788c..0fe6028 100644
--- a/ltkj-framework/src/main/java/com/ltkj/framework/web/service/SysLoginService.java
+++ b/ltkj-framework/src/main/java/com/ltkj/framework/web/service/SysLoginService.java
@@ -7,12 +7,15 @@
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.ltkj.common.constant.CacheConstants;
 import com.ltkj.common.core.domain.entity.SysDept;
+import com.ltkj.common.enums.DataSourceType;
 import com.ltkj.common.exception.CustomException;
 import com.ltkj.common.exception.user.CaptchaException;
 import com.ltkj.common.exception.user.CaptchaExpireException;
 import com.ltkj.common.exception.user.SecretKeyException;
 import com.ltkj.common.utils.*;
 import com.ltkj.common.utils.sign.RsaUtils;
+import com.ltkj.db.DataSourceConfig;
+import com.ltkj.db.DataSourceContextHolder;
 import com.ltkj.framework.config.JwtUtils;
 import com.ltkj.framework.config.UserHoder;
 import com.ltkj.hosp.domain.DictHosp;
@@ -84,6 +87,8 @@
 
     @Value("${token.secret_key_login}")
     private boolean secretKeyLogin;
+    @Autowired
+    private DataSourceConfig dataSourceConfig;
 
 
     /**
@@ -93,9 +98,14 @@
      * @param password 瀵嗙爜
      * @return 缁撴灉
      */
-    public String login(String username, String password, Boolean type,String code,String uuid) {
+    public String login(String username, String password, Boolean type,String code,String uuid,String hospId) {
 
+        DataSourceContextHolder.setDataSourceKey(DataSourceType.MASTER.name());
+        LambdaQueryWrapper<DictHosp> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(DictHosp::getCode,hospId);
+        DictHosp hosp = hospService.getOne(wrapper);
 
+        DataSourceContextHolder.setDataSourceKey(hosp.getDbname());
         String aSwitch = configService.selectConfigByKey("captcha_switch");
         if(null !=aSwitch && aSwitch.equalsIgnoreCase("Y")){
             String verifyKey = CacheConstants.CAPTCHA_CODE_KEY + uuid;
@@ -139,6 +149,9 @@
         }
         AsyncManager.me().execute(AsyncFactory.recordLogininfor(username, Constants.LOGIN_SUCCESS, MessageUtils.message("user.login.success")));
         LoginUser loginUser = (LoginUser) authentication.getPrincipal();
+        loginUser.setHospDB(hosp.getDbname());
+        loginUser.setHospId(hospId);
+        tokenService.setLoginUser(loginUser);
 
         recordLoginInfo(Long.valueOf(loginUser.getUserId()));
         //鏍¢獙鍟嗗杩囨湡鍚�

--
Gitblit v1.8.0