陈昶聿
5 天以前 8fe7805b75fceef28f00fb0124901031a287429c
ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysLoginService.java
@@ -130,7 +130,7 @@
     */
    public String ssoLogin(String userName, String orgid, String deptId, String campusid, String token) {
        // sltd 环境:通过 SSO token 获取员工账号
        if ("sltd".equals(active)) {
        if ("sltd".equals(active) || "nhfy".equals(active)) {
            userName = resolveUserNameBySltdToken(token);
            if (userName == null) {
                return null;
@@ -222,15 +222,22 @@
    }
    /**
     * 记录登录信息
     * 记录登录信息(异步执行,不阻塞登录主流程)
     *
     * @param userId 用户ID
     */
    public void recordLoginInfo(Long userId) {
        SysUser sysUser = new SysUser();
        sysUser.setUserId(userId);
        sysUser.setLoginIp(IpUtils.getIpAddr(ServletUtils.getRequest()));
        sysUser.setLoginDate(DateUtils.getNowDate());
        userService.updateUserProfile(sysUser);
        // 在异步前捕获IP,避免异步线程中Request上下文失效
        String loginIp = IpUtils.getIpAddr(ServletUtils.getRequest());
        AsyncManager.me().execute(new java.util.TimerTask() {
            @Override
            public void run() {
                SysUser sysUser = new SysUser();
                sysUser.setUserId(userId);
                sysUser.setLoginIp(loginIp);
                sysUser.setLoginDate(DateUtils.getNowDate());
                userService.updateUserProfile(sysUser);
            }
        });
    }
}