refactor(缺陷管理): 增加关联用例的自定字段
--bug=1039553 --user=郭雨琦 https://www.tapd.cn/55049933/bugtrace/bugs/view/1155049933001039553
This commit is contained in:
parent
e73d14e680
commit
5365e7818c
|
@ -0,0 +1,37 @@
|
||||||
|
package io.metersphere.dto;
|
||||||
|
|
||||||
|
import io.metersphere.system.domain.CustomFieldOption;
|
||||||
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.io.Serial;
|
||||||
|
import java.io.Serializable;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class BaseCaseCustomFieldDTO implements Serializable {
|
||||||
|
@Serial
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
@Schema(description = "用例ID")
|
||||||
|
private String caseId;
|
||||||
|
|
||||||
|
@Schema(description = "字段ID")
|
||||||
|
private String fieldId;
|
||||||
|
|
||||||
|
@Schema(description = "字段值")
|
||||||
|
private String defaultValue;
|
||||||
|
|
||||||
|
@Schema(description = "字段名称")
|
||||||
|
private String fieldName;
|
||||||
|
|
||||||
|
@Schema(description = "是否内置字段")
|
||||||
|
private Boolean internal;
|
||||||
|
|
||||||
|
@Schema(title = "选项值")
|
||||||
|
private List<CustomFieldOption> options;
|
||||||
|
|
||||||
|
@Schema(title = "字段类型")
|
||||||
|
private String type;
|
||||||
|
|
||||||
|
}
|
|
@ -46,4 +46,7 @@ public class TestCaseProviderDTO {
|
||||||
@Schema(description = "版本名称")
|
@Schema(description = "版本名称")
|
||||||
private String versionName;
|
private String versionName;
|
||||||
|
|
||||||
|
@Schema(description = "自定义字段集合")
|
||||||
|
private List<BaseCaseCustomFieldDTO> customFields;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
package io.metersphere.functional.provider;
|
package io.metersphere.functional.provider;
|
||||||
|
|
||||||
|
import io.metersphere.dto.BaseCaseCustomFieldDTO;
|
||||||
import io.metersphere.dto.TestCaseProviderDTO;
|
import io.metersphere.dto.TestCaseProviderDTO;
|
||||||
import io.metersphere.functional.dto.FunctionalCaseCustomFieldDTO;
|
import io.metersphere.functional.dto.FunctionalCaseCustomFieldDTO;
|
||||||
import io.metersphere.functional.mapper.ExtFunctionalCaseMapper;
|
import io.metersphere.functional.mapper.ExtFunctionalCaseMapper;
|
||||||
|
@ -7,16 +8,14 @@ import io.metersphere.functional.service.FunctionalCaseService;
|
||||||
import io.metersphere.provider.BaseAssociateCaseProvider;
|
import io.metersphere.provider.BaseAssociateCaseProvider;
|
||||||
import io.metersphere.request.AssociateOtherCaseRequest;
|
import io.metersphere.request.AssociateOtherCaseRequest;
|
||||||
import io.metersphere.request.TestCasePageProviderRequest;
|
import io.metersphere.request.TestCasePageProviderRequest;
|
||||||
import io.metersphere.sdk.util.Translator;
|
import io.metersphere.sdk.util.BeanUtils;
|
||||||
import jakarta.annotation.Resource;
|
import jakarta.annotation.Resource;
|
||||||
import org.apache.commons.collections.CollectionUtils;
|
import org.apache.commons.collections.CollectionUtils;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Optional;
|
|
||||||
|
|
||||||
@Service
|
@Service
|
||||||
public class AssociateCaseProvider implements BaseAssociateCaseProvider {
|
public class AssociateCaseProvider implements BaseAssociateCaseProvider {
|
||||||
|
@ -33,11 +32,16 @@ public class AssociateCaseProvider implements BaseAssociateCaseProvider {
|
||||||
return new ArrayList<>();
|
return new ArrayList<>();
|
||||||
}
|
}
|
||||||
List<String> ids = functionalCases.stream().map(TestCaseProviderDTO::getId).toList();
|
List<String> ids = functionalCases.stream().map(TestCaseProviderDTO::getId).toList();
|
||||||
Map<String, List<FunctionalCaseCustomFieldDTO>> caseCustomFiledMap = functionalCaseService.getCaseCustomFiledMap(ids,testCasePageProviderRequest.getProjectId());
|
Map<String, List<FunctionalCaseCustomFieldDTO>> caseCustomFiledMap = functionalCaseService.getCaseCustomFiledMap(ids, testCasePageProviderRequest.getProjectId());
|
||||||
functionalCases.forEach(functionalCase -> {
|
functionalCases.forEach(functionalCase -> {
|
||||||
List<FunctionalCaseCustomFieldDTO> customFields = caseCustomFiledMap.get(functionalCase.getId());
|
List<FunctionalCaseCustomFieldDTO> customFields = caseCustomFiledMap.get(functionalCase.getId());
|
||||||
Optional<FunctionalCaseCustomFieldDTO> priorityField = customFields.stream().filter(field -> StringUtils.equals(Translator.get("custom_field.functional_priority"), field.getFieldName())).findFirst();
|
List<BaseCaseCustomFieldDTO> baseCaseCustomFieldDTOS = new ArrayList<>();
|
||||||
priorityField.ifPresent(functionalCaseCustomFieldDTO -> functionalCase.setPriority(functionalCaseCustomFieldDTO.getDefaultValue()));
|
for (FunctionalCaseCustomFieldDTO customField : customFields) {
|
||||||
|
BaseCaseCustomFieldDTO baseCaseCustomFieldDTO = new BaseCaseCustomFieldDTO();
|
||||||
|
BeanUtils.copyBean(baseCaseCustomFieldDTO, customField);
|
||||||
|
baseCaseCustomFieldDTOS.add(baseCaseCustomFieldDTO);
|
||||||
|
}
|
||||||
|
functionalCase.setCustomFields(baseCaseCustomFieldDTOS);
|
||||||
});
|
});
|
||||||
return functionalCases;
|
return functionalCases;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue