From 3a0a04e324549bdfb9c059395dadcba1bf311cdc Mon Sep 17 00:00:00 2001 From: song-tianyang Date: Thu, 27 May 2021 16:20:46 +0800 Subject: [PATCH] =?UTF-8?q?refactor:=20=E9=A1=B9=E7=9B=AE=E8=A1=A8?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E7=B3=BB=E7=BB=9FID=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 项目表增加系统ID字段,用于优化Mock环境展示用 --- .../io/metersphere/base/domain/Project.java | 2 + .../base/domain/ProjectExample.java | 70 +++++++++++++++++++ .../metersphere/base/mapper/ProjectMapper.xml | 29 ++++++-- .../metersphere/service/ProjectService.java | 11 +-- .../db/migration/V86__v1.10.1_release.sql | 36 ++++++++++ .../src/main/resources/generatorConfig.xml | 4 +- 6 files changed, 139 insertions(+), 13 deletions(-) create mode 100644 backend/src/main/resources/db/migration/V86__v1.10.1_release.sql diff --git a/backend/src/main/java/io/metersphere/base/domain/Project.java b/backend/src/main/java/io/metersphere/base/domain/Project.java index 36e46446d8..b167839386 100644 --- a/backend/src/main/java/io/metersphere/base/domain/Project.java +++ b/backend/src/main/java/io/metersphere/base/domain/Project.java @@ -35,5 +35,7 @@ public class Project implements Serializable { private String createUser; + private String systemId; + private static final long serialVersionUID = 1L; } \ No newline at end of file diff --git a/backend/src/main/java/io/metersphere/base/domain/ProjectExample.java b/backend/src/main/java/io/metersphere/base/domain/ProjectExample.java index 5df1d43561..06ce2efdc0 100644 --- a/backend/src/main/java/io/metersphere/base/domain/ProjectExample.java +++ b/backend/src/main/java/io/metersphere/base/domain/ProjectExample.java @@ -1103,6 +1103,76 @@ public class ProjectExample { addCriterion("create_user not between", value1, value2, "createUser"); return (Criteria) this; } + + public Criteria andSystemIdIsNull() { + addCriterion("system_id is null"); + return (Criteria) this; + } + + public Criteria andSystemIdIsNotNull() { + addCriterion("system_id is not null"); + return (Criteria) this; + } + + public Criteria andSystemIdEqualTo(String value) { + addCriterion("system_id =", value, "systemId"); + return (Criteria) this; + } + + public Criteria andSystemIdNotEqualTo(String value) { + addCriterion("system_id <>", value, "systemId"); + return (Criteria) this; + } + + public Criteria andSystemIdGreaterThan(String value) { + addCriterion("system_id >", value, "systemId"); + return (Criteria) this; + } + + public Criteria andSystemIdGreaterThanOrEqualTo(String value) { + addCriterion("system_id >=", value, "systemId"); + return (Criteria) this; + } + + public Criteria andSystemIdLessThan(String value) { + addCriterion("system_id <", value, "systemId"); + return (Criteria) this; + } + + public Criteria andSystemIdLessThanOrEqualTo(String value) { + addCriterion("system_id <=", value, "systemId"); + return (Criteria) this; + } + + public Criteria andSystemIdLike(String value) { + addCriterion("system_id like", value, "systemId"); + return (Criteria) this; + } + + public Criteria andSystemIdNotLike(String value) { + addCriterion("system_id not like", value, "systemId"); + return (Criteria) this; + } + + public Criteria andSystemIdIn(List values) { + addCriterion("system_id in", values, "systemId"); + return (Criteria) this; + } + + public Criteria andSystemIdNotIn(List values) { + addCriterion("system_id not in", values, "systemId"); + return (Criteria) this; + } + + public Criteria andSystemIdBetween(String value1, String value2) { + addCriterion("system_id between", value1, value2, "systemId"); + return (Criteria) this; + } + + public Criteria andSystemIdNotBetween(String value1, String value2) { + addCriterion("system_id not between", value1, value2, "systemId"); + return (Criteria) this; + } } public static class Criteria extends GeneratedCriteria { diff --git a/backend/src/main/java/io/metersphere/base/mapper/ProjectMapper.xml b/backend/src/main/java/io/metersphere/base/mapper/ProjectMapper.xml index 2db25249ac..f92e0c014e 100644 --- a/backend/src/main/java/io/metersphere/base/mapper/ProjectMapper.xml +++ b/backend/src/main/java/io/metersphere/base/mapper/ProjectMapper.xml @@ -17,6 +17,7 @@ + @@ -79,7 +80,7 @@ id, workspace_id, `name`, description, create_time, update_time, tapd_id, jira_key, zentao_id, `repeatable`, case_template_id, issue_template_id, custom_num, scenario_custom_num, - create_user + create_user, system_id @@ -276,6 +283,9 @@ create_user = #{record.createUser,jdbcType=VARCHAR}, + + system_id = #{record.systemId,jdbcType=VARCHAR}, + @@ -297,7 +307,8 @@ issue_template_id = #{record.issueTemplateId,jdbcType=VARCHAR}, custom_num = #{record.customNum,jdbcType=BIT}, scenario_custom_num = #{record.scenarioCustomNum,jdbcType=BIT}, - create_user = #{record.createUser,jdbcType=VARCHAR} + create_user = #{record.createUser,jdbcType=VARCHAR}, + system_id = #{record.systemId,jdbcType=VARCHAR} @@ -347,6 +358,9 @@ create_user = #{createUser,jdbcType=VARCHAR}, + + system_id = #{systemId,jdbcType=VARCHAR}, + where id = #{id,jdbcType=VARCHAR} @@ -365,7 +379,8 @@ issue_template_id = #{issueTemplateId,jdbcType=VARCHAR}, custom_num = #{customNum,jdbcType=BIT}, scenario_custom_num = #{scenarioCustomNum,jdbcType=BIT}, - create_user = #{createUser,jdbcType=VARCHAR} + create_user = #{createUser,jdbcType=VARCHAR}, + system_id = #{systemId,jdbcType=VARCHAR} where id = #{id,jdbcType=VARCHAR} \ No newline at end of file diff --git a/backend/src/main/java/io/metersphere/service/ProjectService.java b/backend/src/main/java/io/metersphere/service/ProjectService.java index 2eda9bd4c7..4d2db3600d 100644 --- a/backend/src/main/java/io/metersphere/service/ProjectService.java +++ b/backend/src/main/java/io/metersphere/service/ProjectService.java @@ -37,10 +37,7 @@ import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; import java.io.IOException; -import java.util.ArrayList; -import java.util.LinkedList; -import java.util.List; -import java.util.UUID; +import java.util.*; import java.util.stream.Collectors; @Service @@ -93,12 +90,18 @@ public class ProjectService { MSException.throwException(Translator.get("project_name_already_exists")); } project.setId(UUID.randomUUID().toString()); + + + long allCount = projectMapper.countByExample(null); + String systemId = String.valueOf(100001+allCount); + long createTime = System.currentTimeMillis(); project.setCreateTime(createTime); project.setUpdateTime(createTime); // set workspace id project.setWorkspaceId(SessionUtils.getCurrentWorkspaceId()); project.setCreateUser(SessionUtils.getUserId()); + project.setSystemId(systemId); projectMapper.insertSelective(project); return project; } diff --git a/backend/src/main/resources/db/migration/V86__v1.10.1_release.sql b/backend/src/main/resources/db/migration/V86__v1.10.1_release.sql new file mode 100644 index 0000000000..0d896ff636 --- /dev/null +++ b/backend/src/main/resources/db/migration/V86__v1.10.1_release.sql @@ -0,0 +1,36 @@ +-- project add column +ALTER table project add system_id varchar(50) null; +-- reduse old data +DROP PROCEDURE IF EXISTS project_systemid; +DELIMITER // +CREATE PROCEDURE project_systemid() +BEGIN + DECLARE projectId VARCHAR(64); + DECLARE num INT; + DECLARE done INT DEFAULT 0; + DECLARE cursor1 CURSOR FOR (SELECT DISTINCT id + FROM project + WHERE system_id IS NULL); + + DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE; + SET num = 100001; + OPEN cursor1; + outer_loop: + LOOP + FETCH cursor1 INTO projectId; + IF done + THEN + LEAVE outer_loop; + END IF; + UPDATE project + SET system_id = num + WHERE id = projectId; + SET num = num + 1; + SET done = 0; + END LOOP; + CLOSE cursor1; +END // +DELIMITER ; + +CALL project_systemid(); +DROP PROCEDURE IF EXISTS project_systemid; \ No newline at end of file diff --git a/backend/src/main/resources/generatorConfig.xml b/backend/src/main/resources/generatorConfig.xml index 4ecedcd3cc..448328dd2a 100644 --- a/backend/src/main/resources/generatorConfig.xml +++ b/backend/src/main/resources/generatorConfig.xml @@ -77,8 +77,8 @@
--> -
-
+ +