AccountManagementServiceImpl.java 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. package com.leanwo.gateway.service;
  2. import java.util.List;
  3. import org.slf4j.Logger;
  4. import org.slf4j.LoggerFactory;
  5. import org.springframework.beans.factory.annotation.Autowired;
  6. import org.springframework.stereotype.Service;
  7. import com.leanwo.gateway.dto.AccountManagementDto;
  8. import com.leanwo.gateway.util.LoginContext;
  9. import com.leanwo.gateway.util.LoginContextUtil;
  10. @Service
  11. public class AccountManagementServiceImpl implements AccountManagementService {
  12. private static Logger logger = LoggerFactory.getLogger(AccountManagementServiceImpl.class);
  13. @Autowired
  14. private ProdogServer prodogServer;
  15. @Autowired
  16. private TokenService tokenService;
  17. private List<AccountManagementDto> accountManagementDtos = null;
  18. @Override
  19. public List<AccountManagementDto> loadAccountManagement(boolean force) {
  20. try {
  21. if (accountManagementDtos == null || force) {
  22. if (accountManagementDtos == null) {
  23. LoginContext loginContext = new LoginContext();
  24. loginContext.setAccountId(0L);
  25. String tempToken = tokenService.generateTempToken();
  26. loginContext.setToken(tempToken);
  27. LoginContextUtil.setLoginContext(loginContext);
  28. }
  29. accountManagementDtos = prodogServer.getAccountManagementDtoCache();
  30. }
  31. }catch(Exception ex) {
  32. logger.error("从Prodog-Server服务器获取账套信息失败。", ex);
  33. }
  34. return accountManagementDtos;
  35. }
  36. @Override
  37. public Long getAccountIdByDomainName(String domainName) {
  38. if (accountManagementDtos == null) {
  39. loadAccountManagement(true);
  40. }
  41. if (accountManagementDtos != null && accountManagementDtos.size() > 0) {
  42. for (AccountManagementDto accountManagementDto : accountManagementDtos) {
  43. if (accountManagementDto != null) {
  44. if (domainName.contains(accountManagementDto.getDomainName())) {
  45. return accountManagementDto.getAccountId();
  46. }
  47. }
  48. }
  49. }
  50. return 0L;
  51. }
  52. }