fix(接口定义): 修复引用的场景不显示自定义id的缺陷

--bug=1019897 --user=王孝刚 [项目设置]应用管理接口测试tab开启场景ID自定义开关后新建的场景被引用后显示的ID错误
https://www.tapd.cn/55049933/s/1304381
This commit is contained in:
wxg0103 2022-11-24 14:44:29 +08:00 committed by wxg0103
parent 4b9d73c7ce
commit 0d30328bb6
3 changed files with 18 additions and 2 deletions

View File

@ -16,6 +16,7 @@ import io.metersphere.commons.constants.PropertyConstant;
import io.metersphere.commons.utils.JSON; import io.metersphere.commons.utils.JSON;
import io.metersphere.commons.utils.JSONUtil; import io.metersphere.commons.utils.JSONUtil;
import io.metersphere.commons.utils.LogUtil; import io.metersphere.commons.utils.LogUtil;
import io.metersphere.dto.ProjectConfig;
import io.metersphere.service.definition.ApiDefinitionService; import io.metersphere.service.definition.ApiDefinitionService;
import io.metersphere.service.definition.ApiTestCaseService; import io.metersphere.service.definition.ApiTestCaseService;
import org.apache.commons.collections.CollectionUtils; import org.apache.commons.collections.CollectionUtils;
@ -41,6 +42,8 @@ public class MsHashTreeService {
private ApiDefinitionMapper apiDefinitionMapper; private ApiDefinitionMapper apiDefinitionMapper;
@Resource @Resource
private ExtApiScenarioMapper extApiScenarioMapper; private ExtApiScenarioMapper extApiScenarioMapper;
@Resource
private BaseProjectApplicationService baseProjectApplicationService;
@Resource @Resource
private ProjectMapper projectMapper; private ProjectMapper projectMapper;
@ -77,6 +80,8 @@ public class MsHashTreeService {
private static final String PRE = "PRE"; private static final String PRE = "PRE";
private static final String POST = "POST"; private static final String POST = "POST";
private static final String ASSERTIONS = ElementConstants.ASSERTIONS; private static final String ASSERTIONS = ElementConstants.ASSERTIONS;
public static final String CUSTOMNUM = "customNum";
public static final String SHOWCUSTOMNUM = "showCustomNum";
public void setHashTree(JSONArray hashTree) { public void setHashTree(JSONArray hashTree) {
// 将引用转成复制 // 将引用转成复制
@ -214,6 +219,10 @@ public class MsHashTreeService {
if (!element.has(VARIABLE_ENABLE)) { if (!element.has(VARIABLE_ENABLE)) {
element.put(VARIABLE_ENABLE, variableEnable); element.put(VARIABLE_ENABLE, variableEnable);
} }
//获取场景的当前项目是否开启了自定义id
ProjectConfig projectApplication = baseProjectApplicationService.getSpecificTypeValue(scenarioWithBLOBs.getProjectId(), "SCENARIO_CUSTOM_NUM");
element.put(SHOWCUSTOMNUM, projectApplication.getScenarioCustomNum());
element.put(CUSTOMNUM, scenarioWithBLOBs.getCustomNum());
this.setElement(element, scenarioWithBLOBs.getNum(), enable, scenarioWithBLOBs.getVersionName(), scenarioWithBLOBs.getVersionEnable()); this.setElement(element, scenarioWithBLOBs.getNum(), enable, scenarioWithBLOBs.getVersionName(), scenarioWithBLOBs.getVersionEnable());
} else { } else {
if (StringUtils.equalsIgnoreCase(element.optString(REFERENCED), REF)) { if (StringUtils.equalsIgnoreCase(element.optString(REFERENCED), REF)) {

View File

@ -134,6 +134,8 @@ export default {
hashTree: scenarioDefinition.hashTree, hashTree: scenarioDefinition.hashTree,
projectId: item.projectId, projectId: item.projectId,
num: item.num, num: item.num,
customNum: item.customNum,
showCustomNum: scenarioDefinition.showCustomNum,
versionName: item.versionName, versionName: item.versionName,
versionEnable: item.versionEnable, versionEnable: item.versionEnable,
}; };

View File

@ -21,7 +21,12 @@
:envMap="envMap" :envMap="envMap"
:title="$t('commons.scenario')"> :title="$t('commons.scenario')">
<template v-slot:afterTitle> <template v-slot:afterTitle>
<span v-if="isShowNum" @click="clickResource(scenario)">{{ ' ID: ' + scenario.num + '' }}</span> <span v-if="isShowNum && !scenario.showCustomNum" @click="clickResource(scenario)">
{{ ' ID: ' + scenario.num + '' }}
</span>
<span v-else-if="isShowNum && scenario.showCustomNum" @click="clickResource(scenario)">
{{ ' ID: ' + scenario.customNum + '' }}
</span>
<span v-else> <span v-else>
<el-tooltip class="ms-num" effect="dark" :content="$t('api_test.automation.scenario.num_none')" placement="top"> <el-tooltip class="ms-num" effect="dark" :content="$t('api_test.automation.scenario.num_none')" placement="top">
<i class="el-icon-warning" /> <i class="el-icon-warning" />
@ -34,7 +39,7 @@
<el-tag size="small" class="ms-tag" v-if="scenario.referenced === 'Deleted'" type="danger"> <el-tag size="small" class="ms-tag" v-if="scenario.referenced === 'Deleted'" type="danger">
{{ $t('api_test.automation.reference_deleted') }} {{ $t('api_test.automation.reference_deleted') }}
</el-tag> </el-tag>
<el-tag size="small" class="ms-tag" v-if="scenario.referenced === 'Copy'">{{ $t('commons.copy') }}</el-tag> <el-tag size="small" class="ms-tag" v-if="scenario.referenced === 'Copy'"> {{ $t('commons.copy') }} </el-tag>
<el-tag size="small" class="ms-tag" v-if="scenario.referenced === 'REF'" <el-tag size="small" class="ms-tag" v-if="scenario.referenced === 'REF'"
>{{ $t('api_test.scenario.reference') }} >{{ $t('api_test.scenario.reference') }}
</el-tag> </el-tag>