支持手机号码、邮箱登录
This commit is contained in:
@ -29,9 +29,33 @@ public class UserConstants
|
||||
public static final int USERNAME_MIN_LENGTH = 2;
|
||||
public static final int USERNAME_MAX_LENGTH = 20;
|
||||
|
||||
/** 名称是否唯一的返回结果码 */
|
||||
public final static String NAME_UNIQUE = "0";
|
||||
public final static String NAME_NOT_UNIQUE = "1";
|
||||
/** 登录名称是否唯一的返回结果码 */
|
||||
public final static String USER_NAME_UNIQUE = "0";
|
||||
public final static String USER_NAME_NOT_UNIQUE = "1";
|
||||
|
||||
/** 手机号码是否唯一的返回结果 */
|
||||
public final static String USER_PHONE_UNIQUE = "0";
|
||||
public final static String USER_PHONE_NOT_UNIQUE = "1";
|
||||
|
||||
/** e-mail 是否唯一的返回结果 */
|
||||
public final static String USER_EMAIL_UNIQUE = "0";
|
||||
public final static String USER_EMAIL_NOT_UNIQUE = "1";
|
||||
|
||||
/** 部门名称是否唯一的返回结果码 */
|
||||
public final static String DEPT_NAME_UNIQUE = "0";
|
||||
public final static String DEPT_NAME_NOT_UNIQUE = "1";
|
||||
|
||||
/** 角色名称是否唯一的返回结果码 */
|
||||
public final static String ROLE_NAME_UNIQUE = "0";
|
||||
public final static String ROLE_NAME_NOT_UNIQUE = "1";
|
||||
|
||||
/** 菜单名称是否唯一的返回结果码 */
|
||||
public final static String MENU_NAME_UNIQUE = "0";
|
||||
public final static String MENU_NAME_NOT_UNIQUE = "1";
|
||||
|
||||
/** 字典类型是否唯一的返回结果码 */
|
||||
public final static String DICT_TYPE_UNIQUE = "0";
|
||||
public final static String DICT_TYPE_NOT_UNIQUE = "1";
|
||||
|
||||
/**
|
||||
* 密码长度限制
|
||||
@ -39,4 +63,14 @@ public class UserConstants
|
||||
public static final int PASSWORD_MIN_LENGTH = 5;
|
||||
public static final int PASSWORD_MAX_LENGTH = 20;
|
||||
|
||||
/**
|
||||
* 手机号码格式限制
|
||||
*/
|
||||
public static final String MOBILE_PHONE_NUMBER_PATTERN = "^0{0,1}(13[0-9]|15[0-9]|14[0-9]|18[0-9])[0-9]{8}$";
|
||||
|
||||
/**
|
||||
* 邮箱格式限制
|
||||
*/
|
||||
public static final String EMAIL_PATTERN = "^((([a-z]|\\d|[!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])+(\\.([a-z]|\\d|[!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])+)*)|((\\x22)((((\\x20|\\x09)*(\\x0d\\x0a))?(\\x20|\\x09)+)?(([\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x7f]|\\x21|[\\x23-\\x5b]|[\\x5d-\\x7e]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(\\\\([\\x01-\\x09\\x0b\\x0c\\x0d-\\x7f]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]))))*(((\\x20|\\x09)*(\\x0d\\x0a))?(\\x20|\\x09)+)?(\\x22)))@((([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))\\.)+(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))\\.?";
|
||||
|
||||
}
|
||||
|
@ -64,8 +64,18 @@ public class LoginService
|
||||
}
|
||||
|
||||
// 查询用户信息
|
||||
User user = userService.selectUserByName(username);
|
||||
User user = userService.selectUserByLoginName(username);
|
||||
|
||||
if (user == null && maybeMobilePhoneNumber(username))
|
||||
{
|
||||
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"));
|
||||
@ -79,9 +89,27 @@ 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"));
|
||||
return user;
|
||||
}
|
||||
|
||||
private boolean maybeEmail(String username)
|
||||
{
|
||||
if (!username.matches(UserConstants.EMAIL_PATTERN))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
private boolean maybeMobilePhoneNumber(String username)
|
||||
{
|
||||
if (!username.matches(UserConstants.MOBILE_PHONE_NUMBER_PATTERN))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -145,8 +145,8 @@ public class DeptServiceImpl implements IDeptService
|
||||
if (StringUtils.isNotNull(info) && StringUtils.isNotNull(info.getDeptId())
|
||||
&& info.getDeptId().longValue() != deptId.longValue())
|
||||
{
|
||||
return UserConstants.NAME_NOT_UNIQUE;
|
||||
return UserConstants.DEPT_NAME_NOT_UNIQUE;
|
||||
}
|
||||
return UserConstants.NAME_UNIQUE;
|
||||
return UserConstants.DEPT_NAME_UNIQUE;
|
||||
}
|
||||
}
|
||||
|
@ -107,8 +107,8 @@ public class DictTypeServiceImpl implements IDictTypeService
|
||||
DictType dictType = dictTypeMapper.checkDictTypeUnique(dict.getDictType());
|
||||
if (StringUtils.isNotNull(dictType) && dictType.getDictId() != dictId)
|
||||
{
|
||||
return UserConstants.NAME_NOT_UNIQUE;
|
||||
return UserConstants.DICT_TYPE_NOT_UNIQUE;
|
||||
}
|
||||
return UserConstants.NAME_UNIQUE;
|
||||
return UserConstants.DICT_TYPE_UNIQUE;
|
||||
}
|
||||
}
|
||||
|
@ -267,9 +267,9 @@ public class MenuServiceImpl implements IMenuService
|
||||
if (StringUtils.isNotNull(info) && StringUtils.isNotNull(info.getMenuId())
|
||||
&& info.getMenuId().longValue() != menuId.longValue())
|
||||
{
|
||||
return UserConstants.NAME_NOT_UNIQUE;
|
||||
return UserConstants.MENU_NAME_NOT_UNIQUE;
|
||||
}
|
||||
return UserConstants.NAME_UNIQUE;
|
||||
return UserConstants.MENU_NAME_UNIQUE;
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -205,9 +205,9 @@ public class RoleServiceImpl implements IRoleService
|
||||
Role info = roleMapper.checkRoleNameUnique(role.getRoleName());
|
||||
if (StringUtils.isNotNull(info) && StringUtils.isNotNull(info.getRoleId()) && info.getRoleId() != roleId)
|
||||
{
|
||||
return UserConstants.NAME_NOT_UNIQUE;
|
||||
return UserConstants.ROLE_NAME_NOT_UNIQUE;
|
||||
}
|
||||
return UserConstants.NAME_UNIQUE;
|
||||
return UserConstants.ROLE_NAME_UNIQUE;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -171,16 +171,46 @@ public class UserController extends BaseController
|
||||
/**
|
||||
* 校验用户名
|
||||
*/
|
||||
@PostMapping("/checkUserNameUnique")
|
||||
@PostMapping("/checkLoginNameUnique")
|
||||
@ResponseBody
|
||||
public String checkUserNameUnique(User user)
|
||||
public String checkLoginNameUnique(User user)
|
||||
{
|
||||
String uniqueFlag = "0";
|
||||
if (user != null)
|
||||
{
|
||||
uniqueFlag = userService.checkUserNameUnique(user.getLoginName());
|
||||
uniqueFlag = userService.checkLoginNameUnique(user.getLoginName());
|
||||
}
|
||||
return uniqueFlag;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 校验手机号码
|
||||
*/
|
||||
@PostMapping("/checkPhoneUnique")
|
||||
@ResponseBody
|
||||
public String checkPhoneUnique(User user)
|
||||
{
|
||||
String uniqueFlag = "0";
|
||||
if (user != null)
|
||||
{
|
||||
uniqueFlag = userService.checkPhoneUnique(user);
|
||||
}
|
||||
return uniqueFlag;
|
||||
}
|
||||
|
||||
/**
|
||||
* 校验手机号码
|
||||
*/
|
||||
@PostMapping("/checkEmailUnique")
|
||||
@ResponseBody
|
||||
public String checkEmailUnique(User user)
|
||||
{
|
||||
String uniqueFlag = "0";
|
||||
if (user != null)
|
||||
{
|
||||
uniqueFlag = userService.checkEmailUnique(user);
|
||||
}
|
||||
return uniqueFlag;
|
||||
}
|
||||
}
|
@ -25,7 +25,23 @@ public interface UserMapper
|
||||
* @param userName 用户名
|
||||
* @return 用户对象信息
|
||||
*/
|
||||
public User selectUserByName(String userName);
|
||||
public User selectUserByLoginName(String userName);
|
||||
|
||||
/**
|
||||
* 通过手机号码查询用户
|
||||
*
|
||||
* @param userName 用户名
|
||||
* @return 用户对象信息
|
||||
*/
|
||||
public User selectUserByPhoneNumber(String phoneNumber);
|
||||
|
||||
/**
|
||||
* 通过邮箱查询用户
|
||||
*
|
||||
* @param email 邮箱
|
||||
* @return 用户对象信息
|
||||
*/
|
||||
public User selectUserByEmail(String email);
|
||||
|
||||
/**
|
||||
* 通过用户ID查询用户
|
||||
@ -73,6 +89,23 @@ public interface UserMapper
|
||||
* @param loginName 登录名称
|
||||
* @return 结果
|
||||
*/
|
||||
public int checkUserNameUnique(String loginName);
|
||||
public int checkLoginNameUnique(String loginName);
|
||||
|
||||
|
||||
/**
|
||||
* 校验手机号码是否唯一
|
||||
*
|
||||
* @param phonenumber 手机号码
|
||||
* @return 结果
|
||||
*/
|
||||
public User checkPhoneUnique(String phonenumber);
|
||||
|
||||
|
||||
/**
|
||||
* 校验email是否唯一
|
||||
*
|
||||
* @param email 用户邮箱
|
||||
* @return 结果
|
||||
*/
|
||||
public User checkEmailUnique(String email);
|
||||
}
|
||||
|
@ -25,7 +25,23 @@ public interface IUserService
|
||||
* @param userName 用户名
|
||||
* @return 用户对象信息
|
||||
*/
|
||||
public User selectUserByName(String userName);
|
||||
public User selectUserByLoginName(String userName);
|
||||
|
||||
/**
|
||||
* 通过手机号码查询用户
|
||||
*
|
||||
* @param userName 用户名
|
||||
* @return 用户对象信息
|
||||
*/
|
||||
public User selectUserByPhoneNumber(String phoneNumber);
|
||||
|
||||
/**
|
||||
* 通过邮箱查询用户
|
||||
*
|
||||
* @param email 邮箱
|
||||
* @return 用户对象信息
|
||||
*/
|
||||
public User selectUserByEmail(String email);
|
||||
|
||||
/**
|
||||
* 通过用户ID查询用户
|
||||
@ -81,7 +97,25 @@ public interface IUserService
|
||||
* @param loginName 登录名称
|
||||
* @return 结果
|
||||
*/
|
||||
public String checkUserNameUnique(String loginName);
|
||||
public String checkLoginNameUnique(String loginName);
|
||||
|
||||
|
||||
/**
|
||||
* 校验手机号码是否唯一
|
||||
*
|
||||
* @param phonenumber 登录名称
|
||||
* @return 结果
|
||||
*/
|
||||
public String checkPhoneUnique(User user);
|
||||
|
||||
|
||||
/**
|
||||
* 校验email是否唯一
|
||||
*
|
||||
* @param email 登录名称
|
||||
* @return 结果
|
||||
*/
|
||||
public String checkEmailUnique(User user);
|
||||
|
||||
/**
|
||||
* 根据用户ID查询用户所属角色组
|
||||
|
@ -66,9 +66,33 @@ public class UserServiceImpl implements IUserService
|
||||
* @return 用户对象信息
|
||||
*/
|
||||
@Override
|
||||
public User selectUserByName(String userName)
|
||||
public User selectUserByLoginName(String userName)
|
||||
{
|
||||
return userMapper.selectUserByName(userName);
|
||||
return userMapper.selectUserByLoginName(userName);
|
||||
}
|
||||
|
||||
/**
|
||||
* 通过手机号码查询用户
|
||||
*
|
||||
* @param userName 用户名
|
||||
* @return 用户对象信息
|
||||
*/
|
||||
@Override
|
||||
public User selectUserByPhoneNumber(String phoneNumber)
|
||||
{
|
||||
return userMapper.selectUserByPhoneNumber(phoneNumber);
|
||||
}
|
||||
|
||||
/**
|
||||
* 通过邮箱查询用户
|
||||
*
|
||||
* @param email 邮箱
|
||||
* @return 用户对象信息
|
||||
*/
|
||||
@Override
|
||||
public User selectUserByEmail(String email)
|
||||
{
|
||||
return userMapper.selectUserByEmail(email);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -227,18 +251,56 @@ public class UserServiceImpl implements IUserService
|
||||
/**
|
||||
* 校验用户名称是否唯一
|
||||
*
|
||||
* @param userName 用户名
|
||||
* @param loginName 用户名
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public String checkUserNameUnique(String loginName)
|
||||
public String checkLoginNameUnique(String loginName)
|
||||
{
|
||||
int count = userMapper.checkUserNameUnique(loginName);
|
||||
int count = userMapper.checkLoginNameUnique(loginName);
|
||||
if (count > 0)
|
||||
{
|
||||
return UserConstants.NAME_NOT_UNIQUE;
|
||||
return UserConstants.USER_NAME_NOT_UNIQUE;
|
||||
}
|
||||
return UserConstants.NAME_UNIQUE;
|
||||
return UserConstants.USER_NAME_UNIQUE;
|
||||
}
|
||||
|
||||
/**
|
||||
* 校验用户名称是否唯一
|
||||
*
|
||||
* @param phonenumber 用户名
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public String checkPhoneUnique(User user)
|
||||
{
|
||||
Long userId = user.getUserId();
|
||||
User info = userMapper.checkPhoneUnique(user.getPhonenumber());
|
||||
if (StringUtils.isNotNull(info) && StringUtils.isNotNull(info.getUserId())
|
||||
&& info.getUserId().longValue() != userId.longValue())
|
||||
{
|
||||
return UserConstants.USER_PHONE_NOT_UNIQUE;
|
||||
}
|
||||
return UserConstants.USER_PHONE_UNIQUE;
|
||||
}
|
||||
|
||||
/**
|
||||
* 校验email是否唯一
|
||||
*
|
||||
* @param email 用户名
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public String checkEmailUnique(User user)
|
||||
{
|
||||
Long userId = user.getUserId();
|
||||
User info = userMapper.checkEmailUnique(user.getEmail());
|
||||
if (StringUtils.isNotNull(info) && StringUtils.isNotNull(info.getUserId())
|
||||
&& info.getUserId().longValue() != userId.longValue())
|
||||
{
|
||||
return UserConstants.USER_EMAIL_NOT_UNIQUE;
|
||||
}
|
||||
return UserConstants.USER_EMAIL_UNIQUE;
|
||||
}
|
||||
|
||||
/**
|
||||
|
Reference in New Issue
Block a user