|
@@ -1,13 +1,21 @@
|
|
|
package com.leanwo.gateway.service;
|
|
package com.leanwo.gateway.service;
|
|
|
|
|
|
|
|
|
|
+import java.util.ArrayList;
|
|
|
import java.util.List;
|
|
import java.util.List;
|
|
|
-
|
|
|
|
|
|
|
+import java.util.Set;
|
|
|
|
|
|
|
|
import org.slf4j.Logger;
|
|
import org.slf4j.Logger;
|
|
|
import org.slf4j.LoggerFactory;
|
|
import org.slf4j.LoggerFactory;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
|
|
+import org.springframework.beans.factory.annotation.Qualifier;
|
|
|
|
|
+import org.springframework.cloud.context.environment.EnvironmentChangeEvent;
|
|
|
|
|
+import org.springframework.context.event.EventListener;
|
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
+import org.springframework.util.StringUtils;
|
|
|
|
|
|
|
|
|
|
+import com.fasterxml.jackson.core.type.TypeReference;
|
|
|
|
|
+import com.fasterxml.jackson.databind.ObjectMapper;
|
|
|
|
|
+import com.leanwo.gateway.config.CloudConfig;
|
|
|
import com.leanwo.gateway.dto.AccountManagementDto;
|
|
import com.leanwo.gateway.dto.AccountManagementDto;
|
|
|
import com.leanwo.gateway.util.LoginContext;
|
|
import com.leanwo.gateway.util.LoginContext;
|
|
|
import com.leanwo.gateway.util.LoginContextUtil;
|
|
import com.leanwo.gateway.util.LoginContextUtil;
|
|
@@ -17,27 +25,26 @@ public class AccountManagementServiceImpl implements AccountManagementService {
|
|
|
|
|
|
|
|
private static Logger logger = LoggerFactory.getLogger(AccountManagementServiceImpl.class);
|
|
private static Logger logger = LoggerFactory.getLogger(AccountManagementServiceImpl.class);
|
|
|
|
|
|
|
|
|
|
+ private List<AccountManagementDto> accountManagementDtos = null;
|
|
|
|
|
+
|
|
|
@Autowired
|
|
@Autowired
|
|
|
- private ProdogServer prodogServer;
|
|
|
|
|
|
|
+ private CloudConfig cloudConfig;
|
|
|
|
|
|
|
|
@Autowired
|
|
@Autowired
|
|
|
- private TokenService tokenService;
|
|
|
|
|
|
|
+ @Qualifier("objectMapper1")
|
|
|
|
|
+ private ObjectMapper objectMapper;
|
|
|
|
|
|
|
|
- private List<AccountManagementDto> accountManagementDtos = null;
|
|
|
|
|
-
|
|
|
|
|
@Override
|
|
@Override
|
|
|
public List<AccountManagementDto> loadAccountManagement(boolean force) {
|
|
public List<AccountManagementDto> loadAccountManagement(boolean force) {
|
|
|
try {
|
|
try {
|
|
|
if (accountManagementDtos == null || force) {
|
|
if (accountManagementDtos == null || force) {
|
|
|
- LoginContext loginContext = LoginContextUtil.getLoginContext();
|
|
|
|
|
- if (loginContext == null) {
|
|
|
|
|
- loginContext = new LoginContext();
|
|
|
|
|
- loginContext.setAccountId(0L);
|
|
|
|
|
- String tempToken = tokenService.generateTempToken();
|
|
|
|
|
- loginContext.setToken(tempToken);
|
|
|
|
|
- LoginContextUtil.setLoginContext(loginContext);
|
|
|
|
|
|
|
+ String accountManagement = cloudConfig.getAccountManagement();
|
|
|
|
|
+ if(!StringUtils.isEmpty(accountManagement)) {
|
|
|
|
|
+ accountManagementDtos = objectMapper.readValue(accountManagement, new TypeReference<List<AccountManagementDto>>() {});
|
|
|
|
|
+ if(accountManagementDtos == null) {
|
|
|
|
|
+ accountManagementDtos = new ArrayList<AccountManagementDto>();
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
- accountManagementDtos = prodogServer.getAccountManagementDtoCache();
|
|
|
|
|
}
|
|
}
|
|
|
}catch(Exception ex) {
|
|
}catch(Exception ex) {
|
|
|
logger.error("从Prodog-Server服务器获取账套信息失败。", ex);
|
|
logger.error("从Prodog-Server服务器获取账套信息失败。", ex);
|
|
@@ -63,4 +70,13 @@ public class AccountManagementServiceImpl implements AccountManagementService {
|
|
|
|
|
|
|
|
return 0L;
|
|
return 0L;
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ @EventListener(EnvironmentChangeEvent.class)
|
|
|
|
|
+ public void onApplicationEvent(EnvironmentChangeEvent event) {
|
|
|
|
|
+ Set<String> keys = event.getKeys();
|
|
|
|
|
+ if(keys != null && keys.contains("accountManagement")) {
|
|
|
|
|
+ loadAccountManagement(true);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|