You've already forked FrameTour-BE
refactor(basic): 重构景区配置管理逻辑
- 移除 AppOrderV2Controller 中的价格缓存逻辑 - 修正 VoucherServiceImpl 中的购买数量计算方式- 重构 ScenicRepository 中的景区配置获取逻辑 -增加 ScenicConfigManager 的扁平化配置和驼峰转换功能
This commit is contained in:
@@ -366,6 +366,65 @@ public class ScenicConfigManager {
|
||||
return new ScenicConfigManager(subsetMap);
|
||||
}
|
||||
|
||||
/**
|
||||
* 将配置转换为扁平化的Map,键名转换为驼峰形式
|
||||
*
|
||||
* @return 扁平化的配置Map,键为驼峰形式
|
||||
*/
|
||||
public Map<String, Object> toFlatConfig() {
|
||||
Map<String, Object> flatConfig = new HashMap<>();
|
||||
|
||||
for (Map.Entry<String, Object> entry : configMap.entrySet()) {
|
||||
String key = entry.getKey();
|
||||
Object value = entry.getValue();
|
||||
|
||||
if (key != null) {
|
||||
String camelCaseKey = toCamelCase(key);
|
||||
flatConfig.put(camelCaseKey, value);
|
||||
}
|
||||
}
|
||||
|
||||
return flatConfig;
|
||||
}
|
||||
|
||||
/**
|
||||
* 将字符串转换为驼峰形式
|
||||
* 支持下划线、短横线、点号分隔的字符串转换
|
||||
*
|
||||
* @param str 原始字符串
|
||||
* @return 驼峰形式的字符串
|
||||
*/
|
||||
private String toCamelCase(String str) {
|
||||
if (str == null || str.isEmpty()) {
|
||||
return str;
|
||||
}
|
||||
|
||||
// 支持下划线、短横线、点号作为分隔符
|
||||
String[] parts = str.split("[_\\-.]");
|
||||
|
||||
if (parts.length <= 1) {
|
||||
return str;
|
||||
}
|
||||
|
||||
StringBuilder camelCase = new StringBuilder();
|
||||
|
||||
// 第一部分保持原样(全小写)
|
||||
camelCase.append(parts[0].toLowerCase());
|
||||
|
||||
// 后续部分首字母大写
|
||||
for (int i = 1; i < parts.length; i++) {
|
||||
String part = parts[i];
|
||||
if (!part.isEmpty()) {
|
||||
camelCase.append(Character.toUpperCase(part.charAt(0)));
|
||||
if (part.length() > 1) {
|
||||
camelCase.append(part.substring(1).toLowerCase());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return camelCase.toString();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "ScenicConfigManager{" +
|
||||
|
Reference in New Issue
Block a user