diff --git a/datai-scenes/datai-scene-salesforce/datai-salesforce-auth/src/main/java/com/datai/auth/service/impl/SalesforceLoginServiceImpl.java b/datai-scenes/datai-scene-salesforce/datai-salesforce-auth/src/main/java/com/datai/auth/service/impl/SalesforceLoginServiceImpl.java index 53d1b286..b010d701 100644 --- a/datai-scenes/datai-scene-salesforce/datai-salesforce-auth/src/main/java/com/datai/auth/service/impl/SalesforceLoginServiceImpl.java +++ b/datai-scenes/datai-scene-salesforce/datai-salesforce-auth/src/main/java/com/datai/auth/service/impl/SalesforceLoginServiceImpl.java @@ -66,7 +66,33 @@ public class SalesforceLoginServiceImpl implements ISalesforceLoginService { if (StringUtils.isEmpty(loginType)) { throw new SalesforceAuthException("LOGIN_TYPE_EMPTY", "登录类型不能为空"); } - + + String orgType = request.getOrgType(); + if (StringUtils.isEmpty(orgType)) { + throw new SalesforceAuthException("ORG_TYPE_EMPTY", "ORG类型不能为空"); + } + + DataiConfigEnvironment activeEnvironment = configEnvironmentService.getCurrentActiveEnvironment(orgType); + if (activeEnvironment == null) { + logger.warn("登录失败,当前没有激活的环境,ORG类型: {}", orgType); + SalesforceLoginResult errorResult = new SalesforceLoginResult(); + errorResult.setSuccess(false); + errorResult.setErrorCode("NO_ACTIVE_ENVIRONMENT"); + errorResult.setErrorMessage("当前没有激活的环境,请联系管理员激活环境后再登录"); + saveLoginHistory(errorResult, request, "failed", null); + return errorResult; + } + + if (!Boolean.TRUE.equals(activeEnvironment.getIsActive())) { + logger.warn("登录失败,当前环境未激活,环境编码: {}, ORG类型: {}", activeEnvironment.getEnvironmentCode(), orgType); + SalesforceLoginResult errorResult = new SalesforceLoginResult(); + errorResult.setSuccess(false); + errorResult.setErrorCode("ENVIRONMENT_NOT_ACTIVE"); + errorResult.setErrorMessage("当前环境未激活,请联系管理员激活环境后再登录"); + saveLoginHistory(errorResult, request, "failed", activeEnvironment); + return errorResult; + } + LoginStrategy strategy = loginStrategyFactory.getLoginStrategy(loginType); SalesforceLoginResult result = strategy.login(request); @@ -74,16 +100,17 @@ public class SalesforceLoginServiceImpl implements ISalesforceLoginService { if (result.isSuccess()) { saveLoginSession(result, request); - saveLoginHistory(result, request, "success"); + saveLoginHistory(result, request, "success", activeEnvironment); - String cacheKey = getCacheKeyByOrgType(request.getOrgType()); + String cacheKey = getCacheKeyByOrgType(orgType); CacheUtils.put(SalesforceConfigConstants.CACHE_NAME, cacheKey, result); - updateEnvironmentValidity(request.getOrgType(), true); + updateEnvironmentValidity(orgType, true); - logger.info("Salesforce登录成功,Session ID: {}, 用户ID: {}, ORG类型: {}", result.getSessionId(), result.getUserId(), result.getOrgType()); + logger.info("Salesforce登录成功,Session ID: {}, 用户ID: {}, ORG类型: {}, 环境编码: {}", + result.getSessionId(), result.getUserId(), result.getOrgType(), activeEnvironment.getEnvironmentCode()); } else { - saveLoginHistory(result, request, "failed"); + saveLoginHistory(result, request, "failed", activeEnvironment); logger.error("Salesforce登录失败,错误代码: {}, 错误信息: {}", result.getErrorCode(), result.getErrorMessage()); } @@ -95,7 +122,7 @@ public class SalesforceLoginServiceImpl implements ISalesforceLoginService { errorResult.setSuccess(false); errorResult.setErrorCode(e.getErrorCode()); errorResult.setErrorMessage(e.getMessage()); - saveLoginHistory(errorResult, request, "failed"); + saveLoginHistory(errorResult, request, "failed", null); return errorResult; } catch (Exception e) { logger.error("Salesforce登录系统异常: {}", e.getMessage(), e); @@ -103,7 +130,7 @@ public class SalesforceLoginServiceImpl implements ISalesforceLoginService { errorResult.setSuccess(false); errorResult.setErrorCode("SYSTEM_ERROR"); errorResult.setErrorMessage("系统异常: " + e.getMessage()); - saveLoginHistory(errorResult, request, "failed"); + saveLoginHistory(errorResult, request, "failed", null); return errorResult; } } @@ -183,7 +210,7 @@ public class SalesforceLoginServiceImpl implements ISalesforceLoginService { } } - private void saveLoginHistory(SalesforceLoginResult result, SalesforceLoginRequest request, String status) { + private void saveLoginHistory(SalesforceLoginResult result, SalesforceLoginRequest request, String status, DataiConfigEnvironment activeEnvironment) { LocalDateTime requestTime = LocalDateTime.now(); try { @@ -216,6 +243,11 @@ public class SalesforceLoginServiceImpl implements ISalesforceLoginService { history.setOrganizationId(result.getOrganizationId()); history.setLoginStatus(status); + if (activeEnvironment != null) { + history.setEnvironmentCode(activeEnvironment.getEnvironmentCode()); + history.setEnvironmentId(activeEnvironment.getId()); + } + HttpServletRequest httpRequest = getCurrentRequest(); if (httpRequest != null) { String userAgent = httpRequest.getHeader("User-Agent"); @@ -256,7 +288,11 @@ public class SalesforceLoginServiceImpl implements ISalesforceLoginService { history.setOrgType(request.getOrgType()); loginHistoryService.insertDataiSfLoginHistory(history); - logger.debug("保存登录历史记录成功,状态: {}", status); + + String envInfo = activeEnvironment != null + ? String.format("环境编码: %s, 环境ID: %d", activeEnvironment.getEnvironmentCode(), activeEnvironment.getId()) + : "无激活环境"; + logger.debug("保存登录历史记录成功,状态: {}, {}", status, envInfo); } catch (Exception e) { logger.error("保存登录历史记录失败: {}", e.getMessage(), e); }