浏览代码

登录、注册修改

LIVE_YE 1 年之前
父节点
当前提交
beed8d7088

+ 22 - 0
ruoyi-framework/src/main/java/com/ruoyi/framework/web/domain/AppletLoginForm.java

@@ -21,6 +21,28 @@ public class AppletLoginForm {
     // 向量
     // 向量
     private String iv;
     private String iv;
 
 
+    // 登录账号
+    private String username;
+
+    // 密码
+    private String password;
+
+    public String getUsername() {
+        return username;
+    }
+
+    public String getPassword() {
+        return password;
+    }
+
+    public void setUsername(String username) {
+        this.username = username;
+    }
+
+    public void setPassword(String password) {
+        this.password = password;
+    }
+
     public String getCode() {
     public String getCode() {
         return code;
         return code;
     }
     }

+ 38 - 1
ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysLoginService.java

@@ -118,6 +118,43 @@ public class SysLoginService
      */
      */
     public String weChatLogin(AppletLoginForm form)
     public String weChatLogin(AppletLoginForm form)
     {
     {
+        if(StringUtils.isNotEmpty(form.getUsername()) && StringUtils.isNotEmpty(form.getPassword())){
+            // 登录前置校验
+            loginPreCheck(form.getUsername(), form.getPassword());
+            // 用户验证
+            Authentication authentication = null;
+            String username = form.getUsername();
+            String password = form.getPassword();
+            try
+            {
+                UsernamePasswordAuthenticationToken authenticationToken = new UsernamePasswordAuthenticationToken(username, password);
+                AuthenticationContextHolder.setContext(authenticationToken);
+                // 该方法会去调用UserDetailsServiceImpl.loadUserByUsername
+                authentication = authenticationManager.authenticate(authenticationToken);
+            }
+            catch (Exception e)
+            {
+                if (e instanceof BadCredentialsException)
+                {
+                    AsyncManager.me().execute(AsyncFactory.recordLogininfor(username, Constants.LOGIN_FAIL, MessageUtils.message("user.password.not.match")));
+                    throw new UserPasswordNotMatchException();
+                }
+                else
+                {
+                    AsyncManager.me().execute(AsyncFactory.recordLogininfor(username, Constants.LOGIN_FAIL, e.getMessage()));
+                    throw new ServiceException(e.getMessage());
+                }
+            }
+            finally
+            {
+                AuthenticationContextHolder.clearContext();
+            }
+            AsyncManager.me().execute(AsyncFactory.recordLogininfor(form.getUsername(), Constants.LOGIN_SUCCESS, MessageUtils.message("user.login.success")));
+            LoginUser loginUser = (LoginUser) authentication.getPrincipal();
+            recordLoginInfo(loginUser.getUserId());
+            // 生成token
+            return tokenService.createToken(loginUser);
+        }
         //用户唯一标识 OpenID 、 用户在微信开放平台帐号下的唯一标识UnionID
         //用户唯一标识 OpenID 、 用户在微信开放平台帐号下的唯一标识UnionID
         // (若当前小程序已绑定到微信开放平台帐号) 和 会话密钥 session_key
         // (若当前小程序已绑定到微信开放平台帐号) 和 会话密钥 session_key
         AppletSessionDTO dto = WxCodeSessionUtil.jscode2Session(form);
         AppletSessionDTO dto = WxCodeSessionUtil.jscode2Session(form);
@@ -144,7 +181,7 @@ public class SysLoginService
 
 
             throw new ServiceException("对不起,您的账号:" + phonenumber + " 已停用");
             throw new ServiceException("对不起,您的账号:" + phonenumber + " 已停用");
         }
         }
-        passwordService.validate(user);
+        //passwordService.validate(user);
         LoginUser loginUser = createLoginUser(user);
         LoginUser loginUser = createLoginUser(user);
         recordLoginInfo(loginUser.getUserId());
         recordLoginInfo(loginUser.getUserId());
         return tokenService.createToken(loginUser);
         return tokenService.createToken(loginUser);

+ 3 - 3
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/ZhxyShyjServiceImpl.java

@@ -125,7 +125,7 @@ public class ZhxyShyjServiceImpl implements IZhxyShyjService
                 dept.setCreateTime(DateUtils.getNowDate());
                 dept.setCreateTime(DateUtils.getNowDate());
                 deptMapper.insertDept(dept);
                 deptMapper.insertDept(dept);
                 //判断是否存在账号
                 //判断是否存在账号
-                SysUser use = userMapper.getByOpenId(registerSchool.getOpenId());
+                SysUser use = userMapper.getByPhone(registerSchool.getUserPhone());
                 if(use==null){
                 if(use==null){
                     use = new SysUser();
                     use = new SysUser();
                     //生成账号
                     //生成账号
@@ -174,7 +174,7 @@ public class ZhxyShyjServiceImpl implements IZhxyShyjService
                 registerTeacherMapper.updateRegisterTeacher(registerTeacher);
                 registerTeacherMapper.updateRegisterTeacher(registerTeacher);
                 //生成账号
                 //生成账号
                 //判断是否存在账号
                 //判断是否存在账号
-                SysUser use = userMapper.getByOpenId(registerTeacher.getOpenId());
+                SysUser use = userMapper.getByPhone(registerTeacher.getUserPhone());
                 if(use==null){
                 if(use==null){
                     use = new SysUser();
                     use = new SysUser();
                     use.setOpenId(registerTeacher.getOpenId());
                     use.setOpenId(registerTeacher.getOpenId());
@@ -226,7 +226,7 @@ public class ZhxyShyjServiceImpl implements IZhxyShyjService
 
 
                 //通过  修改注册表审核结果,生成账号, 新增用户与角色管理,家长-学生(审核通过之后数据)
                 //通过  修改注册表审核结果,生成账号, 新增用户与角色管理,家长-学生(审核通过之后数据)
                 //查询是否存在账号
                 //查询是否存在账号
-                SysUser sysUser = userMapper.getByOpenId(registerParents.getOpenId());
+                SysUser sysUser = userMapper.getByPhone(registerParents.getUserPhone());
 
 
                 //修改注册表审核结果
                 //修改注册表审核结果
                 registerParentsStudent.setAuditId(user.getUserId());
                 registerParentsStudent.setAuditId(user.getUserId());