From c0e1402409f279bf6f8fc91f2633f4f6bba7a7f2 Mon Sep 17 00:00:00 2001 From: RuoYi Date: Wed, 27 Aug 2025 15:17:47 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../framework/shiro/service/LoginService.java | 6 +----- .../project/system/user/mapper/UserMapper.java | 11 +++++++++++ .../project/system/user/service/IUserService.java | 13 ++++++++++++- .../system/user/service/UserServiceImpl.java | 14 ++++++++++++++ src/main/resources/mybatis/system/UserMapper.xml | 4 ++++ 5 files changed, 42 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/ruoyi/framework/shiro/service/LoginService.java b/src/main/java/com/ruoyi/framework/shiro/service/LoginService.java index 929d3e13..3bc32011 100644 --- a/src/main/java/com/ruoyi/framework/shiro/service/LoginService.java +++ b/src/main/java/com/ruoyi/framework/shiro/service/LoginService.java @@ -179,10 +179,6 @@ public class LoginService */ public void recordLoginInfo(Long userId) { - User user = new User(); - user.setUserId(userId); - user.setLoginIp(ShiroUtils.getIp()); - user.setLoginDate(DateUtils.getNowDate()); - userService.updateUserInfo(user); + userService.updateLoginInfo(userId, ShiroUtils.getIp(), DateUtils.getNowDate()); } } diff --git a/src/main/java/com/ruoyi/project/system/user/mapper/UserMapper.java b/src/main/java/com/ruoyi/project/system/user/mapper/UserMapper.java index 68c7250f..5e1cb004 100644 --- a/src/main/java/com/ruoyi/project/system/user/mapper/UserMapper.java +++ b/src/main/java/com/ruoyi/project/system/user/mapper/UserMapper.java @@ -1,5 +1,6 @@ package com.ruoyi.project.system.user.mapper; +import java.util.Date; import java.util.List; import org.apache.ibatis.annotations.Param; import com.ruoyi.project.system.user.domain.User; @@ -100,6 +101,16 @@ public interface UserMapper */ public int updateUserAvatar(@Param("userId") Long userId, @Param("avatar") String avatar); + /** + * 更新用户登录信息(IP和登录时间) + * + * @param userId 用户ID + * @param loginIp 登录IP地址 + * @param loginDate 登录时间 + * @return 结果 + */ + public int updateLoginInfo(@Param("userId") Long userId, @Param("loginIp") String loginIp, @Param("loginDate") Date loginDate); + /** * 新增用户信息 * diff --git a/src/main/java/com/ruoyi/project/system/user/service/IUserService.java b/src/main/java/com/ruoyi/project/system/user/service/IUserService.java index cdf6a666..3817d873 100644 --- a/src/main/java/com/ruoyi/project/system/user/service/IUserService.java +++ b/src/main/java/com/ruoyi/project/system/user/service/IUserService.java @@ -1,8 +1,9 @@ package com.ruoyi.project.system.user.service; +import java.util.Date; +import java.util.List; import com.ruoyi.project.system.user.domain.User; import com.ruoyi.project.system.user.domain.UserRole; -import java.util.List; /** * 用户 业务层 @@ -133,6 +134,16 @@ public interface IUserService */ public boolean updateUserAvatar(Long userId, String avatar); + /** + * 更新用户登录信息(IP和登录时间) + * + * @param userId 用户ID + * @param loginIp 登录IP地址 + * @param loginDate 登录时间 + * @return 结果 + */ + public void updateLoginInfo(Long userId, String loginIp, Date loginDate); + /** * 用户授权角色 * diff --git a/src/main/java/com/ruoyi/project/system/user/service/UserServiceImpl.java b/src/main/java/com/ruoyi/project/system/user/service/UserServiceImpl.java index 38e60aa2..60dc3b6b 100644 --- a/src/main/java/com/ruoyi/project/system/user/service/UserServiceImpl.java +++ b/src/main/java/com/ruoyi/project/system/user/service/UserServiceImpl.java @@ -1,6 +1,7 @@ package com.ruoyi.project.system.user.service; import java.util.ArrayList; +import java.util.Date; import java.util.List; import java.util.stream.Collectors; import javax.validation.ConstraintViolationException; @@ -299,6 +300,19 @@ public class UserServiceImpl implements IUserService return userMapper.updateUserAvatar(userId, avatar) > 0; } + /** + * 更新用户登录信息(IP和登录时间) + * + * @param userId 用户ID + * @param loginIp 登录IP地址 + * @param loginDate 登录时间 + * @return 结果 + */ + public void updateLoginInfo(Long userId, String loginIp, Date loginDate) + { + userMapper.updateLoginInfo(userId, loginIp, loginDate); + } + /** * 用户授权角色 * diff --git a/src/main/resources/mybatis/system/UserMapper.xml b/src/main/resources/mybatis/system/UserMapper.xml index e26779e6..075bc9b0 100644 --- a/src/main/resources/mybatis/system/UserMapper.xml +++ b/src/main/resources/mybatis/system/UserMapper.xml @@ -169,6 +169,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" update sys_user set avatar = #{avatar} where user_id = #{userId} + + + update sys_user set login_ip = #{loginIp}, login_date = #{loginDate} where user_id = #{userId} + update sys_user