瀏覽代碼

'学员登录'

Althars123 4 年之前
父節點
當前提交
69d2797686
共有 19 個文件被更改,包括 472 次插入123 次删除
  1. 2 2
      hzgzpt-admin/src/main/java/com/miaxis/app/controller/user/UserInfoController.java
  2. 34 0
      hzgzpt-admin/src/main/java/com/miaxis/system/controller/system/SysLoginController.java
  3. 2 2
      hzgzpt-common/src/main/java/com/miaxis/common/core/domain/entity/UserInfo.java
  4. 29 0
      hzgzpt-common/src/main/java/com/miaxis/common/core/domain/model/LoginBodyMobleCode.java
  5. 23 2
      hzgzpt-common/src/main/java/com/miaxis/common/core/domain/model/LoginUser.java
  6. 30 0
      hzgzpt-common/src/main/java/com/miaxis/common/enums/StudentLoginTypeEnum.java
  7. 1 1
      hzgzpt-framework/src/main/java/com/miaxis/framework/config/SecurityConfig.java
  8. 40 0
      hzgzpt-framework/src/main/java/com/miaxis/framework/security/provider/MobileCodeAuthenticationProvider.java
  9. 103 0
      hzgzpt-framework/src/main/java/com/miaxis/framework/security/token/MoblieCodeAuthenticationToken.java
  10. 54 28
      hzgzpt-framework/src/main/java/com/miaxis/framework/web/service/SysLoginService.java
  11. 45 22
      hzgzpt-framework/src/main/java/com/miaxis/framework/web/service/UserDetailsServiceImpl.java
  12. 3 3
      hzgzpt-service-app/src/main/java/com/miaxis/app/user/mapper/UserInfoMapper.java
  13. 5 5
      hzgzpt-service-app/src/main/java/com/miaxis/app/user/service/IUserInfoService.java
  14. 6 6
      hzgzpt-service-app/src/main/java/com/miaxis/app/user/service/impl/UserInfoServiceImpl.java
  15. 1 1
      hzgzpt-service-app/src/main/resources/mapper/user/UserInfoMapper.xml
  16. 16 11
      hzgzpt-system/src/main/java/com/miaxis/system/mapper/SysUserMapper.java
  17. 12 0
      hzgzpt-system/src/main/java/com/miaxis/system/service/ISysUserService.java
  18. 31 20
      hzgzpt-system/src/main/java/com/miaxis/system/service/impl/SysUserServiceImpl.java
  19. 35 20
      hzgzpt-system/src/main/resources/mapper/system/SysUserMapper.xml

+ 2 - 2
hzgzpt-admin/src/main/java/com/miaxis/app/controller/user/UserInfoController.java

@@ -1,9 +1,8 @@
 package com.miaxis.app.controller.user;
 
-import com.miaxis.app.user.domain.UserInfo;
 import com.miaxis.app.user.dto.UserDto;
-import com.miaxis.app.user.vo.UserVo;
 import com.miaxis.app.user.service.IUserInfoService;
+import com.miaxis.app.user.vo.UserVo;
 import com.miaxis.common.aliyunOSS.AliyunConfig;
 import com.miaxis.common.aliyunOSS.AliyunUpload;
 import com.miaxis.common.annotation.Log;
@@ -11,6 +10,7 @@ import com.miaxis.common.constant.Constants;
 import com.miaxis.common.core.controller.BaseController;
 import com.miaxis.common.core.domain.Response;
 import com.miaxis.common.core.domain.entity.SysUser;
+import com.miaxis.common.core.domain.entity.UserInfo;
 import com.miaxis.common.core.page.ResponsePageInfo;
 import com.miaxis.common.enums.BusinessTypeEnum;
 import com.miaxis.common.utils.SecurityUtils;

+ 34 - 0
hzgzpt-admin/src/main/java/com/miaxis/system/controller/system/SysLoginController.java

@@ -4,8 +4,10 @@ import com.miaxis.common.core.domain.Response;
 import com.miaxis.common.core.domain.entity.SysMenu;
 import com.miaxis.common.core.domain.entity.SysUser;
 import com.miaxis.common.core.domain.model.LoginBody;
+import com.miaxis.common.core.domain.model.LoginBodyMobleCode;
 import com.miaxis.common.core.domain.model.LoginBodyNoCode;
 import com.miaxis.common.core.domain.model.LoginUser;
+import com.miaxis.common.enums.StudentLoginTypeEnum;
 import com.miaxis.common.utils.ServletUtils;
 import com.miaxis.framework.web.service.SysLoginService;
 import com.miaxis.framework.web.service.SysPermissionService;
@@ -78,6 +80,38 @@ public class SysLoginController
         return Response.success(tokenDTO);
     }
 
