//用户登录
@Override
public String userLogin(String userId, String passWord, String vcode,
String reme, HttpServletRequest request,
HttpServletResponse response) {
try {
//获取session中的验证码
String sessionCode = (String) request.getSession().getAttribute(LMSContants.VCODE);
System.out.println("sessionCode:-》"+sessionCode);
// StringUtils.isEmpty 表示 等于空 userName = null 和 ==""
//先校有没有输入用户民和密码 和验证码
if(StringUtils.isEmpty(userId) || StringUtils.isEmpty(passWord)
|| StringUtils.isEmpty(vcode)){
return "系统检测到您的用户名或者密码或者 验证码为空!";
}else{
//在检验验证码
// 先判断验证码 不分大小写
if(vcode.equalsIgnoreCase(sessionCode)){
User user =null;
String em = "^\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*$";
String ph = "^[1][3578]\\d{9}$";
if(userId.matches(em)){//邮箱登录
System.out.println("邮箱登录");
user = userDao.findUniqueEntity("SELECT u FROM User u WHERE u.email=? ", new Object[]{userId});
System.out.println("根据userId查到的用户"+user);
} else if(userId.matches(ph)){//手机号登录
System.out.println("手机号登录");
//SELECT * FROM WHERE PHONE =
user = userDao.findUniqueEntity("SELECT u FROM User u WHERE u.phone=? ", new Object[]{userId});
System.out.println("根据userId查到的用户"+user);
}else{ //就是用户名登录
System.out.println("用户名");
// 验证码 正确 在 查用户名 根据用户名查
user = userDao.get(User.class, userId);
System.out.println("根据userId查到的用户"+user);
}
//查到
if(user != null){
//根据转态 审核1 可以登录 状态 0新建,1审核,2不通过审核,3冻结
if(user.getStatus() == 1){
// 在核对密码 加密已经加密 在核对 时 把密码用 md5加密了密码 就可以检验了
if(user.getPassWord().equals(MD5.getMD5(passWord))){
//把用户存到seession
request.getSession().setAttribute(LMSContants.SESSION_USER, user);
//判断用户是否需要记住一周,如果需要则将用户信息存放在cookie中
if(LMSContants.RECODE_USER_FLAG.equals(reme)){
//用户记住了密码,把用户名存到 cookie中 key value
System.out
.println("IdentiyServiceImpl.login()选了"+reme);
//将用户信息存放在cookie中
CookieTools.addCookie(userId, LMSContants.LOGIN_COOKIE_NAME, LMSContants.COOKIE_MAXAGE, request, response);
}
// 登录成功
//return "恭喜您,登录成功。";
}else{
//密码不正确
return "系统检测到您的密码不正确!";
}
}else{
//用户没激活
return user.getStatus() == 0 || user.getStatus() == 2 ? "用户未通过审核,请联系管理员" : "用户被冻结,请联系管理员";
}
}else{
//没查到根据用户名查
return "系统检测到您的登录名不正确!";
}
}else{
//不正确
return "您输入的验证码不正确,请核实!";
}
}
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
// 登录成功
return "";
}