diff --git a/src/main/java/com/ycwl/basic/integration/scenic/service/ScenicConfigIntegrationService.java b/src/main/java/com/ycwl/basic/integration/scenic/service/ScenicConfigIntegrationService.java index abb3914..31f189e 100644 --- a/src/main/java/com/ycwl/basic/integration/scenic/service/ScenicConfigIntegrationService.java +++ b/src/main/java/com/ycwl/basic/integration/scenic/service/ScenicConfigIntegrationService.java @@ -24,14 +24,28 @@ public class ScenicConfigIntegrationService { public List listConfigs(Long scenicId) { log.info("获取景区配置列表, scenicId: {}", scenicId); - CommonResponse> response = scenicConfigV2Client.listConfigs(scenicId); - return handleResponse(response, "获取景区配置列表失败"); + return fallbackService.executeWithFallback( + SERVICE_NAME, + "scenic:configs:" + scenicId, + () -> { + CommonResponse> response = scenicConfigV2Client.listConfigs(scenicId); + return handleResponse(response, "获取景区配置列表失败"); + }, + List.class + ); } public ScenicConfigV2DTO getConfigByKey(Long scenicId, String configKey) { log.info("根据键获取景区配置, scenicId: {}, configKey: {}", scenicId, configKey); - CommonResponse response = scenicConfigV2Client.getConfigByKey(scenicId, configKey); - return handleResponse(response, "根据键获取景区配置失败"); + return fallbackService.executeWithFallback( + SERVICE_NAME, + "scenic:config:" + scenicId + ":" + configKey, + () -> { + CommonResponse response = scenicConfigV2Client.getConfigByKey(scenicId, configKey); + return handleResponse(response, "根据键获取景区配置失败"); + }, + ScenicConfigV2DTO.class + ); } public Map getFlatConfigs(Long scenicId) { diff --git a/src/main/java/com/ycwl/basic/repository/ScenicRepository.java b/src/main/java/com/ycwl/basic/repository/ScenicRepository.java index cdfa9bf..bd34640 100644 --- a/src/main/java/com/ycwl/basic/repository/ScenicRepository.java +++ b/src/main/java/com/ycwl/basic/repository/ScenicRepository.java @@ -24,7 +24,9 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.stereotype.Component; +import java.util.Collections; import java.util.List; +import java.util.Objects; @Component public class ScenicRepository { @@ -332,10 +334,7 @@ public class ScenicRepository { public ScenicConfigManager getScenicConfigManager(Long scenicId) { try { List configList = scenicConfigIntegrationService.listConfigs(scenicId); - if (configList != null) { - return new ScenicConfigManager(configList); - } - return null; + return new ScenicConfigManager(Objects.requireNonNullElse(configList, Collections.emptyList())); } catch (Exception e) { return null; }