package com.leanwo.gateway.service; import java.util.List; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.leanwo.gateway.dto.AccountManagementDto; import com.leanwo.gateway.util.LoginContext; import com.leanwo.gateway.util.LoginContextUtil; @Service public class AccountManagementServiceImpl implements AccountManagementService { private static Logger logger = LoggerFactory.getLogger(AccountManagementServiceImpl.class); @Autowired private ProdogServer prodogServer; @Autowired private TokenService tokenService; private List accountManagementDtos = null; @Override public List loadAccountManagement(boolean force) { try { if (accountManagementDtos == null || force) { if (accountManagementDtos == null) { LoginContext loginContext = new LoginContext(); loginContext.setAccountId(0L); String tempToken = tokenService.generateTempToken(); loginContext.setToken(tempToken); LoginContextUtil.setLoginContext(loginContext); } accountManagementDtos = prodogServer.getAccountManagementDtoCache(); } }catch(Exception ex) { logger.error("从Prodog-Server服务器获取账套信息失败。", ex); } return accountManagementDtos; } @Override public Long getAccountIdByDomainName(String domainName) { if (accountManagementDtos == null) { loadAccountManagement(true); } if (accountManagementDtos != null && accountManagementDtos.size() > 0) { for (AccountManagementDto accountManagementDto : accountManagementDtos) { if (accountManagementDto != null) { if (domainName.contains(accountManagementDto.getDomainName())) { return accountManagementDto.getAccountId(); } } } } return 0L; } }