diff --git a/backend/src/main/java/io/metersphere/api/service/ApiAutomationService.java b/backend/src/main/java/io/metersphere/api/service/ApiAutomationService.java index 3a085e99a3..6aaf5ef6c4 100644 --- a/backend/src/main/java/io/metersphere/api/service/ApiAutomationService.java +++ b/backend/src/main/java/io/metersphere/api/service/ApiAutomationService.java @@ -137,6 +137,8 @@ public class ApiAutomationService { @Resource private ExtTestPlanScenarioCaseMapper extTestPlanScenarioCaseMapper; + private ThreadLocal currentScenarioOrder = new ThreadLocal<>(); + public ApiScenarioDTO getDto(String id) { ApiScenarioRequest request = new ApiScenarioRequest(); request.setId(id); @@ -1767,6 +1769,7 @@ public class ApiAutomationService { scenarioWithBLOBs.setId(UUID.randomUUID().toString()); List useUrl = this.parseUrl(scenarioWithBLOBs); scenarioWithBLOBs.setUseUrl(JSONArray.toJSONString(useUrl)); + scenarioWithBLOBs.setOrder(getImportNextOrder(apiTestImportRequest.getProjectId())); batchMapper.insert(scenarioWithBLOBs); apiScenarioReferenceIdService.saveByApiScenario(scenarioWithBLOBs); } else { @@ -1834,6 +1837,7 @@ public class ApiAutomationService { if (CollectionUtils.isEmpty(sameRequest)) { List useUrl = this.parseUrl(scenarioWithBLOBs); scenarioWithBLOBs.setUseUrl(JSONArray.toJSONString(useUrl)); + scenarioWithBLOBs.setOrder(getImportNextOrder(request.getProjectId())); batchMapper.insert(scenarioWithBLOBs); apiScenarioReferenceIdService.saveByApiScenario(scenarioWithBLOBs); } @@ -1848,6 +1852,7 @@ public class ApiAutomationService { SqlSession sqlSession = sqlSessionFactory.openSession(ExecutorType.BATCH); ApiScenarioMapper batchMapper = sqlSession.getMapper(ApiScenarioMapper.class); List data = apiImport.getData(); + currentScenarioOrder.remove(); int num = 0; Project project = new Project(); if (!CollectionUtils.isEmpty(data) && data.get(0) != null && data.get(0).getProjectId() != null) { @@ -1878,6 +1883,16 @@ public class ApiAutomationService { sqlSession.flushStatements(); } + private Long getImportNextOrder(String projectId) { + Long order = currentScenarioOrder.get(); + if (order == null) { + order = ServiceUtils.getNextOrder(projectId, extApiScenarioMapper::getLastOrder); + } + order = (order == null ? 0 : order) + 5000; + currentScenarioOrder.set(order); + return order; + } + public ScenarioImport scenarioImport(MultipartFile file, ApiTestImportRequest request) { ApiImportParser apiImportParser = ScenarioImportParserFactory.getImportParser(request.getPlatform()); ScenarioImport apiImport = null; diff --git a/backend/src/main/java/io/metersphere/track/service/TestPlanReportService.java b/backend/src/main/java/io/metersphere/track/service/TestPlanReportService.java index 2795d090e5..53bf5e4fd9 100644 --- a/backend/src/main/java/io/metersphere/track/service/TestPlanReportService.java +++ b/backend/src/main/java/io/metersphere/track/service/TestPlanReportService.java @@ -31,7 +31,6 @@ import io.metersphere.track.request.report.QueryTestPlanReportRequest; import io.metersphere.track.request.report.TestPlanReportSaveRequest; import io.metersphere.track.request.testcase.QueryTestPlanRequest; import io.metersphere.track.request.testplan.LoadCaseRequest; -import io.metersphere.xpack.license.service.LicenseService; import org.apache.commons.beanutils.BeanMap; import org.apache.commons.collections.CollectionUtils; import org.apache.commons.collections.MapUtils; @@ -87,8 +86,6 @@ public class TestPlanReportService { TestPlanReportContentMapper testPlanReportContentMapper; @Resource ShareInfoService shareInfoService; - @Resource - LicenseService licenseService; private final ExecutorService executorService = Executors.newFixedThreadPool(20); @@ -828,11 +825,6 @@ public class TestPlanReportService { paramMap.put("projectId", projectId); paramMap.putAll(new BeanMap(testPlanReport)); - if (licenseService.valid() != null) { - String testPlanShareUrl = shareInfoService.getTestPlanShareUrl(testPlanReport.getId()); - paramMap.put("planShareUrl", baseSystemConfigDTO.getUrl() + "/sharePlanReport" + testPlanShareUrl); - } - String successfulMailTemplate = ""; String errfoMailTemplate = ""; diff --git a/backend/src/main/java/io/metersphere/track/service/TestPlanService.java b/backend/src/main/java/io/metersphere/track/service/TestPlanService.java index b9b32e5225..f43aa9809d 100644 --- a/backend/src/main/java/io/metersphere/track/service/TestPlanService.java +++ b/backend/src/main/java/io/metersphere/track/service/TestPlanService.java @@ -504,7 +504,11 @@ public class TestPlanService { if (testCaseTestMapper.countByExample(examp) > 0) { list = testCaseTestMapper.selectByExample(examp); } - list.forEach(l -> { + Long nextLoadOrder = ServiceUtils.getNextOrder(request.getPlanId(), extTestPlanLoadCaseMapper::getLastOrder); + Long nextApiOrder = ServiceUtils.getNextOrder(request.getPlanId(), extTestPlanApiCaseMapper::getLastOrder); + Long nextScenarioOrder = ServiceUtils.getNextOrder(request.getPlanId(), extTestPlanScenarioCaseMapper::getLastOrder); + + for (TestCaseTest l : list) { if (StringUtils.equals(l.getTestType(), TestCaseStatus.performance.name())) { TestPlanLoadCase t = new TestPlanLoadCase(); t.setId(UUID.randomUUID().toString()); @@ -512,6 +516,8 @@ public class TestPlanService { t.setLoadCaseId(l.getTestId()); t.setCreateTime(System.currentTimeMillis()); t.setUpdateTime(System.currentTimeMillis()); + t.setOrder(nextLoadOrder); + nextLoadOrder += 5000; TestPlanLoadCaseExample testPlanLoadCaseExample = new TestPlanLoadCaseExample(); testPlanLoadCaseExample.createCriteria().andTestPlanIdEqualTo(request.getPlanId()).andLoadCaseIdEqualTo(t.getLoadCaseId()); if (testPlanLoadCaseMapper.countByExample(testPlanLoadCaseExample) <= 0) { @@ -530,6 +536,8 @@ public class TestPlanService { t.setEnvironmentId(apidefinition.getEnvironmentId()); t.setCreateTime(System.currentTimeMillis()); t.setUpdateTime(System.currentTimeMillis()); + t.setOrder(nextApiOrder); + nextApiOrder += 5000; TestPlanApiCaseExample example = new TestPlanApiCaseExample(); example.createCriteria().andTestPlanIdEqualTo(request.getPlanId()).andApiCaseIdEqualTo(t.getApiCaseId()); if (testPlanApiCaseMapper.countByExample(example) <= 0) { @@ -552,6 +560,8 @@ public class TestPlanService { t.setStatus(testPlanApiScenario.getStatus()); t.setCreateTime(System.currentTimeMillis()); t.setUpdateTime(System.currentTimeMillis()); + t.setOrder(nextScenarioOrder); + nextScenarioOrder += 5000; TestPlanApiScenarioExample example = new TestPlanApiScenarioExample(); example.createCriteria().andTestPlanIdEqualTo(request.getPlanId()).andApiScenarioIdEqualTo(t.getApiScenarioId()); if (testPlanApiScenarioMapper.countByExample(example) <= 0) { @@ -560,7 +570,7 @@ public class TestPlanService { } } - }); + } }); } }