+
+    /**
+     * 学员用户名密码登录方法
+     *
+     * @param loginBodyNoCode 登录信息
+     * @return 结果
+     */
+    @PostMapping("/login/studentpassword")
+    @ApiOperation("学员用户名密码登录")
+    public Response<TokenDTO> loginStudentpassword(@RequestBody LoginBodyNoCode loginBodyNoCode)
+    {   TokenDTO tokenDTO = new TokenDTO();
+        // 生成令牌
+        String token = loginService.login(loginBodyNoCode.getUsername(), loginBodyNoCode.getPassword(), StudentLoginTypeEnum.PASSWORDLOGIN.getCode());
+        tokenDTO.setToken(token);
+        return Response.success(tokenDTO);
+    }
+
+    /**
+     * 学员用户名密码登录方法
+     *
+     * @return 结果
+     */
+    @PostMapping("/login/studentmobile")
+    @ApiOperation("学员手机验证码登录")
+    public Response<TokenDTO> loginStudentmobile(@RequestBody LoginBodyMobleCode loginBodyMobleCode)
+    {   TokenDTO tokenDTO = new TokenDTO();
+        // 生成令牌
+        String token = loginService.login(loginBodyMobleCode.getMobile(), loginBodyMobleCode.getCode(),StudentLoginTypeEnum.MOBILELOGIN.getCode());
+        tokenDTO.setToken(token);
+        return Response.success(tokenDTO);
+    }
+
     /**
      * 获取用户信息
      *

+ 2 - 2
hzgzpt-service-app/src/main/java/com/miaxis/app/user/domain/UserInfo.java → hzgzpt-common/src/main/java/com/miaxis/common/core/domain/entity/UserInfo.java

@@ -1,4 +1,4 @@
-package com.miaxis.app.user.domain;
+package com.miaxis.common.core.domain.entity;
 
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
@@ -122,4 +122,4 @@ public class UserInfo extends BaseBusinessEntity {
     private Integer status;
 
 
-}
+}

+ 29 - 0
hzgzpt-common/src/main/java/com/miaxis/common/core/domain/model/LoginBodyMobleCode.java

@@ -0,0 +1,29 @@
+package com.miaxis.common.core.domain.model;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 学员手机验证码登录
+ *
+ * @author miaxis
+ */
+@ApiModel(value = "LoginBodyMobleCode", description = "学员手机验证码登录")
+@Data
+public class LoginBodyMobleCode
+{
+    /**
+     * 手机号
+     */
+    @ApiModelProperty(value = "手机号")
+    private String mobile;
+
+    /**
+     * 验证码
+     */
+    @ApiModelProperty(value = "验证码")
+    private String code;
+
+
+}

+ 23 - 2
hzgzpt-common/src/main/java/com/miaxis/common/core/domain/model/LoginUser.java

@@ -1,7 +1,9 @@
 package com.miaxis.common.core.domain.model;
 
+
 import com.fasterxml.jackson.annotation.JsonIgnore;
 import com.miaxis.common.core.domain.entity.SysUser;
+import com.miaxis.common.core.domain.entity.UserInfo;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
@@ -76,6 +78,16 @@ public class LoginUser implements UserDetails
     @ApiModelProperty(value = "用户信息")
     private SysUser user;
 
