fix(用例管理): 修复手动创建需求id不可重复问题
--bug=1036108 --user=郭雨琦 https://www.tapd.cn/55049933/bugtrace/bugs/view/1155049933001036108
This commit is contained in:
parent
90d0dabd6e
commit
f282b236ea
|
@ -187,7 +187,7 @@ CREATE TABLE IF NOT EXISTS functional_case_demand
|
|||
`id` VARCHAR(50) NOT NULL COMMENT 'ID',
|
||||
`case_id` VARCHAR(50) NOT NULL COMMENT '功能用例ID',
|
||||
`parent` VARCHAR(50) NOT NULL DEFAULT 'NONE' COMMENT '父需求id',
|
||||
`demand_id` VARCHAR(50) COMMENT '需求ID',
|
||||
`demand_id` VARCHAR(255) COMMENT '需求ID',
|
||||
`demand_name` VARCHAR(255) NOT NULL DEFAULT 'NONE' COMMENT '需求标题',
|
||||
`demand_url` VARCHAR(255) COMMENT '需求地址',
|
||||
`demand_platform` VARCHAR(64) NOT NULL DEFAULT 'LOCAL' COMMENT '需求所属平台',
|
||||
|
|
|
@ -68,7 +68,7 @@ public class FunctionalCaseDemandService {
|
|||
if (CollectionUtils.isEmpty(parentDemands)) {
|
||||
return new ArrayList<>();
|
||||
}
|
||||
Map<String, FunctionalDemandDTO> functionalCaseDemandMap = parentDemands.stream().filter(t -> StringUtils.isNotBlank(t.getDemandId())).collect(Collectors.toMap(FunctionalCaseDemand::getDemandId, t -> t));
|
||||
Map<String, List<FunctionalDemandDTO>> functionalCaseDemandMap = parentDemands.stream().filter(t -> StringUtils.isNotBlank(t.getDemandId())).collect(Collectors.groupingBy(FunctionalCaseDemand::getDemandId));
|
||||
List<String> ids = parentDemands.stream().map(FunctionalCaseDemand::getId).toList();
|
||||
FunctionalCaseDemandExample functionalCaseDemandExample = new FunctionalCaseDemandExample();
|
||||
functionalCaseDemandExample.createCriteria().andIdNotIn(ids);
|
||||
|
@ -81,8 +81,7 @@ public class FunctionalCaseDemandService {
|
|||
if (functionalCaseDemandMap.containsKey(demand.getParent())) {
|
||||
FunctionalDemandDTO functionalDemandDTO = new FunctionalDemandDTO();
|
||||
BeanUtils.copyBean(functionalDemandDTO, demand);
|
||||
functionalCaseDemandMap.get(demand.getParent()).addChild(functionalDemandDTO);
|
||||
functionalCaseDemandMap.put(demand.getDemandId(), functionalDemandDTO);
|
||||
functionalCaseDemandMap.get(demand.getParent()).get(0).addChild(functionalDemandDTO);
|
||||
} else {
|
||||
notMatchedList.add(demand);
|
||||
}
|
||||
|
@ -102,14 +101,7 @@ public class FunctionalCaseDemandService {
|
|||
if (checkDemandList(request.getDemandList())) return;
|
||||
SqlSession sqlSession = sqlSessionFactory.openSession(ExecutorType.BATCH);
|
||||
FunctionalCaseDemandMapper functionalCaseDemandMapper = sqlSession.getMapper(FunctionalCaseDemandMapper.class);
|
||||
FunctionalCaseDemandExample functionalCaseDemandExample = new FunctionalCaseDemandExample();
|
||||
functionalCaseDemandExample.createCriteria().andCaseIdEqualTo(request.getCaseId()).andDemandPlatformEqualTo(request.getDemandPlatform());
|
||||
List<FunctionalCaseDemand> existDemands = functionalCaseDemandMapper.selectByExample(functionalCaseDemandExample);
|
||||
List<String> existDemandIds = existDemands.stream().map(FunctionalCaseDemand::getDemandId).toList();
|
||||
for (DemandDTO demandDTO : request.getDemandList()) {
|
||||
if (StringUtils.isNotBlank(demandDTO.getDemandId()) && existDemandIds.contains(demandDTO.getDemandId())) {
|
||||
continue;
|
||||
}
|
||||
FunctionalCaseDemand functionalCaseDemand = buildFunctionalCaseDemand(request.getCaseId(), request.getDemandPlatform(), userId, demandDTO);
|
||||
functionalCaseDemandMapper.insert(functionalCaseDemand);
|
||||
}
|
||||
|
|
|
@ -113,6 +113,7 @@ public class FunctionalCaseDemandControllerTests extends BaseTest {
|
|||
functionalCaseDemandRequest.setDemandPlatform("Metersphere");
|
||||
demandList = new ArrayList<>();
|
||||
demandDTO = new DemandDTO();
|
||||
demandDTO.setDemandId("111");
|
||||
demandDTO.setDemandName("手动加入孩子超长名字看看能不能截到255的速度和温度都会为fdhfjhdsfjhdsfjdshfjdsfhdsfhufkfjdfkgdgbdfjgdfgjbdfjbdfgjbdfgjkbdfjkgbdfjkgbdfjkbgdfjkbgdfjbgdfjgbdfjgbdfjbgdfjgbdfjgbdfjkgbdfjkgbdfkjgb返回武汉无法回我fhdfjdsfhsdhfdsfhdsjfhsdjfhdsfjdshfjdshfjdshfjdshfdjsfhdsjfhdjfhdsjfhdjksfhsdjfdsjfhdjfhdsjfh");
|
||||
demandList.add(demandDTO);
|
||||
functionalCaseDemandRequest.setDemandList(demandList);
|
||||
|
@ -197,6 +198,7 @@ public class FunctionalCaseDemandControllerTests extends BaseTest {
|
|||
List<DemandDTO> demandList = new ArrayList<>();
|
||||
DemandDTO demandDTO = new DemandDTO();
|
||||
demandDTO.setDemandName("手动加入2");
|
||||
demandDTO.setDemandId("111");
|
||||
demandList.add(demandDTO);
|
||||
functionalCaseDemandRequest.setDemandList(demandList);
|
||||
this.requestPostWithOkAndReturn(URL_DEMAND_UPDATE, functionalCaseDemandRequest);
|
||||
|
@ -244,7 +246,7 @@ public class FunctionalCaseDemandControllerTests extends BaseTest {
|
|||
functionalCaseDemandExample = new FunctionalCaseDemandExample();
|
||||
functionalCaseDemandExample.createCriteria().andCaseIdEqualTo("DEMAND_TEST_FUNCTIONAL_CASE_ID");
|
||||
functionalCaseDemands = functionalCaseDemandMapper.selectByExample(functionalCaseDemandExample);
|
||||
Assertions.assertNull(functionalCaseDemands.get(0).getDemandId());
|
||||
Assertions.assertNotNull(functionalCaseDemands.get(0).getDemandId());
|
||||
|
||||
functionalCaseDemandRequest = new FunctionalCaseDemandRequest();
|
||||
functionalCaseDemandRequest.setId("hehe");
|
||||
|
@ -396,25 +398,6 @@ public class FunctionalCaseDemandControllerTests extends BaseTest {
|
|||
functionalCaseDemandExample = new FunctionalCaseDemandExample();
|
||||
functionalCaseDemandExample.createCriteria().andCaseIdEqualTo("DEMAND_TEST_FUNCTIONAL_CASE_ID2").andDemandPlatformEqualTo("TAPD");
|
||||
List<FunctionalCaseDemand> functionalCaseDemandOld = functionalCaseDemandMapper.selectByExample(functionalCaseDemandExample);
|
||||
|
||||
|
||||
functionalCaseDemandRequest = new FunctionalCaseDemandRequest();
|
||||
functionalCaseDemandRequest.setCaseId("DEMAND_TEST_FUNCTIONAL_CASE_ID2");
|
||||
functionalCaseDemandRequest.setDemandPlatform("TAPD");
|
||||
demandList = new ArrayList<>();
|
||||
DemandDTO demandDTO3 = new DemandDTO();
|
||||
demandDTO3.setDemandId("100003");
|
||||
demandDTO3.setParent("100002");
|
||||
demandDTO3.setDemandName("手动加入Tapd2");
|
||||
demandList.add(demandDTO3);
|
||||
functionalCaseDemandRequest.setDemandList(demandList);
|
||||
this.requestPostWithOkAndReturn(URL_DEMAND_ADD, functionalCaseDemandRequest);
|
||||
|
||||
functionalCaseDemandExample = new FunctionalCaseDemandExample();
|
||||
functionalCaseDemandExample.createCriteria().andCaseIdEqualTo("DEMAND_TEST_FUNCTIONAL_CASE_ID2").andDemandPlatformEqualTo("TAPD");
|
||||
List<FunctionalCaseDemand> functionalCaseDemandNew = functionalCaseDemandMapper.selectByExample(functionalCaseDemandExample);
|
||||
|
||||
Assertions.assertEquals(functionalCaseDemandOld.size(), functionalCaseDemandNew.size());
|
||||
}
|
||||
|
||||
@Test
|
||||
|
|
Loading…
Reference in New Issue