Commit 03b9f99f authored by tianbo's avatar tianbo

bugfix:

同一门户sso修改
parent 19afc5aa
......@@ -14,6 +14,8 @@ import com.yeejoin.amos.feign.privilege.model.VerifyCodeAuthModel;
import com.yeejoin.amos.feign.privilege.util.AesUtil;
import com.yeejoin.amos.openapi.enums.SSOLoginStatusEnum;
import com.yeejoin.amos.openapi.enums.TaAccessConfigBizeEnum;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.typroject.tyboot.core.foundation.context.RequestContext;
......@@ -32,12 +34,16 @@ import java.util.Map;
@Service
public class SSOServiceImpl {
private static final Logger logger = LogManager.getLogger(SSOServiceImpl.class);
@Autowired
private SSOAccountRelationServiceImpl ssoAccountRelationService;
@Autowired
AmosRequestContext amosRequestContext;
public final String ERROR_MESSAGE = "读取服务配置异常";
public Map<String, String> getPlatformUserInfo(String portalCode) {
// 获取统一门户accessToken
String accessToken = getPortalAccessToken(portalCode);
......@@ -52,26 +58,30 @@ public class SSOServiceImpl {
String userPhoneNumber = userInfo.getString("phone_number");
String userId = userInfo.getString("id");
SSOAccountRelation ssoAccountRelation = ssoAccountRelationService.lambdaQuery().eq(SSOAccountRelation::getPortalUserId, userId).one();
if (ValidationUtil.isEmpty(ssoAccountRelation)) {
// 如果用户不存在,则创建用户
ssoAccountRelation = new SSOAccountRelation();
ssoAccountRelation.setPortalUserId(userId);
ssoAccountRelation.setPortalUserPhone(userPhoneNumber);
ssoAccountRelation.setLoginStatus(SSOLoginStatusEnum.FAILED.getCode());
ssoAccountRelation.setCreateDate(new Date());
ssoAccountRelationService.save(ssoAccountRelation);
return null;
}
RequestContext.setProduct(amosRequestContext.getProduct());
RequestContext.setAppKey(amosRequestContext.getAppKey());
RequestContext.setToken(amosRequestContext.getToken());
// 1.查询监管平台用户信息
Page<AgencyUserModel> agencyUserModelList = FeignUtil.remoteCall(() -> Privilege.agencyUserClient.queryForPage(null, null, userPhoneNumber, null, 1, 100));
if (ValidationUtil.isEmpty(agencyUserModelList) || agencyUserModelList.getTotal() == 0) {
if (ValidationUtil.isEmpty(ssoAccountRelation)) {
// 如果绑定用户关系不存在,则创建
ssoAccountRelation = new SSOAccountRelation();
ssoAccountRelation.setPortalUserId(userId);
ssoAccountRelation.setPortalUserPhone(userPhoneNumber);
ssoAccountRelation.setCreateDate(new Date());
}
ssoAccountRelation.setLoginStatus(SSOLoginStatusEnum.FAILED.getCode());
ssoAccountRelationService.updateById(ssoAccountRelation);
ssoAccountRelationService.saveOrUpdate(ssoAccountRelation);
return null;
} else {
if (ValidationUtil.isEmpty(ssoAccountRelation)) {
// 如果绑定用户关系不存在,则创建
ssoAccountRelation = new SSOAccountRelation();
ssoAccountRelation.setPortalUserId(userId);
ssoAccountRelation.setPortalUserPhone(userPhoneNumber);
ssoAccountRelation.setCreateDate(new Date());
}
ssoAccountRelation.setLoginStatus(SSOLoginStatusEnum.SUCCESS.getCode());
// 2.登录监管平台
Map<String, String> agencyUserModel = (Map<String, String>) agencyUserModelList.getRecords().get(0);
......@@ -83,7 +93,7 @@ public class SSOServiceImpl {
if (loginResult.getStatus() != 200) {
return null;
}
ssoAccountRelationService.updateById(ssoAccountRelation);
ssoAccountRelationService.saveOrUpdate(ssoAccountRelation);
String amosUserId = loginResult.getResult().get("userId");
String amosToken = loginResult.getResult().get("token");
// 3.为用户授权应用
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment