新增用户登陆IP,登陆时间
This commit is contained in:
@ -3,7 +3,6 @@ package com.ruoyi.common.utils;
|
||||
import java.text.ParseException;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Date;
|
||||
|
||||
import org.apache.commons.lang3.time.DateFormatUtils;
|
||||
|
||||
/**
|
||||
@ -23,6 +22,16 @@ public class DateUtils
|
||||
|
||||
public static String YYYY_MM_DD_HH_MM_SS = "yyyy-MM-dd HH:mm:ss";
|
||||
|
||||
/**
|
||||
* 获取当前Date型日期
|
||||
*
|
||||
* @return Date() 当前日期
|
||||
*/
|
||||
public static Date getNowDate()
|
||||
{
|
||||
return new Date();
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取当前日期, 默认格式为yyyy-MM-dd
|
||||
*
|
||||
|
@ -32,7 +32,6 @@ import com.ruoyi.project.system.user.domain.User;
|
||||
*
|
||||
* @author ruoyi
|
||||
*/
|
||||
|
||||
@Aspect
|
||||
@Component
|
||||
@EnableAsync
|
||||
|
@ -10,9 +10,11 @@ import com.ruoyi.common.exception.user.CaptchaException;
|
||||
import com.ruoyi.common.exception.user.UserBlockedException;
|
||||
import com.ruoyi.common.exception.user.UserNotExistsException;
|
||||
import com.ruoyi.common.exception.user.UserPasswordNotMatchException;
|
||||
import com.ruoyi.common.utils.DateUtils;
|
||||
import com.ruoyi.common.utils.MessageUtils;
|
||||
import com.ruoyi.common.utils.ServletUtils;
|
||||
import com.ruoyi.common.utils.SystemLogUtils;
|
||||
import com.ruoyi.common.utils.security.ShiroUtils;
|
||||
import com.ruoyi.project.system.user.domain.User;
|
||||
import com.ruoyi.project.system.user.service.IUserService;
|
||||
|
||||
@ -70,12 +72,12 @@ public class LoginService
|
||||
{
|
||||
user = userService.selectUserByPhoneNumber(username);
|
||||
}
|
||||
|
||||
|
||||
if (user == null && maybeEmail(username))
|
||||
{
|
||||
user = userService.selectUserByEmail(username);
|
||||
}
|
||||
|
||||
|
||||
if (user == null)
|
||||
{
|
||||
SystemLogUtils.log(username, CommonConstant.LOGIN_FAIL, MessageUtils.message("user.not.exists"));
|
||||
@ -89,8 +91,8 @@ public class LoginService
|
||||
SystemLogUtils.log(username, CommonConstant.LOGIN_FAIL, MessageUtils.message("user.blocked", user.getRefuseDes()));
|
||||
throw new UserBlockedException(user.getRefuseDes());
|
||||
}
|
||||
|
||||
SystemLogUtils.log(username, CommonConstant.LOGIN_SUCCESS, MessageUtils.message("user.login.success"));
|
||||
recordLoginInfo(user);
|
||||
return user;
|
||||
}
|
||||
|
||||
@ -112,4 +114,14 @@ public class LoginService
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* 记录登录信息
|
||||
*/
|
||||
public void recordLoginInfo(User user)
|
||||
{
|
||||
user.setLoginIp(ShiroUtils.getIp());
|
||||
user.setLoginDate(DateUtils.getNowDate());
|
||||
userService.updateUser(user);
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -22,7 +22,7 @@ public interface ConfigMapper
|
||||
/**
|
||||
* 根据键名查询参数配置信息
|
||||
*
|
||||
* @param configName 参数名称
|
||||
* @param configKey 参数键名
|
||||
* @return 参数配置信息
|
||||
*/
|
||||
public Config selectConfigByKey(String configKey);
|
||||
|
@ -22,7 +22,7 @@ public interface IConfigService
|
||||
/**
|
||||
* 根据键名查询参数配置信息
|
||||
*
|
||||
* @param configName 参数名称
|
||||
* @param configKey 参数键名
|
||||
* @return 参数键值
|
||||
*/
|
||||
public String selectConfigByKey(String configKey);
|
||||
@ -78,7 +78,7 @@ public interface IConfigService
|
||||
/**
|
||||
* 校验参数键名是否唯一
|
||||
*
|
||||
* @param dept 部门信息
|
||||
* @param config 参数信息
|
||||
* @return 结果
|
||||
*/
|
||||
public String checkConfigKeyUnique(Config config);
|
||||
|
@ -1,6 +1,7 @@
|
||||
package com.ruoyi.project.system.user.domain;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.Date;
|
||||
import org.apache.shiro.crypto.SecureRandomNumberGenerator;
|
||||
import com.ruoyi.framework.web.domain.BaseEntity;
|
||||
import com.ruoyi.project.system.dept.domain.Dept;
|
||||
@ -41,6 +42,10 @@ public class User extends BaseEntity
|
||||
private int status;
|
||||
/** 拒绝登录描述 */
|
||||
private String refuseDes;
|
||||
/** 最后登陆IP */
|
||||
private String loginIp;
|
||||
/** 最后登陆时间 */
|
||||
private Date loginDate;
|
||||
/** 部门对象 */
|
||||
private Dept dept;
|
||||
/** 角色组 */
|
||||
@ -199,6 +204,26 @@ public class User extends BaseEntity
|
||||
this.refuseDes = refuseDes;
|
||||
}
|
||||
|
||||
public String getLoginIp()
|
||||
{
|
||||
return loginIp;
|
||||
}
|
||||
|
||||
public void setLoginIp(String loginIp)
|
||||
{
|
||||
this.loginIp = loginIp;
|
||||
}
|
||||
|
||||
public Date getLoginDate()
|
||||
{
|
||||
return loginDate;
|
||||
}
|
||||
|
||||
public void setLoginDate(Date loginDate)
|
||||
{
|
||||
this.loginDate = loginDate;
|
||||
}
|
||||
|
||||
public Dept getDept()
|
||||
{
|
||||
return dept;
|
||||
|
@ -30,7 +30,7 @@ public interface UserMapper
|
||||
/**
|
||||
* 通过手机号码查询用户
|
||||
*
|
||||
* @param userName 用户名
|
||||
* @param phoneNumber 手机号码
|
||||
* @return 用户对象信息
|
||||
*/
|
||||
public User selectUserByPhoneNumber(String phoneNumber);
|
||||
|
@ -30,7 +30,7 @@ public interface IUserService
|
||||
/**
|
||||
* 通过手机号码查询用户
|
||||
*
|
||||
* @param userName 用户名
|
||||
* @param phoneNumber 手机号码
|
||||
* @return 用户对象信息
|
||||
*/
|
||||
public User selectUserByPhoneNumber(String phoneNumber);
|
||||
@ -103,7 +103,7 @@ public interface IUserService
|
||||
/**
|
||||
* 校验手机号码是否唯一
|
||||
*
|
||||
* @param phonenumber 登录名称
|
||||
* @param user 用户信息
|
||||
* @return 结果
|
||||
*/
|
||||
public String checkPhoneUnique(User user);
|
||||
@ -112,7 +112,7 @@ public interface IUserService
|
||||
/**
|
||||
* 校验email是否唯一
|
||||
*
|
||||
* @param email 登录名称
|
||||
* @param user 用户信息
|
||||
* @return 结果
|
||||
*/
|
||||
public String checkEmailUnique(User user);
|
||||
|
@ -5,6 +5,7 @@ import java.util.List;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import com.ruoyi.common.constant.UserConstants;
|
||||
import com.ruoyi.common.utils.DateUtils;
|
||||
import com.ruoyi.common.utils.StringUtils;
|
||||
import com.ruoyi.common.utils.security.ShiroUtils;
|
||||
import com.ruoyi.framework.shiro.service.PasswordService;
|
||||
@ -152,7 +153,7 @@ public class UserServiceImpl implements IUserService
|
||||
{
|
||||
user.setUpdateBy(ShiroUtils.getLoginName());
|
||||
// 修改用户信息
|
||||
count = userMapper.updateUser(user);
|
||||
count = updateUser(user);
|
||||
// 删除用户与角色关联
|
||||
userRoleMapper.deleteUserRoleByUserId(userId);
|
||||
// 新增用户与角色管理
|
||||
@ -201,7 +202,7 @@ public class UserServiceImpl implements IUserService
|
||||
{
|
||||
user.randomSalt();
|
||||
user.setPassword(passwordService.encryptPassword(user.getLoginName(), user.getPassword(), user.getSalt()));
|
||||
return userMapper.updateUser(user);
|
||||
return updateUser(user);
|
||||
}
|
||||
|
||||
/**
|
||||
|
Reference in New Issue
Block a user