From bf128be5910f07c29a8bec06e64500fb29fcbf29 Mon Sep 17 00:00:00 2001 From: CaptainB Date: Fri, 19 Nov 2021 18:50:57 +0800 Subject: [PATCH] =?UTF-8?q?fix(=E9=85=8D=E9=A2=9D=E7=AE=A1=E7=90=86):=20?= =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E6=8E=A5=E5=8F=A3=E6=B5=8B=E8=AF=95=E6=B2=A1?= =?UTF-8?q?=E6=9C=89=E9=AA=8C=E8=AF=81=E9=85=8D=E9=A2=9D=E7=9A=84=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --bug=1008092 --user=刘瑞斌 【系统设置】配额管理,接口测试数量没限制住 https://www.tapd.cn/55049933/s/1070718 --- .../metersphere/api/service/APITestService.java | 9 --------- .../api/service/ApiAutomationService.java | 10 ++++++++++ .../api/service/ApiDefinitionService.java | 16 +++++++++++----- .../api/service/ApiTestCaseService.java | 7 ------- .../io/metersphere/service/QuotaService.java | 4 +++- backend/src/main/java/io/metersphere/xpack | 2 +- 6 files changed, 25 insertions(+), 23 deletions(-) diff --git a/backend/src/main/java/io/metersphere/api/service/APITestService.java b/backend/src/main/java/io/metersphere/api/service/APITestService.java index e0d6ba4091..0cbfb3b954 100644 --- a/backend/src/main/java/io/metersphere/api/service/APITestService.java +++ b/backend/src/main/java/io/metersphere/api/service/APITestService.java @@ -97,7 +97,6 @@ public class APITestService { if (file == null) { throw new IllegalArgumentException(Translator.get("file_cannot_be_null")); } - checkQuota(); request.setBodyUploadIds(null); ApiTest test = createTest(request); saveFile(test, file); @@ -140,7 +139,6 @@ public class APITestService { } public void copy(SaveAPITestRequest request) { - checkQuota(); ApiTestExample example = new ApiTestExample(); example.createCriteria().andNameEqualTo(request.getName()).andProjectIdEqualTo(request.getProjectId()); @@ -452,13 +450,6 @@ public class APITestService { return reportId; } - private void checkQuota() { - QuotaService quotaService = CommonBeanFactory.getBean(QuotaService.class); - if (quotaService != null) { - quotaService.checkAPITestQuota(); - } - } - public void mergeCreate(SaveAPITestRequest request, MultipartFile file, List selectIds) { ApiTest test = createTest(request, file); selectIds.forEach(sourceId -> { 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 02a682e269..1922f7b72f 100644 --- a/backend/src/main/java/io/metersphere/api/service/ApiAutomationService.java +++ b/backend/src/main/java/io/metersphere/api/service/ApiAutomationService.java @@ -46,6 +46,7 @@ import io.metersphere.log.vo.DetailColumn; import io.metersphere.log.vo.OperatingLogDetails; import io.metersphere.log.vo.api.AutomationReference; import io.metersphere.plugin.core.MsTestElement; +import io.metersphere.service.QuotaService; import io.metersphere.service.RelationshipEdgeService; import io.metersphere.service.ScheduleService; import io.metersphere.service.SystemParameterService; @@ -295,6 +296,7 @@ public class ApiAutomationService { } public ApiScenario create(SaveApiScenarioRequest request, List bodyFiles, List scenarioFiles) { + checkQuota(); request.setId(UUID.randomUUID().toString()); checkNameExist(request); int nextNum = getNextNum(request.getProjectId()); @@ -326,6 +328,13 @@ public class ApiAutomationService { return scenario; } + private void checkQuota() { + QuotaService quotaService = CommonBeanFactory.getBean(QuotaService.class); + if (quotaService != null) { + quotaService.checkAPIAutomationQuota(); + } + } + private void uploadFiles(SaveApiScenarioRequest request, List bodyFiles, List scenarioFiles) { FileUtils.createBodyFiles(request.getScenarioFileIds(), scenarioFiles); List bodyFileRequestIds = request.getBodyFileRequestIds(); @@ -394,6 +403,7 @@ public class ApiAutomationService { } public ApiScenario update(SaveApiScenarioRequest request, List bodyFiles, List scenarioFiles) { + checkQuota(); checkNameExist(request); checkScenarioNum(request); diff --git a/backend/src/main/java/io/metersphere/api/service/ApiDefinitionService.java b/backend/src/main/java/io/metersphere/api/service/ApiDefinitionService.java index d85f81eeed..856c521235 100644 --- a/backend/src/main/java/io/metersphere/api/service/ApiDefinitionService.java +++ b/backend/src/main/java/io/metersphere/api/service/ApiDefinitionService.java @@ -49,10 +49,7 @@ import io.metersphere.log.vo.StatusReference; import io.metersphere.log.vo.api.DefinitionReference; import io.metersphere.notice.sender.NoticeModel; import io.metersphere.notice.service.NoticeSendService; -import io.metersphere.service.FileService; -import io.metersphere.service.RelationshipEdgeService; -import io.metersphere.service.ScheduleService; -import io.metersphere.service.SystemParameterService; +import io.metersphere.service.*; import io.metersphere.track.request.testcase.ApiCaseRelevanceRequest; import io.metersphere.track.request.testcase.QueryTestPlanRequest; import io.metersphere.track.service.TestPlanService; @@ -269,6 +266,7 @@ public class ApiDefinitionService { } public ApiDefinitionWithBLOBs create(SaveApiDefinitionRequest request, List bodyFiles) { + checkQuota(); if (StringUtils.equals(request.getProtocol(), "DUBBO")) { request.setMethod("dubbo://"); } @@ -278,6 +276,7 @@ public class ApiDefinitionService { } public ApiDefinitionWithBLOBs update(SaveApiDefinitionRequest request, List bodyFiles) { + checkQuota(); if (request.getRequest() != null) { deleteFileByTestId(request.getRequest().getId()); } @@ -292,6 +291,13 @@ public class ApiDefinitionService { return returnModel; } + private void checkQuota() { + QuotaService quotaService = CommonBeanFactory.getBean(QuotaService.class); + if (quotaService != null) { + quotaService.checkAPIDefinitionQuota(); + } + } + public void delete(String apiId) { apiTestCaseService.deleteTestCase(apiId); deleteFileByTestId(apiId); @@ -1748,7 +1754,7 @@ public class ApiDefinitionService { String format = body.getString("format"); if (StringUtils.equals(format, "JSON-SCHEMA") && StringUtils.isNotEmpty(body.getString("jsonSchema"))) { elements = JSONSchemaToDocumentUtils.getDocument(body.getString("jsonSchema")); - }else { + } else { elements = JSONToDocumentUtils.getDocument(raw, dataType); } } else if (StringUtils.equals(dataType, "XML")) { diff --git a/backend/src/main/java/io/metersphere/api/service/ApiTestCaseService.java b/backend/src/main/java/io/metersphere/api/service/ApiTestCaseService.java index 231e348c70..1c2be380e4 100644 --- a/backend/src/main/java/io/metersphere/api/service/ApiTestCaseService.java +++ b/backend/src/main/java/io/metersphere/api/service/ApiTestCaseService.java @@ -231,13 +231,6 @@ public class ApiTestCaseService { return test; } - private void checkQuota() { - QuotaService quotaService = CommonBeanFactory.getBean(QuotaService.class); - if (quotaService != null) { - quotaService.checkAPITestQuota(); - } - } - public ApiTestCase update(SaveApiTestCaseRequest request, List bodyFiles) { deleteFileByTestId(request.getId()); request.setBodyUploadIds(null); diff --git a/backend/src/main/java/io/metersphere/service/QuotaService.java b/backend/src/main/java/io/metersphere/service/QuotaService.java index fdde5997bf..be420e6538 100644 --- a/backend/src/main/java/io/metersphere/service/QuotaService.java +++ b/backend/src/main/java/io/metersphere/service/QuotaService.java @@ -7,7 +7,9 @@ import java.util.Set; public interface QuotaService { - void checkAPITestQuota(); + void checkAPIDefinitionQuota(); + + void checkAPIAutomationQuota(); void checkLoadTestQuota(TestPlanRequest request, boolean checkPerformance); diff --git a/backend/src/main/java/io/metersphere/xpack b/backend/src/main/java/io/metersphere/xpack index 9a24f644b8..1a1a00814f 160000 --- a/backend/src/main/java/io/metersphere/xpack +++ b/backend/src/main/java/io/metersphere/xpack @@ -1 +1 @@ -Subproject commit 9a24f644b842d930da6019383fc70e11b8973af2 +Subproject commit 1a1a00814f367d827975b524781771b74a7e7938