Commit b118fe20 by zhangxingmin

push

parent 8dcb3a2e
...@@ -87,15 +87,6 @@ public class ApiAttributeSettingServiceImpl implements ApiAttributeSettingServic ...@@ -87,15 +87,6 @@ public class ApiAttributeSettingServiceImpl implements ApiAttributeSettingServic
fieldValueBizIds.add(dto.getFieldValueBizId()); fieldValueBizIds.add(dto.getFieldValueBizId());
} }
} }
// 对于fieldValueBizId为空的情况,但value字段可能包含业务ID
else if (StringUtils.isNotBlank(dto.getValue())) {
String value = dto.getValue();
// 尝试从value字段解析可能的业务ID
List<String> possibleBizIds = parsePossibleBizIdsFromValue(value);
if (!possibleBizIds.isEmpty()) {
fieldValueBizIds.addAll(possibleBizIds);
}
}
if (!fieldValueBizIds.isEmpty()) { if (!fieldValueBizIds.isEmpty()) {
allFieldValueBizIds.addAll(fieldValueBizIds); allFieldValueBizIds.addAll(fieldValueBizIds);
...@@ -154,9 +145,23 @@ public class ApiAttributeSettingServiceImpl implements ApiAttributeSettingServic ...@@ -154,9 +145,23 @@ public class ApiAttributeSettingServiceImpl implements ApiAttributeSettingServic
Map<String, String> finalFieldValueBizIdToNameMap = fieldValueBizIdToNameMap; Map<String, String> finalFieldValueBizIdToNameMap = fieldValueBizIdToNameMap;
List<String> valueNames = valueBizIds.stream() List<String> valueNames = valueBizIds.stream()
.map(fieldValueBizId -> { .map(fieldValueBizId -> {
// 首先尝试从字段值服务查询名称
String name = finalFieldValueBizIdToNameMap.get(fieldValueBizId); String name = finalFieldValueBizIdToNameMap.get(fieldValueBizId);
// 如果查询不到名称,使用业务ID本身
return StringUtils.isNotBlank(name) ? name : fieldValueBizId; // 如果查询不到名称,使用value字段的值
// 这里使用一个简单的判断:如果value字段看起来像是业务ID,则使用业务ID本身
// 否则使用value字段
if (StringUtils.isBlank(name)) {
// 判断value字段是否看起来像是业务ID
if (isLikelyBusinessId(dto.getValue())) {
// 如果是业务ID,使用业务ID本身
return fieldValueBizId;
} else {
// 如果不是业务ID,使用value字段的值
return dto.getValue();
}
}
return name;
}) })
.collect(Collectors.toList()); .collect(Collectors.toList());
settingDto.setValueNames(StringUtils.join(valueNames, ";")); settingDto.setValueNames(StringUtils.join(valueNames, ";"));
...@@ -184,40 +189,10 @@ public class ApiAttributeSettingServiceImpl implements ApiAttributeSettingServic ...@@ -184,40 +189,10 @@ public class ApiAttributeSettingServiceImpl implements ApiAttributeSettingServic
} }
/** /**
* 从value字段解析可能的业务ID
* 这个方法尝试识别value字段中是否包含业务ID
*/
private List<String> parsePossibleBizIdsFromValue(String value) {
List<String> bizIds = new ArrayList<>();
if (StringUtils.isBlank(value)) {
return bizIds;
}
// 如果value包含分号,按分号分割
if (value.contains(";")) {
String[] parts = value.split(";");
for (String part : parts) {
String trimmedPart = part.trim();
// 如果部分看起来像是业务ID(包含下划线且长度较长)
if (isLikelyBizId(trimmedPart)) {
bizIds.add(trimmedPart);
}
}
}
// 如果不包含分号,检查整个value
else if (isLikelyBizId(value)) {
bizIds.add(value);
}
return bizIds;
}
/**
* 判断一个字符串是否可能是业务ID * 判断一个字符串是否可能是业务ID
* 这是一个保守的判断,只检查基本特征 * 这是一个保守的判断,只检查基本特征
*/ */
private boolean isLikelyBizId(String str) { private boolean isLikelyBusinessId(String str) {
if (StringUtils.isBlank(str)) { if (StringUtils.isBlank(str)) {
return false; return false;
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment