mirror of
				https://github.com/dromara/RuoYi-Vue-Plus.git
				synced 2025-11-04 16:23:42 +08:00 
			
		
		
		
	update 优化 SysLoginService#socialRegister 判断是否已经绑定用户 ;
fix 修正 SysSocialServiceImpl#selectByAuthId 重复数据报错问题 ;
This commit is contained in:
		@@ -26,6 +26,7 @@ import org.dromara.common.tenant.exception.TenantException;
 | 
			
		||||
import org.dromara.common.tenant.helper.TenantHelper;
 | 
			
		||||
import org.dromara.system.domain.SysUser;
 | 
			
		||||
import org.dromara.system.domain.bo.SysSocialBo;
 | 
			
		||||
import org.dromara.system.domain.vo.SysSocialVo;
 | 
			
		||||
import org.dromara.system.domain.vo.SysTenantVo;
 | 
			
		||||
import org.dromara.system.domain.vo.SysUserVo;
 | 
			
		||||
import org.dromara.system.mapper.SysUserMapper;
 | 
			
		||||
@@ -69,14 +70,20 @@ public class SysLoginService {
 | 
			
		||||
     * @return 统一响应实体
 | 
			
		||||
     */
 | 
			
		||||
    public void socialRegister(AuthUser authUserData) {
 | 
			
		||||
        SysSocialBo bo = BeanUtil.toBean(authUserData, SysSocialBo.class);
 | 
			
		||||
        BeanUtil.copyProperties(authUserData.getToken(), bo);
 | 
			
		||||
        bo.setUserId(LoginHelper.getUserId());
 | 
			
		||||
        bo.setAuthId(authUserData.getSource() + authUserData.getUuid());
 | 
			
		||||
        bo.setOpenId(authUserData.getUuid());
 | 
			
		||||
        bo.setUserName(authUserData.getUsername());
 | 
			
		||||
        bo.setNickName(authUserData.getNickname());
 | 
			
		||||
        sysSocialService.insertByBo(bo);
 | 
			
		||||
        String authId = authUserData.getSource() + authUserData.getUuid();
 | 
			
		||||
        // 查询是否已经绑定用户
 | 
			
		||||
        SysSocialVo vo = sysSocialService.selectByAuthId(authId);
 | 
			
		||||
        if (ObjectUtil.isEmpty(vo)) {
 | 
			
		||||
            // 没有绑定用户, 新增用户信息
 | 
			
		||||
            SysSocialBo bo = BeanUtil.toBean(authUserData, SysSocialBo.class);
 | 
			
		||||
            BeanUtil.copyProperties(authUserData.getToken(), bo);
 | 
			
		||||
            bo.setUserId(LoginHelper.getUserId());
 | 
			
		||||
            bo.setAuthId(authId);
 | 
			
		||||
            bo.setOpenId(authUserData.getUuid());
 | 
			
		||||
            bo.setUserName(authUserData.getUsername());
 | 
			
		||||
            bo.setNickName(authUserData.getNickname());
 | 
			
		||||
            sysSocialService.insertByBo(bo);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -3,6 +3,7 @@ package org.dromara.system.service.impl;
 | 
			
		||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 | 
			
		||||
import lombok.RequiredArgsConstructor;
 | 
			
		||||
import org.dromara.common.core.utils.MapstructUtils;
 | 
			
		||||
import org.dromara.common.mybatis.core.domain.BaseEntity;
 | 
			
		||||
import org.dromara.system.domain.SysSocial;
 | 
			
		||||
import org.dromara.system.domain.bo.SysSocialBo;
 | 
			
		||||
import org.dromara.system.domain.vo.SysSocialVo;
 | 
			
		||||
@@ -91,7 +92,11 @@ public class SysSocialServiceImpl implements ISysSocialService {
 | 
			
		||||
     */
 | 
			
		||||
    @Override
 | 
			
		||||
    public SysSocialVo selectByAuthId(String authId) {
 | 
			
		||||
        return baseMapper.selectVoOne(new LambdaQueryWrapper<SysSocial>().eq(SysSocial::getAuthId, authId));
 | 
			
		||||
        return baseMapper.selectVoOne(
 | 
			
		||||
            new LambdaQueryWrapper<SysSocial>()
 | 
			
		||||
                .eq(SysSocial::getAuthId, authId)
 | 
			
		||||
                .orderByDesc(BaseEntity::getCreateTime)
 | 
			
		||||
                .last("limit 1"));
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user