Commit 03b9f99f authored by tianbo's avatar tianbo

bugfix:

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