refactor: 修改判断测试用例是否存在的方法

This commit is contained in:
shiziyuan9527 2020-07-24 14:42:16 +08:00
parent 2bdc7b6e29
commit fd8b9b3a1c
1 changed files with 33 additions and 4 deletions

View File

@ -32,6 +32,7 @@ import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory; import org.apache.ibatis.session.SqlSessionFactory;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource; import javax.annotation.Resource;
@ -98,17 +99,45 @@ public class TestCaseService {
} }
private void checkTestCaseExist(TestCaseWithBLOBs testCase) { private void checkTestCaseExist(TestCaseWithBLOBs testCase) {
if (testCase.getName() != null) {
// 全部字段值相同才判断为用例存在
if (testCase != null) {
TestCaseExample example = new TestCaseExample(); TestCaseExample example = new TestCaseExample();
TestCaseExample.Criteria criteria = example.createCriteria(); TestCaseExample.Criteria criteria = example.createCriteria();
criteria.andNameEqualTo(testCase.getName()) criteria.andNameEqualTo(testCase.getName())
.andProjectIdEqualTo(testCase.getProjectId()); .andProjectIdEqualTo(testCase.getProjectId())
.andNodeIdEqualTo(testCase.getNodeId())
.andNodePathEqualTo(testCase.getNodePath())
.andTypeEqualTo(testCase.getType())
.andMaintainerEqualTo(testCase.getMaintainer())
.andPriorityEqualTo(testCase.getPriority())
.andMethodEqualTo(testCase.getMethod());
if (StringUtils.isNotBlank(testCase.getTestId())) {
criteria.andTestIdEqualTo(testCase.getTestId());
}
if (StringUtils.isNotBlank(testCase.getPrerequisite())) {
criteria.andPrerequisiteEqualTo(testCase.getPrerequisite());
}
if (StringUtils.isNotBlank(testCase.getId())) { if (StringUtils.isNotBlank(testCase.getId())) {
criteria.andIdNotEqualTo(testCase.getId()); criteria.andIdNotEqualTo(testCase.getId());
} }
if (testCaseMapper.selectByExample(example).size() > 0) {
List<TestCaseWithBLOBs> caseList = testCaseMapper.selectByExampleWithBLOBs(example);
// 如果上边字段全部相同去检查 steps remark
if (!CollectionUtils.isEmpty(caseList)) {
caseList.forEach(tc -> {
String steps = tc.getSteps();
String remark = tc.getRemark();
if (StringUtils.equals(steps, testCase.getSteps()) && StringUtils.equals(remark, testCase.getRemark())) {
MSException.throwException(Translator.get("test_case_already_exists")); MSException.throwException(Translator.get("test_case_already_exists"));
} }
});
}
} }
} }