feige
2024-08-29 b39a20d6b37f96e1d44c6c194ce56bd30593e3ad
登录用用户昵称了
8个文件已修改
78 ■■■■ 已修改文件
ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysLoginController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-common/src/main/java/com/ruoyi/common/core/domain/model/LoginBody.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysLoginService.java 19 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserMapper.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserService.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysLoginController.java
@@ -48,7 +48,7 @@
    public AjaxResult login(@RequestBody LoginBody loginBody)
    {
        // 生成令牌
        String token = loginService.login(loginBody.getUsername(), loginBody.getPassword(), loginBody.getCode(),
        String token = loginService.login(loginBody.getNickName(), loginBody.getPassword(), loginBody.getCode(),
                loginBody.getUuid());
        HashMap<String, String> tokenMap = new HashMap<>();
ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java
@@ -252,9 +252,10 @@
//        user.setSex(userAll.getSex()=="男"?"1":"0");
    //    user.setPostIds(userAll.getPostIds());
      //  user.set
        if (!userService.checkUserNameUnique(user))
        if (!userService.checkNickNameUnique(user))
        {
            return error("新增用户'" + user.getUserName() + "'失败,登录账号已存在");
            return error("新增用户'" + user.getNickName() + "'失败,登录账号已存在");
        }
        else if (StringUtils.isNotEmpty(user.getPhonenumber()) && !userService.checkPhoneUnique(user))
        {
ruoyi-common/src/main/java/com/ruoyi/common/core/domain/model/LoginBody.java
@@ -7,11 +7,22 @@
 */
public class LoginBody
{
    public String getNickName() {
        return nickName;
    }
    public void setNickName(String nickName) {
        this.nickName = nickName;
    }
    /**
     * 用户名
     */
    private String username;
    private String nickName;
    /**
     * 用户密码
     */
ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysLoginService.java
@@ -115,23 +115,23 @@
    /**
     * 登录验证
     * 
     * @param username 用户名
     * @param nickName 用户名
     * @param password 密码
     * @param code 验证码
     * @param uuid 唯一标识
     * @return 结果
     */
    public String login(String username, String password, String code, String uuid)
    public String login(String nickName, String password, String code, String uuid)
    {
        // 验证码校验
        validateCaptcha(username, code, uuid);
        validateCaptcha(nickName, code, uuid);
        // 登录前置校验
        loginPreCheck(username, password);
        loginPreCheck(nickName, password);
        // 用户验证
        Authentication authentication = null;
        try
        {
            UsernamePasswordAuthenticationToken authenticationToken = new UsernamePasswordAuthenticationToken(username, password);
            UsernamePasswordAuthenticationToken authenticationToken = new UsernamePasswordAuthenticationToken(nickName, password);
            AuthenticationContextHolder.setContext(authenticationToken);
            // 该方法会去调用UserDetailsServiceImpl.loadUserByUsername
            authentication = authenticationManager.authenticate(authenticationToken);
@@ -140,12 +140,12 @@
        {
            if (e instanceof BadCredentialsException)
            {
                AsyncManager.me().execute(AsyncFactory.recordLogininfor(username, Constants.LOGIN_FAIL, MessageUtils.message("user.password.not.match")));
                AsyncManager.me().execute(AsyncFactory.recordLogininfor(nickName, Constants.LOGIN_FAIL, MessageUtils.message("user.password.not.match")));
                throw new UserPasswordNotMatchException();
            }
            else
            {
                AsyncManager.me().execute(AsyncFactory.recordLogininfor(username, Constants.LOGIN_FAIL, e.getMessage()));
                AsyncManager.me().execute(AsyncFactory.recordLogininfor(nickName, Constants.LOGIN_FAIL, e.getMessage()));
                throw new ServiceException(e.getMessage());
            }
        }
@@ -153,12 +153,13 @@
        {
            AuthenticationContextHolder.clearContext();
        }
        AsyncManager.me().execute(AsyncFactory.recordLogininfor(username, Constants.LOGIN_SUCCESS, MessageUtils.message("user.login.success")));
        AsyncManager.me().execute(AsyncFactory.recordLogininfor(nickName, Constants.LOGIN_SUCCESS, MessageUtils.message("user.login.success")));
        LoginUser loginUser = (LoginUser) authentication.getPrincipal();
        recordLoginInfo(loginUser.getUserId());
        SysUser sysUser = userService.selectUserByUserName(username);
        SysUser sysUser = userService.selectUserByNickName(nickName);
                //.selectUserByUserName(username);
        Long userId = sysUser.getUserId();
        // 生成token
ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserMapper.java
@@ -45,6 +45,9 @@
     */
    public SysUser selectUserByUserName(String userName);
    public SysUser selectUserByNickName(String nickName);
    /**
     * 通过用户ID查询用户
     * 
@@ -115,6 +118,10 @@
     */
    public SysUser checkUserNameUnique(String userName);
    public SysUser checkNickNameUnique(String nickName);
    /**
     * 校验手机号码是否唯一
     *
ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserService.java
@@ -48,6 +48,9 @@
     */
    public SysUser selectUserByUserName(String userName);
    public SysUser selectUserByNickName(String nickName);
    /**
     * 通过用户ID查询用户
     * 
@@ -80,6 +83,10 @@
     */
    public boolean checkUserNameUnique(SysUser user);
    public boolean checkNickNameUnique(SysUser user);
    /**
     * 校验手机号码是否唯一
     *
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java
@@ -135,6 +135,11 @@
        return userMapper.selectUserByUserName(userName);
    }
    @Override
    public SysUser selectUserByNickName(String nickName) {
        return userMapper.selectUserByNickName(nickName);
    }
    /**
     * 通过用户ID查询用户
     * 
@@ -199,6 +204,17 @@
        return UserConstants.UNIQUE;
    }
    @Override
    public boolean checkNickNameUnique(SysUser user) {
        Long userId = StringUtils.isNull(user.getUserId()) ? -1L : user.getUserId();
        SysUser info = userMapper.checkUserNameUnique(user.getUserName());
        if (StringUtils.isNotNull(info) && info.getUserId().longValue() != userId.longValue())
        {
            return UserConstants.NOT_UNIQUE;
        }
        return UserConstants.UNIQUE;
    }
    /**
     * 校验手机号码是否唯一
     *
ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml
@@ -134,6 +134,13 @@
        where u.user_name = #{userName} and u.del_flag = '0'
    </select>
    
    <select id="selectUserByNickName" parameterType="String" resultMap="SysUserResult">
        <include refid="selectUserVo"/>
        where u.nick_name = #{nickName} and u.del_flag = '0'
    </select>
    <select id="selectUserById" parameterType="Long" resultMap="SysUserResult">
        <include refid="selectUserVo"/>
        where u.user_id = #{userId}
@@ -142,7 +149,9 @@
    <select id="checkUserNameUnique" parameterType="String" resultMap="SysUserResult">
        select user_id, user_name from sys_user where user_name = #{userName} and del_flag = '0' limit 1
    </select>
    <select id="checkNickNameUnique" parameterType="String" resultMap="SysUserResult">
        select user_id, nick_name from sys_user where nick_name = #{nickName} and del_flag = '0' limit 1
    </select>
    <select id="checkPhoneUnique" parameterType="String" resultMap="SysUserResult">
        select user_id, phonenumber from sys_user where phonenumber = #{phonenumber} and del_flag = '0' limit 1
    </select>