+    /**
+     * 学员信息
+     */
+    @ApiModelProperty(value = "学员信息")
+    private UserInfo student;
+
+    public LoginUser(UserInfo student) {
+        this.student = student;
+    }
+
     public String getToken()
     {
         return token;
@@ -100,13 +112,22 @@ public class LoginUser implements UserDetails
     @Override
     public String getPassword()
     {
-        return user.getPassword();
+        if (user != null){
+            return user.getPassword();
+        }else{
+            return student.getPassword();
+        }
+
     }
 
     @Override
     public String getUsername()
     {
-        return user.getUserName();
+        if (user != null){
+            return user.getUserName();
+        }else{
+            return student.getMobile();
+        }
     }
 
     /**

+ 30 - 0
hzgzpt-common/src/main/java/com/miaxis/common/enums/StudentLoginTypeEnum.java

@@ -0,0 +1,30 @@
+package com.miaxis.common.enums;
+
+/**
+ * 用户状态
+ *
+ * @author miaxis
+ */
+public enum StudentLoginTypeEnum
+{
+    PASSWORDLOGIN("1", "密码登录"), MOBILELOGIN("2", "手机验证码登录");
+
+    private final String code;
+    private final String info;
+
+    StudentLoginTypeEnum(String code, String info)
+    {
+        this.code = code;
+        this.info = info;
+    }
+
+    public String getCode()
+    {
+        return code;
+    }
+
+    public String getInfo()
+    {
+        return info;
+    }
+}

+ 1 - 1
hzgzpt-framework/src/main/java/com/miaxis/framework/config/SecurityConfig.java

@@ -99,7 +99,7 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter
                 // 对于app 开放页面,允许任意访问
                 .antMatchers("/open/**").permitAll()
                 // 对于登录login 验证码captchaImage 允许匿名访问
-                .antMatchers("/login", "/login/noCode","/captchaImage").anonymous()
+                .antMatchers("/login", "/login/noCode","/captchaImage","/login/studentpassword").anonymous()
                 .antMatchers(
                         HttpMethod.GET,
                         "/*.html",

+ 40 - 0
hzgzpt-framework/src/main/java/com/miaxis/framework/security/provider/MobileCodeAuthenticationProvider.java

@@ -0,0 +1,40 @@
+package com.miaxis.framework.security.provider;
+
+
+import com.miaxis.framework.security.token.MoblieCodeAuthenticationToken;
+import lombok.Data;
+import lombok.extern.log4j.Log4j2;
+import org.springframework.security.authentication.AuthenticationProvider;
+import org.springframework.security.core.Authentication;
+import org.springframework.security.core.AuthenticationException;
+import org.springframework.security.core.userdetails.UserDetails;
+import org.springframework.security.core.userdetails.UserDetailsService;
+
+/**
+ * @author : chenjian
+ * @version v1.0
+ */
+@Log4j2
+@Data
+public class MobileCodeAuthenticationProvider implements  AuthenticationProvider {
+
+    private UserDetailsService userDetailsService;
+    /**
+     * 自定义验证逻辑
+     * @param authentication
+     * @return
+     * @throws AuthenticationException
+     */
+    @Override
+    public Authentication authenticate(Authentication authentication) throws AuthenticationException {
+        UserDetails userDetails = userDetailsService.loadUserByUsername((String) authentication.getPrincipal());
+        MoblieCodeAuthenticationToken moblieCodeAuthenticationToken = new MoblieCodeAuthenticationToken(userDetails,userDetails.getAuthorities());
+        moblieCodeAuthenticationToken.setDetails(moblieCodeAuthenticationToken);
+        return moblieCodeAuthenticationToken;
+    }
+
+    @Override
+    public boolean supports(Class<?> authentication) {
+        return MoblieCodeAuthenticationToken.class.isAssignableFrom(authentication);
+    }
+}

+ 103 - 0
hzgzpt-framework/src/main/java/com/miaxis/framework/security/token/MoblieCodeAuthenticationToken.java

@@ -0,0 +1,103 @@
+/*
+ * Copyright 2004, 2005, 2006 Acegi Technology Pty Limited
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.miaxis.framework.security.token;
+
+import org.springframework.security.authentication.AbstractAuthenticationToken;
+import org.springframework.security.core.GrantedAuthority;
+import org.springframework.security.core.SpringSecurityCoreVersion;
+
+import java.util.Collection;
+
+/**
+ * An {@link org.springframework.security.core.Authentication} implementation that is
+ * designed for simple presentation of a username and password.
+ * <p>
+ * The <code>principal</code> and <code>credentials</code> should be set with an
+ * <code>Object</code> that provides the respective property via its
+ * <code>Object.toString()</code> method. The simplest such <code>Object</code> to use is
+ * <code>String</code>.
+ *
+ * @author Ben Alex
+ */
+public class MoblieCodeAuthenticationToken extends AbstractAuthenticationToken {
+
+	private static final long serialVersionUID = SpringSecurityCoreVersion.SERIAL_VERSION_UID;
+
+	// ~ Instance fields
+	// ================================================================================================
+
+	//主体,认证前是手机号,认证后是用户,因为这里是非密码登录,所以密码字段去掉了
+	private final Object principal;
+
+	// ~ Constructors
+	// ===================================================================================================
+
+	/**
+	 * This constructor can be safely used by any code that wishes to create a
+	 * <code>UsernamePasswordAuthenticationToken</code>, as the {@link #isAuthenticated()}
+	 * will return <code>false</code>.
+	 *
+	 */
+	public MoblieCodeAuthenticationToken(Object principal) {
+		super(null);
+		this.principal = principal;
+		setAuthenticated(false);
+	}
+
+	/**
+	 * This constructor should only be used by <code>AuthenticationManager</code> or
+	 * <code>AuthenticationProvider</code> implementations that are satisfied with
+	 * producing a trusted (i.e. {@link #isAuthenticated()} = <code>true</code>)
+	 * authentication token.
+	 *
+	 * @param principal
+	 * @param authorities
+	 */
+	public MoblieCodeAuthenticationToken(Object principal, Collection<? extends GrantedAuthority> authorities) {
+		super(authorities);
+		this.principal = principal;
+		super.setAuthenticated(true); // must use super, as we override
+	}
+
+	// ~ Methods
+	// ========================================================================================================
+
+
+	@Override
+	public Object getCredentials() {
+		return null;
+	}
+
+	public Object getPrincipal() {
+		return this.principal;
+	}
+
+	public void setAuthenticated(boolean isAuthenticated) throws IllegalArgumentException {
+		if (isAuthenticated) {
+			throw new IllegalArgumentException(
+					"Cannot set this token to trusted - use constructor which takes a GrantedAuthority list instead");
+		}
+
+		super.setAuthenticated(false);
+	}
+
+	@Override
+	public void eraseCredentials() {
+		super.eraseCredentials();
+
+	}
+}

+ 54 - 28
hzgzpt-framework/src/main/java/com/miaxis/framework/web/service/SysLoginService.java

@@ -3,14 +3,19 @@ package com.miaxis.framework.web.service;
 import com.miaxis.common.constant.Constants;
 import com.miaxis.common.core.domain.model.LoginUser;
 import com.miaxis.common.core.redis.RedisCache;
+import com.miaxis.common.enums.StudentLoginTypeEnum;
 import com.miaxis.common.exception.CustomException;
 import com.miaxis.common.exception.user.CaptchaException;
 import com.miaxis.common.exception.user.CaptchaExpireException;
 import com.miaxis.common.exception.user.UserPasswordNotMatchException;
 import com.miaxis.common.utils.MessageUtils;
+import com.miaxis.common.utils.ServletUtils;
+import com.miaxis.common.utils.StringUtils;
 import com.miaxis.framework.manager.AsyncManager;
 import com.miaxis.framework.manager.factory.AsyncFactory;
+import com.miaxis.framework.security.token.MoblieCodeAuthenticationToken;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.security.authentication.AuthenticationManager;
 import org.springframework.security.authentication.BadCredentialsException;
 import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
@@ -36,6 +41,9 @@ public class SysLoginService
     @Autowired
     private RedisCache redisCache;
 
+    @Autowired
+    private RedisTemplate redisTemplate;//redis模板引擎
+
     /**
      * 登录验证 (含验证码)
      *
@@ -61,47 +69,64 @@ public class SysLoginService
             throw new CaptchaException();
         }
         // 用户验证
-        Authentication authentication = null;
-        try
-        {
-            // 该方法会去调用UserDetailsServiceImpl.loadUserByUsername
-            authentication = authenticationManager
-                    .authenticate(new UsernamePasswordAuthenticationToken(username, password));
-        }
-        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 CustomException(e.getMessage());
-            }
-        }
-        AsyncManager.me().execute(AsyncFactory.recordLogininfor(username, Constants.LOGIN_SUCCESS, MessageUtils.message("user.login.success")));
-        LoginUser loginUser = (LoginUser) authentication.getPrincipal();
-        // 生成token
-        return tokenService.createToken(loginUser);
+        return authenticate(username,new UsernamePasswordAuthenticationToken(username, password));
     }
     /**
      * 登录验证 (不含验证码)
      *
-     * @param username 用户名
-     * @param password 密码
      * @return 结果
      */
     public String login(String username, String password) {
 
+        return authenticate(username,new UsernamePasswordAuthenticationToken(username, password));
+    }
+
+
+    /**
+     * 学员登录验证
+     *
+     * @param principal 主体  可以是用户名或者电话号码等
+     * @param credential 密码或者验证码
+     * @param loginType 登录类型 1 学员用户名密码登录 2 学员手机验证码登录
+     * @return 结果
+     */
+    public String login(String principal, String credential, String loginType) {
+
+        ServletUtils.getRequest().setAttribute("loginType",loginType);
         // 用户验证
-        Authentication authentication = null;
+        if (StudentLoginTypeEnum.PASSWORDLOGIN.getCode().equals(loginType)){
+            return authenticate(principal,new UsernamePasswordAuthenticationToken(principal, credential));
+        } else if (StudentLoginTypeEnum.MOBILELOGIN.getCode().equals(loginType)){
+            //验证码是否正确
+            validateCode(principal,credential);
+            return authenticate(principal,new MoblieCodeAuthenticationToken(credential));
+        }
+        else{
+            throw new CustomException("loginType参数错误");
+        }
+
+
+    }
+
+    private void validateCode(String principal, String credential) {
+        if (StringUtils.isEmpty(credential)){
+            throw new CustomException("验证码不能为空");
+        }
+        String cacheCode = (String) redisTemplate.opsForValue().get(Constants.SMS_LOGIN_CODE + principal);
+        if (StringUtils.isEmpty(cacheCode)){
+            throw new CustomException("验证码已过期,请重新发送");
+        }else if (!credential.equals(cacheCode)){
+            throw new CustomException("验证码不正确");
+        }
+    }
+
+    private String authenticate (String username , Authentication authenticationToken){
+         Authentication authentication = null;
         try
         {
             // 该方法会去调用UserDetailsServiceImpl.loadUserByUsername
             authentication = authenticationManager
-                    .authenticate(new UsernamePasswordAuthenticationToken(username, password));
+                    .authenticate(authenticationToken);
         }
         catch (Exception e)
         {
@@ -120,5 +145,6 @@ public class SysLoginService
         LoginUser loginUser = (LoginUser) authentication.getPrincipal();
         // 生成token
         return tokenService.createToken(loginUser);
+
     }
 }

+ 45 - 22
hzgzpt-framework/src/main/java/com/miaxis/framework/web/service/UserDetailsServiceImpl.java

@@ -1,9 +1,13 @@
 package com.miaxis.framework.web.service;
 
 import com.miaxis.common.core.domain.entity.SysUser;
+import com.miaxis.common.core.domain.entity.UserInfo;
 import com.miaxis.common.core.domain.model.LoginUser;
+import com.miaxis.common.enums.StudentLoginTypeEnum;
 import com.miaxis.common.enums.UserStatusEnum;
 import com.miaxis.common.exception.BaseException;
+import com.miaxis.common.exception.CustomException;
+import com.miaxis.common.utils.ServletUtils;
 import com.miaxis.common.utils.StringUtils;
 import com.miaxis.system.service.ISysUserService;
 import org.slf4j.Logger;
@@ -14,8 +18,6 @@ import org.springframework.security.core.userdetails.UserDetailsService;
 import org.springframework.security.core.userdetails.UsernameNotFoundException;
 import org.springframework.stereotype.Service;
 
-import javax.servlet.http.HttpServletRequest;
-
 /**
  * 用户验证处理
  *
@@ -29,32 +31,53 @@ public class UserDetailsServiceImpl implements UserDetailsService
     @Autowired
     private ISysUserService userService;
 
+//    @Autowired
+//    private IUserInfoService studentService;
+
     @Autowired
     private SysPermissionService permissionService;
 
     @Override
-    public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException
-    {
-
-//        HttpServletRequest httpServletRequest = HttpContextUtil.getHttpServletRequest();
-        SysUser user = userService.selectUserByUserName(username);
-        if (StringUtils.isNull(user))
-        {
-            log.info("登录用户:{} 不存在.", username);
-            throw new UsernameNotFoundException("登录用户:" + username + " 不存在");
-        }
-        else if (UserStatusEnum.DELETED.getCode().equals(user.getDelFlag()))
-        {
-            log.info("登录用户:{} 已被删除.", username);
-            throw new BaseException("对不起,您的账号:" + username + " 已被删除");
-        }
-        else if (UserStatusEnum.DISABLE.getCode().equals(user.getStatus()))
-        {
-            log.info("登录用户:{} 已被停用.", username);
-            throw new BaseException("对不起,您的账号:" + username + " 已停用");
+    public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {
+        //获取登录类型
+        String loginType = (String) ServletUtils.getRequest().getAttribute("loginType");
+        if (StringUtils.isEmpty(loginType)){
+            SysUser user = userService.selectUserByUserName(username);
+            if (StringUtils.isNull(user))
+            {
+                log.info("登录用户:{} 不存在.", username);
+                throw new UsernameNotFoundException("登录用户:" + username + " 不存在");
+            }
+            else if (UserStatusEnum.DELETED.getCode().equals(user.getDelFlag()))
+            {
+                log.info("登录用户:{} 已被删除.", username);
+                throw new BaseException("对不起,您的账号:" + username + " 已被删除");
+            }
+            else if (UserStatusEnum.DISABLE.getCode().equals(user.getStatus()))
+            {
+                log.info("登录用户:{} 已被停用.", username);
+                throw new BaseException("对不起,您的账号:" + username + " 已停用");
+            }
+            return createLoginUser(user);
+        } else if (StudentLoginTypeEnum.PASSWORDLOGIN.getCode().equals(loginType)||StudentLoginTypeEnum.MOBILELOGIN.getCode().equals(loginType)){
+            {
+                UserInfo student = userService.getStudentByMobile(username);
+                if (StringUtils.isNull(student)) {
+                    log.info("登录学员用户电话:{} 不存在.", username);
+                    throw new UsernameNotFoundException("该账户不存在");
+                }
+                return createLoginUser(student);
+            }
+        } else{
+            throw new CustomException("登录类型不存在");
         }
 
-        return createLoginUser(user);
+
+
+    }
+
+    private UserDetails createLoginUser(UserInfo student) {
+        return new LoginUser(student);
     }
 
     public UserDetails createLoginUser(SysUser user)

+ 3 - 3
hzgzpt-service-app/src/main/java/com/miaxis/app/user/mapper/UserInfoMapper.java

@@ -1,12 +1,12 @@
 package com.miaxis.app.user.mapper;
 
-import java.util.List;
-
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.miaxis.app.user.domain.UserInfo;
 import com.miaxis.app.user.vo.UserVo;
+import com.miaxis.common.core.domain.entity.UserInfo;
 import org.apache.ibatis.annotations.Param;
 
+import java.util.List;
+
 /**
  * 用户信息Mapper接口
  *

+ 5 - 5
hzgzpt-service-app/src/main/java/com/miaxis/app/user/service/IUserInfoService.java

@@ -1,21 +1,21 @@
 package com.miaxis.app.user.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
-import com.miaxis.app.user.domain.UserInfo;
 import com.miaxis.app.user.dto.UserDto;
 import com.miaxis.common.core.domain.Response;
 import com.miaxis.common.core.domain.entity.SysUser;
+import com.miaxis.common.core.domain.entity.UserInfo;
 
 /**
  * 用户信息Service接口
- * 
+ *
  * @author miaxis
  * @date 2020-12-23
  */
 public interface IUserInfoService extends IService<UserInfo>{
     /**
      * 查询用户信息
-     * 
+     *
      * @param id 用户信息ID
      * @return 用户信息
      */
@@ -23,7 +23,7 @@ public interface IUserInfoService extends IService<UserInfo>{
 
     /**
      * 修改用户信息
-     * 
+     *
      * @param userInfo 用户信息
      * @return 结果
      */
@@ -31,7 +31,7 @@ public interface IUserInfoService extends IService<UserInfo>{
 
     /**
      * 批量删除用户信息
-     * 
+     *
      * @param ids 需要删除的用户信息ID
      * @return 结果
      */

+ 6 - 6
hzgzpt-service-app/src/main/java/com/miaxis/app/user/service/impl/UserInfoServiceImpl.java

@@ -1,7 +1,5 @@
 package com.miaxis.app.user.service.impl;
 
-import java.util.*;
-
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.miaxis.app.sms.ISmsService;
 import com.miaxis.app.sms.domain.SmsParameter;
@@ -9,24 +7,26 @@ import com.miaxis.app.user.domain.UserImages;
 import com.miaxis.app.user.domain.UserPay;
 import com.miaxis.app.user.domain.UserRegister;
 import com.miaxis.app.user.dto.UserDto;
-import com.miaxis.app.user.vo.UserVo;
+import com.miaxis.app.user.mapper.UserInfoMapper;
 import com.miaxis.app.user.mapper.UserPayMapper;
 import com.miaxis.app.user.mapper.UserRegisterMapper;
 import com.miaxis.app.user.service.IUserImagesService;
+import com.miaxis.app.user.service.IUserInfoService;
+import com.miaxis.app.user.vo.UserVo;
 import com.miaxis.common.constant.Constants;
 import com.miaxis.common.constant.SmsTemplateConstants;
 import com.miaxis.common.core.domain.Response;
 import com.miaxis.common.core.domain.entity.SysUser;
+import com.miaxis.common.core.domain.entity.UserInfo;
 import com.miaxis.common.utils.DateUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.stereotype.Service;
-import com.miaxis.app.user.mapper.UserInfoMapper;
-import com.miaxis.app.user.domain.UserInfo;
-import com.miaxis.app.user.service.IUserInfoService;
 import org.springframework.transaction.annotation.Transactional;
 
 import javax.annotation.Resource;
+import java.util.ArrayList;
+import java.util.List;
 
 /**
  * 用户信息Service业务层处理

+ 1 - 1
hzgzpt-service-app/src/main/resources/mapper/user/UserInfoMapper.xml

@@ -149,4 +149,4 @@
         where u.id = #{userId}
     </select>
 
-</mapper>
+</mapper>

+ 16 - 11
hzgzpt-system/src/main/java/com/miaxis/system/mapper/SysUserMapper.java

@@ -1,20 +1,21 @@
 package com.miaxis.system.mapper;
 
 import com.miaxis.common.core.domain.entity.SysUser;
+import com.miaxis.common.core.domain.entity.UserInfo;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
 
 /**
  * 用户表 数据层
- * 
+ *
  * @author miaxis
  */
 public interface SysUserMapper
 {
     /**
      * 根据条件分页查询用户列表
-     * 
+     *
      * @param sysUser 用户信息
      * @return 用户信息集合信息
      */
@@ -22,7 +23,7 @@ public interface SysUserMapper
 
     /**
      * 通过用户名查询用户
-     * 
+     *
      * @param userName 用户名
      * @return 用户对象信息
      */
@@ -30,7 +31,7 @@ public interface SysUserMapper
 
     /**
      * 通过用户ID查询用户
-     * 
+     *
      * @param userId 用户ID
      * @return 用户对象信息
      */
@@ -38,7 +39,7 @@ public interface SysUserMapper
 
     /**
      * 新增用户信息
-     * 
+     *
      * @param user 用户信息
      * @return 结果
      */
@@ -46,7 +47,7 @@ public interface SysUserMapper
 
     /**
      * 修改用户信息
-     * 
+     *
      * @param user 用户信息
      * @return 结果
      */
@@ -54,7 +55,7 @@ public interface SysUserMapper
 
     /**
      * 修改用户头像
-     * 
+     *
      * @param userName 用户名
      * @param avatar 头像地址
      * @return 结果
@@ -63,7 +64,7 @@ public interface SysUserMapper
 
     /**
      * 重置用户密码
-     * 
+     *
      * @param userName 用户名
      * @param password 密码
      * @return 结果
@@ -72,7 +73,7 @@ public interface SysUserMapper
 
     /**
      * 通过用户ID删除用户
-     * 
+     *
      * @param userId 用户ID
      * @return 结果
      */
@@ -80,7 +81,7 @@ public interface SysUserMapper
 
     /**
      * 批量删除用户信息
-     * 
+     *
      * @param userIds 需要删除的用户ID
      * @return 结果
      */
@@ -88,7 +89,7 @@ public interface SysUserMapper
 
     /**
      * 校验用户名称是否唯一
-     * 
+     *
      * @param userName 用户名称
      * @return 结果
      */
@@ -109,4 +110,8 @@ public interface SysUserMapper
      * @return 结果
      */
     public SysUser checkEmailUnique(String email);
+
+    UserInfo getStudentByMobile(String moblie);
+
+    UserInfo getStudentByName(String username);
 }

+ 12 - 0
hzgzpt-system/src/main/java/com/miaxis/system/service/ISysUserService.java

@@ -1,6 +1,7 @@
 package com.miaxis.system.service;
 
 import com.miaxis.common.core.domain.entity.SysUser;
+import com.miaxis.common.core.domain.entity.UserInfo;
 
 import java.util.List;
 
@@ -164,4 +165,15 @@ public interface ISysUserService
      * @return 结果
      */
     public String importUser(List<SysUser> userList, Boolean isUpdateSupport, String operName);
+
+    /**
+     * 通过学员电话查询轩辕信息
+     *
+     * @param moblie 学员电话
+     * @return
+     */
+
+    UserInfo getStudentByMobile(String moblie);
+
+    UserInfo getStudentByName(String username);
 }

+ 31 - 20
hzgzpt-system/src/main/java/com/miaxis/system/service/impl/SysUserServiceImpl.java

@@ -4,6 +4,7 @@ import com.miaxis.common.annotation.DataScope;
 import com.miaxis.common.constant.UserConstants;
 import com.miaxis.common.core.domain.entity.SysRole;
 import com.miaxis.common.core.domain.entity.SysUser;
+import com.miaxis.common.core.domain.entity.UserInfo;
 import com.miaxis.common.exception.CustomException;
 import com.miaxis.common.utils.SecurityUtils;
 import com.miaxis.common.utils.StringUtils;
@@ -24,7 +25,7 @@ import java.util.List;
 
 /**
  * 用户 业务层处理
- * 
+ *
  * @author miaxis
  */
 @Service
@@ -52,7 +53,7 @@ public class SysUserServiceImpl implements ISysUserService
 
     /**
      * 根据条件分页查询用户列表
-     * 
+     *
      * @param user 用户信息
      * @return 用户信息集合信息
      */
@@ -65,7 +66,7 @@ public class SysUserServiceImpl implements ISysUserService
 
     /**
      * 通过用户名查询用户
-     * 
+     *
      * @param userName 用户名
      * @return 用户对象信息
      */
@@ -77,7 +78,7 @@ public class SysUserServiceImpl implements ISysUserService
 
     /**
      * 通过用户ID查询用户
-     * 
+     *
      * @param userId 用户ID
      * @return 用户对象信息
      */
@@ -89,7 +90,7 @@ public class SysUserServiceImpl implements ISysUserService
 
     /**
      * 查询用户所属角色组
-     * 
+     *
      * @param userName 用户名
      * @return 结果
      */
@@ -111,7 +112,7 @@ public class SysUserServiceImpl implements ISysUserService
 
     /**
      * 查询用户所属岗位组
-     * 
+     *
      * @param userName 用户名
      * @return 结果
      */
@@ -133,7 +134,7 @@ public class SysUserServiceImpl implements ISysUserService
 
     /**
      * 校验用户名称是否唯一
-     * 
+     *
      * @param userName 用户名称
      * @return 结果
      */
@@ -186,7 +187,7 @@ public class SysUserServiceImpl implements ISysUserService
 
     /**
      * 校验用户是否允许操作
-     * 
+     *
      * @param user 用户信息
      */
     @Override
@@ -200,7 +201,7 @@ public class SysUserServiceImpl implements ISysUserService
 
     /**
      * 新增保存用户信息
-     * 
+     *
      * @param user 用户信息
      * @return 结果
      */
@@ -219,7 +220,7 @@ public class SysUserServiceImpl implements ISysUserService
 
     /**
      * 修改保存用户信息
-     * 
+     *
      * @param user 用户信息
      * @return 结果
      */
@@ -241,7 +242,7 @@ public class SysUserServiceImpl implements ISysUserService
 
     /**
      * 修改用户状态
-     * 
+     *
      * @param user 用户信息
      * @return 结果
      */
@@ -253,7 +254,7 @@ public class SysUserServiceImpl implements ISysUserService
 
     /**
      * 修改用户基本信息
-     * 
+     *
      * @param user 用户信息
      * @return 结果
      */
@@ -265,7 +266,7 @@ public class SysUserServiceImpl implements ISysUserService
 
     /**
      * 修改用户头像
-     * 
+     *
      * @param userName 用户名
      * @param avatar 头像地址
      * @return 结果
@@ -278,7 +279,7 @@ public class SysUserServiceImpl implements ISysUserService
 
     /**
      * 重置用户密码
-     * 
+     *
      * @param user 用户信息
      * @return 结果
      */
@@ -290,7 +291,7 @@ public class SysUserServiceImpl implements ISysUserService
 
     /**
      * 重置用户密码
-     * 
+     *
      * @param userName 用户名
      * @param password 密码
      * @return 结果
@@ -303,7 +304,7 @@ public class SysUserServiceImpl implements ISysUserService
 
     /**
      * 新增用户角色信息
-     * 
+     *
      * @param user 用户对象
      */
     public void insertUserRole(SysUser user)
@@ -329,7 +330,7 @@ public class SysUserServiceImpl implements ISysUserService
 
     /**
      * 新增用户岗位信息
-     * 
+     *
      * @param user 用户对象
      */
     public void insertUserPost(SysUser user)
@@ -355,7 +356,7 @@ public class SysUserServiceImpl implements ISysUserService
 
     /**
      * 通过用户ID删除用户
-     * 
+     *
      * @param userId 用户ID
      * @return 结果
      */
@@ -371,7 +372,7 @@ public class SysUserServiceImpl implements ISysUserService
 
     /**
      * 批量删除用户信息
-     * 
+     *
      * @param userIds 需要删除的用户ID
      * @return 结果
      */
@@ -387,7 +388,7 @@ public class SysUserServiceImpl implements ISysUserService
 
     /**
      * 导入用户数据
-     * 
+     *
      * @param userList 用户数据列表
      * @param isUpdateSupport 是否更新支持,如果已存在,则进行更新数据
      * @param operName 操作用户
@@ -451,4 +452,14 @@ public class SysUserServiceImpl implements ISysUserService
         }
         return successMsg.toString();
     }
+
+    @Override
+    public UserInfo getStudentByMobile(String moblie) {
+        return userMapper.getStudentByMobile(moblie);
+    }
+
+    @Override
+    public UserInfo getStudentByName(String username) {
+        return userMapper.getStudentByName(username);
+    }
 }

+ 35 - 20
hzgzpt-system/src/main/resources/mapper/system/SysUserMapper.xml

@@ -26,7 +26,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 		<association property="dept"    column="dept_id" javaType="SysDept" resultMap="deptResult" />
 		<collection  property="roles"   javaType="java.util.List"        resultMap="RoleResult" />
 	</resultMap>
-	
+
 	<resultMap id="deptResult" type="SysDept">
 		<id     property="deptId"   column="dept_id"     />
 		<result property="parentId" column="parent_id"   />
@@ -35,7 +35,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 		<result property="leader"   column="leader"      />
 		<result property="status"   column="dept_status" />
 	</resultMap>
-	
+
 	<resultMap id="RoleResult" type="SysRole">
 		<id     property="roleId"       column="role_id"        />
 		<result property="roleName"     column="role_name"      />
@@ -44,9 +44,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 		<result property="dataScope"     column="data_scope"    />
 		<result property="status"       column="role_status"    />
 	</resultMap>
-	
+
 	<sql id="selectUserVo">
-        select u.user_id, u.dept_id, u.user_name, u.nick_name, u.email, u.avatar, u.phonenumber, u.password, u.sex, u.status, u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark, 
+        select u.user_id, u.dept_id, u.user_name, u.nick_name, u.email, u.avatar, u.phonenumber, u.password, u.sex, u.status, u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark,
         d.dept_id, d.parent_id, d.dept_name, d.order_num, d.leader, d.status as dept_status,
         r.role_id, r.role_name, r.role_key, r.role_sort, r.data_scope, r.status as role_status
         from sys_user u
@@ -54,7 +54,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 		    left join sys_user_role ur on u.user_id = ur.user_id
 		    left join sys_role r on r.role_id = ur.role_id
     </sql>
-    
+
+	<sql id="selectUserInfoVo">
+        select id, name, sex, sfzmlx, id_card, crdate, birthday, mobile, password, wechar, openid, inscode, create_time, school_class_type_id, update_time, pxcx, coachnum, status from user_info
+    </sql>
+
     <select id="selectUserList" parameterType="SysUser" resultMap="SysUserResult">
 		select u.user_id, u.dept_id, u.nick_name, u.user_name, u.email, u.avatar, u.phonenumber, u.password, u.sex, u.status, u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark, d.dept_name, d.leader from sys_user u
 		left join sys_dept d on u.dept_id = d.dept_id
@@ -80,29 +84,40 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 		<!-- 数据范围过滤 -->
 		${params.dataScope}
 	</select>
-	
+
 	<select id="selectUserByUserName" parameterType="String" resultMap="SysUserResult">
 	    <include refid="selectUserVo"/>
 		where u.user_name = #{userName}
 	</select>
-	
+
+	<select id="getStudentByMobile" parameterType="String" resultType="com.miaxis.common.core.domain.entity.UserInfo">
+		select * from user_info
+		where mobile = #{mobile}
+	</select>
+	<select id="getStudentByName" parameterType="String" resultType="com.miaxis.common.core.domain.entity.UserInfo">
+		select * from user_info
+		where name = #{name}
+	</select>
+
+
+
 	<select id="selectUserById" parameterType="Long" resultMap="SysUserResult">
 		<include refid="selectUserVo"/>
 		where u.user_id = #{userId}
 	</select>
-	
+
 	<select id="checkUserNameUnique" parameterType="String" resultType="int">
 		select count(1) from sys_user where user_name = #{userName} limit 1
 	</select>
-	
+
 	<select id="checkPhoneUnique" parameterType="String" resultMap="SysUserResult">
 		select user_id, phonenumber from sys_user where phonenumber = #{phonenumber} limit 1
 	</select>
-	
+
 	<select id="checkEmailUnique" parameterType="String" resultMap="SysUserResult">
 		select user_id, email from sys_user where email = #{email} limit 1
 	</select>
-	
+
 	<insert id="insertUser" parameterType="SysUser" useGeneratedKeys="true" keyProperty="userId">
  		insert into sys_user(
  			<if test="userId != null and userId != 0">user_id,</if>
@@ -134,7 +149,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  			sysdate()
  		)
 	</insert>
-	
+
 	<update id="updateUser" parameterType="SysUser">
  		update sys_user
  		<set>
@@ -155,28 +170,28 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  		</set>
  		where user_id = #{userId}
 	</update>
-	
+
 	<update id="updateUserStatus" parameterType="SysUser">
  		update sys_user set status = #{status} where user_id = #{userId}
 	</update>
-	
+
 	<update id="updateUserAvatar" parameterType="SysUser">
  		update sys_user set avatar = #{avatar} where user_name = #{userName}
 	</update>
-	
+
 	<update id="resetUserPwd" parameterType="SysUser">
  		update sys_user set password = #{password} where user_name = #{userName}
 	</update>
-	
+
 	<delete id="deleteUserById" parameterType="Long">
  		delete from sys_user where user_id = #{userId}
  	</delete>
- 	
+
  	<delete id="deleteUserByIds" parameterType="Long">
  		update sys_user set del_flag = '2' where user_id in
  		<foreach collection="array" item="userId" open="(" separator="," close=")">
  			#{userId}
-        </foreach> 
+        </foreach>
  	</delete>
-	
-</mapper> 
+
+</mapper>