From 18340d16e5fe7ec54af944d04320e4b2a16a444b Mon Sep 17 00:00:00 2001 From: "Captain.B" Date: Thu, 7 Jan 2021 15:18:52 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=8E=A5=E5=8F=A3=E6=B5=8B=E8=AF=95?= =?UTF-8?q?=E7=94=A8=E4=BE=8B=E4=BF=9D=E5=AD=98tag?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../definition/SaveApiTestCaseRequest.java | 3 + .../api/service/ApiTestCaseService.java | 2 + .../metersphere/base/domain/ApiTestCase.java | 5 +- .../base/domain/ApiTestCaseExample.java | 70 ++ .../base/mapper/ApiTestCaseMapper.xml | 31 +- .../base/mapper/ext/ExtApiTestCaseMapper.xml | 1 + .../resources/db/migration/V63__add_tag.sql | 6 +- .../components/case/ApiCaseItem.vue | 614 ++++++++++-------- .../components/case/ApiCaseList.vue | 378 +++++------ .../components/complete/BasisApi.vue | 4 +- .../complete/EditCompleteHTTPApi.vue | 4 +- 11 files changed, 645 insertions(+), 473 deletions(-) diff --git a/backend/src/main/java/io/metersphere/api/dto/definition/SaveApiTestCaseRequest.java b/backend/src/main/java/io/metersphere/api/dto/definition/SaveApiTestCaseRequest.java index 50f2588399..a04a8bd01e 100644 --- a/backend/src/main/java/io/metersphere/api/dto/definition/SaveApiTestCaseRequest.java +++ b/backend/src/main/java/io/metersphere/api/dto/definition/SaveApiTestCaseRequest.java @@ -4,6 +4,7 @@ import io.metersphere.api.dto.definition.request.MsTestElement; import lombok.Getter; import lombok.Setter; +import java.util.ArrayList; import java.util.List; @Setter @@ -35,4 +36,6 @@ public class SaveApiTestCaseRequest { private Long updateTime; private List bodyUploadIds; + + private List tags = new ArrayList<>(); } 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 ba381f076d..8f03769d17 100644 --- a/backend/src/main/java/io/metersphere/api/service/ApiTestCaseService.java +++ b/backend/src/main/java/io/metersphere/api/service/ApiTestCaseService.java @@ -222,6 +222,7 @@ public class ApiTestCaseService { test.setPriority(request.getPriority()); test.setUpdateTime(System.currentTimeMillis()); test.setDescription(request.getDescription()); + test.setTags(JSON.toJSONString(new HashSet<>(request.getTags()))); apiTestCaseMapper.updateByPrimaryKeySelective(test); return test; } @@ -243,6 +244,7 @@ public class ApiTestCaseService { test.setUpdateTime(System.currentTimeMillis()); test.setDescription(request.getDescription()); test.setNum(getNextNum(request.getApiDefinitionId())); + test.setTags(JSON.toJSONString(new HashSet<>(request.getTags()))); apiTestCaseMapper.insert(test); return test; } diff --git a/backend/src/main/java/io/metersphere/base/domain/ApiTestCase.java b/backend/src/main/java/io/metersphere/base/domain/ApiTestCase.java index a09ede7bf5..3b52eb1481 100644 --- a/backend/src/main/java/io/metersphere/base/domain/ApiTestCase.java +++ b/backend/src/main/java/io/metersphere/base/domain/ApiTestCase.java @@ -1,8 +1,9 @@ package io.metersphere.base.domain; -import java.io.Serializable; import lombok.Data; +import java.io.Serializable; + @Data public class ApiTestCase implements Serializable { private String id; @@ -25,5 +26,7 @@ public class ApiTestCase implements Serializable { private Integer num; + private String tags; + private static final long serialVersionUID = 1L; } \ No newline at end of file diff --git a/backend/src/main/java/io/metersphere/base/domain/ApiTestCaseExample.java b/backend/src/main/java/io/metersphere/base/domain/ApiTestCaseExample.java index 0f71b8a56e..75d8f72d6d 100644 --- a/backend/src/main/java/io/metersphere/base/domain/ApiTestCaseExample.java +++ b/backend/src/main/java/io/metersphere/base/domain/ApiTestCaseExample.java @@ -773,6 +773,76 @@ public class ApiTestCaseExample { addCriterion("num not between", value1, value2, "num"); return (Criteria) this; } + + public Criteria andTagsIsNull() { + addCriterion("tags is null"); + return (Criteria) this; + } + + public Criteria andTagsIsNotNull() { + addCriterion("tags is not null"); + return (Criteria) this; + } + + public Criteria andTagsEqualTo(String value) { + addCriterion("tags =", value, "tags"); + return (Criteria) this; + } + + public Criteria andTagsNotEqualTo(String value) { + addCriterion("tags <>", value, "tags"); + return (Criteria) this; + } + + public Criteria andTagsGreaterThan(String value) { + addCriterion("tags >", value, "tags"); + return (Criteria) this; + } + + public Criteria andTagsGreaterThanOrEqualTo(String value) { + addCriterion("tags >=", value, "tags"); + return (Criteria) this; + } + + public Criteria andTagsLessThan(String value) { + addCriterion("tags <", value, "tags"); + return (Criteria) this; + } + + public Criteria andTagsLessThanOrEqualTo(String value) { + addCriterion("tags <=", value, "tags"); + return (Criteria) this; + } + + public Criteria andTagsLike(String value) { + addCriterion("tags like", value, "tags"); + return (Criteria) this; + } + + public Criteria andTagsNotLike(String value) { + addCriterion("tags not like", value, "tags"); + return (Criteria) this; + } + + public Criteria andTagsIn(List values) { + addCriterion("tags in", values, "tags"); + return (Criteria) this; + } + + public Criteria andTagsNotIn(List values) { + addCriterion("tags not in", values, "tags"); + return (Criteria) this; + } + + public Criteria andTagsBetween(String value1, String value2) { + addCriterion("tags between", value1, value2, "tags"); + return (Criteria) this; + } + + public Criteria andTagsNotBetween(String value1, String value2) { + addCriterion("tags not between", value1, value2, "tags"); + return (Criteria) this; + } } public static class Criteria extends GeneratedCriteria { diff --git a/backend/src/main/java/io/metersphere/base/mapper/ApiTestCaseMapper.xml b/backend/src/main/java/io/metersphere/base/mapper/ApiTestCaseMapper.xml index 011d42f3fb..df98be023b 100644 --- a/backend/src/main/java/io/metersphere/base/mapper/ApiTestCaseMapper.xml +++ b/backend/src/main/java/io/metersphere/base/mapper/ApiTestCaseMapper.xml @@ -12,6 +12,7 @@ + @@ -78,7 +79,7 @@ id, project_id, `name`, priority, api_definition_id, create_user_id, update_user_id, - create_time, update_time, num + create_time, update_time, num, tags description, request, response @@ -135,13 +136,13 @@ insert into api_test_case (id, project_id, `name`, priority, api_definition_id, create_user_id, update_user_id, create_time, update_time, - num, description, request, - response) + num, tags, description, + request, response) values (#{id,jdbcType=VARCHAR}, #{projectId,jdbcType=VARCHAR}, #{name,jdbcType=VARCHAR}, #{priority,jdbcType=VARCHAR}, #{apiDefinitionId,jdbcType=VARCHAR}, #{createUserId,jdbcType=VARCHAR}, #{updateUserId,jdbcType=VARCHAR}, #{createTime,jdbcType=BIGINT}, #{updateTime,jdbcType=BIGINT}, - #{num,jdbcType=INTEGER}, #{description,jdbcType=LONGVARCHAR}, #{request,jdbcType=LONGVARCHAR}, - #{response,jdbcType=LONGVARCHAR}) + #{num,jdbcType=INTEGER}, #{tags,jdbcType=VARCHAR}, #{description,jdbcType=LONGVARCHAR}, + #{request,jdbcType=LONGVARCHAR}, #{response,jdbcType=LONGVARCHAR}) insert into api_test_case @@ -176,6 +177,9 @@ num, + + tags, + description, @@ -217,6 +221,9 @@ #{num,jdbcType=INTEGER}, + + #{tags,jdbcType=VARCHAR}, + #{description,jdbcType=LONGVARCHAR}, @@ -267,6 +274,9 @@ num = #{record.num,jdbcType=INTEGER}, + + tags = #{record.tags,jdbcType=VARCHAR}, + description = #{record.description,jdbcType=LONGVARCHAR}, @@ -293,6 +303,7 @@ create_time = #{record.createTime,jdbcType=BIGINT}, update_time = #{record.updateTime,jdbcType=BIGINT}, num = #{record.num,jdbcType=INTEGER}, + tags = #{record.tags,jdbcType=VARCHAR}, description = #{record.description,jdbcType=LONGVARCHAR}, request = #{record.request,jdbcType=LONGVARCHAR}, response = #{record.response,jdbcType=LONGVARCHAR} @@ -311,7 +322,8 @@ update_user_id = #{record.updateUserId,jdbcType=VARCHAR}, create_time = #{record.createTime,jdbcType=BIGINT}, update_time = #{record.updateTime,jdbcType=BIGINT}, - num = #{record.num,jdbcType=INTEGER} + num = #{record.num,jdbcType=INTEGER}, + tags = #{record.tags,jdbcType=VARCHAR} @@ -346,6 +358,9 @@ num = #{num,jdbcType=INTEGER}, + + tags = #{tags,jdbcType=VARCHAR}, + description = #{description,jdbcType=LONGVARCHAR}, @@ -369,6 +384,7 @@ create_time = #{createTime,jdbcType=BIGINT}, update_time = #{updateTime,jdbcType=BIGINT}, num = #{num,jdbcType=INTEGER}, + tags = #{tags,jdbcType=VARCHAR}, description = #{description,jdbcType=LONGVARCHAR}, request = #{request,jdbcType=LONGVARCHAR}, response = #{response,jdbcType=LONGVARCHAR} @@ -384,7 +400,8 @@ update_user_id = #{updateUserId,jdbcType=VARCHAR}, create_time = #{createTime,jdbcType=BIGINT}, update_time = #{updateTime,jdbcType=BIGINT}, - num = #{num,jdbcType=INTEGER} + num = #{num,jdbcType=INTEGER}, + tags = #{tags,jdbcType=VARCHAR} where id = #{id,jdbcType=VARCHAR} \ No newline at end of file diff --git a/backend/src/main/java/io/metersphere/base/mapper/ext/ExtApiTestCaseMapper.xml b/backend/src/main/java/io/metersphere/base/mapper/ext/ExtApiTestCaseMapper.xml index eb430a6af5..1219b625b0 100644 --- a/backend/src/main/java/io/metersphere/base/mapper/ext/ExtApiTestCaseMapper.xml +++ b/backend/src/main/java/io/metersphere/base/mapper/ext/ExtApiTestCaseMapper.xml @@ -162,6 +162,7 @@ atc.update_user_id, atc.update_time, atc.num, + atc.tags, ader.status execResult, ader.create_time execTime from diff --git a/backend/src/main/resources/db/migration/V63__add_tag.sql b/backend/src/main/resources/db/migration/V63__add_tag.sql index 074cd650d4..106cade332 100644 --- a/backend/src/main/resources/db/migration/V63__add_tag.sql +++ b/backend/src/main/resources/db/migration/V63__add_tag.sql @@ -1,8 +1,8 @@ ALTER TABLE api_definition - ADD tag VARCHAR(1000) NULL; + ADD tags VARCHAR(1000) NULL; ALTER TABLE api_test_case - ADD tag VARCHAR(1000) NULL; + ADD tags VARCHAR(1000) NULL; ALTER TABLE test_case - ADD tag VARCHAR(1000) NULL; \ No newline at end of file + ADD tags VARCHAR(1000) NULL; \ No newline at end of file diff --git a/frontend/src/business/components/api/definition/components/case/ApiCaseItem.vue b/frontend/src/business/components/api/definition/components/case/ApiCaseItem.vue index 7db0d7ff40..8c3117b880 100644 --- a/frontend/src/business/components/api/definition/components/case/ApiCaseItem.vue +++ b/frontend/src/business/components/api/definition/components/case/ApiCaseItem.vue @@ -1,309 +1,377 @@ diff --git a/frontend/src/business/components/api/definition/components/case/ApiCaseList.vue b/frontend/src/business/components/api/definition/components/case/ApiCaseList.vue index 47df25c3c3..01eba533fd 100644 --- a/frontend/src/business/components/api/definition/components/case/ApiCaseList.vue +++ b/frontend/src/business/components/api/definition/components/case/ApiCaseList.vue @@ -42,216 +42,224 @@ diff --git a/frontend/src/business/components/api/definition/components/complete/BasisApi.vue b/frontend/src/business/components/api/definition/components/complete/BasisApi.vue index e1ada91c99..439bb55c58 100644 --- a/frontend/src/business/components/api/definition/components/complete/BasisApi.vue +++ b/frontend/src/business/components/api/definition/components/complete/BasisApi.vue @@ -55,8 +55,8 @@