账号登录:用户名,邮箱,手机号登录/密码

//用户登录
    @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 "";
    }

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

javaGHui

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值