update 优化 三方登录接口代码逻辑
This commit is contained in:
parent
9448782f45
commit
b7c0e76da2
@ -175,13 +175,15 @@ public class SysLoginService {
|
|||||||
return R.fail("对不起,授权信息验证不通过,请退出重试!");
|
return R.fail("对不起,授权信息验证不通过,请退出重试!");
|
||||||
}
|
}
|
||||||
AuthUser authUserData = authUser.getData();
|
AuthUser authUserData = authUser.getData();
|
||||||
SysSocialVo user = sysSocialService.selectByAuthId(authUserData.getSource() + authUserData.getUuid());
|
SysSocialVo social = sysSocialService.selectByAuthId(authUserData.getSource() + authUserData.getUuid());
|
||||||
if (ObjectUtil.isNotNull(user)) {
|
if (ObjectUtil.isNotNull(social)) {
|
||||||
|
SysUser user = userMapper.selectOne(new LambdaQueryWrapper<SysUser>()
|
||||||
|
.eq(SysUser::getUserId, social.getUserId()));
|
||||||
// 执行登录和记录登录信息操作
|
// 执行登录和记录登录信息操作
|
||||||
return loginAndRecord(user.getTenantId(), user.getUserName(), authUserData);
|
return loginAndRecord(user.getTenantId(), user.getUserName(), authUserData);
|
||||||
} else {
|
} else {
|
||||||
// 判断是否已登录
|
// 判断是否已登录
|
||||||
if (LoginHelper.getUserId() == null) {
|
if (!StpUtil.isLogin()) {
|
||||||
return R.fail("授权失败,请先登录才能绑定");
|
return R.fail("授权失败,请先登录才能绑定");
|
||||||
}
|
}
|
||||||
SysSocialBo bo = new SysSocialBo();
|
SysSocialBo bo = new SysSocialBo();
|
||||||
@ -211,10 +213,10 @@ public class SysLoginService {
|
|||||||
*/
|
*/
|
||||||
private R<String> loginAndRecord(String tenantId, String userName, AuthUser authUser) {
|
private R<String> loginAndRecord(String tenantId, String userName, AuthUser authUser) {
|
||||||
checkTenant(tenantId);
|
checkTenant(tenantId);
|
||||||
SysUserVo dbUser = loadUserByUsername(tenantId, userName);
|
SysUserVo user = loadUserByUsername(tenantId, userName);
|
||||||
LoginHelper.loginByDevice(buildLoginUser(dbUser), DeviceType.SOCIAL);
|
LoginHelper.loginByDevice(buildLoginUser(user), DeviceType.SOCIAL);
|
||||||
recordLogininfor(dbUser.getTenantId(), userName, Constants.LOGIN_SUCCESS, MessageUtils.message("user.login.success"));
|
recordLogininfor(user.getTenantId(), userName, Constants.LOGIN_SUCCESS, MessageUtils.message("user.login.success"));
|
||||||
recordLoginInfo(dbUser.getUserId());
|
recordLoginInfo(user.getUserId());
|
||||||
return R.ok(StpUtil.getTokenValue());
|
return R.ok(StpUtil.getTokenValue());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -27,6 +27,11 @@ public class SysSocial extends TenantEntity {
|
|||||||
@TableId(value = "id")
|
@TableId(value = "id")
|
||||||
private Long id;
|
private Long id;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 用户ID
|
||||||
|
*/
|
||||||
|
private Long userId;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 的唯一ID
|
* 的唯一ID
|
||||||
*/
|
*/
|
||||||
@ -57,11 +62,6 @@ public class SysSocial extends TenantEntity {
|
|||||||
*/
|
*/
|
||||||
private String openId;
|
private String openId;
|
||||||
|
|
||||||
/**
|
|
||||||
* 用户的 ID
|
|
||||||
*/
|
|
||||||
private Long userId;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 授权的第三方账号
|
* 授权的第三方账号
|
||||||
*/
|
*/
|
||||||
|
@ -29,6 +29,12 @@ public class SysSocialVo implements Serializable {
|
|||||||
@ExcelProperty(value = "主键")
|
@ExcelProperty(value = "主键")
|
||||||
private Long id;
|
private Long id;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 用户ID
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "用户ID")
|
||||||
|
private Long userId;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 租户ID
|
* 租户ID
|
||||||
*/
|
*/
|
||||||
@ -70,12 +76,6 @@ public class SysSocialVo implements Serializable {
|
|||||||
@ExcelProperty(value = "用户的 open id")
|
@ExcelProperty(value = "用户的 open id")
|
||||||
private String openId;
|
private String openId;
|
||||||
|
|
||||||
/**
|
|
||||||
* 用户的 ID
|
|
||||||
*/
|
|
||||||
@ExcelProperty(value = "用户的 ID")
|
|
||||||
private Long userId;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 授权的第三方账号
|
* 授权的第三方账号
|
||||||
*/
|
*/
|
||||||
|
@ -11,12 +11,4 @@ import org.dromara.system.domain.vo.SysSocialVo;
|
|||||||
*/
|
*/
|
||||||
public interface SysSocialMapper extends BaseMapperPlus<SysSocial, SysSocialVo> {
|
public interface SysSocialMapper extends BaseMapperPlus<SysSocial, SysSocialVo> {
|
||||||
|
|
||||||
/**
|
|
||||||
* 根据 authId 查询 SysSocial 表和 SysUser 表,返回 SysSocialAuthResult 映射的对象
|
|
||||||
*
|
|
||||||
* @param authId 认证ID
|
|
||||||
* @return SysSocial
|
|
||||||
*/
|
|
||||||
SysSocialVo selectByAuthId(String authId);
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -86,12 +86,12 @@ public class SysSocialServiceImpl implements ISysSocialService {
|
|||||||
/**
|
/**
|
||||||
* 根据 authId 查询用户信息
|
* 根据 authId 查询用户信息
|
||||||
*
|
*
|
||||||
* @param authId 用户id
|
* @param authId 认证id
|
||||||
* @return 用户信息
|
* @return 授权信息
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public SysSocialVo selectByAuthId(String authId) {
|
public SysSocialVo selectByAuthId(String authId) {
|
||||||
return baseMapper.selectByAuthId(authId);
|
return baseMapper.selectVoOne(new LambdaQueryWrapper<SysSocial>().eq(SysSocial::getAuthId, authId));
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -4,20 +4,4 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||||
<mapper namespace="org.dromara.system.mapper.SysSocialMapper">
|
<mapper namespace="org.dromara.system.mapper.SysSocialMapper">
|
||||||
|
|
||||||
<resultMap type="org.dromara.system.domain.vo.SysSocialVo" id="SysSocialAuthResult">
|
|
||||||
<id property="id" column="id"/>
|
|
||||||
</resultMap>
|
|
||||||
|
|
||||||
<select id="selectByAuthId" parameterType="String" resultMap="SysSocialAuthResult">
|
|
||||||
select b.user_id,
|
|
||||||
b.tenant_id,
|
|
||||||
b.user_name,
|
|
||||||
b.password,
|
|
||||||
a.auth_id,
|
|
||||||
a.source
|
|
||||||
from sys_social a
|
|
||||||
left join sys_user b on a.user_id = b.user_id
|
|
||||||
where a.auth_id = #{authId}
|
|
||||||
</select>
|
|
||||||
|
|
||||||
</mapper>
|
</mapper>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user