From bf71b37cf4e08fa25782d3f5d42d6f0432b09df7 Mon Sep 17 00:00:00 2001
From: wenyann <64353056+wenyann@users.noreply.github.com>
Date: Thu, 13 Aug 2020 19:09:02 +0800
Subject: [PATCH 1/7] =?UTF-8?q?style:=20=E6=B5=8B=E8=AF=95=E6=8A=A5?=
=?UTF-8?q?=E5=91=8A=E4=BC=98=E5=8C=96?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../track/domain/ReportResultComponent.java | 20 +++++
.../dto/TestCaseReportModuleResultDTO.java | 5 ++
.../TemplateComponent/DefectListComponent.vue | 80 +++++++++++++++++++
.../TemplateComponent/TemplateComponent.vue | 5 +-
.../TemplateComponent/TestResultComponent.vue | 66 ++++++++++++---
.../report/TestCaseReportTemplateEdit.vue | 10 ++-
.../comonents/report/TestCaseReportView.vue | 4 +-
frontend/src/i18n/en-US.js | 2 +
frontend/src/i18n/zh-CN.js | 2 +
frontend/src/i18n/zh-TW.js | 2 +
10 files changed, 181 insertions(+), 15 deletions(-)
create mode 100644 frontend/src/business/components/track/plan/view/comonents/report/TemplateComponent/DefectListComponent.vue
diff --git a/backend/src/main/java/io/metersphere/track/domain/ReportResultComponent.java b/backend/src/main/java/io/metersphere/track/domain/ReportResultComponent.java
index 5f24e1a3b7..28c69361a3 100644
--- a/backend/src/main/java/io/metersphere/track/domain/ReportResultComponent.java
+++ b/backend/src/main/java/io/metersphere/track/domain/ReportResultComponent.java
@@ -86,12 +86,32 @@ public class ReportResultComponent extends ReportComponent {
moduleResult.setCaseCount(0);
moduleResult.setPassCount(0);
moduleResult.setIssuesCount(0);
+ moduleResult.setFailureCount(0);
+ moduleResult.setBlockingCount(0);
+ moduleResult.setPrepareCount(0);
+ moduleResult.setSkipCount(0);
+ moduleResult.setUnderwayCount(0);
moduleResult.setModuleId(rootNodeId);
}
moduleResult.setCaseCount(moduleResult.getCaseCount() + 1);
if (StringUtils.equals(testCase.getStatus(), TestPlanTestCaseStatus.Pass.name())) {
moduleResult.setPassCount(moduleResult.getPassCount() + 1);
}
+ if (StringUtils.equals(testCase.getStatus(), TestPlanTestCaseStatus.Prepare.name())) {
+ moduleResult.setPrepareCount(moduleResult.getPrepareCount() + 1);
+ }
+ if (StringUtils.equals(testCase.getStatus(), TestPlanTestCaseStatus.Underway.name())) {
+ moduleResult.setUnderwayCount(moduleResult.getUnderwayCount() + 1);
+ }
+ if (StringUtils.equals(testCase.getStatus(), TestPlanTestCaseStatus.Failure.name())) {
+ moduleResult.setFailureCount(moduleResult.getFailureCount() + 1);
+ }
+ if (StringUtils.equals(testCase.getStatus(), TestPlanTestCaseStatus.Skip.name())) {
+ moduleResult.setSkipCount(moduleResult.getSkipCount() + 1);
+ }
+ if (StringUtils.equals(testCase.getStatus(), TestPlanTestCaseStatus.Blocking.name())) {
+ moduleResult.setBlockingCount(moduleResult.getBlockingCount() + 1);
+ }
if (StringUtils.isNotBlank(testCase.getIssues())) {
if (JSON.parseObject(testCase.getIssues()).getBoolean("hasIssues")) {
moduleResult.setIssuesCount(moduleResult.getIssuesCount() + 1);
diff --git a/backend/src/main/java/io/metersphere/track/dto/TestCaseReportModuleResultDTO.java b/backend/src/main/java/io/metersphere/track/dto/TestCaseReportModuleResultDTO.java
index 59b82f0c50..00e05f9486 100644
--- a/backend/src/main/java/io/metersphere/track/dto/TestCaseReportModuleResultDTO.java
+++ b/backend/src/main/java/io/metersphere/track/dto/TestCaseReportModuleResultDTO.java
@@ -12,4 +12,9 @@ public class TestCaseReportModuleResultDTO {
private Integer passCount;
private Double passRate;
private Integer issuesCount;
+ private Integer prepareCount;
+ private Integer skipCount;
+ private Integer failureCount;
+ private Integer blockingCount;
+ private Integer underwayCount;
}
diff --git a/frontend/src/business/components/track/plan/view/comonents/report/TemplateComponent/DefectListComponent.vue b/frontend/src/business/components/track/plan/view/comonents/report/TemplateComponent/DefectListComponent.vue
new file mode 100644
index 0000000000..02acec71b1
--- /dev/null
+++ b/frontend/src/business/components/track/plan/view/comonents/report/TemplateComponent/DefectListComponent.vue
@@ -0,0 +1,80 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/frontend/src/business/components/track/plan/view/comonents/report/TemplateComponent/TemplateComponent.vue b/frontend/src/business/components/track/plan/view/comonents/report/TemplateComponent/TemplateComponent.vue
index 911bddafe9..1d283a5e61 100644
--- a/frontend/src/business/components/track/plan/view/comonents/report/TemplateComponent/TemplateComponent.vue
+++ b/frontend/src/business/components/track/plan/view/comonents/report/TemplateComponent/TemplateComponent.vue
@@ -7,6 +7,7 @@
+
@@ -16,6 +17,7 @@
+
@@ -28,10 +30,11 @@
import TestResultChartComponent from "./TestResultChartComponent";
import RichTextComponent from "./RichTextComponent";
import FailureResultComponent from "./FailureResultComponent";
+ import DefectListComponent from "./DefectListComponent";
export default {
name: "TemplateComponent",
components: {
- FailureResultComponent,
+ FailureResultComponent,DefectListComponent,
RichTextComponent, TestResultChartComponent, TestResultComponent, BaseInfoComponent},
props: {
preview: {
diff --git a/frontend/src/business/components/track/plan/view/comonents/report/TemplateComponent/TestResultComponent.vue b/frontend/src/business/components/track/plan/view/comonents/report/TemplateComponent/TestResultComponent.vue
index c65c738aa5..8bca789386 100644
--- a/frontend/src/business/components/track/plan/view/comonents/report/TemplateComponent/TestResultComponent.vue
+++ b/frontend/src/business/components/track/plan/view/comonents/report/TemplateComponent/TestResultComponent.vue
@@ -18,6 +18,36 @@
:label="$t('test_track.plan_view.case_count')"
width="180">
+
+
+
+
+
+
+
+
+
+
+
+
@@ -50,19 +80,37 @@
moduleName: this.$t('test_track.module.module') + '1',
caseCount: '14',
passRate: 10.8,
- issuesCount: 3
+ issuesCount: 3,
+ passCount:0,
+ failureCount:0,
+ blockingCount:0,
+ skipCount:0,
+ underwayCount:0,
+ prepareCount:0
},
{
- moduleName: this.$t('test_track.module.module') + '2',
- caseCount: '24',
- passRate: 40,
- issuesCount: 6
+ moduleName: this.$t('test_track.module.module') + '1',
+ caseCount: '14',
+ passRate: 10.8,
+ issuesCount: 3,
+ passCount:0,
+ failureCount:0,
+ blockingCount:0,
+ skipCount:0,
+ underwayCount:0,
+ prepareCount:0
},
{
- moduleName: this.$t('test_track.module.module') + '3',
- caseCount: '50',
- passRate: 76.9,
- issuesCount: 8
+ moduleName: this.$t('test_track.module.module') + '1',
+ caseCount: '14',
+ passRate: 10.8,
+ issuesCount: 3,
+ passCount:0,
+ failureCount:0,
+ blockingCount:0,
+ skipCount:0,
+ underwayCount:0,
+ prepareCount:0
}
]
}
diff --git a/frontend/src/business/components/track/plan/view/comonents/report/TestCaseReportTemplateEdit.vue b/frontend/src/business/components/track/plan/view/comonents/report/TestCaseReportTemplateEdit.vue
index 87a24f035b..d5a022954b 100644
--- a/frontend/src/business/components/track/plan/view/comonents/report/TestCaseReportTemplateEdit.vue
+++ b/frontend/src/business/components/track/plan/view/comonents/report/TestCaseReportTemplateEdit.vue
@@ -77,10 +77,11 @@
[2, { name: this.$t('test_track.plan_view.test_result'), id: 2 , type: 'system'}],
[3, { name: this.$t('test_track.plan_view.result_distribution'), id: 3 ,type: 'system'}],
[4, { name: this.$t('test_track.plan_view.failure_case'), id: 4 ,type: 'system'}],
- [5, { name: this.$t('test_track.plan_view.custom_component'), id: 5 ,type: 'custom'}]
+ [5, { name: this.$t('test_track.plan_view.defect_list'), id: 5 ,type: 'system'}],
+ [6, { name: this.$t('test_track.plan_view.custom_component'), id:6,type: 'custom'}]
]
),
- components: [5],
+ components: [6],
previews: [],
template: {},
isReport: false
@@ -109,12 +110,12 @@
this.template = {
name: '',
content: {
- components: [1,2,3,4,5],
+ components: [1,2,3,4,5,6],
customComponent: new Map()
}
};
this.previews = [];
- this.components = [5];
+ this.components = [6];
if (id) {
this.type = 'edit';
this.getTemplateById(id);
@@ -144,6 +145,7 @@
}
}
});
+
},
handleClose() {
window.removeEventListener('popstate', this.goBack, false);
diff --git a/frontend/src/business/components/track/plan/view/comonents/report/TestCaseReportView.vue b/frontend/src/business/components/track/plan/view/comonents/report/TestCaseReportView.vue
index a9f7514615..2689c0836a 100644
--- a/frontend/src/business/components/track/plan/view/comonents/report/TestCaseReportView.vue
+++ b/frontend/src/business/components/track/plan/view/comonents/report/TestCaseReportView.vue
@@ -69,7 +69,8 @@
[2, { name: this.$t('test_track.plan_view.test_result'), id: 2 , type: 'system'}],
[3, { name: this.$t('test_track.plan_view.result_distribution'), id: 3 ,type: 'system'}],
[4, { name: this.$t('test_track.plan_view.failure_case'), id: 4 ,type: 'system'}],
- [5, { name: this.$t('test_track.plan_view.custom_component'), id: 5 ,type: 'custom'}]
+ [5, { name: this.$t('test_track.plan_view.defect_list'), id: 5 ,type: 'system'}],
+ [6, { name: this.$t('test_track.plan_view.custom_component'), id: 6 ,type: 'custom'}]
]
),
isTestManagerOrTestUser: false
@@ -166,6 +167,7 @@
getMetric() {
this.result = this.$get('/test/plan/get/metric/' + this.planId, response => {
this.metric = response.data;
+ console.log(this.metric)
if (!this.metric.failureTestCases) {
this.metric.failureTestCases = [];
}
diff --git a/frontend/src/i18n/en-US.js b/frontend/src/i18n/en-US.js
index 2d07634630..b44b6b3059 100644
--- a/frontend/src/i18n/en-US.js
+++ b/frontend/src/i18n/en-US.js
@@ -601,6 +601,7 @@ export default {
delete_confirm: "Confirm delete module:",
delete_all_resource: "and all submodules and test cases under the module",
module: "Module",
+ title:"Title"
},
home: {
recent_test: "Recent test",
@@ -640,6 +641,7 @@ export default {
result_distribution: "Result distribution",
custom_component: "Custom",
create_report: "Create report",
+ defect_list:"Defect list",
view_report: "View report",
component_library: "Component library",
component_library_tip: "Drag and drop the component from the component library, add to the right, preview the report effect, only one can be added per system component.",
diff --git a/frontend/src/i18n/zh-CN.js b/frontend/src/i18n/zh-CN.js
index bf943918e5..9467935821 100644
--- a/frontend/src/i18n/zh-CN.js
+++ b/frontend/src/i18n/zh-CN.js
@@ -606,6 +606,7 @@ export default {
delete_confirm: "确认删除模块: ",
delete_all_resource: "以及模块下所有子模块和测试用例",
module: "模块",
+ title:"标题",
},
home: {
recent_test: "最近测试",
@@ -644,6 +645,7 @@ export default {
test_result: "测试结果",
result_distribution: "测试结果分布",
custom_component: "自定义模块",
+ defect_list:"缺陷列表",
create_report: "创建测试报告",
view_report: "查看测试报告",
component_library: "组件库",
diff --git a/frontend/src/i18n/zh-TW.js b/frontend/src/i18n/zh-TW.js
index 1a0024912a..41a7c70dd4 100644
--- a/frontend/src/i18n/zh-TW.js
+++ b/frontend/src/i18n/zh-TW.js
@@ -601,6 +601,7 @@ export default {
delete_confirm: "確認刪除模塊: ",
delete_all_resource: "以及模塊下所有子模塊和測試用例",
module: "模塊",
+ title:"標題",
},
home: {
recent_test: "最近測試",
@@ -640,6 +641,7 @@ export default {
result_distribution: "測試結果分布",
custom_component: "自定義模塊",
create_report: "創建測試報告",
+ defect_list:"缺陷清單",
view_report: "查看測試報告",
component_library: "組件庫",
component_library_tip: "拖拽組件庫中組件,添加至右側,預覽報告效果,每個系統組件只能添加壹個。",
From 3783d30d7e5df685e658059b41cee14c05ed18aa Mon Sep 17 00:00:00 2001
From: q4speed
Date: Fri, 14 Aug 2020 13:34:18 +0800
Subject: [PATCH 2/7] =?UTF-8?q?feat:=20=E5=A2=9E=E5=8A=A0=E9=85=8D?=
=?UTF-8?q?=E9=A2=9D=E7=AE=A1=E7=90=86?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../io/metersphere/base/domain/Quota.java | 29 +
.../metersphere/base/domain/QuotaExample.java | 840 ++++++++++++++++++
.../io/metersphere/base/domain/Schedule.java | 3 +-
.../metersphere/base/mapper/QuotaMapper.java | 30 +
.../metersphere/base/mapper/QuotaMapper.xml | 291 ++++++
.../base/mapper/ScheduleMapper.xml | 70 +-
.../base/mapper/ext/ExtApiTestMapper.xml | 2 +-
.../io/metersphere/config/MybatisConfig.java | 2 +-
backend/src/main/java/io/metersphere/xpack | 2 +-
.../resources/db/migration/V13__add_quota.sql | 15 +
.../components/common/router/router.js | 76 +-
.../components/settings/SettingMenu.vue | 116 +--
.../components/settings/SettingMenuBackup.vue | 96 ++
.../business/components/settings/router.js | 88 ++
.../components/settings/system/User.vue | 8 +-
frontend/src/business/components/xpack | 2 +-
frontend/src/common/js/ajax.js | 22 +-
frontend/src/i18n/en-US.js | 21 +
frontend/src/i18n/zh-CN.js | 21 +
frontend/src/i18n/zh-TW.js | 21 +
20 files changed, 1579 insertions(+), 176 deletions(-)
create mode 100644 backend/src/main/java/io/metersphere/base/domain/Quota.java
create mode 100644 backend/src/main/java/io/metersphere/base/domain/QuotaExample.java
create mode 100644 backend/src/main/java/io/metersphere/base/mapper/QuotaMapper.java
create mode 100644 backend/src/main/java/io/metersphere/base/mapper/QuotaMapper.xml
create mode 100644 backend/src/main/resources/db/migration/V13__add_quota.sql
create mode 100644 frontend/src/business/components/settings/SettingMenuBackup.vue
create mode 100644 frontend/src/business/components/settings/router.js
diff --git a/backend/src/main/java/io/metersphere/base/domain/Quota.java b/backend/src/main/java/io/metersphere/base/domain/Quota.java
new file mode 100644
index 0000000000..578d59f8ca
--- /dev/null
+++ b/backend/src/main/java/io/metersphere/base/domain/Quota.java
@@ -0,0 +1,29 @@
+package io.metersphere.base.domain;
+
+import java.io.Serializable;
+import lombok.Data;
+
+@Data
+public class Quota implements Serializable {
+ private String id;
+
+ private Integer api;
+
+ private Integer performance;
+
+ private Integer maxThreads;
+
+ private Integer duration;
+
+ private String resourcePool;
+
+ private String organizationId;
+
+ private String workspaceId;
+
+ private Boolean useDefault;
+
+ private Long updateTime;
+
+ private static final long serialVersionUID = 1L;
+}
\ No newline at end of file
diff --git a/backend/src/main/java/io/metersphere/base/domain/QuotaExample.java b/backend/src/main/java/io/metersphere/base/domain/QuotaExample.java
new file mode 100644
index 0000000000..c9f47fdc7c
--- /dev/null
+++ b/backend/src/main/java/io/metersphere/base/domain/QuotaExample.java
@@ -0,0 +1,840 @@
+package io.metersphere.base.domain;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class QuotaExample {
+ protected String orderByClause;
+
+ protected boolean distinct;
+
+ protected List oredCriteria;
+
+ public QuotaExample() {
+ oredCriteria = new ArrayList();
+ }
+
+ public void setOrderByClause(String orderByClause) {
+ this.orderByClause = orderByClause;
+ }
+
+ public String getOrderByClause() {
+ return orderByClause;
+ }
+
+ public void setDistinct(boolean distinct) {
+ this.distinct = distinct;
+ }
+
+ public boolean isDistinct() {
+ return distinct;
+ }
+
+ public List getOredCriteria() {
+ return oredCriteria;
+ }
+
+ public void or(Criteria criteria) {
+ oredCriteria.add(criteria);
+ }
+
+ public Criteria or() {
+ Criteria criteria = createCriteriaInternal();
+ oredCriteria.add(criteria);
+ return criteria;
+ }
+
+ public Criteria createCriteria() {
+ Criteria criteria = createCriteriaInternal();
+ if (oredCriteria.size() == 0) {
+ oredCriteria.add(criteria);
+ }
+ return criteria;
+ }
+
+ protected Criteria createCriteriaInternal() {
+ Criteria criteria = new Criteria();
+ return criteria;
+ }
+
+ public void clear() {
+ oredCriteria.clear();
+ orderByClause = null;
+ distinct = false;
+ }
+
+ protected abstract static class GeneratedCriteria {
+ protected List criteria;
+
+ protected GeneratedCriteria() {
+ super();
+ criteria = new ArrayList();
+ }
+
+ public boolean isValid() {
+ return criteria.size() > 0;
+ }
+
+ public List getAllCriteria() {
+ return criteria;
+ }
+
+ public List getCriteria() {
+ return criteria;
+ }
+
+ protected void addCriterion(String condition) {
+ if (condition == null) {
+ throw new RuntimeException("Value for condition cannot be null");
+ }
+ criteria.add(new Criterion(condition));
+ }
+
+ protected void addCriterion(String condition, Object value, String property) {
+ if (value == null) {
+ throw new RuntimeException("Value for " + property + " cannot be null");
+ }
+ criteria.add(new Criterion(condition, value));
+ }
+
+ protected void addCriterion(String condition, Object value1, Object value2, String property) {
+ if (value1 == null || value2 == null) {
+ throw new RuntimeException("Between values for " + property + " cannot be null");
+ }
+ criteria.add(new Criterion(condition, value1, value2));
+ }
+
+ public Criteria andIdIsNull() {
+ addCriterion("id is null");
+ return (Criteria) this;
+ }
+
+ public Criteria andIdIsNotNull() {
+ addCriterion("id is not null");
+ return (Criteria) this;
+ }
+
+ public Criteria andIdEqualTo(String value) {
+ addCriterion("id =", value, "id");
+ return (Criteria) this;
+ }
+
+ public Criteria andIdNotEqualTo(String value) {
+ addCriterion("id <>", value, "id");
+ return (Criteria) this;
+ }
+
+ public Criteria andIdGreaterThan(String value) {
+ addCriterion("id >", value, "id");
+ return (Criteria) this;
+ }
+
+ public Criteria andIdGreaterThanOrEqualTo(String value) {
+ addCriterion("id >=", value, "id");
+ return (Criteria) this;
+ }
+
+ public Criteria andIdLessThan(String value) {
+ addCriterion("id <", value, "id");
+ return (Criteria) this;
+ }
+
+ public Criteria andIdLessThanOrEqualTo(String value) {
+ addCriterion("id <=", value, "id");
+ return (Criteria) this;
+ }
+
+ public Criteria andIdLike(String value) {
+ addCriterion("id like", value, "id");
+ return (Criteria) this;
+ }
+
+ public Criteria andIdNotLike(String value) {
+ addCriterion("id not like", value, "id");
+ return (Criteria) this;
+ }
+
+ public Criteria andIdIn(List values) {
+ addCriterion("id in", values, "id");
+ return (Criteria) this;
+ }
+
+ public Criteria andIdNotIn(List values) {
+ addCriterion("id not in", values, "id");
+ return (Criteria) this;
+ }
+
+ public Criteria andIdBetween(String value1, String value2) {
+ addCriterion("id between", value1, value2, "id");
+ return (Criteria) this;
+ }
+
+ public Criteria andIdNotBetween(String value1, String value2) {
+ addCriterion("id not between", value1, value2, "id");
+ return (Criteria) this;
+ }
+
+ public Criteria andApiIsNull() {
+ addCriterion("api is null");
+ return (Criteria) this;
+ }
+
+ public Criteria andApiIsNotNull() {
+ addCriterion("api is not null");
+ return (Criteria) this;
+ }
+
+ public Criteria andApiEqualTo(Integer value) {
+ addCriterion("api =", value, "api");
+ return (Criteria) this;
+ }
+
+ public Criteria andApiNotEqualTo(Integer value) {
+ addCriterion("api <>", value, "api");
+ return (Criteria) this;
+ }
+
+ public Criteria andApiGreaterThan(Integer value) {
+ addCriterion("api >", value, "api");
+ return (Criteria) this;
+ }
+
+ public Criteria andApiGreaterThanOrEqualTo(Integer value) {
+ addCriterion("api >=", value, "api");
+ return (Criteria) this;
+ }
+
+ public Criteria andApiLessThan(Integer value) {
+ addCriterion("api <", value, "api");
+ return (Criteria) this;
+ }
+
+ public Criteria andApiLessThanOrEqualTo(Integer value) {
+ addCriterion("api <=", value, "api");
+ return (Criteria) this;
+ }
+
+ public Criteria andApiIn(List values) {
+ addCriterion("api in", values, "api");
+ return (Criteria) this;
+ }
+
+ public Criteria andApiNotIn(List values) {
+ addCriterion("api not in", values, "api");
+ return (Criteria) this;
+ }
+
+ public Criteria andApiBetween(Integer value1, Integer value2) {
+ addCriterion("api between", value1, value2, "api");
+ return (Criteria) this;
+ }
+
+ public Criteria andApiNotBetween(Integer value1, Integer value2) {
+ addCriterion("api not between", value1, value2, "api");
+ return (Criteria) this;
+ }
+
+ public Criteria andPerformanceIsNull() {
+ addCriterion("performance is null");
+ return (Criteria) this;
+ }
+
+ public Criteria andPerformanceIsNotNull() {
+ addCriterion("performance is not null");
+ return (Criteria) this;
+ }
+
+ public Criteria andPerformanceEqualTo(Integer value) {
+ addCriterion("performance =", value, "performance");
+ return (Criteria) this;
+ }
+
+ public Criteria andPerformanceNotEqualTo(Integer value) {
+ addCriterion("performance <>", value, "performance");
+ return (Criteria) this;
+ }
+
+ public Criteria andPerformanceGreaterThan(Integer value) {
+ addCriterion("performance >", value, "performance");
+ return (Criteria) this;
+ }
+
+ public Criteria andPerformanceGreaterThanOrEqualTo(Integer value) {
+ addCriterion("performance >=", value, "performance");
+ return (Criteria) this;
+ }
+
+ public Criteria andPerformanceLessThan(Integer value) {
+ addCriterion("performance <", value, "performance");
+ return (Criteria) this;
+ }
+
+ public Criteria andPerformanceLessThanOrEqualTo(Integer value) {
+ addCriterion("performance <=", value, "performance");
+ return (Criteria) this;
+ }
+
+ public Criteria andPerformanceIn(List values) {
+ addCriterion("performance in", values, "performance");
+ return (Criteria) this;
+ }
+
+ public Criteria andPerformanceNotIn(List values) {
+ addCriterion("performance not in", values, "performance");
+ return (Criteria) this;
+ }
+
+ public Criteria andPerformanceBetween(Integer value1, Integer value2) {
+ addCriterion("performance between", value1, value2, "performance");
+ return (Criteria) this;
+ }
+
+ public Criteria andPerformanceNotBetween(Integer value1, Integer value2) {
+ addCriterion("performance not between", value1, value2, "performance");
+ return (Criteria) this;
+ }
+
+ public Criteria andMaxThreadsIsNull() {
+ addCriterion("max_threads is null");
+ return (Criteria) this;
+ }
+
+ public Criteria andMaxThreadsIsNotNull() {
+ addCriterion("max_threads is not null");
+ return (Criteria) this;
+ }
+
+ public Criteria andMaxThreadsEqualTo(Integer value) {
+ addCriterion("max_threads =", value, "maxThreads");
+ return (Criteria) this;
+ }
+
+ public Criteria andMaxThreadsNotEqualTo(Integer value) {
+ addCriterion("max_threads <>", value, "maxThreads");
+ return (Criteria) this;
+ }
+
+ public Criteria andMaxThreadsGreaterThan(Integer value) {
+ addCriterion("max_threads >", value, "maxThreads");
+ return (Criteria) this;
+ }
+
+ public Criteria andMaxThreadsGreaterThanOrEqualTo(Integer value) {
+ addCriterion("max_threads >=", value, "maxThreads");
+ return (Criteria) this;
+ }
+
+ public Criteria andMaxThreadsLessThan(Integer value) {
+ addCriterion("max_threads <", value, "maxThreads");
+ return (Criteria) this;
+ }
+
+ public Criteria andMaxThreadsLessThanOrEqualTo(Integer value) {
+ addCriterion("max_threads <=", value, "maxThreads");
+ return (Criteria) this;
+ }
+
+ public Criteria andMaxThreadsIn(List values) {
+ addCriterion("max_threads in", values, "maxThreads");
+ return (Criteria) this;
+ }
+
+ public Criteria andMaxThreadsNotIn(List values) {
+ addCriterion("max_threads not in", values, "maxThreads");
+ return (Criteria) this;
+ }
+
+ public Criteria andMaxThreadsBetween(Integer value1, Integer value2) {
+ addCriterion("max_threads between", value1, value2, "maxThreads");
+ return (Criteria) this;
+ }
+
+ public Criteria andMaxThreadsNotBetween(Integer value1, Integer value2) {
+ addCriterion("max_threads not between", value1, value2, "maxThreads");
+ return (Criteria) this;
+ }
+
+ public Criteria andDurationIsNull() {
+ addCriterion("duration is null");
+ return (Criteria) this;
+ }
+
+ public Criteria andDurationIsNotNull() {
+ addCriterion("duration is not null");
+ return (Criteria) this;
+ }
+
+ public Criteria andDurationEqualTo(Integer value) {
+ addCriterion("duration =", value, "duration");
+ return (Criteria) this;
+ }
+
+ public Criteria andDurationNotEqualTo(Integer value) {
+ addCriterion("duration <>", value, "duration");
+ return (Criteria) this;
+ }
+
+ public Criteria andDurationGreaterThan(Integer value) {
+ addCriterion("duration >", value, "duration");
+ return (Criteria) this;
+ }
+
+ public Criteria andDurationGreaterThanOrEqualTo(Integer value) {
+ addCriterion("duration >=", value, "duration");
+ return (Criteria) this;
+ }
+
+ public Criteria andDurationLessThan(Integer value) {
+ addCriterion("duration <", value, "duration");
+ return (Criteria) this;
+ }
+
+ public Criteria andDurationLessThanOrEqualTo(Integer value) {
+ addCriterion("duration <=", value, "duration");
+ return (Criteria) this;
+ }
+
+ public Criteria andDurationIn(List values) {
+ addCriterion("duration in", values, "duration");
+ return (Criteria) this;
+ }
+
+ public Criteria andDurationNotIn(List values) {
+ addCriterion("duration not in", values, "duration");
+ return (Criteria) this;
+ }
+
+ public Criteria andDurationBetween(Integer value1, Integer value2) {
+ addCriterion("duration between", value1, value2, "duration");
+ return (Criteria) this;
+ }
+
+ public Criteria andDurationNotBetween(Integer value1, Integer value2) {
+ addCriterion("duration not between", value1, value2, "duration");
+ return (Criteria) this;
+ }
+
+ public Criteria andResourcePoolIsNull() {
+ addCriterion("resource_pool is null");
+ return (Criteria) this;
+ }
+
+ public Criteria andResourcePoolIsNotNull() {
+ addCriterion("resource_pool is not null");
+ return (Criteria) this;
+ }
+
+ public Criteria andResourcePoolEqualTo(String value) {
+ addCriterion("resource_pool =", value, "resourcePool");
+ return (Criteria) this;
+ }
+
+ public Criteria andResourcePoolNotEqualTo(String value) {
+ addCriterion("resource_pool <>", value, "resourcePool");
+ return (Criteria) this;
+ }
+
+ public Criteria andResourcePoolGreaterThan(String value) {
+ addCriterion("resource_pool >", value, "resourcePool");
+ return (Criteria) this;
+ }
+
+ public Criteria andResourcePoolGreaterThanOrEqualTo(String value) {
+ addCriterion("resource_pool >=", value, "resourcePool");
+ return (Criteria) this;
+ }
+
+ public Criteria andResourcePoolLessThan(String value) {
+ addCriterion("resource_pool <", value, "resourcePool");
+ return (Criteria) this;
+ }
+
+ public Criteria andResourcePoolLessThanOrEqualTo(String value) {
+ addCriterion("resource_pool <=", value, "resourcePool");
+ return (Criteria) this;
+ }
+
+ public Criteria andResourcePoolLike(String value) {
+ addCriterion("resource_pool like", value, "resourcePool");
+ return (Criteria) this;
+ }
+
+ public Criteria andResourcePoolNotLike(String value) {
+ addCriterion("resource_pool not like", value, "resourcePool");
+ return (Criteria) this;
+ }
+
+ public Criteria andResourcePoolIn(List values) {
+ addCriterion("resource_pool in", values, "resourcePool");
+ return (Criteria) this;
+ }
+
+ public Criteria andResourcePoolNotIn(List values) {
+ addCriterion("resource_pool not in", values, "resourcePool");
+ return (Criteria) this;
+ }
+
+ public Criteria andResourcePoolBetween(String value1, String value2) {
+ addCriterion("resource_pool between", value1, value2, "resourcePool");
+ return (Criteria) this;
+ }
+
+ public Criteria andResourcePoolNotBetween(String value1, String value2) {
+ addCriterion("resource_pool not between", value1, value2, "resourcePool");
+ return (Criteria) this;
+ }
+
+ public Criteria andOrganizationIdIsNull() {
+ addCriterion("organization_id is null");
+ return (Criteria) this;
+ }
+
+ public Criteria andOrganizationIdIsNotNull() {
+ addCriterion("organization_id is not null");
+ return (Criteria) this;
+ }
+
+ public Criteria andOrganizationIdEqualTo(String value) {
+ addCriterion("organization_id =", value, "organizationId");
+ return (Criteria) this;
+ }
+
+ public Criteria andOrganizationIdNotEqualTo(String value) {
+ addCriterion("organization_id <>", value, "organizationId");
+ return (Criteria) this;
+ }
+
+ public Criteria andOrganizationIdGreaterThan(String value) {
+ addCriterion("organization_id >", value, "organizationId");
+ return (Criteria) this;
+ }
+
+ public Criteria andOrganizationIdGreaterThanOrEqualTo(String value) {
+ addCriterion("organization_id >=", value, "organizationId");
+ return (Criteria) this;
+ }
+
+ public Criteria andOrganizationIdLessThan(String value) {
+ addCriterion("organization_id <", value, "organizationId");
+ return (Criteria) this;
+ }
+
+ public Criteria andOrganizationIdLessThanOrEqualTo(String value) {
+ addCriterion("organization_id <=", value, "organizationId");
+ return (Criteria) this;
+ }
+
+ public Criteria andOrganizationIdLike(String value) {
+ addCriterion("organization_id like", value, "organizationId");
+ return (Criteria) this;
+ }
+
+ public Criteria andOrganizationIdNotLike(String value) {
+ addCriterion("organization_id not like", value, "organizationId");
+ return (Criteria) this;
+ }
+
+ public Criteria andOrganizationIdIn(List values) {
+ addCriterion("organization_id in", values, "organizationId");
+ return (Criteria) this;
+ }
+
+ public Criteria andOrganizationIdNotIn(List values) {
+ addCriterion("organization_id not in", values, "organizationId");
+ return (Criteria) this;
+ }
+
+ public Criteria andOrganizationIdBetween(String value1, String value2) {
+ addCriterion("organization_id between", value1, value2, "organizationId");
+ return (Criteria) this;
+ }
+
+ public Criteria andOrganizationIdNotBetween(String value1, String value2) {
+ addCriterion("organization_id not between", value1, value2, "organizationId");
+ return (Criteria) this;
+ }
+
+ public Criteria andWorkspaceIdIsNull() {
+ addCriterion("workspace_id is null");
+ return (Criteria) this;
+ }
+
+ public Criteria andWorkspaceIdIsNotNull() {
+ addCriterion("workspace_id is not null");
+ return (Criteria) this;
+ }
+
+ public Criteria andWorkspaceIdEqualTo(String value) {
+ addCriterion("workspace_id =", value, "workspaceId");
+ return (Criteria) this;
+ }
+
+ public Criteria andWorkspaceIdNotEqualTo(String value) {
+ addCriterion("workspace_id <>", value, "workspaceId");
+ return (Criteria) this;
+ }
+
+ public Criteria andWorkspaceIdGreaterThan(String value) {
+ addCriterion("workspace_id >", value, "workspaceId");
+ return (Criteria) this;
+ }
+
+ public Criteria andWorkspaceIdGreaterThanOrEqualTo(String value) {
+ addCriterion("workspace_id >=", value, "workspaceId");
+ return (Criteria) this;
+ }
+
+ public Criteria andWorkspaceIdLessThan(String value) {
+ addCriterion("workspace_id <", value, "workspaceId");
+ return (Criteria) this;
+ }
+
+ public Criteria andWorkspaceIdLessThanOrEqualTo(String value) {
+ addCriterion("workspace_id <=", value, "workspaceId");
+ return (Criteria) this;
+ }
+
+ public Criteria andWorkspaceIdLike(String value) {
+ addCriterion("workspace_id like", value, "workspaceId");
+ return (Criteria) this;
+ }
+
+ public Criteria andWorkspaceIdNotLike(String value) {
+ addCriterion("workspace_id not like", value, "workspaceId");
+ return (Criteria) this;
+ }
+
+ public Criteria andWorkspaceIdIn(List values) {
+ addCriterion("workspace_id in", values, "workspaceId");
+ return (Criteria) this;
+ }
+
+ public Criteria andWorkspaceIdNotIn(List values) {
+ addCriterion("workspace_id not in", values, "workspaceId");
+ return (Criteria) this;
+ }
+
+ public Criteria andWorkspaceIdBetween(String value1, String value2) {
+ addCriterion("workspace_id between", value1, value2, "workspaceId");
+ return (Criteria) this;
+ }
+
+ public Criteria andWorkspaceIdNotBetween(String value1, String value2) {
+ addCriterion("workspace_id not between", value1, value2, "workspaceId");
+ return (Criteria) this;
+ }
+
+ public Criteria andUseDefaultIsNull() {
+ addCriterion("use_default is null");
+ return (Criteria) this;
+ }
+
+ public Criteria andUseDefaultIsNotNull() {
+ addCriterion("use_default is not null");
+ return (Criteria) this;
+ }
+
+ public Criteria andUseDefaultEqualTo(Boolean value) {
+ addCriterion("use_default =", value, "useDefault");
+ return (Criteria) this;
+ }
+
+ public Criteria andUseDefaultNotEqualTo(Boolean value) {
+ addCriterion("use_default <>", value, "useDefault");
+ return (Criteria) this;
+ }
+
+ public Criteria andUseDefaultGreaterThan(Boolean value) {
+ addCriterion("use_default >", value, "useDefault");
+ return (Criteria) this;
+ }
+
+ public Criteria andUseDefaultGreaterThanOrEqualTo(Boolean value) {
+ addCriterion("use_default >=", value, "useDefault");
+ return (Criteria) this;
+ }
+
+ public Criteria andUseDefaultLessThan(Boolean value) {
+ addCriterion("use_default <", value, "useDefault");
+ return (Criteria) this;
+ }
+
+ public Criteria andUseDefaultLessThanOrEqualTo(Boolean value) {
+ addCriterion("use_default <=", value, "useDefault");
+ return (Criteria) this;
+ }
+
+ public Criteria andUseDefaultIn(List values) {
+ addCriterion("use_default in", values, "useDefault");
+ return (Criteria) this;
+ }
+
+ public Criteria andUseDefaultNotIn(List values) {
+ addCriterion("use_default not in", values, "useDefault");
+ return (Criteria) this;
+ }
+
+ public Criteria andUseDefaultBetween(Boolean value1, Boolean value2) {
+ addCriterion("use_default between", value1, value2, "useDefault");
+ return (Criteria) this;
+ }
+
+ public Criteria andUseDefaultNotBetween(Boolean value1, Boolean value2) {
+ addCriterion("use_default not between", value1, value2, "useDefault");
+ return (Criteria) this;
+ }
+
+ public Criteria andUpdateTimeIsNull() {
+ addCriterion("update_time is null");
+ return (Criteria) this;
+ }
+
+ public Criteria andUpdateTimeIsNotNull() {
+ addCriterion("update_time is not null");
+ return (Criteria) this;
+ }
+
+ public Criteria andUpdateTimeEqualTo(Long value) {
+ addCriterion("update_time =", value, "updateTime");
+ return (Criteria) this;
+ }
+
+ public Criteria andUpdateTimeNotEqualTo(Long value) {
+ addCriterion("update_time <>", value, "updateTime");
+ return (Criteria) this;
+ }
+
+ public Criteria andUpdateTimeGreaterThan(Long value) {
+ addCriterion("update_time >", value, "updateTime");
+ return (Criteria) this;
+ }
+
+ public Criteria andUpdateTimeGreaterThanOrEqualTo(Long value) {
+ addCriterion("update_time >=", value, "updateTime");
+ return (Criteria) this;
+ }
+
+ public Criteria andUpdateTimeLessThan(Long value) {
+ addCriterion("update_time <", value, "updateTime");
+ return (Criteria) this;
+ }
+
+ public Criteria andUpdateTimeLessThanOrEqualTo(Long value) {
+ addCriterion("update_time <=", value, "updateTime");
+ return (Criteria) this;
+ }
+
+ public Criteria andUpdateTimeIn(List values) {
+ addCriterion("update_time in", values, "updateTime");
+ return (Criteria) this;
+ }
+
+ public Criteria andUpdateTimeNotIn(List values) {
+ addCriterion("update_time not in", values, "updateTime");
+ return (Criteria) this;
+ }
+
+ public Criteria andUpdateTimeBetween(Long value1, Long value2) {
+ addCriterion("update_time between", value1, value2, "updateTime");
+ return (Criteria) this;
+ }
+
+ public Criteria andUpdateTimeNotBetween(Long value1, Long value2) {
+ addCriterion("update_time not between", value1, value2, "updateTime");
+ return (Criteria) this;
+ }
+ }
+
+ public static class Criteria extends GeneratedCriteria {
+
+ protected Criteria() {
+ super();
+ }
+ }
+
+ public static class Criterion {
+ private String condition;
+
+ private Object value;
+
+ private Object secondValue;
+
+ private boolean noValue;
+
+ private boolean singleValue;
+
+ private boolean betweenValue;
+
+ private boolean listValue;
+
+ private String typeHandler;
+
+ public String getCondition() {
+ return condition;
+ }
+
+ public Object getValue() {
+ return value;
+ }
+
+ public Object getSecondValue() {
+ return secondValue;
+ }
+
+ public boolean isNoValue() {
+ return noValue;
+ }
+
+ public boolean isSingleValue() {
+ return singleValue;
+ }
+
+ public boolean isBetweenValue() {
+ return betweenValue;
+ }
+
+ public boolean isListValue() {
+ return listValue;
+ }
+
+ public String getTypeHandler() {
+ return typeHandler;
+ }
+
+ protected Criterion(String condition) {
+ super();
+ this.condition = condition;
+ this.typeHandler = null;
+ this.noValue = true;
+ }
+
+ protected Criterion(String condition, Object value, String typeHandler) {
+ super();
+ this.condition = condition;
+ this.value = value;
+ this.typeHandler = typeHandler;
+ if (value instanceof List>) {
+ this.listValue = true;
+ } else {
+ this.singleValue = true;
+ }
+ }
+
+ protected Criterion(String condition, Object value) {
+ this(condition, value, null);
+ }
+
+ protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
+ super();
+ this.condition = condition;
+ this.value = value;
+ this.secondValue = secondValue;
+ this.typeHandler = typeHandler;
+ this.betweenValue = true;
+ }
+
+ protected Criterion(String condition, Object value, Object secondValue) {
+ this(condition, value, secondValue, null);
+ }
+ }
+}
\ No newline at end of file
diff --git a/backend/src/main/java/io/metersphere/base/domain/Schedule.java b/backend/src/main/java/io/metersphere/base/domain/Schedule.java
index c92c80d081..d38b68ed63 100644
--- a/backend/src/main/java/io/metersphere/base/domain/Schedule.java
+++ b/backend/src/main/java/io/metersphere/base/domain/Schedule.java
@@ -1,8 +1,7 @@
package io.metersphere.base.domain;
-import lombok.Data;
-
import java.io.Serializable;
+import lombok.Data;
@Data
public class Schedule implements Serializable {
diff --git a/backend/src/main/java/io/metersphere/base/mapper/QuotaMapper.java b/backend/src/main/java/io/metersphere/base/mapper/QuotaMapper.java
new file mode 100644
index 0000000000..c9e190c9c2
--- /dev/null
+++ b/backend/src/main/java/io/metersphere/base/mapper/QuotaMapper.java
@@ -0,0 +1,30 @@
+package io.metersphere.base.mapper;
+
+import io.metersphere.base.domain.Quota;
+import io.metersphere.base.domain.QuotaExample;
+import java.util.List;
+import org.apache.ibatis.annotations.Param;
+
+public interface QuotaMapper {
+ long countByExample(QuotaExample example);
+
+ int deleteByExample(QuotaExample example);
+
+ int deleteByPrimaryKey(String id);
+
+ int insert(Quota record);
+
+ int insertSelective(Quota record);
+
+ List selectByExample(QuotaExample example);
+
+ Quota selectByPrimaryKey(String id);
+
+ int updateByExampleSelective(@Param("record") Quota record, @Param("example") QuotaExample example);
+
+ int updateByExample(@Param("record") Quota record, @Param("example") QuotaExample example);
+
+ int updateByPrimaryKeySelective(Quota record);
+
+ int updateByPrimaryKey(Quota record);
+}
\ No newline at end of file
diff --git a/backend/src/main/java/io/metersphere/base/mapper/QuotaMapper.xml b/backend/src/main/java/io/metersphere/base/mapper/QuotaMapper.xml
new file mode 100644
index 0000000000..72ab941079
--- /dev/null
+++ b/backend/src/main/java/io/metersphere/base/mapper/QuotaMapper.xml
@@ -0,0 +1,291 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ and ${criterion.condition}
+
+
+ and ${criterion.condition} #{criterion.value}
+
+
+ and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
+
+
+ and ${criterion.condition}
+
+ #{listItem}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ and ${criterion.condition}
+
+
+ and ${criterion.condition} #{criterion.value}
+
+
+ and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
+
+
+ and ${criterion.condition}
+
+ #{listItem}
+
+
+
+
+
+
+
+
+
+
+ id, api, performance, max_threads, duration, resource_pool, organization_id, workspace_id,
+ use_default, update_time
+
+
+
+
+ delete from quota
+ where id = #{id,jdbcType=VARCHAR}
+
+
+ delete from quota
+
+
+
+
+
+ insert into quota (id, api, performance,
+ max_threads, duration, resource_pool,
+ organization_id, workspace_id, use_default,
+ update_time)
+ values (#{id,jdbcType=VARCHAR}, #{api,jdbcType=INTEGER}, #{performance,jdbcType=INTEGER},
+ #{maxThreads,jdbcType=INTEGER}, #{duration,jdbcType=INTEGER}, #{resourcePool,jdbcType=VARCHAR},
+ #{organizationId,jdbcType=VARCHAR}, #{workspaceId,jdbcType=VARCHAR}, #{useDefault,jdbcType=BIT},
+ #{updateTime,jdbcType=BIGINT})
+
+
+ insert into quota
+
+
+ id,
+
+
+ api,
+
+
+ performance,
+
+
+ max_threads,
+
+
+ duration,
+
+
+ resource_pool,
+
+
+ organization_id,
+
+
+ workspace_id,
+
+
+ use_default,
+
+
+ update_time,
+
+
+
+
+ #{id,jdbcType=VARCHAR},
+
+
+ #{api,jdbcType=INTEGER},
+
+
+ #{performance,jdbcType=INTEGER},
+
+
+ #{maxThreads,jdbcType=INTEGER},
+
+
+ #{duration,jdbcType=INTEGER},
+
+
+ #{resourcePool,jdbcType=VARCHAR},
+
+
+ #{organizationId,jdbcType=VARCHAR},
+
+
+ #{workspaceId,jdbcType=VARCHAR},
+
+
+ #{useDefault,jdbcType=BIT},
+
+
+ #{updateTime,jdbcType=BIGINT},
+
+
+
+
+
+ update quota
+
+
+ id = #{record.id,jdbcType=VARCHAR},
+
+
+ api = #{record.api,jdbcType=INTEGER},
+
+
+ performance = #{record.performance,jdbcType=INTEGER},
+
+
+ max_threads = #{record.maxThreads,jdbcType=INTEGER},
+
+
+ duration = #{record.duration,jdbcType=INTEGER},
+
+
+ resource_pool = #{record.resourcePool,jdbcType=VARCHAR},
+
+
+ organization_id = #{record.organizationId,jdbcType=VARCHAR},
+
+
+ workspace_id = #{record.workspaceId,jdbcType=VARCHAR},
+
+
+ use_default = #{record.useDefault,jdbcType=BIT},
+
+
+ update_time = #{record.updateTime,jdbcType=BIGINT},
+
+
+
+
+
+
+
+ update quota
+ set id = #{record.id,jdbcType=VARCHAR},
+ api = #{record.api,jdbcType=INTEGER},
+ performance = #{record.performance,jdbcType=INTEGER},
+ max_threads = #{record.maxThreads,jdbcType=INTEGER},
+ duration = #{record.duration,jdbcType=INTEGER},
+ resource_pool = #{record.resourcePool,jdbcType=VARCHAR},
+ organization_id = #{record.organizationId,jdbcType=VARCHAR},
+ workspace_id = #{record.workspaceId,jdbcType=VARCHAR},
+ use_default = #{record.useDefault,jdbcType=BIT},
+ update_time = #{record.updateTime,jdbcType=BIGINT}
+
+
+
+
+
+ update quota
+
+
+ api = #{api,jdbcType=INTEGER},
+
+
+ performance = #{performance,jdbcType=INTEGER},
+
+
+ max_threads = #{maxThreads,jdbcType=INTEGER},
+
+
+ duration = #{duration,jdbcType=INTEGER},
+
+
+ resource_pool = #{resourcePool,jdbcType=VARCHAR},
+
+
+ organization_id = #{organizationId,jdbcType=VARCHAR},
+
+
+ workspace_id = #{workspaceId,jdbcType=VARCHAR},
+
+
+ use_default = #{useDefault,jdbcType=BIT},
+
+
+ update_time = #{updateTime,jdbcType=BIGINT},
+
+
+ where id = #{id,jdbcType=VARCHAR}
+
+
+ update quota
+ set api = #{api,jdbcType=INTEGER},
+ performance = #{performance,jdbcType=INTEGER},
+ max_threads = #{maxThreads,jdbcType=INTEGER},
+ duration = #{duration,jdbcType=INTEGER},
+ resource_pool = #{resourcePool,jdbcType=VARCHAR},
+ organization_id = #{organizationId,jdbcType=VARCHAR},
+ workspace_id = #{workspaceId,jdbcType=VARCHAR},
+ use_default = #{useDefault,jdbcType=BIT},
+ update_time = #{updateTime,jdbcType=BIGINT}
+ where id = #{id,jdbcType=VARCHAR}
+
+
\ No newline at end of file
diff --git a/backend/src/main/java/io/metersphere/base/mapper/ScheduleMapper.xml b/backend/src/main/java/io/metersphere/base/mapper/ScheduleMapper.xml
index 4e76ebcaea..8718a9b47f 100644
--- a/backend/src/main/java/io/metersphere/base/mapper/ScheduleMapper.xml
+++ b/backend/src/main/java/io/metersphere/base/mapper/ScheduleMapper.xml
@@ -2,18 +2,18 @@
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
@@ -284,18 +284,18 @@
update schedule
set id = #{record.id,jdbcType=VARCHAR},
- `key` = #{record.key,jdbcType=VARCHAR},
- `type` = #{record.type,jdbcType=VARCHAR},
- `value` = #{record.value,jdbcType=VARCHAR},
- `group` = #{record.group,jdbcType=VARCHAR},
- job = #{record.job,jdbcType=VARCHAR},
- `enable` = #{record.enable,jdbcType=BIT},
- resource_id = #{record.resourceId,jdbcType=VARCHAR},
- user_id = #{record.userId,jdbcType=VARCHAR},
- workspace_id = #{record.workspaceId,jdbcType=VARCHAR},
- create_time = #{record.createTime,jdbcType=BIGINT},
- update_time = #{record.updateTime,jdbcType=BIGINT},
- custom_data = #{record.customData,jdbcType=LONGVARCHAR}
+ `key` = #{record.key,jdbcType=VARCHAR},
+ `type` = #{record.type,jdbcType=VARCHAR},
+ `value` = #{record.value,jdbcType=VARCHAR},
+ `group` = #{record.group,jdbcType=VARCHAR},
+ job = #{record.job,jdbcType=VARCHAR},
+ `enable` = #{record.enable,jdbcType=BIT},
+ resource_id = #{record.resourceId,jdbcType=VARCHAR},
+ user_id = #{record.userId,jdbcType=VARCHAR},
+ workspace_id = #{record.workspaceId,jdbcType=VARCHAR},
+ create_time = #{record.createTime,jdbcType=BIGINT},
+ update_time = #{record.updateTime,jdbcType=BIGINT},
+ custom_data = #{record.customData,jdbcType=LONGVARCHAR}
@@ -303,17 +303,17 @@
update schedule
set id = #{record.id,jdbcType=VARCHAR},
- `key` = #{record.key,jdbcType=VARCHAR},
- `type` = #{record.type,jdbcType=VARCHAR},
- `value` = #{record.value,jdbcType=VARCHAR},
- `group` = #{record.group,jdbcType=VARCHAR},
- job = #{record.job,jdbcType=VARCHAR},
- `enable` = #{record.enable,jdbcType=BIT},
- resource_id = #{record.resourceId,jdbcType=VARCHAR},
- user_id = #{record.userId,jdbcType=VARCHAR},
- workspace_id = #{record.workspaceId,jdbcType=VARCHAR},
- create_time = #{record.createTime,jdbcType=BIGINT},
- update_time = #{record.updateTime,jdbcType=BIGINT}
+ `key` = #{record.key,jdbcType=VARCHAR},
+ `type` = #{record.type,jdbcType=VARCHAR},
+ `value` = #{record.value,jdbcType=VARCHAR},
+ `group` = #{record.group,jdbcType=VARCHAR},
+ job = #{record.job,jdbcType=VARCHAR},
+ `enable` = #{record.enable,jdbcType=BIT},
+ resource_id = #{record.resourceId,jdbcType=VARCHAR},
+ user_id = #{record.userId,jdbcType=VARCHAR},
+ workspace_id = #{record.workspaceId,jdbcType=VARCHAR},
+ create_time = #{record.createTime,jdbcType=BIGINT},
+ update_time = #{record.updateTime,jdbcType=BIGINT}
diff --git a/backend/src/main/java/io/metersphere/base/mapper/ext/ExtApiTestMapper.xml b/backend/src/main/java/io/metersphere/base/mapper/ext/ExtApiTestMapper.xml
index 20f2afaa73..c1895316ff 100644
--- a/backend/src/main/java/io/metersphere/base/mapper/ext/ExtApiTestMapper.xml
+++ b/backend/src/main/java/io/metersphere/base/mapper/ext/ExtApiTestMapper.xml
@@ -91,7 +91,7 @@
-
@@ -66,7 +65,7 @@
- id, test_case_id, issues_id, platform
+ id, test_case_id, issues_id
select
@@ -99,10 +98,10 @@
- insert into test_case_issues (id, test_case_id, issues_id,
- platform)
- values (#{id,jdbcType=VARCHAR}, #{testCaseId,jdbcType=VARCHAR}, #{issuesId,jdbcType=VARCHAR},
- #{platform,jdbcType=VARCHAR})
+ insert into test_case_issues (id, test_case_id, issues_id
+ )
+ values (#{id,jdbcType=VARCHAR}, #{testCaseId,jdbcType=VARCHAR}, #{issuesId,jdbcType=VARCHAR}
+ )
insert into test_case_issues
@@ -116,9 +115,6 @@
issues_id,
-
- platform,
-
@@ -130,9 +126,6 @@
#{issuesId,jdbcType=VARCHAR},
-
- #{platform,jdbcType=VARCHAR},
-
@@ -153,9 +146,6 @@
issues_id = #{record.issuesId,jdbcType=VARCHAR},
-
- platform = #{record.platform,jdbcType=VARCHAR},
-
@@ -165,8 +155,7 @@
update test_case_issues
set id = #{record.id,jdbcType=VARCHAR},
test_case_id = #{record.testCaseId,jdbcType=VARCHAR},
- issues_id = #{record.issuesId,jdbcType=VARCHAR},
- platform = #{record.platform,jdbcType=VARCHAR}
+ issues_id = #{record.issuesId,jdbcType=VARCHAR}
@@ -180,17 +169,13 @@
issues_id = #{issuesId,jdbcType=VARCHAR},
-
- platform = #{platform,jdbcType=VARCHAR},
-
where id = #{id,jdbcType=VARCHAR}
update test_case_issues
set test_case_id = #{testCaseId,jdbcType=VARCHAR},
- issues_id = #{issuesId,jdbcType=VARCHAR},
- platform = #{platform,jdbcType=VARCHAR}
+ issues_id = #{issuesId,jdbcType=VARCHAR}
where id = #{id,jdbcType=VARCHAR}
\ No newline at end of file
diff --git a/backend/src/main/resources/db/migration/V13__service_integration.sql b/backend/src/main/resources/db/migration/V13__service_integration.sql
index c48d2d627c..299084bace 100644
--- a/backend/src/main/resources/db/migration/V13__service_integration.sql
+++ b/backend/src/main/resources/db/migration/V13__service_integration.sql
@@ -13,6 +13,19 @@ create table if not exists test_case_issues
id varchar(50) not null
primary key,
test_case_id varchar(50) not null,
- issues_id varchar(100) not null,
- platform varchar(50) not null
+ issues_id varchar(100) not null
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
+
+create table if not exists issues
+(
+ id varchar(50) not null
+ primary key,
+ title varchar(50) null,
+ description text null,
+ status varchar(50) null,
+ create_time bigint(13) null,
+ update_time bigint(13) null,
+ reporter varchar(50) null comment 'case issues creator',
+ lastmodify varchar(50) null,
+ platform varchar(50) null
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
\ No newline at end of file