fix(接口测试): 修复删除接口未删除及联关系表的缺陷

https://github.com/metersphere/metersphere/issues/23097
This commit is contained in:
wxg0103 2023-03-24 16:08:55 +08:00 committed by fit2-zhao
parent 45737dbed1
commit bad0eac479
2 changed files with 31 additions and 6 deletions

View File

@ -27,6 +27,9 @@ import io.metersphere.notice.sender.NoticeModel;
import io.metersphere.notice.service.NoticeSendService;
import io.metersphere.service.definition.ApiDefinitionService;
import io.metersphere.service.ext.ExtProjectApplicationService;
import jakarta.annotation.Resource;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.collections.MapUtils;
import org.apache.commons.lang3.StringUtils;
@ -39,9 +42,6 @@ import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.multipart.MultipartFile;
import org.xml.sax.InputSource;
import jakarta.annotation.Resource;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import java.io.ByteArrayInputStream;
@ -678,6 +678,21 @@ public class MockConfigService {
mockConfigMapper.deleteByExample(configExample);
}
public void deleteMockConfigByApiIds(List<String> apiIds) {
MockConfigExample configExample = new MockConfigExample();
configExample.createCriteria().andApiIdIn(apiIds);
List<MockConfig> mockConfigList = mockConfigMapper.selectByExample(configExample);
MockExpectConfigExample example = new MockExpectConfigExample();
List<String> mockConfigIds = mockConfigList.stream().map(MockConfig::getId).toList();
example.createCriteria().andMockConfigIdIn(mockConfigIds);
List<MockExpectConfigWithBLOBs> deleteBlobs = mockExpectConfigMapper.selectByExampleWithBLOBs(example);
for (MockExpectConfigWithBLOBs model : deleteBlobs) {
this.deleteMockExpectFiles(model);
}
mockExpectConfigMapper.deleteByExample(example);
mockConfigMapper.deleteByExample(configExample);
}
public Map<String, List<MockParamSuggestions>> getApiParamsByApiDefinitionBLOBs(ApiDefinitionWithBLOBs apiModel) {
if (apiModel == null) {
return new HashMap<>();

View File

@ -1219,9 +1219,19 @@ public class ApiDefinitionService {
example.createCriteria().andRefIdIn(refIds);
List<ApiDefinition> apiDefinitions = apiDefinitionMapper.selectByExample(example);
List<String> apiIds = apiDefinitions.stream().map(ApiDefinition::getId).collect(Collectors.toList());
//删除ApiApiCase中resourceID被删除了的执行记录
apiTestCaseService.deleteBatchByDefinitionId(apiIds);
apiDefinitionMapper.deleteByExample(example);
if (CollectionUtils.isNotEmpty(apiIds)) {
//删除ApiApiCase中resourceID被删除了的执行记录
apiTestCaseService.deleteBatchByDefinitionId(apiIds);
apiDefinitionMapper.deleteByExample(example);
// 删除附件关系
extFileAssociationService.deleteByResourceIds(apiIds);
// 删除自定义字段关联关系
customFieldApiService.deleteByResourceIds(apiIds);
// 删除关系图
relationshipEdgeService.delete(apiIds);
mockConfigService.deleteMockConfigByApiIds(apiIds);
deleteFollows(apiIds);
}
}
public ApiDefinitionExample getBatchExample(ApiBatchRequest request) {