fix(测试用例): 导出自定义多选类型解析处理

This commit is contained in:
WangXu10 2024-08-16 15:51:41 +08:00 committed by 刘瑞斌
parent 2820fdf6ec
commit 685e5d9934
2 changed files with 13 additions and 12 deletions

View File

@ -8,7 +8,10 @@ import io.metersphere.system.domain.CustomFieldOption;
import io.metersphere.system.dto.sdk.TemplateCustomFieldDTO;
import org.apache.commons.lang3.StringUtils;
import java.util.*;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.stream.Collectors;
/**
@ -50,18 +53,16 @@ public class CustomFieldMultipleSelectValidator extends CustomFieldSelectValidat
@Override
public Object parse2Value(String keyOrValuesStr, TemplateCustomFieldDTO customField) {
Map<String, String> optionValueMap = customField.getOptions().stream().collect(Collectors.toMap(CustomFieldOption::getFieldId, CustomFieldOption::getValue));
if (StringUtils.isBlank(keyOrValuesStr)) {
return JSON.toJSONString(new ArrayList<>());
if (StringUtils.isBlank(keyOrValuesStr) || StringUtils.equals(keyOrValuesStr, "[]")) {
return StringUtils.EMPTY;
}
List<String> keyOrValues = parse2Array(keyOrValuesStr);
for (int i = 0; i < keyOrValues.size(); i++) {
String item = keyOrValues.get(i);
if (optionValueMap.containsKey(item)) {
keyOrValues.set(i, optionValueMap.get(item));
}
String keyOrValues = String.join(",", JSON.parseArray(keyOrValuesStr));
List<String> result = new ArrayList<>();
Map<String, String> optionValueMap = customField.getOptions().stream().collect(Collectors.toMap(CustomFieldOption::getValue, CustomFieldOption::getText));
if (optionValueMap.containsKey(keyOrValues)) {
result.add(optionValueMap.get(keyOrValues));
}
return JSON.toJSONString(keyOrValues);
return String.join(",", JSON.parseArray(JSON.toJSONString(result)));
}
}

View File

@ -62,7 +62,7 @@ public class CustomFieldSelectValidator extends AbstractCustomFieldValidator {
@Override
public Object parse2Value(String keyOrValuesStr, TemplateCustomFieldDTO customField) {
Map<String, String> optionValueMap = customField.getOptions().stream().collect(Collectors.toMap(CustomFieldOption::getFieldId, CustomFieldOption::getValue));
Map<String, String> optionValueMap = customField.getOptions().stream().collect(Collectors.toMap(CustomFieldOption::getValue, CustomFieldOption::getText));
if (optionValueMap.containsKey(keyOrValuesStr)) {
return optionValueMap.get(keyOrValuesStr);
}