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 510a5d0..be00163 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.debug("获取景区配置列表, 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.debug("根据键获取景区配置, 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 881bfc2..436c6ca 100644 --- a/src/main/java/com/ycwl/basic/repository/ScenicRepository.java +++ b/src/main/java/com/ycwl/basic/repository/ScenicRepository.java @@ -24,10 +24,11 @@ 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.Map; import java.util.HashMap; -import java.util.stream.Collectors; +import java.util.Objects; @Component public class ScenicRepository { @@ -335,10 +336,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; } @@ -371,7 +369,7 @@ public class ScenicRepository { if (scenicIds == null || scenicIds.isEmpty()) { return new HashMap<>(); } - + Map result = new HashMap<>(); for (Long scenicId : scenicIds) { try { @@ -389,14 +387,14 @@ public class ScenicRepository { /** * 批量获取景区完整信息 - * @param scenicIds 景区ID列表 + * @param scenicIds 景区ID列表 * @return 景区ID到景区实体的映射 */ public Map batchGetScenics(List scenicIds) { if (scenicIds == null || scenicIds.isEmpty()) { return new HashMap<>(); } - + Map result = new HashMap<>(); for (Long scenicId : scenicIds) { try { @@ -421,7 +419,7 @@ public class ScenicRepository { if (scenicIds == null || scenicIds.isEmpty()) { return new HashMap<>(); } - + Map result = new HashMap<>(); for (Long scenicId : scenicIds) { try {