From 0832f385234a8a2f3b69a5c3fc1e1c95e3c4849e Mon Sep 17 00:00:00 2001
From: zjh <1084500556@qq.com>
Date: 星期一, 09 六月 2025 17:48:20 +0800
Subject: [PATCH] zjh20250609

---
 ltkj-framework/src/main/java/com/ltkj/framework/manager/factory/AsyncFactory.java |   80 +++++++++++++++++++++++++++++++++++-----
 1 files changed, 70 insertions(+), 10 deletions(-)

diff --git a/ltkj-framework/src/main/java/com/ltkj/framework/manager/factory/AsyncFactory.java b/ltkj-framework/src/main/java/com/ltkj/framework/manager/factory/AsyncFactory.java
index b3652b7..a2bc142 100644
--- a/ltkj-framework/src/main/java/com/ltkj/framework/manager/factory/AsyncFactory.java
+++ b/ltkj-framework/src/main/java/com/ltkj/framework/manager/factory/AsyncFactory.java
@@ -1,7 +1,14 @@
 package com.ltkj.framework.manager.factory;
 
+import java.io.IOException;
 import java.util.TimerTask;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.ltkj.db.DataSourceConfig;
+import com.ltkj.db.DataSourceContextHolder;
+import com.ltkj.hosp.domain.DictHosp;
+import com.ltkj.hosp.service.IDictHospService;
+import lombok.extern.slf4j.Slf4j;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import com.ltkj.common.constant.Constants;
@@ -16,12 +23,17 @@
 import com.ltkj.system.service.ISysLogininforService;
 import com.ltkj.system.service.ISysOperLogService;
 import eu.bitwalker.useragentutils.UserAgent;
+import org.springframework.stereotype.Component;
+
+import javax.servlet.http.HttpServletResponse;
 
 /**
  * 寮傛宸ュ巶锛堜骇鐢熶换鍔$敤锛�
  *
  * @author ltkj
  */
+//@Component
+    @Slf4j
 public class AsyncFactory {
     private static final Logger sys_user_logger = LoggerFactory.getLogger("sys-user");
 
@@ -34,13 +46,20 @@
      * @param args     鍒楄〃
      * @return 浠诲姟task
      */
-    public static TimerTask recordLogininfor(final String username, final String status, final String message,
+    public static TimerTask recordLogininfor(final String username, final String status, final String message,final String hospId,
                                              final Object... args) {
         final UserAgent userAgent = UserAgent.parseUserAgentString(ServletUtils.getRequest().getHeader("User-Agent"));
         final String ip = IpUtils.getIpAddr(ServletUtils.getRequest());
+
+//        log.info("闄㈠尯鍙傛暟hospId"+hospId);
         return new TimerTask() {
             @Override
             public void run() {
+
+                log.info("闄㈠尯鍙傛暟hospId"+hospId);
+                DataSourceContextHolder.setDataSourceKey(hospId);
+                SpringUtils.getBean(DataSourceConfig.class).addDataSource(hospId);
+
                 String address = AddressUtils.getRealAddressByIP(ip);
                 StringBuilder s = new StringBuilder();
                 s.append(LogUtils.getBlock(ip));
@@ -74,20 +93,61 @@
         };
     }
 
+
+    public static void recordLogininfornew(final String username, final String status, final String message,
+                                             final Object... args) {
+        final UserAgent userAgent = UserAgent.parseUserAgentString(ServletUtils.getRequest().getHeader("User-Agent"));
+        final String ip = IpUtils.getIpAddr(ServletUtils.getRequest());
+        String address = AddressUtils.getRealAddressByIP(ip);
+        StringBuilder s = new StringBuilder();
+        s.append(LogUtils.getBlock(ip));
+        s.append(address);
+        s.append(LogUtils.getBlock(username));
+        s.append(LogUtils.getBlock(status));
+        s.append(LogUtils.getBlock(message));
+        // 鎵撳嵃淇℃伅鍒版棩蹇�
+        sys_user_logger.info(s.toString(), args);
+        // 鑾峰彇瀹㈡埛绔搷浣滅郴缁�
+        String os = userAgent.getOperatingSystem().getName();
+        // 鑾峰彇瀹㈡埛绔祻瑙堝櫒
+        String browser = userAgent.getBrowser().getName();
+        // 灏佽瀵硅薄
+        SysLogininfor logininfor = new SysLogininfor();
+        logininfor.setUserName(username);
+        logininfor.setIpaddr(ip);
+        logininfor.setLoginLocation(address);
+        logininfor.setBrowser(browser);
+        logininfor.setOs(os);
+        logininfor.setMsg(message);
+        // 鏃ュ織鐘舵��
+        if (StringUtils.equalsAny(status, Constants.LOGIN_SUCCESS, Constants.LOGOUT, Constants.REGISTER)) {
+            logininfor.setStatus(Constants.SUCCESS);
+        } else if (Constants.LOGIN_FAIL.equals(status)) {
+            logininfor.setStatus(Constants.FAIL);
+        }
+        // 鎻掑叆鏁版嵁
+        SpringUtils.getBean(ISysLogininforService.class).insertLogininfor(logininfor);
+    }
     /**
      * 鎿嶄綔鏃ュ織璁板綍
      *
      * @param operLog 鎿嶄綔鏃ュ織淇℃伅
      * @return 浠诲姟task
      */
-    public static TimerTask recordOper(final SysOperLog operLog) {
-        return new TimerTask() {
-            @Override
-            public void run() {
-                // 杩滅▼鏌ヨ鎿嶄綔鍦扮偣
-                operLog.setOperLocation(AddressUtils.getRealAddressByIP(operLog.getOperIp()));
-                SpringUtils.getBean(ISysOperLogService.class).insertOperlog(operLog);
-            }
-        };
+//    public static TimerTask recordOper(final SysOperLog operLog) {
+//        return new TimerTask() {
+//            @Override
+//            public void run() {
+//                // 杩滅▼鏌ヨ鎿嶄綔鍦扮偣
+//                operLog.setOperLocation(AddressUtils.getRealAddressByIP(operLog.getOperIp()));
+//                SpringUtils.getBean(ISysOperLogService.class).insertOperlog(operLog);
+//            }
+//        };
+//    }
+
+    public static void recordOper(final SysOperLog operLog) {
+        // 杩滅▼鏌ヨ鎿嶄綔鍦扮偣
+        operLog.setOperLocation(AddressUtils.getRealAddressByIP(operLog.getOperIp()));
+        SpringUtils.getBean(ISysOperLogService.class).insertOperlog(operLog);
     }
 }

--
Gitblit v1.8.0