You've already forked FrameTour-BE
refactor(repository):重构景区配置管理逻辑- 引入 ScenicConfigManager 管理配置信息
- 移除手动构建 configMap 的逻辑 - 修改 convertToScenicEntity 方法签名,支持传入配置管理器 - 使用 configManager 替代直接从 DTO 获取配置值的方式 - 统一配置项获取方式,增强代码可维护性与扩展性
This commit is contained in:
@@ -54,15 +54,7 @@ public class ScenicRepository {
|
||||
public ScenicEntity getScenic(Long id) {
|
||||
// 分别获取景区基础信息和配置信息
|
||||
ScenicV2DTO scenicBasic = scenicIntegrationService.getScenic(id);
|
||||
List<ScenicConfigV2DTO> configList = scenicConfigIntegrationService.listConfigs(id);
|
||||
|
||||
// 将配置列表转换为Map
|
||||
Map<String, Object> configMap = new HashMap<>();
|
||||
if (configList != null) {
|
||||
for (ScenicConfigV2DTO config : configList) {
|
||||
configMap.put(config.getConfigKey(), config.getConfigValue());
|
||||
}
|
||||
}
|
||||
ScenicConfigManager configManager = getScenicConfigManager(id);
|
||||
|
||||
// 手动组合成WithConfig对象用于转换
|
||||
ScenicV2WithConfigDTO scenicWithConfig = new ScenicV2WithConfigDTO();
|
||||
@@ -70,9 +62,8 @@ public class ScenicRepository {
|
||||
scenicWithConfig.setName(scenicBasic.getName());
|
||||
scenicWithConfig.setMpId(scenicBasic.getMpId());
|
||||
scenicWithConfig.setStatus(scenicBasic.getStatus());
|
||||
scenicWithConfig.setConfig(configMap);
|
||||
|
||||
ScenicEntity scenicEntity = convertToScenicEntity(scenicWithConfig);
|
||||
ScenicEntity scenicEntity = convertToScenicEntity(scenicWithConfig, configManager);
|
||||
return scenicEntity;
|
||||
}
|
||||
|
||||
@@ -239,7 +230,7 @@ public class ScenicRepository {
|
||||
}
|
||||
}
|
||||
|
||||
private ScenicEntity convertToScenicEntity(ScenicV2WithConfigDTO dto) {
|
||||
private ScenicEntity convertToScenicEntity(ScenicV2WithConfigDTO dto, ScenicConfigManager configManager) {
|
||||
if (dto == null) {
|
||||
return null;
|
||||
}
|
||||
@@ -248,19 +239,17 @@ public class ScenicRepository {
|
||||
entity.setName(dto.getName());
|
||||
entity.setMpId(dto.getMpId());
|
||||
entity.setStatus(dto.getStatus().toString());
|
||||
if (dto.getConfig() != null) {
|
||||
entity.setAddress(ConfigValueUtil.getStringValue(dto.getConfig(), "address"));
|
||||
entity.setArea(ConfigValueUtil.getStringValue(dto.getConfig(), "area"));
|
||||
entity.setCity(ConfigValueUtil.getStringValue(dto.getConfig(), "city"));
|
||||
entity.setProvince(ConfigValueUtil.getStringValue(dto.getConfig(), "province"));
|
||||
entity.setLatitude(ConfigValueUtil.getBigDecimalValue(dto.getConfig(), "latitude"));
|
||||
entity.setLongitude(ConfigValueUtil.getBigDecimalValue(dto.getConfig(), "longitude"));
|
||||
entity.setRadius(ConfigValueUtil.getBigDecimalValue(dto.getConfig(), "radius"));
|
||||
entity.setPhone(ConfigValueUtil.getStringValue(dto.getConfig(), "phone"));
|
||||
entity.setLogoUrl(ConfigValueUtil.getStringValue(dto.getConfig(), "logoUrl"));
|
||||
entity.setCoverUrl(ConfigValueUtil.getStringValue(dto.getConfig(), "coverUrl"));
|
||||
entity.setKfCodeUrl(ConfigValueUtil.getStringValue(dto.getConfig(), "kfCodeUrl"));
|
||||
}
|
||||
entity.setAddress(configManager.getString("address"));
|
||||
entity.setArea(configManager.getString("area"));
|
||||
entity.setCity(configManager.getString("city"));
|
||||
entity.setProvince(configManager.getString("province"));
|
||||
entity.setLatitude(configManager.getBigDecimal("latitude"));
|
||||
entity.setLongitude(configManager.getBigDecimal("longitude"));
|
||||
entity.setRadius(configManager.getBigDecimal("radius"));
|
||||
entity.setPhone(configManager.getString("phone"));
|
||||
entity.setLogoUrl(configManager.getString("logo_url"));
|
||||
entity.setCoverUrl(configManager.getString("cover_url"));
|
||||
entity.setKfCodeUrl(configManager.getString("kf_code_url"));
|
||||
return entity;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user