|
|
|
@@ -5,6 +5,7 @@ import cn.dev33.satoken.stp.SaLoginConfig;
|
|
|
|
|
import cn.dev33.satoken.stp.SaTokenInfo;
|
|
|
|
|
import cn.dev33.satoken.stp.StpUtil;
|
|
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
|
|
import com.schisandra.auth.common.entity.Result;
|
|
|
|
|
import com.schisandra.auth.common.enums.IsDeletedFlagEnum;
|
|
|
|
|
import com.schisandra.auth.common.enums.UserRoleEnum;
|
|
|
|
|
import com.schisandra.auth.common.enums.UserStatusEnum;
|
|
|
|
@@ -163,12 +164,49 @@ public class SchisandraAuthUserDomainServiceImpl implements SchisandraAuthUserDo
|
|
|
|
|
*/
|
|
|
|
|
@Override
|
|
|
|
|
@Transactional
|
|
|
|
|
public void insertAuthUserByOauth(AuthUser data, String type) {
|
|
|
|
|
public Result insertAuthUserByOauth(AuthUser data, String type) {
|
|
|
|
|
String uuid = data.getUuid();
|
|
|
|
|
AuthToken token = data.getToken();
|
|
|
|
|
SchisandraAuthSocialUser authSocialUser = schisandraAuthSocialUserService.selectByUuidAndType(uuid, type);
|
|
|
|
|
Long socialUserId = authSocialUser.getId();
|
|
|
|
|
if (ObjectUtils.isEmpty(authSocialUser)) {
|
|
|
|
|
if (ObjectUtils.isNotEmpty(authSocialUser)) {
|
|
|
|
|
// 更新社会用户信息表
|
|
|
|
|
SchisandraAuthSocialUserBO schisandraAuthSocialUserBO = new SchisandraAuthSocialUserBO();
|
|
|
|
|
schisandraAuthSocialUserBO.setAccessToken(token.getAccessToken());
|
|
|
|
|
schisandraAuthSocialUserBO.setSource(data.getSource());
|
|
|
|
|
schisandraAuthSocialUserBO.setUid(token.getUid());
|
|
|
|
|
schisandraAuthSocialUserBO.setOpenId(token.getOpenId());
|
|
|
|
|
schisandraAuthSocialUserBO.setCode(token.getCode());
|
|
|
|
|
schisandraAuthSocialUserBO.setAccessCode(token.getAccessCode());
|
|
|
|
|
schisandraAuthSocialUserBO.setExpireIn(token.getExpireIn());
|
|
|
|
|
schisandraAuthSocialUserBO.setIdToken(token.getIdToken());
|
|
|
|
|
schisandraAuthSocialUserBO.setMacAlgorithm(token.getMacAlgorithm());
|
|
|
|
|
schisandraAuthSocialUserBO.setMacKey(token.getMacKey());
|
|
|
|
|
schisandraAuthSocialUserBO.setOauthToken(token.getOauthToken());
|
|
|
|
|
schisandraAuthSocialUserBO.setOauthTokenSecret(token.getOauthTokenSecret());
|
|
|
|
|
schisandraAuthSocialUserBO.setRefreshToken(token.getRefreshToken());
|
|
|
|
|
schisandraAuthSocialUserBO.setId(authSocialUser.getId());
|
|
|
|
|
SchisandraAuthSocialUser schisandraAuthSocialUser = SchisandraAuthSocialUserBOConverter.INSTANCE.convertBOToEntity(schisandraAuthSocialUserBO);
|
|
|
|
|
int update = schisandraAuthSocialUserService.updateByOauth(schisandraAuthSocialUser);
|
|
|
|
|
if (update <= 0) {
|
|
|
|
|
if (log.isInfoEnabled()) {
|
|
|
|
|
log.error("schisandraAuthSocialUserService.update fail, param:{}", JSONObject.toJSONString(schisandraAuthSocialUser));
|
|
|
|
|
}
|
|
|
|
|
return Result.fail("Social User update fail");
|
|
|
|
|
}
|
|
|
|
|
SchisandraAuthSocialUserMapper schisandraAuthSocialUserMapper = new SchisandraAuthSocialUserMapper();
|
|
|
|
|
schisandraAuthSocialUserMapper.setSocialUserId(authSocialUser.getId());
|
|
|
|
|
SchisandraAuthSocialUserMapper result = schisandraAuthSocialUserMapperService.queryByCondition(schisandraAuthSocialUserMapper);
|
|
|
|
|
if (ObjectUtils.isEmpty(result)) {
|
|
|
|
|
if (log.isInfoEnabled()) {
|
|
|
|
|
log.error("schisandraAuthSocialUserMapperService.queryByCondition fail, param:{}", JSONObject.toJSONString(schisandraAuthSocialUserMapper));
|
|
|
|
|
}
|
|
|
|
|
return Result.fail("Social Mapper is empty");
|
|
|
|
|
}
|
|
|
|
|
Long userId = result.getUserId();
|
|
|
|
|
StpUtil.login(userId, SaLoginConfig.setToken(token.getAccessToken()));
|
|
|
|
|
return Result.ok();
|
|
|
|
|
} else {
|
|
|
|
|
// 插入用户信息表
|
|
|
|
|
SchisandraAuthUserBO schisandraAuthUserBO = new SchisandraAuthUserBO();
|
|
|
|
|
schisandraAuthUserBO.setAvatar(data.getAvatar());
|
|
|
|
|
schisandraAuthUserBO.setBlog(data.getBlog());
|
|
|
|
@@ -187,8 +225,9 @@ public class SchisandraAuthUserDomainServiceImpl implements SchisandraAuthUserDo
|
|
|
|
|
if (log.isInfoEnabled()) {
|
|
|
|
|
log.error("insertAuthUserByOauth fail, param:{}", JSONObject.toJSONString(schisandraAuthUser));
|
|
|
|
|
}
|
|
|
|
|
return;
|
|
|
|
|
return Result.fail("insertAuthUserByOauth.insertAuthUserByOauth fail");
|
|
|
|
|
}
|
|
|
|
|
// 插入社会用户信息表
|
|
|
|
|
SchisandraAuthSocialUserBO schisandraAuthSocialUserBO = new SchisandraAuthSocialUserBO();
|
|
|
|
|
schisandraAuthSocialUserBO.setUuid(data.getUuid());
|
|
|
|
|
schisandraAuthSocialUserBO.setAccessToken(token.getAccessToken());
|
|
|
|
@@ -215,11 +254,12 @@ public class SchisandraAuthUserDomainServiceImpl implements SchisandraAuthUserDo
|
|
|
|
|
if (log.isInfoEnabled()) {
|
|
|
|
|
log.error("insertAuthSocialUserByOauth fail, param:{}", JSONObject.toJSONString(schisandraAuthSocialUserBO));
|
|
|
|
|
}
|
|
|
|
|
return;
|
|
|
|
|
return Result.fail("schisandraAuthSocialUserService insert fail");
|
|
|
|
|
}
|
|
|
|
|
Long authUserId = schisandraAuthUser.getId();
|
|
|
|
|
Long authSocialUserId = schisandraAuthSocialUserBO.getId();
|
|
|
|
|
|
|
|
|
|
// 建立用户与社会信息映射关系
|
|
|
|
|
Long authUserId = schisandraAuthUser.getId();
|
|
|
|
|
Long authSocialUserId = schisandraAuthSocialUser.getId();
|
|
|
|
|
SchisandraAuthSocialUserMapperBO schisandraAuthSocialUserMapperBO = new SchisandraAuthSocialUserMapperBO();
|
|
|
|
|
schisandraAuthSocialUserMapperBO.setUserId(authUserId);
|
|
|
|
|
schisandraAuthSocialUserMapperBO.setSocialUserId(authSocialUserId);
|
|
|
|
@@ -230,8 +270,9 @@ public class SchisandraAuthUserDomainServiceImpl implements SchisandraAuthUserDo
|
|
|
|
|
if (log.isInfoEnabled()) {
|
|
|
|
|
log.error("insertAuthSocialUserMapperByOauth fail, param:{}", JSONObject.toJSONString(schisandraAuthSocialUserMapperBO));
|
|
|
|
|
}
|
|
|
|
|
return;
|
|
|
|
|
return Result.fail("insertAuthSocialUserMapperByOauth fail");
|
|
|
|
|
}
|
|
|
|
|
// 建立用户与角色映射关系
|
|
|
|
|
SchisandraAuthUserRoleBO schisandraAuthUserRoleBO = new SchisandraAuthUserRoleBO();
|
|
|
|
|
schisandraAuthUserRoleBO.setUserId(authUserId);
|
|
|
|
|
schisandraAuthUserRoleBO.setRoleId((long) UserRoleEnum.normal_user.getCode());
|
|
|
|
@@ -242,43 +283,12 @@ public class SchisandraAuthUserDomainServiceImpl implements SchisandraAuthUserDo
|
|
|
|
|
if (log.isInfoEnabled()) {
|
|
|
|
|
log.error("insertUserRole fail, param:{}", JSONObject.toJSONString(schisandraAuthUserRole));
|
|
|
|
|
}
|
|
|
|
|
return;
|
|
|
|
|
return Result.fail("insertUserRole fail");
|
|
|
|
|
}
|
|
|
|
|
StpUtil.login(data.getUuid(), SaLoginConfig.setToken(token.getAccessToken()));
|
|
|
|
|
String key = redisUtil.buildKey(OAUTH_KEY_PREFIX, token.getAccessToken()+"."+token.getUid());
|
|
|
|
|
redisUtil.setNx(key, String.valueOf(authUserId), 60L * 5, SECONDS);
|
|
|
|
|
StpUtil.login(authUserId, SaLoginConfig.setToken(token.getAccessToken()));
|
|
|
|
|
return Result.ok();
|
|
|
|
|
}
|
|
|
|
|
SchisandraAuthSocialUserBO schisandraAuthSocialUserBO = new SchisandraAuthSocialUserBO();
|
|
|
|
|
schisandraAuthSocialUserBO.setAccessToken(token.getAccessToken());
|
|
|
|
|
schisandraAuthSocialUserBO.setSource(data.getSource());
|
|
|
|
|
schisandraAuthSocialUserBO.setUid(token.getUid());
|
|
|
|
|
schisandraAuthSocialUserBO.setOpenId(token.getOpenId());
|
|
|
|
|
schisandraAuthSocialUserBO.setCode(token.getCode());
|
|
|
|
|
schisandraAuthSocialUserBO.setAccessCode(token.getAccessCode());
|
|
|
|
|
schisandraAuthSocialUserBO.setExpireIn(token.getExpireIn());
|
|
|
|
|
schisandraAuthSocialUserBO.setIdToken(token.getIdToken());
|
|
|
|
|
schisandraAuthSocialUserBO.setMacAlgorithm(token.getMacAlgorithm());
|
|
|
|
|
schisandraAuthSocialUserBO.setMacKey(token.getMacKey());
|
|
|
|
|
schisandraAuthSocialUserBO.setOauthToken(token.getOauthToken());
|
|
|
|
|
schisandraAuthSocialUserBO.setOauthTokenSecret(token.getOauthTokenSecret());
|
|
|
|
|
schisandraAuthSocialUserBO.setRefreshToken(token.getRefreshToken());
|
|
|
|
|
schisandraAuthSocialUserBO.setId(socialUserId);
|
|
|
|
|
SchisandraAuthSocialUser schisandraAuthSocialUser = SchisandraAuthSocialUserBOConverter.INSTANCE.convertBOToEntity(schisandraAuthSocialUserBO);
|
|
|
|
|
int update = schisandraAuthSocialUserService.updateByOauth(schisandraAuthSocialUser);
|
|
|
|
|
if (update <= 0) {
|
|
|
|
|
if (log.isInfoEnabled()) {
|
|
|
|
|
log.error("schisandraAuthSocialUserService.update fail, param:{}", JSONObject.toJSONString(schisandraAuthSocialUser));
|
|
|
|
|
}
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
Long socialId = schisandraAuthSocialUser.getId();
|
|
|
|
|
SchisandraAuthSocialUserMapper schisandraAuthSocialUserMapper = new SchisandraAuthSocialUserMapper();
|
|
|
|
|
schisandraAuthSocialUserMapper.setSocialUserId(socialId);
|
|
|
|
|
SchisandraAuthSocialUserMapper result = schisandraAuthSocialUserMapperService.queryByCondition(schisandraAuthSocialUserMapper);
|
|
|
|
|
Long userId = result.getUserId();
|
|
|
|
|
StpUtil.login(data.getUuid(), SaLoginConfig.setToken(token.getAccessToken()));
|
|
|
|
|
String key = redisUtil.buildKey(OAUTH_KEY_PREFIX, token.getAccessToken()+"."+token.getUid());
|
|
|
|
|
redisUtil.setNx(key, String.valueOf(userId), 60L * 5, SECONDS);
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|