refactor(系统设置): 优化项目返回的参数
This commit is contained in:
parent
7fb94f0977
commit
500a3b3326
|
@ -1,60 +1,68 @@
|
||||||
package io.metersphere.project.domain;
|
package io.metersphere.project.domain;
|
||||||
|
|
||||||
import io.metersphere.validation.groups.*;
|
import io.metersphere.validation.groups.Created;
|
||||||
|
import io.metersphere.validation.groups.Updated;
|
||||||
import io.swagger.v3.oas.annotations.media.Schema;
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
import jakarta.validation.constraints.*;
|
import jakarta.validation.constraints.NotBlank;
|
||||||
|
import jakarta.validation.constraints.NotNull;
|
||||||
|
import jakarta.validation.constraints.Size;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import lombok.Data;
|
|
||||||
|
|
||||||
@Data
|
@Data
|
||||||
public class Project implements Serializable {
|
public class Project implements Serializable {
|
||||||
@Schema(description = "项目ID", requiredMode = Schema.RequiredMode.REQUIRED)
|
@Schema(description = "项目ID", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||||
@NotBlank(message = "{project.id.not_blank}", groups = {Updated.class})
|
@NotBlank(message = "{project.id.not_blank}", groups = {Updated.class})
|
||||||
@Size(min = 1, max = 50, message = "{project.id.length_range}", groups = {Created.class, Updated.class})
|
@Size(min = 1, max = 50, message = "{project.id.length_range}", groups = {Created.class, Updated.class})
|
||||||
private String id;
|
private String id;
|
||||||
|
|
||||||
@Schema(description = "项目编号")
|
@Schema(description = "项目编号")
|
||||||
private Long num;
|
private Long num;
|
||||||
|
|
||||||
@Schema(description = "组织ID", requiredMode = Schema.RequiredMode.REQUIRED)
|
@Schema(description = "组织ID", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||||
@NotBlank(message = "{project.organization_id.not_blank}", groups = {Created.class})
|
@NotBlank(message = "{project.organization_id.not_blank}", groups = {Created.class})
|
||||||
@Size(min = 1, max = 50, message = "{project.organization_id.length_range}", groups = {Created.class, Updated.class})
|
@Size(min = 1, max = 50, message = "{project.organization_id.length_range}", groups = {Created.class, Updated.class})
|
||||||
private String organizationId;
|
private String organizationId;
|
||||||
|
|
||||||
@Schema(description = "项目名称", requiredMode = Schema.RequiredMode.REQUIRED)
|
@Schema(description = "项目名称", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||||
@NotBlank(message = "{project.name.not_blank}", groups = {Created.class})
|
@NotBlank(message = "{project.name.not_blank}", groups = {Created.class})
|
||||||
@Size(min = 1, max = 255, message = "{project.name.length_range}", groups = {Created.class, Updated.class})
|
@Size(min = 1, max = 255, message = "{project.name.length_range}", groups = {Created.class, Updated.class})
|
||||||
private String name;
|
private String name;
|
||||||
|
|
||||||
@Schema(description = "项目描述")
|
@Schema(description = "项目描述")
|
||||||
private String description;
|
private String description;
|
||||||
|
|
||||||
@Schema(description = "创建时间")
|
@Schema(description = "创建时间")
|
||||||
private Long createTime;
|
private Long createTime;
|
||||||
|
|
||||||
@Schema(description = "更新时间")
|
@Schema(description = "更新时间")
|
||||||
private Long updateTime;
|
private Long updateTime;
|
||||||
|
|
||||||
@Schema(description = "修改人")
|
@Schema(description = "修改人")
|
||||||
private String updateUser;
|
private String updateUser;
|
||||||
|
|
||||||
@Schema(description = "创建人")
|
@Schema(description = "创建人")
|
||||||
private String createUser;
|
private String createUser;
|
||||||
|
|
||||||
@Schema(description = "删除时间")
|
@Schema(description = "删除时间")
|
||||||
private Long deleteTime;
|
private Long deleteTime;
|
||||||
|
|
||||||
@Schema(description = "是否删除")
|
@Schema(description = "是否删除", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||||
|
@NotNull(message = "{project.deleted.not_blank}", groups = {Created.class})
|
||||||
private Boolean deleted;
|
private Boolean deleted;
|
||||||
|
|
||||||
@Schema(description = "删除人")
|
@Schema(description = "删除人")
|
||||||
private String deleteUser;
|
private String deleteUser;
|
||||||
|
|
||||||
@Schema(description = "是否启用")
|
@Schema(description = "是否启用")
|
||||||
private Boolean enable;
|
private Boolean enable;
|
||||||
|
|
||||||
|
@Schema(description = "模块设置")
|
||||||
|
private String moduleSetting;
|
||||||
|
|
||||||
private static final long serialVersionUID = 1L;
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
public enum Column {
|
public enum Column {
|
||||||
|
@ -70,7 +78,8 @@ public class Project implements Serializable {
|
||||||
deleteTime("delete_time", "deleteTime", "BIGINT", false),
|
deleteTime("delete_time", "deleteTime", "BIGINT", false),
|
||||||
deleted("deleted", "deleted", "BIT", false),
|
deleted("deleted", "deleted", "BIT", false),
|
||||||
deleteUser("delete_user", "deleteUser", "VARCHAR", false),
|
deleteUser("delete_user", "deleteUser", "VARCHAR", false),
|
||||||
enable("enable", "enable", "BIT", true);
|
enable("enable", "enable", "BIT", true),
|
||||||
|
moduleSetting("module_setting", "moduleSetting", "VARCHAR", false);
|
||||||
|
|
||||||
private static final String BEGINNING_DELIMITER = "`";
|
private static final String BEGINNING_DELIMITER = "`";
|
||||||
|
|
||||||
|
|
|
@ -953,6 +953,76 @@ public class ProjectExample {
|
||||||
addCriterion("`enable` not between", value1, value2, "enable");
|
addCriterion("`enable` not between", value1, value2, "enable");
|
||||||
return (Criteria) this;
|
return (Criteria) this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Criteria andModuleSettingIsNull() {
|
||||||
|
addCriterion("module_setting is null");
|
||||||
|
return (Criteria) this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Criteria andModuleSettingIsNotNull() {
|
||||||
|
addCriterion("module_setting is not null");
|
||||||
|
return (Criteria) this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Criteria andModuleSettingEqualTo(String value) {
|
||||||
|
addCriterion("module_setting =", value, "moduleSetting");
|
||||||
|
return (Criteria) this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Criteria andModuleSettingNotEqualTo(String value) {
|
||||||
|
addCriterion("module_setting <>", value, "moduleSetting");
|
||||||
|
return (Criteria) this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Criteria andModuleSettingGreaterThan(String value) {
|
||||||
|
addCriterion("module_setting >", value, "moduleSetting");
|
||||||
|
return (Criteria) this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Criteria andModuleSettingGreaterThanOrEqualTo(String value) {
|
||||||
|
addCriterion("module_setting >=", value, "moduleSetting");
|
||||||
|
return (Criteria) this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Criteria andModuleSettingLessThan(String value) {
|
||||||
|
addCriterion("module_setting <", value, "moduleSetting");
|
||||||
|
return (Criteria) this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Criteria andModuleSettingLessThanOrEqualTo(String value) {
|
||||||
|
addCriterion("module_setting <=", value, "moduleSetting");
|
||||||
|
return (Criteria) this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Criteria andModuleSettingLike(String value) {
|
||||||
|
addCriterion("module_setting like", value, "moduleSetting");
|
||||||
|
return (Criteria) this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Criteria andModuleSettingNotLike(String value) {
|
||||||
|
addCriterion("module_setting not like", value, "moduleSetting");
|
||||||
|
return (Criteria) this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Criteria andModuleSettingIn(List<String> values) {
|
||||||
|
addCriterion("module_setting in", values, "moduleSetting");
|
||||||
|
return (Criteria) this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Criteria andModuleSettingNotIn(List<String> values) {
|
||||||
|
addCriterion("module_setting not in", values, "moduleSetting");
|
||||||
|
return (Criteria) this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Criteria andModuleSettingBetween(String value1, String value2) {
|
||||||
|
addCriterion("module_setting between", value1, value2, "moduleSetting");
|
||||||
|
return (Criteria) this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Criteria andModuleSettingNotBetween(String value1, String value2) {
|
||||||
|
addCriterion("module_setting not between", value1, value2, "moduleSetting");
|
||||||
|
return (Criteria) this;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static class Criteria extends GeneratedCriteria {
|
public static class Criteria extends GeneratedCriteria {
|
||||||
|
|
|
@ -1,143 +0,0 @@
|
||||||
package io.metersphere.project.domain;
|
|
||||||
|
|
||||||
import io.metersphere.validation.groups.Created;
|
|
||||||
import io.metersphere.validation.groups.Updated;
|
|
||||||
import io.swagger.v3.oas.annotations.media.Schema;
|
|
||||||
import jakarta.validation.constraints.NotBlank;
|
|
||||||
import jakarta.validation.constraints.Size;
|
|
||||||
import lombok.Data;
|
|
||||||
|
|
||||||
import java.io.Serializable;
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.Arrays;
|
|
||||||
|
|
||||||
@Data
|
|
||||||
public class ProjectExtend implements Serializable {
|
|
||||||
@Schema(description = "项目ID", requiredMode = Schema.RequiredMode.REQUIRED)
|
|
||||||
@NotBlank(message = "{project_extend.id.not_blank}", groups = {Updated.class})
|
|
||||||
@Size(min = 1, max = 50, message = "{project_extend.id.length_range}", groups = {Created.class, Updated.class})
|
|
||||||
private String id;
|
|
||||||
|
|
||||||
@Schema(description = "")
|
|
||||||
private String tapdId;
|
|
||||||
|
|
||||||
@Schema(description = "")
|
|
||||||
private String jiraKey;
|
|
||||||
|
|
||||||
@Schema(description = "")
|
|
||||||
private String zentaoId;
|
|
||||||
|
|
||||||
@Schema(description = "")
|
|
||||||
private String azureDevopsId;
|
|
||||||
|
|
||||||
@Schema(description = "用例模版ID")
|
|
||||||
private String caseTemplateId;
|
|
||||||
|
|
||||||
@Schema(description = "azure 过滤需求的 parent workItem ID")
|
|
||||||
private String azureFilterId;
|
|
||||||
|
|
||||||
@Schema(description = "项目使用哪个平台的模板", requiredMode = Schema.RequiredMode.REQUIRED)
|
|
||||||
@NotBlank(message = "{project_extend.platform.not_blank}", groups = {Created.class})
|
|
||||||
@Size(min = 1, max = 20, message = "{project_extend.platform.length_range}", groups = {Created.class, Updated.class})
|
|
||||||
private String platform;
|
|
||||||
|
|
||||||
@Schema(description = "是否使用第三方平台缺陷模板")
|
|
||||||
private Boolean thirdPartTemplate;
|
|
||||||
|
|
||||||
@Schema(description = "是否开启版本管理")
|
|
||||||
private Boolean versionEnable;
|
|
||||||
|
|
||||||
@Schema(description = "")
|
|
||||||
private String issueConfig;
|
|
||||||
|
|
||||||
@Schema(description = "")
|
|
||||||
private String apiTemplateId;
|
|
||||||
|
|
||||||
@Schema(description = "模块设置")
|
|
||||||
private String moduleSetting;
|
|
||||||
|
|
||||||
private static final long serialVersionUID = 1L;
|
|
||||||
|
|
||||||
public enum Column {
|
|
||||||
id("id", "id", "VARCHAR", false),
|
|
||||||
tapdId("tapd_id", "tapdId", "VARCHAR", false),
|
|
||||||
jiraKey("jira_key", "jiraKey", "VARCHAR", false),
|
|
||||||
zentaoId("zentao_id", "zentaoId", "VARCHAR", false),
|
|
||||||
azureDevopsId("azure_devops_id", "azureDevopsId", "VARCHAR", false),
|
|
||||||
caseTemplateId("case_template_id", "caseTemplateId", "VARCHAR", false),
|
|
||||||
azureFilterId("azure_filter_id", "azureFilterId", "VARCHAR", false),
|
|
||||||
platform("platform", "platform", "VARCHAR", false),
|
|
||||||
thirdPartTemplate("third_part_template", "thirdPartTemplate", "BIT", false),
|
|
||||||
versionEnable("version_enable", "versionEnable", "BIT", false),
|
|
||||||
issueConfig("issue_config", "issueConfig", "VARCHAR", false),
|
|
||||||
apiTemplateId("api_template_id", "apiTemplateId", "VARCHAR", false),
|
|
||||||
moduleSetting("module_setting", "moduleSetting", "VARCHAR", false);
|
|
||||||
|
|
||||||
private static final String BEGINNING_DELIMITER = "`";
|
|
||||||
|
|
||||||
private static final String ENDING_DELIMITER = "`";
|
|
||||||
|
|
||||||
private final String column;
|
|
||||||
|
|
||||||
private final boolean isColumnNameDelimited;
|
|
||||||
|
|
||||||
private final String javaProperty;
|
|
||||||
|
|
||||||
private final String jdbcType;
|
|
||||||
|
|
||||||
public String value() {
|
|
||||||
return this.column;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getValue() {
|
|
||||||
return this.column;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getJavaProperty() {
|
|
||||||
return this.javaProperty;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getJdbcType() {
|
|
||||||
return this.jdbcType;
|
|
||||||
}
|
|
||||||
|
|
||||||
Column(String column, String javaProperty, String jdbcType, boolean isColumnNameDelimited) {
|
|
||||||
this.column = column;
|
|
||||||
this.javaProperty = javaProperty;
|
|
||||||
this.jdbcType = jdbcType;
|
|
||||||
this.isColumnNameDelimited = isColumnNameDelimited;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String desc() {
|
|
||||||
return this.getEscapedColumnName() + " DESC";
|
|
||||||
}
|
|
||||||
|
|
||||||
public String asc() {
|
|
||||||
return this.getEscapedColumnName() + " ASC";
|
|
||||||
}
|
|
||||||
|
|
||||||
public static Column[] excludes(Column ... excludes) {
|
|
||||||
ArrayList<Column> columns = new ArrayList<>(Arrays.asList(Column.values()));
|
|
||||||
if (excludes != null && excludes.length > 0) {
|
|
||||||
columns.removeAll(new ArrayList<>(Arrays.asList(excludes)));
|
|
||||||
}
|
|
||||||
return columns.toArray(new Column[]{});
|
|
||||||
}
|
|
||||||
|
|
||||||
public static Column[] all() {
|
|
||||||
return Column.values();
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getEscapedColumnName() {
|
|
||||||
if (this.isColumnNameDelimited) {
|
|
||||||
return new StringBuilder().append(BEGINNING_DELIMITER).append(this.column).append(ENDING_DELIMITER).toString();
|
|
||||||
} else {
|
|
||||||
return this.column;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getAliasedEscapedColumnName() {
|
|
||||||
return this.getEscapedColumnName();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
File diff suppressed because it is too large
Load Diff
|
@ -1,34 +0,0 @@
|
||||||
package io.metersphere.project.mapper;
|
|
||||||
|
|
||||||
import io.metersphere.project.domain.ProjectExtend;
|
|
||||||
import io.metersphere.project.domain.ProjectExtendExample;
|
|
||||||
import java.util.List;
|
|
||||||
import org.apache.ibatis.annotations.Param;
|
|
||||||
|
|
||||||
public interface ProjectExtendMapper {
|
|
||||||
long countByExample(ProjectExtendExample example);
|
|
||||||
|
|
||||||
int deleteByExample(ProjectExtendExample example);
|
|
||||||
|
|
||||||
int deleteByPrimaryKey(String id);
|
|
||||||
|
|
||||||
int insert(ProjectExtend record);
|
|
||||||
|
|
||||||
int insertSelective(ProjectExtend record);
|
|
||||||
|
|
||||||
List<ProjectExtend> selectByExample(ProjectExtendExample example);
|
|
||||||
|
|
||||||
ProjectExtend selectByPrimaryKey(String id);
|
|
||||||
|
|
||||||
int updateByExampleSelective(@Param("record") ProjectExtend record, @Param("example") ProjectExtendExample example);
|
|
||||||
|
|
||||||
int updateByExample(@Param("record") ProjectExtend record, @Param("example") ProjectExtendExample example);
|
|
||||||
|
|
||||||
int updateByPrimaryKeySelective(ProjectExtend record);
|
|
||||||
|
|
||||||
int updateByPrimaryKey(ProjectExtend record);
|
|
||||||
|
|
||||||
int batchInsert(@Param("list") List<ProjectExtend> list);
|
|
||||||
|
|
||||||
int batchInsertSelective(@Param("list") List<ProjectExtend> list, @Param("selective") ProjectExtend.Column ... selective);
|
|
||||||
}
|
|
|
@ -1,405 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
|
||||||
<mapper namespace="io.metersphere.project.mapper.ProjectExtendMapper">
|
|
||||||
<resultMap id="BaseResultMap" type="io.metersphere.project.domain.ProjectExtend">
|
|
||||||
<id column="id" jdbcType="VARCHAR" property="id" />
|
|
||||||
<result column="tapd_id" jdbcType="VARCHAR" property="tapdId" />
|
|
||||||
<result column="jira_key" jdbcType="VARCHAR" property="jiraKey" />
|
|
||||||
<result column="zentao_id" jdbcType="VARCHAR" property="zentaoId" />
|
|
||||||
<result column="azure_devops_id" jdbcType="VARCHAR" property="azureDevopsId" />
|
|
||||||
<result column="case_template_id" jdbcType="VARCHAR" property="caseTemplateId" />
|
|
||||||
<result column="azure_filter_id" jdbcType="VARCHAR" property="azureFilterId" />
|
|
||||||
<result column="platform" jdbcType="VARCHAR" property="platform" />
|
|
||||||
<result column="third_part_template" jdbcType="BIT" property="thirdPartTemplate" />
|
|
||||||
<result column="version_enable" jdbcType="BIT" property="versionEnable" />
|
|
||||||
<result column="issue_config" jdbcType="VARCHAR" property="issueConfig" />
|
|
||||||
<result column="api_template_id" jdbcType="VARCHAR" property="apiTemplateId" />
|
|
||||||
<result column="module_setting" jdbcType="VARCHAR" property="moduleSetting" />
|
|
||||||
</resultMap>
|
|
||||||
<sql id="Example_Where_Clause">
|
|
||||||
<where>
|
|
||||||
<foreach collection="oredCriteria" item="criteria" separator="or">
|
|
||||||
<if test="criteria.valid">
|
|
||||||
<trim prefix="(" prefixOverrides="and" suffix=")">
|
|
||||||
<foreach collection="criteria.criteria" item="criterion">
|
|
||||||
<choose>
|
|
||||||
<when test="criterion.noValue">
|
|
||||||
and ${criterion.condition}
|
|
||||||
</when>
|
|
||||||
<when test="criterion.singleValue">
|
|
||||||
and ${criterion.condition} #{criterion.value}
|
|
||||||
</when>
|
|
||||||
<when test="criterion.betweenValue">
|
|
||||||
and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
|
|
||||||
</when>
|
|
||||||
<when test="criterion.listValue">
|
|
||||||
and ${criterion.condition}
|
|
||||||
<foreach close=")" collection="criterion.value" item="listItem" open="(" separator=",">
|
|
||||||
#{listItem}
|
|
||||||
</foreach>
|
|
||||||
</when>
|
|
||||||
</choose>
|
|
||||||
</foreach>
|
|
||||||
</trim>
|
|
||||||
</if>
|
|
||||||
</foreach>
|
|
||||||
</where>
|
|
||||||
</sql>
|
|
||||||
<sql id="Update_By_Example_Where_Clause">
|
|
||||||
<where>
|
|
||||||
<foreach collection="example.oredCriteria" item="criteria" separator="or">
|
|
||||||
<if test="criteria.valid">
|
|
||||||
<trim prefix="(" prefixOverrides="and" suffix=")">
|
|
||||||
<foreach collection="criteria.criteria" item="criterion">
|
|
||||||
<choose>
|
|
||||||
<when test="criterion.noValue">
|
|
||||||
and ${criterion.condition}
|
|
||||||
</when>
|
|
||||||
<when test="criterion.singleValue">
|
|
||||||
and ${criterion.condition} #{criterion.value}
|
|
||||||
</when>
|
|
||||||
<when test="criterion.betweenValue">
|
|
||||||
and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
|
|
||||||
</when>
|
|
||||||
<when test="criterion.listValue">
|
|
||||||
and ${criterion.condition}
|
|
||||||
<foreach close=")" collection="criterion.value" item="listItem" open="(" separator=",">
|
|
||||||
#{listItem}
|
|
||||||
</foreach>
|
|
||||||
</when>
|
|
||||||
</choose>
|
|
||||||
</foreach>
|
|
||||||
</trim>
|
|
||||||
</if>
|
|
||||||
</foreach>
|
|
||||||
</where>
|
|
||||||
</sql>
|
|
||||||
<sql id="Base_Column_List">
|
|
||||||
id, tapd_id, jira_key, zentao_id, azure_devops_id, case_template_id, azure_filter_id,
|
|
||||||
platform, third_part_template, version_enable, issue_config, api_template_id, module_setting
|
|
||||||
</sql>
|
|
||||||
<select id="selectByExample" parameterType="io.metersphere.project.domain.ProjectExtendExample" resultMap="BaseResultMap">
|
|
||||||
select
|
|
||||||
<if test="distinct">
|
|
||||||
distinct
|
|
||||||
</if>
|
|
||||||
<include refid="Base_Column_List" />
|
|
||||||
from project_extend
|
|
||||||
<if test="_parameter != null">
|
|
||||||
<include refid="Example_Where_Clause" />
|
|
||||||
</if>
|
|
||||||
<if test="orderByClause != null">
|
|
||||||
order by ${orderByClause}
|
|
||||||
</if>
|
|
||||||
</select>
|
|
||||||
<select id="selectByPrimaryKey" parameterType="java.lang.String" resultMap="BaseResultMap">
|
|
||||||
select
|
|
||||||
<include refid="Base_Column_List" />
|
|
||||||
from project_extend
|
|
||||||
where id = #{id,jdbcType=VARCHAR}
|
|
||||||
</select>
|
|
||||||
<delete id="deleteByPrimaryKey" parameterType="java.lang.String">
|
|
||||||
delete from project_extend
|
|
||||||
where id = #{id,jdbcType=VARCHAR}
|
|
||||||
</delete>
|
|
||||||
<delete id="deleteByExample" parameterType="io.metersphere.project.domain.ProjectExtendExample">
|
|
||||||
delete from project_extend
|
|
||||||
<if test="_parameter != null">
|
|
||||||
<include refid="Example_Where_Clause" />
|
|
||||||
</if>
|
|
||||||
</delete>
|
|
||||||
<insert id="insert" parameterType="io.metersphere.project.domain.ProjectExtend">
|
|
||||||
insert into project_extend (id, tapd_id, jira_key,
|
|
||||||
zentao_id, azure_devops_id, case_template_id,
|
|
||||||
azure_filter_id, platform, third_part_template,
|
|
||||||
version_enable, issue_config, api_template_id,
|
|
||||||
module_setting)
|
|
||||||
values (#{id,jdbcType=VARCHAR}, #{tapdId,jdbcType=VARCHAR}, #{jiraKey,jdbcType=VARCHAR},
|
|
||||||
#{zentaoId,jdbcType=VARCHAR}, #{azureDevopsId,jdbcType=VARCHAR}, #{caseTemplateId,jdbcType=VARCHAR},
|
|
||||||
#{azureFilterId,jdbcType=VARCHAR}, #{platform,jdbcType=VARCHAR}, #{thirdPartTemplate,jdbcType=BIT},
|
|
||||||
#{versionEnable,jdbcType=BIT}, #{issueConfig,jdbcType=VARCHAR}, #{apiTemplateId,jdbcType=VARCHAR},
|
|
||||||
#{moduleSetting,jdbcType=VARCHAR})
|
|
||||||
</insert>
|
|
||||||
<insert id="insertSelective" parameterType="io.metersphere.project.domain.ProjectExtend">
|
|
||||||
insert into project_extend
|
|
||||||
<trim prefix="(" suffix=")" suffixOverrides=",">
|
|
||||||
<if test="id != null">
|
|
||||||
id,
|
|
||||||
</if>
|
|
||||||
<if test="tapdId != null">
|
|
||||||
tapd_id,
|
|
||||||
</if>
|
|
||||||
<if test="jiraKey != null">
|
|
||||||
jira_key,
|
|
||||||
</if>
|
|
||||||
<if test="zentaoId != null">
|
|
||||||
zentao_id,
|
|
||||||
</if>
|
|
||||||
<if test="azureDevopsId != null">
|
|
||||||
azure_devops_id,
|
|
||||||
</if>
|
|
||||||
<if test="caseTemplateId != null">
|
|
||||||
case_template_id,
|
|
||||||
</if>
|
|
||||||
<if test="azureFilterId != null">
|
|
||||||
azure_filter_id,
|
|
||||||
</if>
|
|
||||||
<if test="platform != null">
|
|
||||||
platform,
|
|
||||||
</if>
|
|
||||||
<if test="thirdPartTemplate != null">
|
|
||||||
third_part_template,
|
|
||||||
</if>
|
|
||||||
<if test="versionEnable != null">
|
|
||||||
version_enable,
|
|
||||||
</if>
|
|
||||||
<if test="issueConfig != null">
|
|
||||||
issue_config,
|
|
||||||
</if>
|
|
||||||
<if test="apiTemplateId != null">
|
|
||||||
api_template_id,
|
|
||||||
</if>
|
|
||||||
<if test="moduleSetting != null">
|
|
||||||
module_setting,
|
|
||||||
</if>
|
|
||||||
</trim>
|
|
||||||
<trim prefix="values (" suffix=")" suffixOverrides=",">
|
|
||||||
<if test="id != null">
|
|
||||||
#{id,jdbcType=VARCHAR},
|
|
||||||
</if>
|
|
||||||
<if test="tapdId != null">
|
|
||||||
#{tapdId,jdbcType=VARCHAR},
|
|
||||||
</if>
|
|
||||||
<if test="jiraKey != null">
|
|
||||||
#{jiraKey,jdbcType=VARCHAR},
|
|
||||||
</if>
|
|
||||||
<if test="zentaoId != null">
|
|
||||||
#{zentaoId,jdbcType=VARCHAR},
|
|
||||||
</if>
|
|
||||||
<if test="azureDevopsId != null">
|
|
||||||
#{azureDevopsId,jdbcType=VARCHAR},
|
|
||||||
</if>
|
|
||||||
<if test="caseTemplateId != null">
|
|
||||||
#{caseTemplateId,jdbcType=VARCHAR},
|
|
||||||
</if>
|
|
||||||
<if test="azureFilterId != null">
|
|
||||||
#{azureFilterId,jdbcType=VARCHAR},
|
|
||||||
</if>
|
|
||||||
<if test="platform != null">
|
|
||||||
#{platform,jdbcType=VARCHAR},
|
|
||||||
</if>
|
|
||||||
<if test="thirdPartTemplate != null">
|
|
||||||
#{thirdPartTemplate,jdbcType=BIT},
|
|
||||||
</if>
|
|
||||||
<if test="versionEnable != null">
|
|
||||||
#{versionEnable,jdbcType=BIT},
|
|
||||||
</if>
|
|
||||||
<if test="issueConfig != null">
|
|
||||||
#{issueConfig,jdbcType=VARCHAR},
|
|
||||||
</if>
|
|
||||||
<if test="apiTemplateId != null">
|
|
||||||
#{apiTemplateId,jdbcType=VARCHAR},
|
|
||||||
</if>
|
|
||||||
<if test="moduleSetting != null">
|
|
||||||
#{moduleSetting,jdbcType=VARCHAR},
|
|
||||||
</if>
|
|
||||||
</trim>
|
|
||||||
</insert>
|
|
||||||
<select id="countByExample" parameterType="io.metersphere.project.domain.ProjectExtendExample" resultType="java.lang.Long">
|
|
||||||
select count(*) from project_extend
|
|
||||||
<if test="_parameter != null">
|
|
||||||
<include refid="Example_Where_Clause" />
|
|
||||||
</if>
|
|
||||||
</select>
|
|
||||||
<update id="updateByExampleSelective" parameterType="map">
|
|
||||||
update project_extend
|
|
||||||
<set>
|
|
||||||
<if test="record.id != null">
|
|
||||||
id = #{record.id,jdbcType=VARCHAR},
|
|
||||||
</if>
|
|
||||||
<if test="record.tapdId != null">
|
|
||||||
tapd_id = #{record.tapdId,jdbcType=VARCHAR},
|
|
||||||
</if>
|
|
||||||
<if test="record.jiraKey != null">
|
|
||||||
jira_key = #{record.jiraKey,jdbcType=VARCHAR},
|
|
||||||
</if>
|
|
||||||
<if test="record.zentaoId != null">
|
|
||||||
zentao_id = #{record.zentaoId,jdbcType=VARCHAR},
|
|
||||||
</if>
|
|
||||||
<if test="record.azureDevopsId != null">
|
|
||||||
azure_devops_id = #{record.azureDevopsId,jdbcType=VARCHAR},
|
|
||||||
</if>
|
|
||||||
<if test="record.caseTemplateId != null">
|
|
||||||
case_template_id = #{record.caseTemplateId,jdbcType=VARCHAR},
|
|
||||||
</if>
|
|
||||||
<if test="record.azureFilterId != null">
|
|
||||||
azure_filter_id = #{record.azureFilterId,jdbcType=VARCHAR},
|
|
||||||
</if>
|
|
||||||
<if test="record.platform != null">
|
|
||||||
platform = #{record.platform,jdbcType=VARCHAR},
|
|
||||||
</if>
|
|
||||||
<if test="record.thirdPartTemplate != null">
|
|
||||||
third_part_template = #{record.thirdPartTemplate,jdbcType=BIT},
|
|
||||||
</if>
|
|
||||||
<if test="record.versionEnable != null">
|
|
||||||
version_enable = #{record.versionEnable,jdbcType=BIT},
|
|
||||||
</if>
|
|
||||||
<if test="record.issueConfig != null">
|
|
||||||
issue_config = #{record.issueConfig,jdbcType=VARCHAR},
|
|
||||||
</if>
|
|
||||||
<if test="record.apiTemplateId != null">
|
|
||||||
api_template_id = #{record.apiTemplateId,jdbcType=VARCHAR},
|
|
||||||
</if>
|
|
||||||
<if test="record.moduleSetting != null">
|
|
||||||
module_setting = #{record.moduleSetting,jdbcType=VARCHAR},
|
|
||||||
</if>
|
|
||||||
</set>
|
|
||||||
<if test="_parameter != null">
|
|
||||||
<include refid="Update_By_Example_Where_Clause" />
|
|
||||||
</if>
|
|
||||||
</update>
|
|
||||||
<update id="updateByExample" parameterType="map">
|
|
||||||
update project_extend
|
|
||||||
set id = #{record.id,jdbcType=VARCHAR},
|
|
||||||
tapd_id = #{record.tapdId,jdbcType=VARCHAR},
|
|
||||||
jira_key = #{record.jiraKey,jdbcType=VARCHAR},
|
|
||||||
zentao_id = #{record.zentaoId,jdbcType=VARCHAR},
|
|
||||||
azure_devops_id = #{record.azureDevopsId,jdbcType=VARCHAR},
|
|
||||||
case_template_id = #{record.caseTemplateId,jdbcType=VARCHAR},
|
|
||||||
azure_filter_id = #{record.azureFilterId,jdbcType=VARCHAR},
|
|
||||||
platform = #{record.platform,jdbcType=VARCHAR},
|
|
||||||
third_part_template = #{record.thirdPartTemplate,jdbcType=BIT},
|
|
||||||
version_enable = #{record.versionEnable,jdbcType=BIT},
|
|
||||||
issue_config = #{record.issueConfig,jdbcType=VARCHAR},
|
|
||||||
api_template_id = #{record.apiTemplateId,jdbcType=VARCHAR},
|
|
||||||
module_setting = #{record.moduleSetting,jdbcType=VARCHAR}
|
|
||||||
<if test="_parameter != null">
|
|
||||||
<include refid="Update_By_Example_Where_Clause" />
|
|
||||||
</if>
|
|
||||||
</update>
|
|
||||||
<update id="updateByPrimaryKeySelective" parameterType="io.metersphere.project.domain.ProjectExtend">
|
|
||||||
update project_extend
|
|
||||||
<set>
|
|
||||||
<if test="tapdId != null">
|
|
||||||
tapd_id = #{tapdId,jdbcType=VARCHAR},
|
|
||||||
</if>
|
|
||||||
<if test="jiraKey != null">
|
|
||||||
jira_key = #{jiraKey,jdbcType=VARCHAR},
|
|
||||||
</if>
|
|
||||||
<if test="zentaoId != null">
|
|
||||||
zentao_id = #{zentaoId,jdbcType=VARCHAR},
|
|
||||||
</if>
|
|
||||||
<if test="azureDevopsId != null">
|
|
||||||
azure_devops_id = #{azureDevopsId,jdbcType=VARCHAR},
|
|
||||||
</if>
|
|
||||||
<if test="caseTemplateId != null">
|
|
||||||
case_template_id = #{caseTemplateId,jdbcType=VARCHAR},
|
|
||||||
</if>
|
|
||||||
<if test="azureFilterId != null">
|
|
||||||
azure_filter_id = #{azureFilterId,jdbcType=VARCHAR},
|
|
||||||
</if>
|
|
||||||
<if test="platform != null">
|
|
||||||
platform = #{platform,jdbcType=VARCHAR},
|
|
||||||
</if>
|
|
||||||
<if test="thirdPartTemplate != null">
|
|
||||||
third_part_template = #{thirdPartTemplate,jdbcType=BIT},
|
|
||||||
</if>
|
|
||||||
<if test="versionEnable != null">
|
|
||||||
version_enable = #{versionEnable,jdbcType=BIT},
|
|
||||||
</if>
|
|
||||||
<if test="issueConfig != null">
|
|
||||||
issue_config = #{issueConfig,jdbcType=VARCHAR},
|
|
||||||
</if>
|
|
||||||
<if test="apiTemplateId != null">
|
|
||||||
api_template_id = #{apiTemplateId,jdbcType=VARCHAR},
|
|
||||||
</if>
|
|
||||||
<if test="moduleSetting != null">
|
|
||||||
module_setting = #{moduleSetting,jdbcType=VARCHAR},
|
|
||||||
</if>
|
|
||||||
</set>
|
|
||||||
where id = #{id,jdbcType=VARCHAR}
|
|
||||||
</update>
|
|
||||||
<update id="updateByPrimaryKey" parameterType="io.metersphere.project.domain.ProjectExtend">
|
|
||||||
update project_extend
|
|
||||||
set tapd_id = #{tapdId,jdbcType=VARCHAR},
|
|
||||||
jira_key = #{jiraKey,jdbcType=VARCHAR},
|
|
||||||
zentao_id = #{zentaoId,jdbcType=VARCHAR},
|
|
||||||
azure_devops_id = #{azureDevopsId,jdbcType=VARCHAR},
|
|
||||||
case_template_id = #{caseTemplateId,jdbcType=VARCHAR},
|
|
||||||
azure_filter_id = #{azureFilterId,jdbcType=VARCHAR},
|
|
||||||
platform = #{platform,jdbcType=VARCHAR},
|
|
||||||
third_part_template = #{thirdPartTemplate,jdbcType=BIT},
|
|
||||||
version_enable = #{versionEnable,jdbcType=BIT},
|
|
||||||
issue_config = #{issueConfig,jdbcType=VARCHAR},
|
|
||||||
api_template_id = #{apiTemplateId,jdbcType=VARCHAR},
|
|
||||||
module_setting = #{moduleSetting,jdbcType=VARCHAR}
|
|
||||||
where id = #{id,jdbcType=VARCHAR}
|
|
||||||
</update>
|
|
||||||
<insert id="batchInsert" parameterType="map">
|
|
||||||
insert into project_extend
|
|
||||||
(id, tapd_id, jira_key, zentao_id, azure_devops_id, case_template_id, azure_filter_id,
|
|
||||||
platform, third_part_template, version_enable, issue_config, api_template_id, module_setting
|
|
||||||
)
|
|
||||||
values
|
|
||||||
<foreach collection="list" item="item" separator=",">
|
|
||||||
(#{item.id,jdbcType=VARCHAR}, #{item.tapdId,jdbcType=VARCHAR}, #{item.jiraKey,jdbcType=VARCHAR},
|
|
||||||
#{item.zentaoId,jdbcType=VARCHAR}, #{item.azureDevopsId,jdbcType=VARCHAR}, #{item.caseTemplateId,jdbcType=VARCHAR},
|
|
||||||
#{item.azureFilterId,jdbcType=VARCHAR}, #{item.platform,jdbcType=VARCHAR}, #{item.thirdPartTemplate,jdbcType=BIT},
|
|
||||||
#{item.versionEnable,jdbcType=BIT}, #{item.issueConfig,jdbcType=VARCHAR}, #{item.apiTemplateId,jdbcType=VARCHAR},
|
|
||||||
#{item.moduleSetting,jdbcType=VARCHAR})
|
|
||||||
</foreach>
|
|
||||||
</insert>
|
|
||||||
<insert id="batchInsertSelective" parameterType="map">
|
|
||||||
insert into project_extend (
|
|
||||||
<foreach collection="selective" item="column" separator=",">
|
|
||||||
${column.escapedColumnName}
|
|
||||||
</foreach>
|
|
||||||
)
|
|
||||||
values
|
|
||||||
<foreach collection="list" item="item" separator=",">
|
|
||||||
(
|
|
||||||
<foreach collection="selective" item="column" separator=",">
|
|
||||||
<if test="'id'.toString() == column.value">
|
|
||||||
#{item.id,jdbcType=VARCHAR}
|
|
||||||
</if>
|
|
||||||
<if test="'tapd_id'.toString() == column.value">
|
|
||||||
#{item.tapdId,jdbcType=VARCHAR}
|
|
||||||
</if>
|
|
||||||
<if test="'jira_key'.toString() == column.value">
|
|
||||||
#{item.jiraKey,jdbcType=VARCHAR}
|
|
||||||
</if>
|
|
||||||
<if test="'zentao_id'.toString() == column.value">
|
|
||||||
#{item.zentaoId,jdbcType=VARCHAR}
|
|
||||||
</if>
|
|
||||||
<if test="'azure_devops_id'.toString() == column.value">
|
|
||||||
#{item.azureDevopsId,jdbcType=VARCHAR}
|
|
||||||
</if>
|
|
||||||
<if test="'case_template_id'.toString() == column.value">
|
|
||||||
#{item.caseTemplateId,jdbcType=VARCHAR}
|
|
||||||
</if>
|
|
||||||
<if test="'azure_filter_id'.toString() == column.value">
|
|
||||||
#{item.azureFilterId,jdbcType=VARCHAR}
|
|
||||||
</if>
|
|
||||||
<if test="'platform'.toString() == column.value">
|
|
||||||
#{item.platform,jdbcType=VARCHAR}
|
|
||||||
</if>
|
|
||||||
<if test="'third_part_template'.toString() == column.value">
|
|
||||||
#{item.thirdPartTemplate,jdbcType=BIT}
|
|
||||||
</if>
|
|
||||||
<if test="'version_enable'.toString() == column.value">
|
|
||||||
#{item.versionEnable,jdbcType=BIT}
|
|
||||||
</if>
|
|
||||||
<if test="'issue_config'.toString() == column.value">
|
|
||||||
#{item.issueConfig,jdbcType=VARCHAR}
|
|
||||||
</if>
|
|
||||||
<if test="'api_template_id'.toString() == column.value">
|
|
||||||
#{item.apiTemplateId,jdbcType=VARCHAR}
|
|
||||||
</if>
|
|
||||||
<if test="'module_setting'.toString() == column.value">
|
|
||||||
#{item.moduleSetting,jdbcType=VARCHAR}
|
|
||||||
</if>
|
|
||||||
</foreach>
|
|
||||||
)
|
|
||||||
</foreach>
|
|
||||||
</insert>
|
|
||||||
</mapper>
|
|
|
@ -15,6 +15,7 @@
|
||||||
<result column="deleted" jdbcType="BIT" property="deleted" />
|
<result column="deleted" jdbcType="BIT" property="deleted" />
|
||||||
<result column="delete_user" jdbcType="VARCHAR" property="deleteUser" />
|
<result column="delete_user" jdbcType="VARCHAR" property="deleteUser" />
|
||||||
<result column="enable" jdbcType="BIT" property="enable" />
|
<result column="enable" jdbcType="BIT" property="enable" />
|
||||||
|
<result column="module_setting" jdbcType="VARCHAR" property="moduleSetting" />
|
||||||
</resultMap>
|
</resultMap>
|
||||||
<sql id="Example_Where_Clause">
|
<sql id="Example_Where_Clause">
|
||||||
<where>
|
<where>
|
||||||
|
@ -76,7 +77,7 @@
|
||||||
</sql>
|
</sql>
|
||||||
<sql id="Base_Column_List">
|
<sql id="Base_Column_List">
|
||||||
id, num, organization_id, `name`, description, create_time, update_time, update_user,
|
id, num, organization_id, `name`, description, create_time, update_time, update_user,
|
||||||
create_user, delete_time, deleted, delete_user, `enable`
|
create_user, delete_time, deleted, delete_user, `enable`, module_setting
|
||||||
</sql>
|
</sql>
|
||||||
<select id="selectByExample" parameterType="io.metersphere.project.domain.ProjectExample" resultMap="BaseResultMap">
|
<select id="selectByExample" parameterType="io.metersphere.project.domain.ProjectExample" resultMap="BaseResultMap">
|
||||||
select
|
select
|
||||||
|
@ -113,12 +114,12 @@
|
||||||
`name`, description, create_time,
|
`name`, description, create_time,
|
||||||
update_time, update_user, create_user,
|
update_time, update_user, create_user,
|
||||||
delete_time, deleted, delete_user,
|
delete_time, deleted, delete_user,
|
||||||
`enable`)
|
`enable`, module_setting)
|
||||||
values (#{id,jdbcType=VARCHAR}, #{num,jdbcType=BIGINT}, #{organizationId,jdbcType=VARCHAR},
|
values (#{id,jdbcType=VARCHAR}, #{num,jdbcType=BIGINT}, #{organizationId,jdbcType=VARCHAR},
|
||||||
#{name,jdbcType=VARCHAR}, #{description,jdbcType=VARCHAR}, #{createTime,jdbcType=BIGINT},
|
#{name,jdbcType=VARCHAR}, #{description,jdbcType=VARCHAR}, #{createTime,jdbcType=BIGINT},
|
||||||
#{updateTime,jdbcType=BIGINT}, #{updateUser,jdbcType=VARCHAR}, #{createUser,jdbcType=VARCHAR},
|
#{updateTime,jdbcType=BIGINT}, #{updateUser,jdbcType=VARCHAR}, #{createUser,jdbcType=VARCHAR},
|
||||||
#{deleteTime,jdbcType=BIGINT}, #{deleted,jdbcType=BIT}, #{deleteUser,jdbcType=VARCHAR},
|
#{deleteTime,jdbcType=BIGINT}, #{deleted,jdbcType=BIT}, #{deleteUser,jdbcType=VARCHAR},
|
||||||
#{enable,jdbcType=BIT})
|
#{enable,jdbcType=BIT}, #{moduleSetting,jdbcType=VARCHAR})
|
||||||
</insert>
|
</insert>
|
||||||
<insert id="insertSelective" parameterType="io.metersphere.project.domain.Project">
|
<insert id="insertSelective" parameterType="io.metersphere.project.domain.Project">
|
||||||
insert into project
|
insert into project
|
||||||
|
@ -162,6 +163,9 @@
|
||||||
<if test="enable != null">
|
<if test="enable != null">
|
||||||
`enable`,
|
`enable`,
|
||||||
</if>
|
</if>
|
||||||
|
<if test="moduleSetting != null">
|
||||||
|
module_setting,
|
||||||
|
</if>
|
||||||
</trim>
|
</trim>
|
||||||
<trim prefix="values (" suffix=")" suffixOverrides=",">
|
<trim prefix="values (" suffix=")" suffixOverrides=",">
|
||||||
<if test="id != null">
|
<if test="id != null">
|
||||||
|
@ -203,6 +207,9 @@
|
||||||
<if test="enable != null">
|
<if test="enable != null">
|
||||||
#{enable,jdbcType=BIT},
|
#{enable,jdbcType=BIT},
|
||||||
</if>
|
</if>
|
||||||
|
<if test="moduleSetting != null">
|
||||||
|
#{moduleSetting,jdbcType=VARCHAR},
|
||||||
|
</if>
|
||||||
</trim>
|
</trim>
|
||||||
</insert>
|
</insert>
|
||||||
<select id="countByExample" parameterType="io.metersphere.project.domain.ProjectExample" resultType="java.lang.Long">
|
<select id="countByExample" parameterType="io.metersphere.project.domain.ProjectExample" resultType="java.lang.Long">
|
||||||
|
@ -253,6 +260,9 @@
|
||||||
<if test="record.enable != null">
|
<if test="record.enable != null">
|
||||||
`enable` = #{record.enable,jdbcType=BIT},
|
`enable` = #{record.enable,jdbcType=BIT},
|
||||||
</if>
|
</if>
|
||||||
|
<if test="record.moduleSetting != null">
|
||||||
|
module_setting = #{record.moduleSetting,jdbcType=VARCHAR},
|
||||||
|
</if>
|
||||||
</set>
|
</set>
|
||||||
<if test="_parameter != null">
|
<if test="_parameter != null">
|
||||||
<include refid="Update_By_Example_Where_Clause" />
|
<include refid="Update_By_Example_Where_Clause" />
|
||||||
|
@ -272,7 +282,8 @@
|
||||||
delete_time = #{record.deleteTime,jdbcType=BIGINT},
|
delete_time = #{record.deleteTime,jdbcType=BIGINT},
|
||||||
deleted = #{record.deleted,jdbcType=BIT},
|
deleted = #{record.deleted,jdbcType=BIT},
|
||||||
delete_user = #{record.deleteUser,jdbcType=VARCHAR},
|
delete_user = #{record.deleteUser,jdbcType=VARCHAR},
|
||||||
`enable` = #{record.enable,jdbcType=BIT}
|
`enable` = #{record.enable,jdbcType=BIT},
|
||||||
|
module_setting = #{record.moduleSetting,jdbcType=VARCHAR}
|
||||||
<if test="_parameter != null">
|
<if test="_parameter != null">
|
||||||
<include refid="Update_By_Example_Where_Clause" />
|
<include refid="Update_By_Example_Where_Clause" />
|
||||||
</if>
|
</if>
|
||||||
|
@ -316,6 +327,9 @@
|
||||||
<if test="enable != null">
|
<if test="enable != null">
|
||||||
`enable` = #{enable,jdbcType=BIT},
|
`enable` = #{enable,jdbcType=BIT},
|
||||||
</if>
|
</if>
|
||||||
|
<if test="moduleSetting != null">
|
||||||
|
module_setting = #{moduleSetting,jdbcType=VARCHAR},
|
||||||
|
</if>
|
||||||
</set>
|
</set>
|
||||||
where id = #{id,jdbcType=VARCHAR}
|
where id = #{id,jdbcType=VARCHAR}
|
||||||
</update>
|
</update>
|
||||||
|
@ -332,20 +346,21 @@
|
||||||
delete_time = #{deleteTime,jdbcType=BIGINT},
|
delete_time = #{deleteTime,jdbcType=BIGINT},
|
||||||
deleted = #{deleted,jdbcType=BIT},
|
deleted = #{deleted,jdbcType=BIT},
|
||||||
delete_user = #{deleteUser,jdbcType=VARCHAR},
|
delete_user = #{deleteUser,jdbcType=VARCHAR},
|
||||||
`enable` = #{enable,jdbcType=BIT}
|
`enable` = #{enable,jdbcType=BIT},
|
||||||
|
module_setting = #{moduleSetting,jdbcType=VARCHAR}
|
||||||
where id = #{id,jdbcType=VARCHAR}
|
where id = #{id,jdbcType=VARCHAR}
|
||||||
</update>
|
</update>
|
||||||
<insert id="batchInsert" parameterType="map">
|
<insert id="batchInsert" parameterType="map">
|
||||||
insert into project
|
insert into project
|
||||||
(id, num, organization_id, `name`, description, create_time, update_time, update_user,
|
(id, num, organization_id, `name`, description, create_time, update_time, update_user,
|
||||||
create_user, delete_time, deleted, delete_user, `enable`)
|
create_user, delete_time, deleted, delete_user, `enable`, module_setting)
|
||||||
values
|
values
|
||||||
<foreach collection="list" item="item" separator=",">
|
<foreach collection="list" item="item" separator=",">
|
||||||
(#{item.id,jdbcType=VARCHAR}, #{item.num,jdbcType=BIGINT}, #{item.organizationId,jdbcType=VARCHAR},
|
(#{item.id,jdbcType=VARCHAR}, #{item.num,jdbcType=BIGINT}, #{item.organizationId,jdbcType=VARCHAR},
|
||||||
#{item.name,jdbcType=VARCHAR}, #{item.description,jdbcType=VARCHAR}, #{item.createTime,jdbcType=BIGINT},
|
#{item.name,jdbcType=VARCHAR}, #{item.description,jdbcType=VARCHAR}, #{item.createTime,jdbcType=BIGINT},
|
||||||
#{item.updateTime,jdbcType=BIGINT}, #{item.updateUser,jdbcType=VARCHAR}, #{item.createUser,jdbcType=VARCHAR},
|
#{item.updateTime,jdbcType=BIGINT}, #{item.updateUser,jdbcType=VARCHAR}, #{item.createUser,jdbcType=VARCHAR},
|
||||||
#{item.deleteTime,jdbcType=BIGINT}, #{item.deleted,jdbcType=BIT}, #{item.deleteUser,jdbcType=VARCHAR},
|
#{item.deleteTime,jdbcType=BIGINT}, #{item.deleted,jdbcType=BIT}, #{item.deleteUser,jdbcType=VARCHAR},
|
||||||
#{item.enable,jdbcType=BIT})
|
#{item.enable,jdbcType=BIT}, #{item.moduleSetting,jdbcType=VARCHAR})
|
||||||
</foreach>
|
</foreach>
|
||||||
</insert>
|
</insert>
|
||||||
<insert id="batchInsertSelective" parameterType="map">
|
<insert id="batchInsertSelective" parameterType="map">
|
||||||
|
@ -397,6 +412,9 @@
|
||||||
<if test="'enable'.toString() == column.value">
|
<if test="'enable'.toString() == column.value">
|
||||||
#{item.enable,jdbcType=BIT}
|
#{item.enable,jdbcType=BIT}
|
||||||
</if>
|
</if>
|
||||||
|
<if test="'module_setting'.toString() == column.value">
|
||||||
|
#{item.moduleSetting,jdbcType=VARCHAR}
|
||||||
|
</if>
|
||||||
</foreach>
|
</foreach>
|
||||||
)
|
)
|
||||||
</foreach>
|
</foreach>
|
||||||
|
|
|
@ -3,44 +3,20 @@ SET SESSION innodb_lock_wait_timeout = 7200;
|
||||||
|
|
||||||
CREATE TABLE IF NOT EXISTS custom_field
|
CREATE TABLE IF NOT EXISTS custom_field
|
||||||
(
|
(
|
||||||
`id` VARCHAR
|
`id` VARCHAR(50) NOT NULL COMMENT '自定义字段ID',
|
||||||
(
|
`name` VARCHAR(255) NOT NULL COMMENT '自定义字段名称',
|
||||||
50
|
`scene` VARCHAR(30) NOT NULL COMMENT '使用场景',
|
||||||
) NOT NULL COMMENT '自定义字段ID',
|
`type` VARCHAR(30) NOT NULL COMMENT '自定义字段类型',
|
||||||
`name` VARCHAR
|
`remark` VARCHAR(255) COMMENT '自定义字段备注',
|
||||||
(
|
`options` TEXT COMMENT '自定义字段选项',
|
||||||
255
|
`system` BIT DEFAULT 0 COMMENT '是否是系统字段',
|
||||||
) NOT NULL COMMENT '自定义字段名称',
|
`global` BIT DEFAULT 0 COMMENT '是否是全局字段',
|
||||||
`scene` VARCHAR
|
`create_time` BIGINT NOT NULL COMMENT '创建时间',
|
||||||
(
|
`update_time` BIGINT NOT NULL COMMENT '更新时间',
|
||||||
30
|
`create_user` VARCHAR(50) COMMENT '创建人',
|
||||||
) NOT NULL COMMENT '使用场景',
|
`project_id` VARCHAR(50) COMMENT '项目ID',
|
||||||
`type` VARCHAR
|
`third_part` BIT NOT NULL DEFAULT 0 COMMENT '是否关联第三方',
|
||||||
(
|
PRIMARY KEY (id)
|
||||||
30
|
|
||||||
) NOT NULL COMMENT '自定义字段类型',
|
|
||||||
`remark` VARCHAR
|
|
||||||
(
|
|
||||||
255
|
|
||||||
) COMMENT '自定义字段备注',
|
|
||||||
`options` TEXT COMMENT '自定义字段选项',
|
|
||||||
`system` BIT DEFAULT 0 COMMENT '是否是系统字段',
|
|
||||||
`global` BIT DEFAULT 0 COMMENT '是否是全局字段',
|
|
||||||
`create_time` BIGINT NOT NULL COMMENT '创建时间',
|
|
||||||
`update_time` BIGINT NOT NULL COMMENT '更新时间',
|
|
||||||
`create_user` VARCHAR
|
|
||||||
(
|
|
||||||
50
|
|
||||||
) COMMENT '创建人',
|
|
||||||
`project_id` VARCHAR
|
|
||||||
(
|
|
||||||
50
|
|
||||||
) COMMENT '项目ID',
|
|
||||||
`third_part` BIT NOT NULL DEFAULT 0 COMMENT '是否关联第三方',
|
|
||||||
PRIMARY KEY
|
|
||||||
(
|
|
||||||
id
|
|
||||||
)
|
|
||||||
) COMMENT = '自定义字段';
|
) COMMENT = '自定义字段';
|
||||||
|
|
||||||
|
|
||||||
|
@ -54,37 +30,16 @@ CREATE INDEX idx_project_id ON custom_field (project_id);
|
||||||
|
|
||||||
CREATE TABLE IF NOT EXISTS custom_field_template
|
CREATE TABLE IF NOT EXISTS custom_field_template
|
||||||
(
|
(
|
||||||
`id` VARCHAR
|
`id` VARCHAR(50) NOT NULL COMMENT '自定义模版ID',
|
||||||
(
|
`field_id` VARCHAR(50) NOT NULL COMMENT '自定义字段ID',
|
||||||
50
|
`template_id` VARCHAR(50) NOT NULL COMMENT '模版ID',
|
||||||
) NOT NULL COMMENT '自定义模版ID',
|
`scene` VARCHAR(30) NOT NULL COMMENT '使用场景',
|
||||||
`field_id` VARCHAR
|
`required` BIT COMMENT '是否必填',
|
||||||
(
|
`pos` INT COMMENT '排序字段',
|
||||||
50
|
|
||||||
) NOT NULL COMMENT '自定义字段ID',
|
|
||||||
`template_id` VARCHAR
|
|
||||||
(
|
|
||||||
50
|
|
||||||
) NOT NULL COMMENT '模版ID',
|
|
||||||
`scene` VARCHAR
|
|
||||||
(
|
|
||||||
30
|
|
||||||
) NOT NULL COMMENT '使用场景',
|
|
||||||
`required` BIT COMMENT '是否必填',
|
|
||||||
`pos` INT COMMENT '排序字段',
|
|
||||||
`default_value` LONGBLOB COMMENT '默认值',
|
`default_value` LONGBLOB COMMENT '默认值',
|
||||||
`custom_data` VARCHAR
|
`custom_data` VARCHAR(255) COMMENT '自定义数据',
|
||||||
(
|
`key` VARCHAR(1) COMMENT '自定义表头',
|
||||||
255
|
PRIMARY KEY (id)
|
||||||
) COMMENT '自定义数据',
|
|
||||||
`key` VARCHAR
|
|
||||||
(
|
|
||||||
1
|
|
||||||
) COMMENT '自定义表头',
|
|
||||||
PRIMARY KEY
|
|
||||||
(
|
|
||||||
id
|
|
||||||
)
|
|
||||||
) COMMENT = '自定义模版';
|
) COMMENT = '自定义模版';
|
||||||
|
|
||||||
|
|
||||||
|
@ -93,26 +48,11 @@ CREATE INDEX custom_field_template_template_id_index ON custom_field_template (t
|
||||||
|
|
||||||
CREATE TABLE IF NOT EXISTS custom_function
|
CREATE TABLE IF NOT EXISTS custom_function
|
||||||
(
|
(
|
||||||
`id` VARCHAR
|
`id` VARCHAR(50) NOT NULL COMMENT '',
|
||||||
(
|
`name` VARCHAR(255) NOT NULL COMMENT '函数名',
|
||||||
50
|
`tags` VARCHAR(1000) COMMENT '标签',
|
||||||
) NOT NULL COMMENT '',
|
`description` VARCHAR(500) COMMENT '函数描述',
|
||||||
`name` VARCHAR
|
PRIMARY KEY (id)
|
||||||
(
|
|
||||||
255
|
|
||||||
) NOT NULL COMMENT '函数名',
|
|
||||||
`tags` VARCHAR
|
|
||||||
(
|
|
||||||
1000
|
|
||||||
) COMMENT '标签',
|
|
||||||
`description` VARCHAR
|
|
||||||
(
|
|
||||||
500
|
|
||||||
) COMMENT '函数描述',
|
|
||||||
PRIMARY KEY
|
|
||||||
(
|
|
||||||
id
|
|
||||||
)
|
|
||||||
) COMMENT = '自定义函数-代码片段';
|
) COMMENT = '自定义函数-代码片段';
|
||||||
|
|
||||||
|
|
||||||
|
@ -120,37 +60,16 @@ CREATE INDEX name ON custom_function (name);
|
||||||
|
|
||||||
CREATE TABLE IF NOT EXISTS fake_error
|
CREATE TABLE IF NOT EXISTS fake_error
|
||||||
(
|
(
|
||||||
`id` VARCHAR
|
`id` VARCHAR(50) NOT NULL COMMENT '误报ID',
|
||||||
(
|
`project_id` VARCHAR(50) NOT NULL COMMENT '项目ID',
|
||||||
50
|
`create_time` BIGINT NOT NULL COMMENT '创建时间',
|
||||||
) NOT NULL COMMENT '误报ID',
|
`update_time` BIGINT NOT NULL COMMENT '更新时间',
|
||||||
`project_id` VARCHAR
|
`create_user` VARCHAR(64) NOT NULL COMMENT '创建人',
|
||||||
(
|
`update_user` VARCHAR(64) NOT NULL COMMENT '更新人',
|
||||||
50
|
`error_code` VARCHAR(255) NOT NULL COMMENT '错误码',
|
||||||
) NOT NULL COMMENT '项目ID',
|
`match_type` VARCHAR(255) NOT NULL COMMENT '匹配类型',
|
||||||
`create_time` BIGINT NOT NULL COMMENT '创建时间',
|
`status` BIT COMMENT '状态',
|
||||||
`update_time` BIGINT NOT NULL COMMENT '更新时间',
|
PRIMARY KEY (id)
|
||||||
`create_user` VARCHAR
|
|
||||||
(
|
|
||||||
64
|
|
||||||
) NOT NULL COMMENT '创建人',
|
|
||||||
`update_user` VARCHAR
|
|
||||||
(
|
|
||||||
64
|
|
||||||
) NOT NULL COMMENT '更新人',
|
|
||||||
`error_code` VARCHAR
|
|
||||||
(
|
|
||||||
255
|
|
||||||
) NOT NULL COMMENT '错误码',
|
|
||||||
`match_type` VARCHAR
|
|
||||||
(
|
|
||||||
255
|
|
||||||
) NOT NULL COMMENT '匹配类型',
|
|
||||||
`status` BIT COMMENT '状态',
|
|
||||||
PRIMARY KEY
|
|
||||||
(
|
|
||||||
id
|
|
||||||
)
|
|
||||||
) COMMENT = '误报库';
|
) COMMENT = '误报库';
|
||||||
|
|
||||||
|
|
||||||
|
@ -163,38 +82,14 @@ CREATE INDEX idx_update_user ON fake_error (update_user);
|
||||||
|
|
||||||
CREATE TABLE IF NOT EXISTS file_association
|
CREATE TABLE IF NOT EXISTS file_association
|
||||||
(
|
(
|
||||||
`id` VARCHAR
|
`id` VARCHAR(50) NOT NULL COMMENT '',
|
||||||
(
|
`type` VARCHAR(50) NOT NULL COMMENT '模块类型,服务拆分后就是各个服务',
|
||||||
50
|
`source_id` VARCHAR(50) NOT NULL COMMENT '各个模块关联时自身Id/比如API/CASE/SCENAEIO',
|
||||||
) NOT NULL COMMENT '',
|
`source_item_id` VARCHAR(50) NOT NULL COMMENT '对应资源引用时具体id,如一个用例引用多个文件',
|
||||||
`type` VARCHAR
|
`file_metadata_id` VARCHAR(50) NOT NULL COMMENT '文件id',
|
||||||
(
|
`file_type` VARCHAR(50) NOT NULL COMMENT '文件类型',
|
||||||
50
|
`project_id` VARCHAR(50) NOT NULL COMMENT '项目id',
|
||||||
) NOT NULL COMMENT '模块类型,服务拆分后就是各个服务',
|
PRIMARY KEY (id)
|
||||||
`source_id` VARCHAR
|
|
||||||
(
|
|
||||||
50
|
|
||||||
) NOT NULL COMMENT '各个模块关联时自身Id/比如API/CASE/SCENAEIO',
|
|
||||||
`source_item_id` VARCHAR
|
|
||||||
(
|
|
||||||
50
|
|
||||||
) NOT NULL COMMENT '对应资源引用时具体id,如一个用例引用多个文件',
|
|
||||||
`file_metadata_id` VARCHAR
|
|
||||||
(
|
|
||||||
50
|
|
||||||
) NOT NULL COMMENT '文件id',
|
|
||||||
`file_type` VARCHAR
|
|
||||||
(
|
|
||||||
50
|
|
||||||
) NOT NULL COMMENT '文件类型',
|
|
||||||
`project_id` VARCHAR
|
|
||||||
(
|
|
||||||
50
|
|
||||||
) NOT NULL COMMENT '项目id',
|
|
||||||
PRIMARY KEY
|
|
||||||
(
|
|
||||||
id
|
|
||||||
)
|
|
||||||
) COMMENT = '文件关联资源关系(分散到模块)';
|
) COMMENT = '文件关联资源关系(分散到模块)';
|
||||||
|
|
||||||
|
|
||||||
|
@ -204,67 +99,25 @@ CREATE INDEX idx_source_id ON file_association (source_id);
|
||||||
|
|
||||||
CREATE TABLE IF NOT EXISTS file_metadata
|
CREATE TABLE IF NOT EXISTS file_metadata
|
||||||
(
|
(
|
||||||
`id` VARCHAR
|
`id` VARCHAR(50) NOT NULL COMMENT '文件ID',
|
||||||
(
|
`name` VARCHAR(255) NOT NULL COMMENT '文件名',
|
||||||
50
|
`type` VARCHAR(64) COMMENT '文件类型',
|
||||||
) NOT NULL COMMENT '文件ID',
|
`size` BIGINT NOT NULL COMMENT '文件大小',
|
||||||
`name` VARCHAR
|
`create_time` BIGINT NOT NULL COMMENT '创建时间',
|
||||||
(
|
`update_time` BIGINT NOT NULL COMMENT '更新时间',
|
||||||
255
|
`project_id` VARCHAR(50) NOT NULL COMMENT '项目ID',
|
||||||
) NOT NULL COMMENT '文件名',
|
`storage` VARCHAR(50) NOT NULL DEFAULT 'MINIO' COMMENT '文件存储方式',
|
||||||
`type` VARCHAR
|
`create_user` VARCHAR(50) NOT NULL COMMENT '创建人',
|
||||||
(
|
`update_user` VARCHAR(50) NOT NULL COMMENT '修改人',
|
||||||
64
|
`tags` VARCHAR(1000) COMMENT '标签',
|
||||||
) COMMENT '文件类型',
|
`description` VARCHAR(500) COMMENT '描述',
|
||||||
`size` BIGINT NOT NULL COMMENT '文件大小',
|
`module_id` VARCHAR(50) COMMENT '文件所属模块',
|
||||||
`create_time` BIGINT NOT NULL COMMENT '创建时间',
|
`load_jar` BIT DEFAULT 0 COMMENT '是否加载jar(开启后用于接口测试执行时使用)',
|
||||||
`update_time` BIGINT NOT NULL COMMENT '更新时间',
|
`path` VARCHAR(1000) COMMENT '文件存储路径',
|
||||||
`project_id` VARCHAR
|
`resource_type` VARCHAR(50) COMMENT '资源作用范围,主要兼容2.1版本前的历史数据,后续版本不再产生数据',
|
||||||
(
|
`latest` BIT NOT NULL DEFAULT 1 COMMENT '是否是最新版',
|
||||||
50
|
`ref_id` VARCHAR(50) NOT NULL COMMENT '同版本数据关联的ID',
|
||||||
) NOT NULL COMMENT '项目ID',
|
PRIMARY KEY (id)
|
||||||
`storage` VARCHAR
|
|
||||||
(
|
|
||||||
50
|
|
||||||
) NOT NULL DEFAULT 'MINIO' COMMENT '文件存储方式',
|
|
||||||
`create_user` VARCHAR
|
|
||||||
(
|
|
||||||
50
|
|
||||||
) NOT NULL COMMENT '创建人',
|
|
||||||
`update_user` VARCHAR
|
|
||||||
(
|
|
||||||
50
|
|
||||||
) NOT NULL COMMENT '修改人',
|
|
||||||
`tags` VARCHAR
|
|
||||||
(
|
|
||||||
1000
|
|
||||||
) COMMENT '标签',
|
|
||||||
`description` VARCHAR
|
|
||||||
(
|
|
||||||
500
|
|
||||||
) COMMENT '描述',
|
|
||||||
`module_id` VARCHAR
|
|
||||||
(
|
|
||||||
50
|
|
||||||
) COMMENT '文件所属模块',
|
|
||||||
`load_jar` BIT DEFAULT 0 COMMENT '是否加载jar(开启后用于接口测试执行时使用)',
|
|
||||||
`path` VARCHAR
|
|
||||||
(
|
|
||||||
1000
|
|
||||||
) COMMENT '文件存储路径',
|
|
||||||
`resource_type` VARCHAR
|
|
||||||
(
|
|
||||||
50
|
|
||||||
) COMMENT '资源作用范围,主要兼容2.1版本前的历史数据,后续版本不再产生数据',
|
|
||||||
`latest` BIT NOT NULL DEFAULT 1 COMMENT '是否是最新版',
|
|
||||||
`ref_id` VARCHAR
|
|
||||||
(
|
|
||||||
50
|
|
||||||
) NOT NULL COMMENT '同版本数据关联的ID',
|
|
||||||
PRIMARY KEY
|
|
||||||
(
|
|
||||||
id
|
|
||||||
)
|
|
||||||
) COMMENT = '文件基础信息';
|
) COMMENT = '文件基础信息';
|
||||||
|
|
||||||
|
|
||||||
|
@ -277,38 +130,17 @@ CREATE INDEX idx_project_id ON file_metadata (project_id);
|
||||||
|
|
||||||
CREATE TABLE IF NOT EXISTS file_module
|
CREATE TABLE IF NOT EXISTS file_module
|
||||||
(
|
(
|
||||||
`id` VARCHAR
|
`id` VARCHAR(50) NOT NULL COMMENT 'ID',
|
||||||
(
|
`project_id` VARCHAR(50) NOT NULL COMMENT '项目ID',
|
||||||
50
|
`name` VARCHAR(64) NOT NULL COMMENT '模块名称',
|
||||||
) NOT NULL COMMENT 'ID',
|
`parent_id` VARCHAR(50) COMMENT '父级ID',
|
||||||
`project_id` VARCHAR
|
`level` INT DEFAULT 1 COMMENT '层数',
|
||||||
(
|
`create_time` BIGINT NOT NULL COMMENT '创建时间',
|
||||||
50
|
`update_time` BIGINT NOT NULL COMMENT '更新时间',
|
||||||
) NOT NULL COMMENT '项目ID',
|
`pos` DOUBLE COMMENT '排序用的标识',
|
||||||
`name` VARCHAR
|
`create_user` VARCHAR(50) COMMENT '创建人',
|
||||||
(
|
`module_type` VARCHAR(20) DEFAULT 'module' COMMENT '模块类型: module/repository',
|
||||||
64
|
PRIMARY KEY (id)
|
||||||
) NOT NULL COMMENT '模块名称',
|
|
||||||
`parent_id` VARCHAR
|
|
||||||
(
|
|
||||||
50
|
|
||||||
) COMMENT '父级ID',
|
|
||||||
`level` INT DEFAULT 1 COMMENT '层数',
|
|
||||||
`create_time` BIGINT NOT NULL COMMENT '创建时间',
|
|
||||||
`update_time` BIGINT NOT NULL COMMENT '更新时间',
|
|
||||||
`pos` DOUBLE COMMENT '排序用的标识',
|
|
||||||
`create_user` VARCHAR
|
|
||||||
(
|
|
||||||
50
|
|
||||||
) COMMENT '创建人',
|
|
||||||
`module_type` VARCHAR
|
|
||||||
(
|
|
||||||
20
|
|
||||||
) DEFAULT 'module' COMMENT '模块类型: module/repository',
|
|
||||||
PRIMARY KEY
|
|
||||||
(
|
|
||||||
id
|
|
||||||
)
|
|
||||||
) COMMENT = '文件管理模块';
|
) COMMENT = '文件管理模块';
|
||||||
|
|
||||||
|
|
||||||
|
@ -321,48 +153,22 @@ CREATE INDEX idx_create_user ON file_module (create_user);
|
||||||
|
|
||||||
CREATE TABLE IF NOT EXISTS project
|
CREATE TABLE IF NOT EXISTS project
|
||||||
(
|
(
|
||||||
`id` VARCHAR
|
`id` VARCHAR(50) NOT NULL COMMENT '项目ID',
|
||||||
(
|
`num` BIGINT NOT NULL AUTO_INCREMENT COMMENT '项目编号',
|
||||||
50
|
`organization_id` VARCHAR(50) NOT NULL COMMENT '组织ID',
|
||||||
) NOT NULL COMMENT '项目ID',
|
`name` VARCHAR(255) NOT NULL COMMENT '项目名称',
|
||||||
`num` BIGINT NOT NULL AUTO_INCREMENT COMMENT '项目编号',
|
`description` VARCHAR(500) COMMENT '项目描述',
|
||||||
`organization_id` VARCHAR
|
`create_time` BIGINT NOT NULL COMMENT '创建时间',
|
||||||
(
|
`update_time` BIGINT NOT NULL COMMENT '更新时间',
|
||||||
50
|
`update_user` VARCHAR(50) NOT NULL COMMENT '修改人',
|
||||||
) NOT NULL COMMENT '组织ID',
|
`create_user` VARCHAR(50) COMMENT '创建人',
|
||||||
`name` VARCHAR
|
`delete_time` BIGINT COMMENT '删除时间',
|
||||||
(
|
`deleted` BIT NOT NULL DEFAULT 0 COMMENT '是否删除',
|
||||||
255
|
`delete_user` VARCHAR(50) COMMENT '删除人',
|
||||||
) NOT NULL COMMENT '项目名称',
|
`enable` BIT COMMENT '是否启用',
|
||||||
`description` VARCHAR
|
`module_setting` VARCHAR(255) COMMENT '模块设置' ,
|
||||||
(
|
PRIMARY KEY (id),
|
||||||
500
|
CONSTRAINT idx_num UNIQUE (num)
|
||||||
) COMMENT '项目描述',
|
|
||||||
`create_time` BIGINT NOT NULL COMMENT '创建时间',
|
|
||||||
`update_time` BIGINT NOT NULL COMMENT '更新时间',
|
|
||||||
`update_user` VARCHAR
|
|
||||||
(
|
|
||||||
50
|
|
||||||
) NOT NULL COMMENT '修改人',
|
|
||||||
`create_user` VARCHAR
|
|
||||||
(
|
|
||||||
50
|
|
||||||
) COMMENT '创建人',
|
|
||||||
`delete_time` BIGINT COMMENT '删除时间',
|
|
||||||
`deleted` BIT NOT NULL DEFAULT 0 COMMENT '是否删除',
|
|
||||||
`delete_user` VARCHAR
|
|
||||||
(
|
|
||||||
50
|
|
||||||
) COMMENT '删除人',
|
|
||||||
`enable` BIT COMMENT '是否启用',
|
|
||||||
PRIMARY KEY
|
|
||||||
(
|
|
||||||
id
|
|
||||||
),
|
|
||||||
CONSTRAINT idx_num UNIQUE
|
|
||||||
(
|
|
||||||
num
|
|
||||||
)
|
|
||||||
) COMMENT = '项目';
|
) COMMENT = '项目';
|
||||||
|
|
||||||
|
|
||||||
|
@ -372,27 +178,14 @@ CREATE INDEX idx_create_time ON project (create_time);
|
||||||
CREATE INDEX idx_update_time ON project (update_time);
|
CREATE INDEX idx_update_time ON project (update_time);
|
||||||
CREATE INDEX idx_name ON project (name);
|
CREATE INDEX idx_name ON project (name);
|
||||||
CREATE INDEX idx_deleted ON project (deleted);
|
CREATE INDEX idx_deleted ON project (deleted);
|
||||||
CREATE INDEX idx_update_user ON project (update_user);
|
CREATE INDEX idx_update_user ON project(update_user);
|
||||||
|
|
||||||
CREATE TABLE IF NOT EXISTS project_application
|
CREATE TABLE IF NOT EXISTS project_application
|
||||||
(
|
(
|
||||||
`project_id` VARCHAR
|
`project_id` VARCHAR(50) NOT NULL COMMENT '项目ID',
|
||||||
(
|
`type` VARCHAR(50) NOT NULL COMMENT '配置项',
|
||||||
50
|
`type_value` VARCHAR(255) COMMENT '配置值',
|
||||||
) NOT NULL COMMENT '项目ID',
|
PRIMARY KEY (project_id, type)
|
||||||
`type` VARCHAR
|
|
||||||
(
|
|
||||||
50
|
|
||||||
) NOT NULL COMMENT '配置项',
|
|
||||||
`type_value` VARCHAR
|
|
||||||
(
|
|
||||||
255
|
|
||||||
) COMMENT '配置值',
|
|
||||||
PRIMARY KEY
|
|
||||||
(
|
|
||||||
project_id,
|
|
||||||
type
|
|
||||||
)
|
|
||||||
) COMMENT = '项目应用';
|
) COMMENT = '项目应用';
|
||||||
|
|
||||||
|
|
||||||
|
@ -400,39 +193,18 @@ CREATE INDEX idx_project_application_type ON project_application (type);
|
||||||
|
|
||||||
CREATE TABLE IF NOT EXISTS project_version
|
CREATE TABLE IF NOT EXISTS project_version
|
||||||
(
|
(
|
||||||
`id` VARCHAR
|
`id` VARCHAR(50) NOT NULL COMMENT '版本ID',
|
||||||
(
|
`project_id` VARCHAR(50) NOT NULL COMMENT '项目ID',
|
||||||
50
|
`name` VARCHAR(255) NOT NULL COMMENT '版本名称',
|
||||||
) NOT NULL COMMENT '版本ID',
|
`description` VARCHAR(500) COMMENT '描述',
|
||||||
`project_id` VARCHAR
|
`status` VARCHAR(20) COMMENT '状态',
|
||||||
(
|
`latest` BIT NOT NULL COMMENT '是否是最新版',
|
||||||
50
|
|
||||||
) NOT NULL COMMENT '项目ID',
|
|
||||||
`name` VARCHAR
|
|
||||||
(
|
|
||||||
255
|
|
||||||
) NOT NULL COMMENT '版本名称',
|
|
||||||
`description` VARCHAR
|
|
||||||
(
|
|
||||||
500
|
|
||||||
) COMMENT '描述',
|
|
||||||
`status` VARCHAR
|
|
||||||
(
|
|
||||||
20
|
|
||||||
) COMMENT '状态',
|
|
||||||
`latest` BIT NOT NULL COMMENT '是否是最新版',
|
|
||||||
`publish_time` BIGINT COMMENT '发布时间',
|
`publish_time` BIGINT COMMENT '发布时间',
|
||||||
`start_time` BIGINT COMMENT '开始时间',
|
`start_time` BIGINT COMMENT '开始时间',
|
||||||
`end_time` BIGINT COMMENT '结束时间',
|
`end_time` BIGINT COMMENT '结束时间',
|
||||||
`create_time` BIGINT NOT NULL COMMENT '创建时间',
|
`create_time` BIGINT NOT NULL COMMENT '创建时间',
|
||||||
`create_user` VARCHAR
|
`create_user` VARCHAR(50) NOT NULL COMMENT '创建人',
|
||||||
(
|
PRIMARY KEY (id)
|
||||||
50
|
|
||||||
) NOT NULL COMMENT '创建人',
|
|
||||||
PRIMARY KEY
|
|
||||||
(
|
|
||||||
id
|
|
||||||
)
|
|
||||||
) COMMENT = '版本管理';
|
) COMMENT = '版本管理';
|
||||||
|
|
||||||
|
|
||||||
|
@ -444,121 +216,48 @@ CREATE INDEX idx_latest ON project_version (latest);
|
||||||
|
|
||||||
CREATE TABLE IF NOT EXISTS file_module_blob
|
CREATE TABLE IF NOT EXISTS file_module_blob
|
||||||
(
|
(
|
||||||
`id` VARCHAR
|
`id` VARCHAR(50) NOT NULL COMMENT 'ID',
|
||||||
(
|
`repository_desc` LONGBLOB COMMENT '存储库描述',
|
||||||
50
|
`repository_path` VARCHAR(255) COMMENT '存储库路径',
|
||||||
) NOT NULL COMMENT 'ID',
|
`repository_user_name` VARCHAR(255) COMMENT '存储库Token',
|
||||||
`repository_desc` LONGBLOB COMMENT '存储库描述',
|
`repository_token` VARCHAR(255) COMMENT '存储库Token',
|
||||||
`repository_path` VARCHAR
|
PRIMARY KEY (id)
|
||||||
(
|
|
||||||
255
|
|
||||||
) COMMENT '存储库路径',
|
|
||||||
`repository_user_name` VARCHAR
|
|
||||||
(
|
|
||||||
255
|
|
||||||
) COMMENT '存储库Token',
|
|
||||||
`repository_token` VARCHAR
|
|
||||||
(
|
|
||||||
255
|
|
||||||
) COMMENT '存储库Token',
|
|
||||||
PRIMARY KEY
|
|
||||||
(
|
|
||||||
id
|
|
||||||
)
|
|
||||||
) COMMENT = '文件管理模块大字段';
|
) COMMENT = '文件管理模块大字段';
|
||||||
|
|
||||||
CREATE TABLE IF NOT EXISTS custom_function_blob
|
CREATE TABLE IF NOT EXISTS custom_function_blob
|
||||||
(
|
(
|
||||||
`id` VARCHAR
|
`id` VARCHAR(50) NOT NULL COMMENT '',
|
||||||
(
|
|
||||||
50
|
|
||||||
) NOT NULL COMMENT '',
|
|
||||||
`params` LONGBLOB COMMENT '参数列表',
|
`params` LONGBLOB COMMENT '参数列表',
|
||||||
`script` LONGBLOB COMMENT '函数体',
|
`script` LONGBLOB COMMENT '函数体',
|
||||||
`result` LONGBLOB COMMENT '执行结果',
|
`result` LONGBLOB COMMENT '执行结果',
|
||||||
PRIMARY KEY
|
PRIMARY KEY (id)
|
||||||
(
|
|
||||||
id
|
|
||||||
)
|
|
||||||
) COMMENT = '自定义函数-代码片段大字段';
|
) COMMENT = '自定义函数-代码片段大字段';
|
||||||
|
|
||||||
CREATE TABLE IF NOT EXISTS fake_error_blob
|
CREATE TABLE IF NOT EXISTS fake_error_blob
|
||||||
(
|
(
|
||||||
`id` VARCHAR
|
`id` VARCHAR(50) NOT NULL COMMENT 'Test ID',
|
||||||
(
|
`content` LONGBLOB COMMENT '内容',
|
||||||
50
|
|
||||||
) NOT NULL COMMENT 'Test ID',
|
|
||||||
`content` LONGBLOB COMMENT '内容',
|
|
||||||
`description` LONGBLOB COMMENT '报告内容',
|
`description` LONGBLOB COMMENT '报告内容',
|
||||||
PRIMARY KEY
|
PRIMARY KEY (id)
|
||||||
(
|
|
||||||
id
|
|
||||||
)
|
|
||||||
) COMMENT = '误报库大字段';
|
) COMMENT = '误报库大字段';
|
||||||
|
|
||||||
CREATE TABLE IF NOT EXISTS file_metadata_blob
|
CREATE TABLE IF NOT EXISTS file_metadata_blob
|
||||||
(
|
(
|
||||||
`id` VARCHAR
|
`id` VARCHAR(50) NOT NULL COMMENT '文件ID',
|
||||||
(
|
|
||||||
50
|
|
||||||
) NOT NULL COMMENT '文件ID',
|
|
||||||
`git_info` LONGBLOB COMMENT '储存库',
|
`git_info` LONGBLOB COMMENT '储存库',
|
||||||
PRIMARY KEY
|
|
||||||
(
|
|
||||||
id
|
|
||||||
)
|
|
||||||
) COMMENT = '文件基础信息大字段';
|
|
||||||
|
|
||||||
DROP TABLE IF EXISTS project_extend;
|
|
||||||
CREATE TABLE project_extend
|
|
||||||
(
|
|
||||||
`id` VARCHAR(50) NOT NULL COMMENT '项目ID',
|
|
||||||
`tapd_id` VARCHAR(50) COMMENT '',
|
|
||||||
`jira_key` VARCHAR(50) COMMENT '',
|
|
||||||
`zentao_id` VARCHAR(50) COMMENT '',
|
|
||||||
`azure_devops_id` VARCHAR(50) COMMENT '',
|
|
||||||
`case_template_id` VARCHAR(50) COMMENT '用例模版ID',
|
|
||||||
`azure_filter_id` VARCHAR(50) COMMENT 'azure 过滤需求的 parent workItem ID',
|
|
||||||
`platform` VARCHAR(20) NOT NULL DEFAULT 'Local' COMMENT '项目使用哪个平台的模板',
|
|
||||||
`third_part_template` BIT DEFAULT 0 COMMENT '是否使用第三方平台缺陷模板',
|
|
||||||
`version_enable` BIT DEFAULT 1 COMMENT '是否开启版本管理',
|
|
||||||
`issue_config` VARCHAR(2000) COMMENT '',
|
|
||||||
`api_template_id` VARCHAR(64) COMMENT '',
|
|
||||||
`module_setting` VARCHAR(255) COMMENT '模块设置',
|
|
||||||
PRIMARY KEY (id)
|
PRIMARY KEY (id)
|
||||||
) COMMENT = '项目扩展';
|
) COMMENT = '文件基础信息大字段';
|
||||||
|
|
||||||
|
|
||||||
CREATE INDEX idx_project_id ON project_extend (id);
|
|
||||||
|
|
||||||
CREATE TABLE IF NOT EXISTS functional_case_template
|
CREATE TABLE IF NOT EXISTS functional_case_template
|
||||||
(
|
(
|
||||||
`id` VARCHAR
|
`id` VARCHAR(50) NOT NULL COMMENT 'ID',
|
||||||
(
|
`name` VARCHAR(255) NOT NULL COMMENT '名称',
|
||||||
50
|
`description` VARCHAR(500) COMMENT '描述',
|
||||||
) NOT NULL COMMENT 'ID',
|
`internal` BIT NOT NULL DEFAULT 0 COMMENT '是否是内置模板',
|
||||||
`name` VARCHAR
|
`create_time` BIGINT NOT NULL COMMENT '创建时间',
|
||||||
(
|
`create_user` VARCHAR(50) NOT NULL COMMENT '创建人',
|
||||||
255
|
`project_id` VARCHAR(50) NOT NULL COMMENT '项目ID',
|
||||||
) NOT NULL COMMENT '名称',
|
PRIMARY KEY (id)
|
||||||
`description` VARCHAR
|
|
||||||
(
|
|
||||||
500
|
|
||||||
) COMMENT '描述',
|
|
||||||
`internal` BIT NOT NULL DEFAULT 0 COMMENT '是否是内置模板',
|
|
||||||
`create_time` BIGINT NOT NULL COMMENT '创建时间',
|
|
||||||
`create_user` VARCHAR
|
|
||||||
(
|
|
||||||
50
|
|
||||||
) NOT NULL COMMENT '创建人',
|
|
||||||
`project_id` VARCHAR
|
|
||||||
(
|
|
||||||
50
|
|
||||||
) NOT NULL COMMENT '项目ID',
|
|
||||||
PRIMARY KEY
|
|
||||||
(
|
|
||||||
id
|
|
||||||
)
|
|
||||||
) COMMENT = '功能用例模版';
|
) COMMENT = '功能用例模版';
|
||||||
|
|
||||||
|
|
||||||
|
@ -570,74 +269,35 @@ CREATE INDEX idx_project_id ON functional_case_template (project_id);
|
||||||
|
|
||||||
CREATE TABLE IF NOT EXISTS functional_case_template_extend
|
CREATE TABLE IF NOT EXISTS functional_case_template_extend
|
||||||
(
|
(
|
||||||
`id` VARCHAR
|
`id` VARCHAR(50) NOT NULL COMMENT '模板ID',
|
||||||
(
|
`case_name` VARCHAR(255) COMMENT '用例名称模板',
|
||||||
50
|
`prerequisite` TEXT COMMENT '前置条件模板',
|
||||||
) NOT NULL COMMENT '模板ID',
|
|
||||||
`case_name` VARCHAR
|
|
||||||
(
|
|
||||||
255
|
|
||||||
) COMMENT '用例名称模板',
|
|
||||||
`prerequisite` TEXT COMMENT '前置条件模板',
|
|
||||||
`step_description` TEXT COMMENT '步骤描述模板',
|
`step_description` TEXT COMMENT '步骤描述模板',
|
||||||
`expected_result` TEXT COMMENT '预期结果模板',
|
`expected_result` TEXT COMMENT '预期结果模板',
|
||||||
`actual_result` TEXT COMMENT '实际结果模板',
|
`actual_result` TEXT COMMENT '实际结果模板',
|
||||||
`step_model` VARCHAR
|
`step_model` VARCHAR(64) NOT NULL DEFAULT 'Step' COMMENT '编辑模式模板:步骤模式/文本模式',
|
||||||
(
|
`steps` TEXT COMMENT '用例步骤',
|
||||||
64
|
PRIMARY KEY (id)
|
||||||
) NOT NULL DEFAULT 'Step' COMMENT '编辑模式模板:步骤模式/文本模式',
|
|
||||||
`steps` TEXT COMMENT '用例步骤',
|
|
||||||
PRIMARY KEY
|
|
||||||
(
|
|
||||||
id
|
|
||||||
)
|
|
||||||
) COMMENT = '功能用例模版扩展';
|
) COMMENT = '功能用例模版扩展';
|
||||||
|
|
||||||
CREATE TABLE IF NOT EXISTS bug_template_extend
|
CREATE TABLE IF NOT EXISTS bug_template_extend
|
||||||
(
|
(
|
||||||
`id` VARCHAR
|
`id` VARCHAR(50) NOT NULL COMMENT '缺陷模板ID',
|
||||||
(
|
`title` VARCHAR(255) COMMENT '缺陷标题模板',
|
||||||
50
|
|
||||||
) NOT NULL COMMENT '缺陷模板ID',
|
|
||||||
`title` VARCHAR
|
|
||||||
(
|
|
||||||
255
|
|
||||||
) COMMENT '缺陷标题模板',
|
|
||||||
`content` TEXT COMMENT '缺陷内容模板',
|
`content` TEXT COMMENT '缺陷内容模板',
|
||||||
PRIMARY KEY
|
PRIMARY KEY (id)
|
||||||
(
|
|
||||||
id
|
|
||||||
)
|
|
||||||
) COMMENT = '缺陷模板扩展';
|
) COMMENT = '缺陷模板扩展';
|
||||||
|
|
||||||
CREATE TABLE IF NOT EXISTS bug_template
|
CREATE TABLE IF NOT EXISTS bug_template
|
||||||
(
|
(
|
||||||
`id` VARCHAR
|
`id` VARCHAR(50) NOT NULL COMMENT 'ID',
|
||||||
(
|
`name` VARCHAR(255) NOT NULL COMMENT '名称',
|
||||||
50
|
`description` VARCHAR(500) COMMENT '描述',
|
||||||
) NOT NULL COMMENT 'ID',
|
`internal` BIT NOT NULL DEFAULT 0 COMMENT '是否是内置模板',
|
||||||
`name` VARCHAR
|
`create_time` BIGINT NOT NULL COMMENT '创建时间',
|
||||||
(
|
`create_user` VARCHAR(50) NOT NULL COMMENT '创建人',
|
||||||
255
|
`project_id` VARCHAR(50) NOT NULL COMMENT '项目ID',
|
||||||
) NOT NULL COMMENT '名称',
|
PRIMARY KEY (id)
|
||||||
`description` VARCHAR
|
|
||||||
(
|
|
||||||
500
|
|
||||||
) COMMENT '描述',
|
|
||||||
`internal` BIT NOT NULL DEFAULT 0 COMMENT '是否是内置模板',
|
|
||||||
`create_time` BIGINT NOT NULL COMMENT '创建时间',
|
|
||||||
`create_user` VARCHAR
|
|
||||||
(
|
|
||||||
50
|
|
||||||
) NOT NULL COMMENT '创建人',
|
|
||||||
`project_id` VARCHAR
|
|
||||||
(
|
|
||||||
50
|
|
||||||
) NOT NULL COMMENT '项目ID',
|
|
||||||
PRIMARY KEY
|
|
||||||
(
|
|
||||||
id
|
|
||||||
)
|
|
||||||
) COMMENT = '缺陷模版';
|
) COMMENT = '缺陷模版';
|
||||||
|
|
||||||
|
|
||||||
|
@ -649,32 +309,14 @@ CREATE INDEX idx_project_id ON bug_template (project_id);
|
||||||
|
|
||||||
CREATE TABLE IF NOT EXISTS api_template
|
CREATE TABLE IF NOT EXISTS api_template
|
||||||
(
|
(
|
||||||
`id` VARCHAR
|
`id` VARCHAR(50) NOT NULL COMMENT 'ID',
|
||||||
(
|
`name` VARCHAR(255) NOT NULL COMMENT '名称',
|
||||||
50
|
`description` VARCHAR(500) COMMENT '描述',
|
||||||
) NOT NULL COMMENT 'ID',
|
`internal` BIT NOT NULL DEFAULT 0 COMMENT '是否是内置模板',
|
||||||
`name` VARCHAR
|
`create_time` BIGINT NOT NULL COMMENT '创建时间',
|
||||||
(
|
`create_user` VARCHAR(50) NOT NULL COMMENT '创建人',
|
||||||
255
|
`project_id` VARCHAR(50) NOT NULL COMMENT '项目ID',
|
||||||
) NOT NULL COMMENT '名称',
|
PRIMARY KEY (id)
|
||||||
`description` VARCHAR
|
|
||||||
(
|
|
||||||
500
|
|
||||||
) COMMENT '描述',
|
|
||||||
`internal` BIT NOT NULL DEFAULT 0 COMMENT '是否是内置模板',
|
|
||||||
`create_time` BIGINT NOT NULL COMMENT '创建时间',
|
|
||||||
`create_user` VARCHAR
|
|
||||||
(
|
|
||||||
50
|
|
||||||
) NOT NULL COMMENT '创建人',
|
|
||||||
`project_id` VARCHAR
|
|
||||||
(
|
|
||||||
50
|
|
||||||
) NOT NULL COMMENT '项目ID',
|
|
||||||
PRIMARY KEY
|
|
||||||
(
|
|
||||||
id
|
|
||||||
)
|
|
||||||
) COMMENT = '接口定义模板';
|
) COMMENT = '接口定义模板';
|
||||||
|
|
||||||
|
|
||||||
|
@ -696,11 +338,10 @@ CREATE TABLE IF NOT EXISTS message_task
|
||||||
`test_id` VARCHAR(50) NOT NULL DEFAULT 'none' COMMENT '具体测试的ID',
|
`test_id` VARCHAR(50) NOT NULL DEFAULT 'none' COMMENT '具体测试的ID',
|
||||||
`create_time` BIGINT NOT NULL DEFAULT 0 COMMENT '创建时间',
|
`create_time` BIGINT NOT NULL DEFAULT 0 COMMENT '创建时间',
|
||||||
`project_id` VARCHAR(50) NOT NULL COMMENT '项目ID',
|
`project_id` VARCHAR(50) NOT NULL COMMENT '项目ID',
|
||||||
`enable` BIT NOT NULL DEFAULT 1 COMMENT '是否启用' ,
|
|
||||||
PRIMARY KEY (id)
|
PRIMARY KEY (id)
|
||||||
) ENGINE = InnoDB
|
) ENGINE = InnoDB
|
||||||
DEFAULT CHARSET = utf8mb4
|
DEFAULT CHARSET = utf8mb4
|
||||||
COLLATE = utf8mb4_general_ci COMMENT = '消息通知任务';
|
COLLATE = utf8mb4_general_ci COMMENT = '消息通知任务';
|
||||||
|
|
||||||
|
|
||||||
CREATE INDEX idx_project_id ON message_task (`project_id`);
|
CREATE INDEX idx_project_id ON message_task (`project_id`);
|
||||||
|
@ -713,9 +354,9 @@ CREATE TABLE IF NOT EXISTS message_task_blob
|
||||||
`id` VARCHAR(50) NOT NULL COMMENT '',
|
`id` VARCHAR(50) NOT NULL COMMENT '',
|
||||||
`template` TEXT COMMENT '消息模版',
|
`template` TEXT COMMENT '消息模版',
|
||||||
PRIMARY KEY (id)
|
PRIMARY KEY (id)
|
||||||
) ENGINE = InnoDB
|
) ENGINE = InnoDB
|
||||||
DEFAULT CHARSET = utf8mb4
|
DEFAULT CHARSET = utf8mb4
|
||||||
COLLATE = utf8mb4_general_ci COMMENT = '消息通知任务大字段';
|
COLLATE = utf8mb4_general_ci COMMENT = '消息通知任务大字段';
|
||||||
|
|
||||||
|
|
||||||
CREATE TABLE IF NOT EXISTS notification
|
CREATE TABLE IF NOT EXISTS notification
|
||||||
|
@ -732,9 +373,9 @@ CREATE TABLE IF NOT EXISTS notification
|
||||||
`resource_type` VARCHAR(50) NOT NULL COMMENT '资源类型',
|
`resource_type` VARCHAR(50) NOT NULL COMMENT '资源类型',
|
||||||
`resource_name` VARCHAR(255) NOT NULL COMMENT '资源名称',
|
`resource_name` VARCHAR(255) NOT NULL COMMENT '资源名称',
|
||||||
PRIMARY KEY (id)
|
PRIMARY KEY (id)
|
||||||
) ENGINE = InnoDB
|
) ENGINE = InnoDB
|
||||||
DEFAULT CHARSET = utf8mb4
|
DEFAULT CHARSET = utf8mb4
|
||||||
COLLATE = utf8mb4_general_ci COMMENT = '消息通知';
|
COLLATE = utf8mb4_general_ci COMMENT = '消息通知';
|
||||||
|
|
||||||
|
|
||||||
CREATE INDEX idx_receiver ON notification (`receiver`);
|
CREATE INDEX idx_receiver ON notification (`receiver`);
|
||||||
|
|
|
@ -9,17 +9,17 @@ import lombok.EqualsAndHashCode;
|
||||||
public class ModuleSettingDTO {
|
public class ModuleSettingDTO {
|
||||||
|
|
||||||
@Schema(description = "接口测试")
|
@Schema(description = "接口测试")
|
||||||
private boolean apiTest;
|
private Boolean apiTest;
|
||||||
@Schema(description = "性能测试")
|
@Schema(description = "性能测试")
|
||||||
private boolean loadTest;
|
private Boolean loadTest;
|
||||||
@Schema(description = "UI测试")
|
@Schema(description = "UI测试")
|
||||||
private boolean uiTest;
|
private Boolean uiTest;
|
||||||
@Schema(description = "测试计划")
|
@Schema(description = "测试计划")
|
||||||
private boolean testPlan;
|
private Boolean testPlan;
|
||||||
@Schema(description = "工作台")
|
@Schema(description = "工作台")
|
||||||
private boolean workstation;
|
private Boolean workstation;
|
||||||
@Schema(description = "缺陷管理")
|
@Schema(description = "缺陷管理")
|
||||||
private boolean bugManagement;
|
private Boolean bugManagement;
|
||||||
@Schema(description = "功能测试")
|
@Schema(description = "功能测试")
|
||||||
private boolean caseManagement;
|
private Boolean caseManagement;
|
||||||
}
|
}
|
||||||
|
|
|
@ -29,5 +29,5 @@ public class ProjectBaseRequest {
|
||||||
private Boolean enable;
|
private Boolean enable;
|
||||||
|
|
||||||
@Schema(description = "模块设置")
|
@Schema(description = "模块设置")
|
||||||
private ModuleSettingDTO moduleSetting;
|
private String moduleSetting;
|
||||||
}
|
}
|
||||||
|
|
|
@ -12,11 +12,11 @@ import java.util.List;
|
||||||
@EqualsAndHashCode(callSuper = false)
|
@EqualsAndHashCode(callSuper = false)
|
||||||
public class ProjectDTO extends Project {
|
public class ProjectDTO extends Project {
|
||||||
@Schema(description = "项目成员数量", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
|
@Schema(description = "项目成员数量", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
|
||||||
private long memberCount;
|
private Long memberCount;
|
||||||
@Schema(description = "所属组织", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
|
@Schema(description = "所属组织", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
|
||||||
private String organizationName;
|
private String organizationName;
|
||||||
@Schema(description = "管理员", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
|
@Schema(description = "管理员", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
|
||||||
private List<User> adminList;
|
private List<User> adminList;
|
||||||
@Schema(description = "创建人是否是管理员", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
|
@Schema(description = "创建人是否是管理员", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
|
||||||
private boolean projectCreateUserIsAdmin;
|
private Boolean projectCreateUserIsAdmin;
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,6 +3,7 @@ package io.metersphere.system.controller;
|
||||||
|
|
||||||
import com.github.pagehelper.Page;
|
import com.github.pagehelper.Page;
|
||||||
import com.github.pagehelper.PageHelper;
|
import com.github.pagehelper.PageHelper;
|
||||||
|
import io.metersphere.project.domain.Project;
|
||||||
import io.metersphere.sdk.constants.PermissionConstants;
|
import io.metersphere.sdk.constants.PermissionConstants;
|
||||||
import io.metersphere.sdk.dto.AddProjectRequest;
|
import io.metersphere.sdk.dto.AddProjectRequest;
|
||||||
import io.metersphere.sdk.dto.ProjectDTO;
|
import io.metersphere.sdk.dto.ProjectDTO;
|
||||||
|
@ -12,7 +13,6 @@ import io.metersphere.sdk.log.constants.OperationLogType;
|
||||||
import io.metersphere.sdk.util.PageUtils;
|
import io.metersphere.sdk.util.PageUtils;
|
||||||
import io.metersphere.sdk.util.Pager;
|
import io.metersphere.sdk.util.Pager;
|
||||||
import io.metersphere.sdk.util.SessionUtils;
|
import io.metersphere.sdk.util.SessionUtils;
|
||||||
import io.metersphere.system.dto.ProjectExtendDTO;
|
|
||||||
import io.metersphere.system.dto.UserExtend;
|
import io.metersphere.system.dto.UserExtend;
|
||||||
import io.metersphere.system.request.OrganizationProjectRequest;
|
import io.metersphere.system.request.OrganizationProjectRequest;
|
||||||
import io.metersphere.system.request.ProjectAddMemberBatchRequest;
|
import io.metersphere.system.request.ProjectAddMemberBatchRequest;
|
||||||
|
@ -46,7 +46,7 @@ public class OrganizationProjectController {
|
||||||
@RequiresPermissions(PermissionConstants.ORGANIZATION_PROJECT_READ_ADD)
|
@RequiresPermissions(PermissionConstants.ORGANIZATION_PROJECT_READ_ADD)
|
||||||
@Log(type = OperationLogType.ADD, expression = "#msClass.addLog(#project)", msClass = OrganizationProjectLogService.class)
|
@Log(type = OperationLogType.ADD, expression = "#msClass.addLog(#project)", msClass = OrganizationProjectLogService.class)
|
||||||
@Operation(summary = "添加项目")
|
@Operation(summary = "添加项目")
|
||||||
public ProjectExtendDTO addProject(@RequestBody @Validated({Created.class}) AddProjectRequest project) {
|
public Project addProject(@RequestBody @Validated({Created.class}) AddProjectRequest project) {
|
||||||
return organizationProjectService.add(project, SessionUtils.getUserId());
|
return organizationProjectService.add(project, SessionUtils.getUserId());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -55,7 +55,7 @@ public class OrganizationProjectController {
|
||||||
@Operation(summary = "根据ID获取项目信息")
|
@Operation(summary = "根据ID获取项目信息")
|
||||||
@Parameter(name = "id", description = "项目id", schema = @Schema(requiredMode = Schema.RequiredMode.REQUIRED))
|
@Parameter(name = "id", description = "项目id", schema = @Schema(requiredMode = Schema.RequiredMode.REQUIRED))
|
||||||
@RequiresPermissions(PermissionConstants.ORGANIZATION_PROJECT_READ)
|
@RequiresPermissions(PermissionConstants.ORGANIZATION_PROJECT_READ)
|
||||||
public ProjectExtendDTO getProject(@PathVariable @NotBlank String id) {
|
public Project getProject(@PathVariable @NotBlank String id) {
|
||||||
return organizationProjectService.get(id);
|
return organizationProjectService.get(id);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -72,7 +72,7 @@ public class OrganizationProjectController {
|
||||||
@Log(type = OperationLogType.UPDATE, expression = "#msClass.updateLog(#project)", msClass = OrganizationProjectLogService.class)
|
@Log(type = OperationLogType.UPDATE, expression = "#msClass.updateLog(#project)", msClass = OrganizationProjectLogService.class)
|
||||||
@Operation(summary = "更新项目信息")
|
@Operation(summary = "更新项目信息")
|
||||||
@RequiresPermissions(PermissionConstants.ORGANIZATION_PROJECT_READ_UPDATE)
|
@RequiresPermissions(PermissionConstants.ORGANIZATION_PROJECT_READ_UPDATE)
|
||||||
public ProjectExtendDTO updateProject(@RequestBody @Validated({Updated.class}) UpdateProjectRequest project) {
|
public Project updateProject(@RequestBody @Validated({Updated.class}) UpdateProjectRequest project) {
|
||||||
return organizationProjectService.update(project, SessionUtils.getUserId());
|
return organizationProjectService.update(project, SessionUtils.getUserId());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -3,6 +3,7 @@ package io.metersphere.system.controller;
|
||||||
|
|
||||||
import com.github.pagehelper.Page;
|
import com.github.pagehelper.Page;
|
||||||
import com.github.pagehelper.PageHelper;
|
import com.github.pagehelper.PageHelper;
|
||||||
|
import io.metersphere.project.domain.Project;
|
||||||
import io.metersphere.sdk.constants.PermissionConstants;
|
import io.metersphere.sdk.constants.PermissionConstants;
|
||||||
import io.metersphere.sdk.dto.AddProjectRequest;
|
import io.metersphere.sdk.dto.AddProjectRequest;
|
||||||
import io.metersphere.sdk.dto.ProjectDTO;
|
import io.metersphere.sdk.dto.ProjectDTO;
|
||||||
|
@ -12,7 +13,6 @@ import io.metersphere.sdk.log.constants.OperationLogType;
|
||||||
import io.metersphere.sdk.util.PageUtils;
|
import io.metersphere.sdk.util.PageUtils;
|
||||||
import io.metersphere.sdk.util.Pager;
|
import io.metersphere.sdk.util.Pager;
|
||||||
import io.metersphere.sdk.util.SessionUtils;
|
import io.metersphere.sdk.util.SessionUtils;
|
||||||
import io.metersphere.system.dto.ProjectExtendDTO;
|
|
||||||
import io.metersphere.system.dto.UserExtend;
|
import io.metersphere.system.dto.UserExtend;
|
||||||
import io.metersphere.system.request.ProjectAddMemberBatchRequest;
|
import io.metersphere.system.request.ProjectAddMemberBatchRequest;
|
||||||
import io.metersphere.system.request.ProjectAddMemberRequest;
|
import io.metersphere.system.request.ProjectAddMemberRequest;
|
||||||
|
@ -46,7 +46,7 @@ public class SystemProjectController {
|
||||||
@RequiresPermissions(PermissionConstants.SYSTEM_ORGANIZATION_PROJECT_READ_ADD)
|
@RequiresPermissions(PermissionConstants.SYSTEM_ORGANIZATION_PROJECT_READ_ADD)
|
||||||
@Log(type = OperationLogType.ADD, expression = "#msClass.addLog(#project)", msClass = SystemProjectLogService.class)
|
@Log(type = OperationLogType.ADD, expression = "#msClass.addLog(#project)", msClass = SystemProjectLogService.class)
|
||||||
@Operation(summary = "添加项目")
|
@Operation(summary = "添加项目")
|
||||||
public ProjectExtendDTO addProject(@RequestBody @Validated({Created.class}) AddProjectRequest project) {
|
public Project addProject(@RequestBody @Validated({Created.class}) AddProjectRequest project) {
|
||||||
return systemProjectService.add(project, SessionUtils.getUserId());
|
return systemProjectService.add(project, SessionUtils.getUserId());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -55,7 +55,7 @@ public class SystemProjectController {
|
||||||
@Operation(summary = "根据ID获取项目信息")
|
@Operation(summary = "根据ID获取项目信息")
|
||||||
@Parameter(name = "id", description = "项目id", schema = @Schema(requiredMode = Schema.RequiredMode.REQUIRED))
|
@Parameter(name = "id", description = "项目id", schema = @Schema(requiredMode = Schema.RequiredMode.REQUIRED))
|
||||||
@RequiresPermissions(PermissionConstants.SYSTEM_ORGANIZATION_PROJECT_READ)
|
@RequiresPermissions(PermissionConstants.SYSTEM_ORGANIZATION_PROJECT_READ)
|
||||||
public ProjectExtendDTO getProject(@PathVariable @NotBlank String id) {
|
public Project getProject(@PathVariable @NotBlank String id) {
|
||||||
return systemProjectService.get(id);
|
return systemProjectService.get(id);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -72,7 +72,7 @@ public class SystemProjectController {
|
||||||
@Log(type = OperationLogType.UPDATE, expression = "#msClass.updateLog(#project)", msClass = SystemProjectLogService.class)
|
@Log(type = OperationLogType.UPDATE, expression = "#msClass.updateLog(#project)", msClass = SystemProjectLogService.class)
|
||||||
@Operation(summary = "更新项目信息")
|
@Operation(summary = "更新项目信息")
|
||||||
@RequiresPermissions(PermissionConstants.SYSTEM_ORGANIZATION_PROJECT_READ_UPDATE)
|
@RequiresPermissions(PermissionConstants.SYSTEM_ORGANIZATION_PROJECT_READ_UPDATE)
|
||||||
public ProjectExtendDTO updateProject(@RequestBody @Validated({Updated.class}) UpdateProjectRequest project) {
|
public Project updateProject(@RequestBody @Validated({Updated.class}) UpdateProjectRequest project) {
|
||||||
return systemProjectService.update(project, SessionUtils.getUserId());
|
return systemProjectService.update(project, SessionUtils.getUserId());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,14 +0,0 @@
|
||||||
package io.metersphere.system.dto;
|
|
||||||
|
|
||||||
import io.metersphere.project.domain.Project;
|
|
||||||
import io.metersphere.sdk.dto.ModuleSettingDTO;
|
|
||||||
import io.swagger.v3.oas.annotations.media.Schema;
|
|
||||||
import lombok.Data;
|
|
||||||
import lombok.EqualsAndHashCode;
|
|
||||||
@Data
|
|
||||||
@EqualsAndHashCode(callSuper = false)
|
|
||||||
public class ProjectExtendDTO extends Project {
|
|
||||||
|
|
||||||
@Schema(description = "模块设置")
|
|
||||||
private ModuleSettingDTO moduleSetting;
|
|
||||||
}
|
|
|
@ -2,8 +2,6 @@ package io.metersphere.system.service;
|
||||||
|
|
||||||
import io.metersphere.project.domain.Project;
|
import io.metersphere.project.domain.Project;
|
||||||
import io.metersphere.project.domain.ProjectExample;
|
import io.metersphere.project.domain.ProjectExample;
|
||||||
import io.metersphere.project.domain.ProjectExtend;
|
|
||||||
import io.metersphere.project.mapper.ProjectExtendMapper;
|
|
||||||
import io.metersphere.project.mapper.ProjectMapper;
|
import io.metersphere.project.mapper.ProjectMapper;
|
||||||
import io.metersphere.sdk.constants.HttpMethodConstants;
|
import io.metersphere.sdk.constants.HttpMethodConstants;
|
||||||
import io.metersphere.sdk.constants.InternalUserRole;
|
import io.metersphere.sdk.constants.InternalUserRole;
|
||||||
|
@ -15,12 +13,10 @@ import io.metersphere.sdk.invoker.ProjectServiceInvoker;
|
||||||
import io.metersphere.sdk.log.constants.OperationLogModule;
|
import io.metersphere.sdk.log.constants.OperationLogModule;
|
||||||
import io.metersphere.sdk.log.constants.OperationLogType;
|
import io.metersphere.sdk.log.constants.OperationLogType;
|
||||||
import io.metersphere.sdk.log.service.OperationLogService;
|
import io.metersphere.sdk.log.service.OperationLogService;
|
||||||
import io.metersphere.sdk.util.BeanUtils;
|
|
||||||
import io.metersphere.sdk.util.JSON;
|
import io.metersphere.sdk.util.JSON;
|
||||||
import io.metersphere.sdk.util.LogUtils;
|
import io.metersphere.sdk.util.LogUtils;
|
||||||
import io.metersphere.sdk.util.Translator;
|
import io.metersphere.sdk.util.Translator;
|
||||||
import io.metersphere.system.domain.*;
|
import io.metersphere.system.domain.*;
|
||||||
import io.metersphere.system.dto.ProjectExtendDTO;
|
|
||||||
import io.metersphere.system.mapper.*;
|
import io.metersphere.system.mapper.*;
|
||||||
import io.metersphere.system.request.ProjectAddMemberBatchRequest;
|
import io.metersphere.system.request.ProjectAddMemberBatchRequest;
|
||||||
import jakarta.annotation.Resource;
|
import jakarta.annotation.Resource;
|
||||||
|
@ -55,8 +51,6 @@ public class CommonProjectService {
|
||||||
private UserRoleMapper userRoleMapper;
|
private UserRoleMapper userRoleMapper;
|
||||||
@Resource
|
@Resource
|
||||||
private UserRolePermissionMapper userRolePermissionMapper;
|
private UserRolePermissionMapper userRolePermissionMapper;
|
||||||
@Resource
|
|
||||||
private ProjectExtendMapper projectExtendMapper;
|
|
||||||
private final ProjectServiceInvoker serviceInvoker;
|
private final ProjectServiceInvoker serviceInvoker;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
|
@ -64,17 +58,12 @@ public class CommonProjectService {
|
||||||
this.serviceInvoker = serviceInvoker;
|
this.serviceInvoker = serviceInvoker;
|
||||||
}
|
}
|
||||||
|
|
||||||
public ProjectExtendDTO get(String id) {
|
public Project get(String id) {
|
||||||
Project project = projectMapper.selectByPrimaryKey(id);
|
Project project = projectMapper.selectByPrimaryKey(id);
|
||||||
ProjectExtendDTO projectExtendDTO = new ProjectExtendDTO();
|
if (ObjectUtils.isNotEmpty(project) && StringUtils.isEmpty(project.getModuleSetting())) {
|
||||||
if (ObjectUtils.isNotEmpty(project)) {
|
project.setModuleSetting(JSON.toJSONString(new ModuleSettingDTO()));
|
||||||
BeanUtils.copyBean(projectExtendDTO, project);
|
|
||||||
ProjectExtend projectExtend = projectExtendMapper.selectByPrimaryKey(id);
|
|
||||||
if (ObjectUtils.isNotEmpty(projectExtend)) {
|
|
||||||
projectExtendDTO.setModuleSetting(JSON.parseObject(projectExtend.getModuleSetting(), ModuleSettingDTO.class));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
return projectExtendDTO;
|
return project;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -84,7 +73,7 @@ public class CommonProjectService {
|
||||||
* @param module 日志记录模块
|
* @param module 日志记录模块
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
public ProjectExtendDTO add(AddProjectRequest addProjectDTO, String createUser, String path, String module) {
|
public Project add(AddProjectRequest addProjectDTO, String createUser, String path, String module) {
|
||||||
|
|
||||||
Project project = new Project();
|
Project project = new Project();
|
||||||
project.setId(UUID.randomUUID().toString());
|
project.setId(UUID.randomUUID().toString());
|
||||||
|
@ -98,20 +87,12 @@ public class CommonProjectService {
|
||||||
project.setEnable(addProjectDTO.getEnable());
|
project.setEnable(addProjectDTO.getEnable());
|
||||||
project.setDescription(addProjectDTO.getDescription());
|
project.setDescription(addProjectDTO.getDescription());
|
||||||
addProjectDTO.setId(project.getId());
|
addProjectDTO.setId(project.getId());
|
||||||
ProjectExtendDTO projectExtendDTO = new ProjectExtendDTO();
|
|
||||||
BeanUtils.copyBean(projectExtendDTO, project);
|
|
||||||
projectMapper.insertSelective(project);
|
|
||||||
|
|
||||||
//判断是否有模块设置
|
//判断是否有模块设置
|
||||||
ProjectExtend projectExtend = new ProjectExtend();
|
if (StringUtils.isEmpty(addProjectDTO.getModuleSetting())) {
|
||||||
projectExtend.setId(project.getId());
|
addProjectDTO.setModuleSetting(JSON.toJSONString(new ModuleSettingDTO()));
|
||||||
projectExtend.setPlatform("LOCAL");
|
|
||||||
if (ObjectUtils.isEmpty(addProjectDTO.getModuleSetting())) {
|
|
||||||
addProjectDTO.setModuleSetting(new ModuleSettingDTO());
|
|
||||||
}
|
}
|
||||||
projectExtend.setModuleSetting(JSON.toJSONString(addProjectDTO.getModuleSetting()));
|
project.setModuleSetting(addProjectDTO.getModuleSetting());
|
||||||
projectExtendMapper.insert(projectExtend);
|
|
||||||
projectExtendDTO.setModuleSetting(addProjectDTO.getModuleSetting());
|
|
||||||
|
|
||||||
ProjectAddMemberBatchRequest memberRequest = new ProjectAddMemberBatchRequest();
|
ProjectAddMemberBatchRequest memberRequest = new ProjectAddMemberBatchRequest();
|
||||||
memberRequest.setProjectIds(List.of(project.getId()));
|
memberRequest.setProjectIds(List.of(project.getId()));
|
||||||
|
@ -120,10 +101,11 @@ public class CommonProjectService {
|
||||||
} else {
|
} else {
|
||||||
memberRequest.setUserIds(addProjectDTO.getUserIds());
|
memberRequest.setUserIds(addProjectDTO.getUserIds());
|
||||||
}
|
}
|
||||||
|
projectMapper.insertSelective(project);
|
||||||
//添加项目管理员 创建的时候如果没有传管理员id 则默认创建者为管理员
|
//添加项目管理员 创建的时候如果没有传管理员id 则默认创建者为管理员
|
||||||
this.addProjectAdmin(memberRequest, createUser, path,
|
this.addProjectAdmin(memberRequest, createUser, path,
|
||||||
OperationLogType.ADD.name(), Translator.get("add"), module);
|
OperationLogType.ADD.name(), Translator.get("add"), module);
|
||||||
return projectExtendDTO;
|
return project;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -137,7 +119,7 @@ public class CommonProjectService {
|
||||||
userRoleRelationExample.createCriteria().andUserIdIn(userId).andSourceIdEqualTo(orgId);
|
userRoleRelationExample.createCriteria().andUserIdIn(userId).andSourceIdEqualTo(orgId);
|
||||||
List<UserRoleRelation> userRoleRelations = userRoleRelationMapper.selectByExample(userRoleRelationExample);
|
List<UserRoleRelation> userRoleRelations = userRoleRelationMapper.selectByExample(userRoleRelationExample);
|
||||||
//把用户id放到一个新的list
|
//把用户id放到一个新的list
|
||||||
List<String> orgUserIds = userRoleRelations.stream().map(UserRoleRelation::getUserId).collect(Collectors.toList());
|
List<String> orgUserIds = userRoleRelations.stream().map(UserRoleRelation::getUserId).toList();
|
||||||
if (CollectionUtils.isNotEmpty(userId)) {
|
if (CollectionUtils.isNotEmpty(userId)) {
|
||||||
List<UserRoleRelation> userRoleRelation = new ArrayList<>();
|
List<UserRoleRelation> userRoleRelation = new ArrayList<>();
|
||||||
userId.forEach(id -> {
|
userId.forEach(id -> {
|
||||||
|
@ -194,9 +176,8 @@ public class CommonProjectService {
|
||||||
return projectList;
|
return projectList;
|
||||||
}
|
}
|
||||||
|
|
||||||
public ProjectExtendDTO update(UpdateProjectRequest updateProjectDto, String updateUser, String path, String module) {
|
public Project update(UpdateProjectRequest updateProjectDto, String updateUser, String path, String module) {
|
||||||
Project project = new Project();
|
Project project = new Project();
|
||||||
ProjectExtendDTO projectExtendDTO = new ProjectExtendDTO();
|
|
||||||
project.setId(updateProjectDto.getId());
|
project.setId(updateProjectDto.getId());
|
||||||
project.setName(updateProjectDto.getName());
|
project.setName(updateProjectDto.getName());
|
||||||
project.setDescription(updateProjectDto.getDescription());
|
project.setDescription(updateProjectDto.getDescription());
|
||||||
|
@ -208,7 +189,6 @@ public class CommonProjectService {
|
||||||
project.setUpdateTime(System.currentTimeMillis());
|
project.setUpdateTime(System.currentTimeMillis());
|
||||||
checkProjectExistByName(project);
|
checkProjectExistByName(project);
|
||||||
checkProjectNotExist(project.getId());
|
checkProjectNotExist(project.getId());
|
||||||
BeanUtils.copyBean(projectExtendDTO, project);
|
|
||||||
UserRoleRelationExample example = new UserRoleRelationExample();
|
UserRoleRelationExample example = new UserRoleRelationExample();
|
||||||
example.createCriteria().andSourceIdEqualTo(project.getId()).andRoleIdEqualTo(InternalUserRole.PROJECT_ADMIN.getValue());
|
example.createCriteria().andSourceIdEqualTo(project.getId()).andRoleIdEqualTo(InternalUserRole.PROJECT_ADMIN.getValue());
|
||||||
List<UserRoleRelation> userRoleRelations = userRoleRelationMapper.selectByExample(example);
|
List<UserRoleRelation> userRoleRelations = userRoleRelationMapper.selectByExample(example);
|
||||||
|
@ -257,22 +237,13 @@ public class CommonProjectService {
|
||||||
operationLogService.batchAdd(logDTOList);
|
operationLogService.batchAdd(logDTOList);
|
||||||
}
|
}
|
||||||
//判断是否有模块设置
|
//判断是否有模块设置
|
||||||
ProjectExtend projectExtend = new ProjectExtend();
|
if (StringUtils.isEmpty(updateProjectDto.getModuleSetting())) {
|
||||||
projectExtend.setId(project.getId());
|
updateProjectDto.setModuleSetting(JSON.toJSONString(new ModuleSettingDTO()));
|
||||||
if (ObjectUtils.isEmpty(updateProjectDto.getModuleSetting())) {
|
|
||||||
updateProjectDto.setModuleSetting(new ModuleSettingDTO());
|
|
||||||
}
|
}
|
||||||
projectExtend.setModuleSetting(JSON.toJSONString(updateProjectDto.getModuleSetting()));
|
project.setModuleSetting(updateProjectDto.getModuleSetting());
|
||||||
if (projectExtendMapper.selectByPrimaryKey(project.getId()) == null) {
|
|
||||||
projectExtend.setPlatform("LOCAL");
|
|
||||||
projectExtendMapper.insert(projectExtend);
|
|
||||||
} else {
|
|
||||||
projectExtendMapper.updateByPrimaryKeySelective(projectExtend);
|
|
||||||
}
|
|
||||||
projectExtendDTO.setModuleSetting(updateProjectDto.getModuleSetting());
|
|
||||||
|
|
||||||
projectMapper.updateByPrimaryKeySelective(project);
|
projectMapper.updateByPrimaryKeySelective(project);
|
||||||
return projectExtendDTO;
|
return project;
|
||||||
}
|
}
|
||||||
|
|
||||||
public int delete(String id, String deleteUser) {
|
public int delete(String id, String deleteUser) {
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
package io.metersphere.system.service;
|
package io.metersphere.system.service;
|
||||||
|
|
||||||
import io.metersphere.project.mapper.ProjectMapper;
|
import io.metersphere.project.domain.Project;
|
||||||
import io.metersphere.sdk.dto.AddProjectRequest;
|
import io.metersphere.sdk.dto.AddProjectRequest;
|
||||||
import io.metersphere.sdk.dto.ProjectDTO;
|
import io.metersphere.sdk.dto.ProjectDTO;
|
||||||
import io.metersphere.sdk.dto.UpdateProjectRequest;
|
import io.metersphere.sdk.dto.UpdateProjectRequest;
|
||||||
|
@ -8,7 +8,6 @@ import io.metersphere.sdk.log.constants.OperationLogModule;
|
||||||
import io.metersphere.sdk.log.constants.OperationLogType;
|
import io.metersphere.sdk.log.constants.OperationLogType;
|
||||||
import io.metersphere.sdk.util.BeanUtils;
|
import io.metersphere.sdk.util.BeanUtils;
|
||||||
import io.metersphere.sdk.util.Translator;
|
import io.metersphere.sdk.util.Translator;
|
||||||
import io.metersphere.system.dto.ProjectExtendDTO;
|
|
||||||
import io.metersphere.system.dto.UserExtend;
|
import io.metersphere.system.dto.UserExtend;
|
||||||
import io.metersphere.system.mapper.ExtSystemProjectMapper;
|
import io.metersphere.system.mapper.ExtSystemProjectMapper;
|
||||||
import io.metersphere.system.request.OrganizationProjectRequest;
|
import io.metersphere.system.request.OrganizationProjectRequest;
|
||||||
|
@ -26,8 +25,6 @@ import java.util.List;
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public class OrganizationProjectService {
|
public class OrganizationProjectService {
|
||||||
|
|
||||||
@Resource
|
|
||||||
private ProjectMapper projectMapper;
|
|
||||||
@Resource
|
@Resource
|
||||||
private ExtSystemProjectMapper extSystemProjectMapper;
|
private ExtSystemProjectMapper extSystemProjectMapper;
|
||||||
@Resource
|
@Resource
|
||||||
|
@ -40,7 +37,7 @@ public class OrganizationProjectService {
|
||||||
private final static String REMOVE_PROJECT_MEMBER = PREFIX + "/remove-member/";
|
private final static String REMOVE_PROJECT_MEMBER = PREFIX + "/remove-member/";
|
||||||
private final static String ADD_MEMBER = PREFIX + "/add-member";
|
private final static String ADD_MEMBER = PREFIX + "/add-member";
|
||||||
|
|
||||||
public ProjectExtendDTO get(String id) {
|
public Project get(String id) {
|
||||||
return commonProjectService.get(id);
|
return commonProjectService.get(id);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -48,9 +45,8 @@ public class OrganizationProjectService {
|
||||||
* @param addProjectDTO 添加项目的时候 默认给用户组添加管理员的权限
|
* @param addProjectDTO 添加项目的时候 默认给用户组添加管理员的权限
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
public ProjectExtendDTO add(AddProjectRequest addProjectDTO, String createUser) {
|
public Project add(AddProjectRequest addProjectDTO, String createUser) {
|
||||||
ProjectExtendDTO project = commonProjectService.add(addProjectDTO, createUser, ADD_PROJECT, OperationLogModule.ORGANIZATION_PROJECT);
|
return commonProjectService.add(addProjectDTO, createUser, ADD_PROJECT, OperationLogModule.ORGANIZATION_PROJECT);
|
||||||
return project;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<ProjectDTO> getProjectList(OrganizationProjectRequest request) {
|
public List<ProjectDTO> getProjectList(OrganizationProjectRequest request) {
|
||||||
|
@ -60,9 +56,8 @@ public class OrganizationProjectService {
|
||||||
return commonProjectService.buildUserInfo(projectList);
|
return commonProjectService.buildUserInfo(projectList);
|
||||||
}
|
}
|
||||||
|
|
||||||
public ProjectExtendDTO update(UpdateProjectRequest updateProjectDto, String updateUser) {
|
public Project update(UpdateProjectRequest updateProjectDto, String updateUser) {
|
||||||
ProjectExtendDTO project = commonProjectService.update(updateProjectDto, updateUser, UPDATE_PROJECT, OperationLogModule.ORGANIZATION_PROJECT);
|
return commonProjectService.update(updateProjectDto, updateUser, UPDATE_PROJECT, OperationLogModule.ORGANIZATION_PROJECT);
|
||||||
return project;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public int delete(String id, String deleteUser) {
|
public int delete(String id, String deleteUser) {
|
||||||
|
@ -71,8 +66,7 @@ public class OrganizationProjectService {
|
||||||
|
|
||||||
public List<UserExtend> getProjectMember(ProjectMemberRequest request) {
|
public List<UserExtend> getProjectMember(ProjectMemberRequest request) {
|
||||||
commonProjectService.checkProjectNotExist(request.getProjectId());
|
commonProjectService.checkProjectNotExist(request.getProjectId());
|
||||||
List<UserExtend> projectMemberList = extSystemProjectMapper.getProjectMemberList(request);
|
return extSystemProjectMapper.getProjectMemberList(request);
|
||||||
return projectMemberList;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/***
|
/***
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
package io.metersphere.system.service;
|
package io.metersphere.system.service;
|
||||||
|
|
||||||
import io.metersphere.project.domain.Project;
|
import io.metersphere.project.domain.Project;
|
||||||
import io.metersphere.project.mapper.ProjectMapper;
|
|
||||||
import io.metersphere.sdk.dto.AddProjectRequest;
|
import io.metersphere.sdk.dto.AddProjectRequest;
|
||||||
import io.metersphere.sdk.dto.ProjectDTO;
|
import io.metersphere.sdk.dto.ProjectDTO;
|
||||||
import io.metersphere.sdk.dto.UpdateProjectRequest;
|
import io.metersphere.sdk.dto.UpdateProjectRequest;
|
||||||
|
@ -9,7 +8,6 @@ import io.metersphere.sdk.log.constants.OperationLogModule;
|
||||||
import io.metersphere.sdk.log.constants.OperationLogType;
|
import io.metersphere.sdk.log.constants.OperationLogType;
|
||||||
import io.metersphere.sdk.util.Translator;
|
import io.metersphere.sdk.util.Translator;
|
||||||
import io.metersphere.system.dto.OrganizationProjectOptionsDTO;
|
import io.metersphere.system.dto.OrganizationProjectOptionsDTO;
|
||||||
import io.metersphere.system.dto.ProjectExtendDTO;
|
|
||||||
import io.metersphere.system.dto.UserExtend;
|
import io.metersphere.system.dto.UserExtend;
|
||||||
import io.metersphere.system.mapper.ExtSystemProjectMapper;
|
import io.metersphere.system.mapper.ExtSystemProjectMapper;
|
||||||
import io.metersphere.system.request.ProjectAddMemberBatchRequest;
|
import io.metersphere.system.request.ProjectAddMemberBatchRequest;
|
||||||
|
@ -26,8 +24,6 @@ import java.util.List;
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public class SystemProjectService {
|
public class SystemProjectService {
|
||||||
|
|
||||||
@Resource
|
|
||||||
private ProjectMapper projectMapper;
|
|
||||||
@Resource
|
@Resource
|
||||||
private ExtSystemProjectMapper extSystemProjectMapper;
|
private ExtSystemProjectMapper extSystemProjectMapper;
|
||||||
@Resource
|
@Resource
|
||||||
|
@ -39,7 +35,7 @@ public class SystemProjectService {
|
||||||
private final static String REMOVE_PROJECT_MEMBER = PREFIX + "/remove-member/";
|
private final static String REMOVE_PROJECT_MEMBER = PREFIX + "/remove-member/";
|
||||||
private final static String ADD_MEMBER = PREFIX + "/add-member";
|
private final static String ADD_MEMBER = PREFIX + "/add-member";
|
||||||
|
|
||||||
public ProjectExtendDTO get(String id) {
|
public Project get(String id) {
|
||||||
return commonProjectService.get(id);
|
return commonProjectService.get(id);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -47,9 +43,8 @@ public class SystemProjectService {
|
||||||
* @param addProjectDTO 添加项目的时候 默认给用户组添加管理员的权限
|
* @param addProjectDTO 添加项目的时候 默认给用户组添加管理员的权限
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
public ProjectExtendDTO add(AddProjectRequest addProjectDTO, String createUser) {
|
public Project add(AddProjectRequest addProjectDTO, String createUser) {
|
||||||
ProjectExtendDTO project = commonProjectService.add(addProjectDTO, createUser, ADD_PROJECT, OperationLogModule.SYSTEM_PROJECT);
|
return commonProjectService.add(addProjectDTO, createUser, ADD_PROJECT, OperationLogModule.SYSTEM_PROJECT);
|
||||||
return project;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<ProjectDTO> getProjectList(ProjectRequest request) {
|
public List<ProjectDTO> getProjectList(ProjectRequest request) {
|
||||||
|
@ -57,9 +52,8 @@ public class SystemProjectService {
|
||||||
return commonProjectService.buildUserInfo(projectList);
|
return commonProjectService.buildUserInfo(projectList);
|
||||||
}
|
}
|
||||||
|
|
||||||
public ProjectExtendDTO update(UpdateProjectRequest updateProjectDto, String updateUser) {
|
public Project update(UpdateProjectRequest updateProjectDto, String updateUser) {
|
||||||
ProjectExtendDTO project = commonProjectService.update(updateProjectDto, updateUser, UPDATE_PROJECT, OperationLogModule.SYSTEM_PROJECT);
|
return commonProjectService.update(updateProjectDto, updateUser, UPDATE_PROJECT, OperationLogModule.SYSTEM_PROJECT);
|
||||||
return project;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public int delete(String id, String deleteUser) {
|
public int delete(String id, String deleteUser) {
|
||||||
|
@ -68,8 +62,7 @@ public class SystemProjectService {
|
||||||
|
|
||||||
public List<UserExtend> getProjectMember(ProjectMemberRequest request) {
|
public List<UserExtend> getProjectMember(ProjectMemberRequest request) {
|
||||||
commonProjectService.checkProjectNotExist(request.getProjectId());
|
commonProjectService.checkProjectNotExist(request.getProjectId());
|
||||||
List<UserExtend> projectMemberList = extSystemProjectMapper.getProjectMemberList(request);
|
return extSystemProjectMapper.getProjectMemberList(request);
|
||||||
return projectMemberList;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/***
|
/***
|
||||||
|
|
|
@ -2,8 +2,6 @@ package io.metersphere.system.controller;
|
||||||
|
|
||||||
import io.metersphere.project.domain.Project;
|
import io.metersphere.project.domain.Project;
|
||||||
import io.metersphere.project.domain.ProjectExample;
|
import io.metersphere.project.domain.ProjectExample;
|
||||||
import io.metersphere.project.domain.ProjectExtend;
|
|
||||||
import io.metersphere.project.mapper.ProjectExtendMapper;
|
|
||||||
import io.metersphere.project.mapper.ProjectMapper;
|
import io.metersphere.project.mapper.ProjectMapper;
|
||||||
import io.metersphere.sdk.base.BaseTest;
|
import io.metersphere.sdk.base.BaseTest;
|
||||||
import io.metersphere.sdk.constants.InternalUserRole;
|
import io.metersphere.sdk.constants.InternalUserRole;
|
||||||
|
@ -20,7 +18,6 @@ import io.metersphere.sdk.util.Pager;
|
||||||
import io.metersphere.system.domain.UserRoleRelation;
|
import io.metersphere.system.domain.UserRoleRelation;
|
||||||
import io.metersphere.system.domain.UserRoleRelationExample;
|
import io.metersphere.system.domain.UserRoleRelationExample;
|
||||||
import io.metersphere.system.dto.OrganizationDTO;
|
import io.metersphere.system.dto.OrganizationDTO;
|
||||||
import io.metersphere.system.dto.ProjectExtendDTO;
|
|
||||||
import io.metersphere.system.dto.UserExtend;
|
import io.metersphere.system.dto.UserExtend;
|
||||||
import io.metersphere.system.mapper.UserRoleRelationMapper;
|
import io.metersphere.system.mapper.UserRoleRelationMapper;
|
||||||
import io.metersphere.system.request.OrganizationProjectRequest;
|
import io.metersphere.system.request.OrganizationProjectRequest;
|
||||||
|
@ -44,8 +41,6 @@ import java.nio.charset.StandardCharsets;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.stream.Collectors;
|
|
||||||
|
|
||||||
|
|
||||||
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content;
|
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content;
|
||||||
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
|
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
|
||||||
|
@ -81,8 +76,6 @@ public class OrganizationProjectControllerTests extends BaseTest {
|
||||||
private UserRoleRelationMapper userRoleRelationMapper;
|
private UserRoleRelationMapper userRoleRelationMapper;
|
||||||
@Resource
|
@Resource
|
||||||
private OrganizationService organizationService;
|
private OrganizationService organizationService;
|
||||||
@Resource
|
|
||||||
private ProjectExtendMapper projectExtendMapper;
|
|
||||||
|
|
||||||
private OrganizationDTO getDefault() {
|
private OrganizationDTO getDefault() {
|
||||||
return organizationService.getDefault();
|
return organizationService.getDefault();
|
||||||
|
@ -148,7 +141,7 @@ public class OrganizationProjectControllerTests extends BaseTest {
|
||||||
//判断描述是否一样
|
//判断描述是否一样
|
||||||
Assertions.assertTrue(StringUtils.equals(currentProject.getDescription(), result.getDescription()));
|
Assertions.assertTrue(StringUtils.equals(currentProject.getDescription(), result.getDescription()));
|
||||||
//判断是否启用
|
//判断是否启用
|
||||||
Assertions.assertTrue(currentProject.getEnable() == result.getEnable());
|
Assertions.assertSame(currentProject.getEnable(), result.getEnable());
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -187,24 +180,25 @@ public class OrganizationProjectControllerTests extends BaseTest {
|
||||||
public void testAddProjectSuccess() throws Exception {
|
public void testAddProjectSuccess() throws Exception {
|
||||||
AddProjectRequest project = this.generatorAdd("organizationId","organization-name", "description", true, List.of("admin"));
|
AddProjectRequest project = this.generatorAdd("organizationId","organization-name", "description", true, List.of("admin"));
|
||||||
MvcResult mvcResult = this.responsePost(addProject, project);
|
MvcResult mvcResult = this.responsePost(addProject, project);
|
||||||
ProjectExtendDTO result = this.parseObjectFromMvcResult(mvcResult, ProjectExtendDTO.class);
|
Project result = parseObjectFromMvcResult(mvcResult, Project.class);
|
||||||
ProjectExample projectExample = new ProjectExample();
|
ProjectExample projectExample = new ProjectExample();
|
||||||
projectExample.createCriteria().andOrganizationIdEqualTo(project.getOrganizationId()).andNameEqualTo(project.getName());
|
projectExample.createCriteria().andOrganizationIdEqualTo(project.getOrganizationId()).andNameEqualTo(project.getName());
|
||||||
List<Project> projects = projectMapper.selectByExample(projectExample);
|
List<Project> projects = projectMapper.selectByExample(projectExample);
|
||||||
|
assert result != null;
|
||||||
projectId = result.getId();
|
projectId = result.getId();
|
||||||
// 校验日志
|
// 校验日志
|
||||||
checkLog(projectId, OperationLogType.ADD);
|
checkLog(projectId, OperationLogType.ADD);
|
||||||
|
|
||||||
this.compareProjectDTO(projects.get(0), result);
|
compareProjectDTO(projects.get(0), result);
|
||||||
UserRoleRelationExample userRoleRelationExample = new UserRoleRelationExample();
|
UserRoleRelationExample userRoleRelationExample = new UserRoleRelationExample();
|
||||||
userRoleRelationExample.createCriteria().andSourceIdEqualTo(projectId).andRoleIdEqualTo(InternalUserRole.PROJECT_ADMIN.getValue());
|
userRoleRelationExample.createCriteria().andSourceIdEqualTo(projectId).andRoleIdEqualTo(InternalUserRole.PROJECT_ADMIN.getValue());
|
||||||
List<UserRoleRelation> userRoleRelations = userRoleRelationMapper.selectByExample(userRoleRelationExample);
|
List<UserRoleRelation> userRoleRelations = userRoleRelationMapper.selectByExample(userRoleRelationExample);
|
||||||
Assertions.assertEquals(userRoleRelations.stream().map(UserRoleRelation::getUserId).collect(Collectors.toList()).containsAll(List.of("admin")), true);
|
Assertions.assertTrue(userRoleRelations.stream().map(UserRoleRelation::getUserId).toList().contains("admin"));
|
||||||
userRoleRelationExample.createCriteria().andSourceIdEqualTo("organizationId").andRoleIdEqualTo(InternalUserRole.ORG_MEMBER.getValue());
|
userRoleRelationExample.createCriteria().andSourceIdEqualTo("organizationId").andRoleIdEqualTo(InternalUserRole.ORG_MEMBER.getValue());
|
||||||
userRoleRelations = userRoleRelationMapper.selectByExample(userRoleRelationExample);
|
userRoleRelations = userRoleRelationMapper.selectByExample(userRoleRelationExample);
|
||||||
Assertions.assertEquals(userRoleRelations.stream().map(UserRoleRelation::getUserId).collect(Collectors.toList()).containsAll(List.of("admin")), true);
|
Assertions.assertTrue(userRoleRelations.stream().map(UserRoleRelation::getUserId).toList().contains("admin"));
|
||||||
projectId = result.getId();
|
projectId = result.getId();
|
||||||
ProjectExtend projectExtend = projectExtendMapper.selectByPrimaryKey(projectId);
|
Project projectExtend = projectMapper.selectByPrimaryKey(projectId);
|
||||||
Assertions.assertEquals(projectExtend.getModuleSetting(), JSON.toJSONString(new ModuleSettingDTO()));
|
Assertions.assertEquals(projectExtend.getModuleSetting(), JSON.toJSONString(new ModuleSettingDTO()));
|
||||||
// 校验日志
|
// 校验日志
|
||||||
checkLog(projectId, OperationLogType.ADD);
|
checkLog(projectId, OperationLogType.ADD);
|
||||||
|
@ -212,49 +206,51 @@ public class OrganizationProjectControllerTests extends BaseTest {
|
||||||
//userId为空的时候
|
//userId为空的时候
|
||||||
project = this.generatorAdd("organizationId","organization-userIdIsNull", "description", true, new ArrayList<>());
|
project = this.generatorAdd("organizationId","organization-userIdIsNull", "description", true, new ArrayList<>());
|
||||||
mvcResult = this.responsePost(addProject, project);
|
mvcResult = this.responsePost(addProject, project);
|
||||||
result = this.parseObjectFromMvcResult(mvcResult, ProjectExtendDTO.class);
|
result = parseObjectFromMvcResult(mvcResult, Project.class);
|
||||||
projectExample = new ProjectExample();
|
projectExample = new ProjectExample();
|
||||||
projectExample.createCriteria().andOrganizationIdEqualTo(project.getOrganizationId()).andNameEqualTo(project.getName());
|
projectExample.createCriteria().andOrganizationIdEqualTo(project.getOrganizationId()).andNameEqualTo(project.getName());
|
||||||
projects = projectMapper.selectByExample(projectExample);
|
projects = projectMapper.selectByExample(projectExample);
|
||||||
|
assert result != null;
|
||||||
projectId = result.getId();
|
projectId = result.getId();
|
||||||
// 校验日志
|
// 校验日志
|
||||||
checkLog(projectId, OperationLogType.ADD);
|
checkLog(projectId, OperationLogType.ADD);
|
||||||
|
|
||||||
this.compareProjectDTO(projects.get(0), result);
|
compareProjectDTO(projects.get(0), result);
|
||||||
userRoleRelationExample = new UserRoleRelationExample();
|
userRoleRelationExample = new UserRoleRelationExample();
|
||||||
userRoleRelationExample.createCriteria().andSourceIdEqualTo(projectId).andRoleIdEqualTo(InternalUserRole.PROJECT_ADMIN.getValue());
|
userRoleRelationExample.createCriteria().andSourceIdEqualTo(projectId).andRoleIdEqualTo(InternalUserRole.PROJECT_ADMIN.getValue());
|
||||||
userRoleRelations = userRoleRelationMapper.selectByExample(userRoleRelationExample);
|
userRoleRelations = userRoleRelationMapper.selectByExample(userRoleRelationExample);
|
||||||
Assertions.assertEquals(userRoleRelations.stream().map(UserRoleRelation::getUserId).collect(Collectors.toList()).containsAll(List.of("admin")), true);
|
Assertions.assertTrue(userRoleRelations.stream().map(UserRoleRelation::getUserId).toList().contains("admin"));
|
||||||
userRoleRelationExample.createCriteria().andSourceIdEqualTo("organizationId").andRoleIdEqualTo(InternalUserRole.ORG_MEMBER.getValue());
|
userRoleRelationExample.createCriteria().andSourceIdEqualTo("organizationId").andRoleIdEqualTo(InternalUserRole.ORG_MEMBER.getValue());
|
||||||
userRoleRelations = userRoleRelationMapper.selectByExample(userRoleRelationExample);
|
userRoleRelations = userRoleRelationMapper.selectByExample(userRoleRelationExample);
|
||||||
Assertions.assertEquals(userRoleRelations.stream().map(UserRoleRelation::getUserId).collect(Collectors.toList()).containsAll(List.of("admin")), true);
|
Assertions.assertTrue(userRoleRelations.stream().map(UserRoleRelation::getUserId).toList().contains("admin"));
|
||||||
projectExtend = projectExtendMapper.selectByPrimaryKey(projectId);
|
projectExtend = projectMapper.selectByPrimaryKey(projectId);
|
||||||
Assertions.assertEquals(projectExtend.getModuleSetting(), JSON.toJSONString(new ModuleSettingDTO()));
|
Assertions.assertEquals(projectExtend.getModuleSetting(), JSON.toJSONString(new ModuleSettingDTO()));
|
||||||
|
|
||||||
//设置了模块模版
|
//设置了模块模版
|
||||||
ModuleSettingDTO moduleSettingDTO = new ModuleSettingDTO();
|
ModuleSettingDTO moduleSettingDTO = new ModuleSettingDTO();
|
||||||
moduleSettingDTO.setApiTest(true);
|
moduleSettingDTO.setApiTest(true);
|
||||||
moduleSettingDTO.setLoadTest(true);
|
moduleSettingDTO.setLoadTest(true);
|
||||||
project.setModuleSetting(moduleSettingDTO);
|
project.setModuleSetting(JSON.toJSONString(moduleSettingDTO));
|
||||||
project.setName("org-moduleSetting");
|
project.setName("org-moduleSetting");
|
||||||
mvcResult = this.responsePost(addProject, project);
|
mvcResult = this.responsePost(addProject, project);
|
||||||
result = this.parseObjectFromMvcResult(mvcResult, ProjectExtendDTO.class);
|
result = parseObjectFromMvcResult(mvcResult, Project.class);
|
||||||
projectExample = new ProjectExample();
|
projectExample = new ProjectExample();
|
||||||
projectExample.createCriteria().andOrganizationIdEqualTo(project.getOrganizationId()).andNameEqualTo(project.getName());
|
projectExample.createCriteria().andOrganizationIdEqualTo(project.getOrganizationId()).andNameEqualTo(project.getName());
|
||||||
projects = projectMapper.selectByExample(projectExample);
|
projects = projectMapper.selectByExample(projectExample);
|
||||||
|
assert result != null;
|
||||||
projectId = result.getId();
|
projectId = result.getId();
|
||||||
// 校验日志
|
// 校验日志
|
||||||
checkLog(projectId, OperationLogType.ADD);
|
checkLog(projectId, OperationLogType.ADD);
|
||||||
|
|
||||||
this.compareProjectDTO(projects.get(0), result);
|
compareProjectDTO(projects.get(0), result);
|
||||||
userRoleRelationExample = new UserRoleRelationExample();
|
userRoleRelationExample = new UserRoleRelationExample();
|
||||||
userRoleRelationExample.createCriteria().andSourceIdEqualTo(projectId).andRoleIdEqualTo(InternalUserRole.PROJECT_ADMIN.getValue());
|
userRoleRelationExample.createCriteria().andSourceIdEqualTo(projectId).andRoleIdEqualTo(InternalUserRole.PROJECT_ADMIN.getValue());
|
||||||
userRoleRelations = userRoleRelationMapper.selectByExample(userRoleRelationExample);
|
userRoleRelations = userRoleRelationMapper.selectByExample(userRoleRelationExample);
|
||||||
Assertions.assertEquals(userRoleRelations.stream().map(UserRoleRelation::getUserId).collect(Collectors.toList()).containsAll(List.of("admin")), true);
|
Assertions.assertTrue(userRoleRelations.stream().map(UserRoleRelation::getUserId).toList().contains("admin"));
|
||||||
userRoleRelationExample.createCriteria().andSourceIdEqualTo("organizationId").andRoleIdEqualTo(InternalUserRole.ORG_MEMBER.getValue());
|
userRoleRelationExample.createCriteria().andSourceIdEqualTo("organizationId").andRoleIdEqualTo(InternalUserRole.ORG_MEMBER.getValue());
|
||||||
userRoleRelations = userRoleRelationMapper.selectByExample(userRoleRelationExample);
|
userRoleRelations = userRoleRelationMapper.selectByExample(userRoleRelationExample);
|
||||||
Assertions.assertEquals(userRoleRelations.stream().map(UserRoleRelation::getUserId).collect(Collectors.toList()).containsAll(List.of("admin")), true);
|
Assertions.assertTrue(userRoleRelations.stream().map(UserRoleRelation::getUserId).toList().contains("admin"));
|
||||||
projectExtend = projectExtendMapper.selectByPrimaryKey(projectId);
|
projectExtend = projectMapper.selectByPrimaryKey(projectId);
|
||||||
Assertions.assertEquals(projectExtend.getModuleSetting(), JSON.toJSONString(moduleSettingDTO));
|
Assertions.assertEquals(projectExtend.getModuleSetting(), JSON.toJSONString(moduleSettingDTO));
|
||||||
|
|
||||||
project.setName("organization-testAddProjectSuccess1");
|
project.setName("organization-testAddProjectSuccess1");
|
||||||
|
@ -290,15 +286,17 @@ public class OrganizationProjectControllerTests extends BaseTest {
|
||||||
public void testGetProject() throws Exception {
|
public void testGetProject() throws Exception {
|
||||||
AddProjectRequest project = this.generatorAdd("organizationId","organization-getName", "description", true, List.of("admin"));
|
AddProjectRequest project = this.generatorAdd("organizationId","organization-getName", "description", true, List.of("admin"));
|
||||||
MvcResult mvcResult = this.responsePost(addProject, project);
|
MvcResult mvcResult = this.responsePost(addProject, project);
|
||||||
ProjectExtendDTO result = this.parseObjectFromMvcResult(mvcResult, ProjectExtendDTO.class);
|
Project result = parseObjectFromMvcResult(mvcResult, Project.class);
|
||||||
|
assert result != null;
|
||||||
projectId = result.getId();
|
projectId = result.getId();
|
||||||
mvcResult = this.responseGet(getProject + projectId);
|
mvcResult = this.responseGet(getProject + projectId);
|
||||||
ProjectExtendDTO getProjects = this.parseObjectFromMvcResult(mvcResult, ProjectExtendDTO.class);
|
Project getProjects = parseObjectFromMvcResult(mvcResult, Project.class);
|
||||||
Assertions.assertTrue(StringUtils.equals(getProjects.getId(), projectId));
|
Assertions.assertTrue(StringUtils.equals(getProjects.getId(), projectId));
|
||||||
|
|
||||||
|
|
||||||
mvcResult = this.responseGet(getProject + "projectId1");
|
mvcResult = this.responseGet(getProject + "projectId1");
|
||||||
getProjects = this.parseObjectFromMvcResult(mvcResult, ProjectExtendDTO.class);
|
getProjects = parseObjectFromMvcResult(mvcResult, Project.class);
|
||||||
|
assert getProjects != null;
|
||||||
Assertions.assertTrue(StringUtils.equals(getProjects.getId(), "projectId1"));
|
Assertions.assertTrue(StringUtils.equals(getProjects.getId(), "projectId1"));
|
||||||
// @@校验权限
|
// @@校验权限
|
||||||
requestGetPermissionTest(PermissionConstants.ORGANIZATION_PROJECT_READ, getProject + projectId);
|
requestGetPermissionTest(PermissionConstants.ORGANIZATION_PROJECT_READ, getProject + projectId);
|
||||||
|
@ -308,8 +306,8 @@ public class OrganizationProjectControllerTests extends BaseTest {
|
||||||
public void testGetProjectError() throws Exception {
|
public void testGetProjectError() throws Exception {
|
||||||
//项目不存在
|
//项目不存在
|
||||||
MvcResult mvcResult = this.responseGet(getProject + "111111");
|
MvcResult mvcResult = this.responseGet(getProject + "111111");
|
||||||
ProjectExtend project = this.parseObjectFromMvcResult(mvcResult, ProjectExtend.class);
|
Project project = parseObjectFromMvcResult(mvcResult, Project.class);
|
||||||
Assertions.assertEquals(project, new ProjectExtend());
|
Assertions.assertNull(project);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
@ -333,6 +331,7 @@ public class OrganizationProjectControllerTests extends BaseTest {
|
||||||
mvcResult = this.responsePost(getProjectList, projectRequest);
|
mvcResult = this.responsePost(getProjectList, projectRequest);
|
||||||
returnPager = parseObjectFromMvcResult(mvcResult, Pager.class);
|
returnPager = parseObjectFromMvcResult(mvcResult, Pager.class);
|
||||||
//第一个数据的createTime是最大的
|
//第一个数据的createTime是最大的
|
||||||
|
assert returnPager != null;
|
||||||
List<ProjectDTO> projectDTOS = JSON.parseArray(JSON.toJSONString(returnPager.getList()), ProjectDTO.class);
|
List<ProjectDTO> projectDTOS = JSON.parseArray(JSON.toJSONString(returnPager.getList()), ProjectDTO.class);
|
||||||
long firstCreateTime = projectDTOS.get(0).getCreateTime();
|
long firstCreateTime = projectDTOS.get(0).getCreateTime();
|
||||||
for (ProjectDTO projectDTO : projectDTOS) {
|
for (ProjectDTO projectDTO : projectDTOS) {
|
||||||
|
@ -344,9 +343,10 @@ public class OrganizationProjectControllerTests extends BaseTest {
|
||||||
mvcResult = this.responsePost(getProjectList, projectRequest);
|
mvcResult = this.responsePost(getProjectList, projectRequest);
|
||||||
returnPager = parseObjectFromMvcResult(mvcResult, Pager.class);
|
returnPager = parseObjectFromMvcResult(mvcResult, Pager.class);
|
||||||
//返回的数据中的createUser是admin或者admin1
|
//返回的数据中的createUser是admin或者admin1
|
||||||
|
assert returnPager != null;
|
||||||
projectDTOS = JSON.parseArray(JSON.toJSONString(returnPager.getList()), ProjectDTO.class);
|
projectDTOS = JSON.parseArray(JSON.toJSONString(returnPager.getList()), ProjectDTO.class);
|
||||||
//拿到所有的createUser
|
//拿到所有的createUser
|
||||||
List<String> createUsers = projectDTOS.stream().map(ProjectDTO::getCreateUser).collect(Collectors.toList());
|
List<String> createUsers = projectDTOS.stream().map(ProjectDTO::getCreateUser).toList();
|
||||||
Assertions.assertTrue(List.of("test").containsAll(createUsers));
|
Assertions.assertTrue(List.of("test").containsAll(createUsers));
|
||||||
// @@校验权限
|
// @@校验权限
|
||||||
requestPostPermissionTest(PermissionConstants.ORGANIZATION_PROJECT_READ, getProjectList, projectRequest);
|
requestPostPermissionTest(PermissionConstants.ORGANIZATION_PROJECT_READ, getProjectList, projectRequest);
|
||||||
|
@ -391,25 +391,25 @@ public class OrganizationProjectControllerTests extends BaseTest {
|
||||||
@Order(7)
|
@Order(7)
|
||||||
public void testUpdateProject() throws Exception {
|
public void testUpdateProject() throws Exception {
|
||||||
UpdateProjectRequest project = this.generatorUpdate("organizationId", projectId,"organization-TestName", "Edit name", true, List.of("admin1"));
|
UpdateProjectRequest project = this.generatorUpdate("organizationId", projectId,"organization-TestName", "Edit name", true, List.of("admin1"));
|
||||||
ProjectExtend projectExtend = projectExtendMapper.selectByPrimaryKey(projectId);
|
Project projectExtend = projectMapper.selectByPrimaryKey(projectId);
|
||||||
ModuleSettingDTO moduleSettingDTO = JSON.parseObject(projectExtend.getModuleSetting(), ModuleSettingDTO.class);
|
ModuleSettingDTO moduleSettingDTO = JSON.parseObject(projectExtend.getModuleSetting(), ModuleSettingDTO.class);
|
||||||
moduleSettingDTO.setApiTest(true);
|
moduleSettingDTO.setApiTest(true);
|
||||||
moduleSettingDTO.setTestPlan(true);
|
moduleSettingDTO.setTestPlan(true);
|
||||||
moduleSettingDTO.setUiTest(true);
|
moduleSettingDTO.setUiTest(true);
|
||||||
project.setModuleSetting(moduleSettingDTO);
|
project.setModuleSetting(JSON.toJSONString(moduleSettingDTO));
|
||||||
MvcResult mvcResult = this.responsePost(updateProject, project);
|
MvcResult mvcResult = this.responsePost(updateProject, project);
|
||||||
ProjectExtendDTO result = this.parseObjectFromMvcResult(mvcResult, ProjectExtendDTO.class);
|
Project result = parseObjectFromMvcResult(mvcResult, Project.class);
|
||||||
Project currentProject = projectMapper.selectByPrimaryKey(project.getId());
|
Project currentProject = projectMapper.selectByPrimaryKey(project.getId());
|
||||||
this.compareProjectDTO(currentProject, result);
|
compareProjectDTO(currentProject, result);
|
||||||
UserRoleRelationExample userRoleRelationExample = new UserRoleRelationExample();
|
UserRoleRelationExample userRoleRelationExample = new UserRoleRelationExample();
|
||||||
userRoleRelationExample.createCriteria().andSourceIdEqualTo(projectId).andRoleIdEqualTo(InternalUserRole.PROJECT_ADMIN.getValue());
|
userRoleRelationExample.createCriteria().andSourceIdEqualTo(projectId).andRoleIdEqualTo(InternalUserRole.PROJECT_ADMIN.getValue());
|
||||||
List<UserRoleRelation> userRoleRelations = userRoleRelationMapper.selectByExample(userRoleRelationExample);
|
List<UserRoleRelation> userRoleRelations = userRoleRelationMapper.selectByExample(userRoleRelationExample);
|
||||||
Assertions.assertEquals(userRoleRelations.stream().map(UserRoleRelation::getUserId).collect(Collectors.toList()).containsAll(List.of("admin1")), true);
|
Assertions.assertTrue(userRoleRelations.stream().map(UserRoleRelation::getUserId).toList().contains("admin1"));
|
||||||
userRoleRelationExample.createCriteria().andSourceIdEqualTo("organizationId").andRoleIdEqualTo(InternalUserRole.ORG_MEMBER.getValue());
|
userRoleRelationExample.createCriteria().andSourceIdEqualTo("organizationId").andRoleIdEqualTo(InternalUserRole.ORG_MEMBER.getValue());
|
||||||
userRoleRelations = userRoleRelationMapper.selectByExample(userRoleRelationExample);
|
userRoleRelations = userRoleRelationMapper.selectByExample(userRoleRelationExample);
|
||||||
Assertions.assertEquals(userRoleRelations.stream().map(UserRoleRelation::getUserId).collect(Collectors.toList()).containsAll(List.of( "admin1")), true);
|
Assertions.assertTrue(userRoleRelations.stream().map(UserRoleRelation::getUserId).toList().contains("admin1"));
|
||||||
//断言模块设置
|
//断言模块设置
|
||||||
projectExtend = projectExtendMapper.selectByPrimaryKey(projectId);
|
projectExtend = projectMapper.selectByPrimaryKey(projectId);
|
||||||
Assertions.assertEquals(projectExtend.getModuleSetting(), JSON.toJSONString(moduleSettingDTO));
|
Assertions.assertEquals(projectExtend.getModuleSetting(), JSON.toJSONString(moduleSettingDTO));
|
||||||
|
|
||||||
// 校验日志
|
// 校验日志
|
||||||
|
@ -417,38 +417,38 @@ public class OrganizationProjectControllerTests extends BaseTest {
|
||||||
//用户id为空
|
//用户id为空
|
||||||
project = this.generatorUpdate("organizationId", "projectId2", "organization-TestNameUserIdIsNull", "Edit name", true, new ArrayList<>());
|
project = this.generatorUpdate("organizationId", "projectId2", "organization-TestNameUserIdIsNull", "Edit name", true, new ArrayList<>());
|
||||||
mvcResult = this.responsePost(updateProject, project);
|
mvcResult = this.responsePost(updateProject, project);
|
||||||
result = this.parseObjectFromMvcResult(mvcResult, ProjectExtendDTO.class);
|
result = parseObjectFromMvcResult(mvcResult, Project.class);
|
||||||
currentProject = projectMapper.selectByPrimaryKey(project.getId());
|
currentProject = projectMapper.selectByPrimaryKey(project.getId());
|
||||||
this.compareProjectDTO(currentProject, result);
|
compareProjectDTO(currentProject, result);
|
||||||
userRoleRelationExample = new UserRoleRelationExample();
|
userRoleRelationExample = new UserRoleRelationExample();
|
||||||
userRoleRelationExample.createCriteria().andSourceIdEqualTo("projectId2").andRoleIdEqualTo(InternalUserRole.PROJECT_ADMIN.getValue());
|
userRoleRelationExample.createCriteria().andSourceIdEqualTo("projectId2").andRoleIdEqualTo(InternalUserRole.PROJECT_ADMIN.getValue());
|
||||||
userRoleRelations = userRoleRelationMapper.selectByExample(userRoleRelationExample);
|
userRoleRelations = userRoleRelationMapper.selectByExample(userRoleRelationExample);
|
||||||
//断言userRoleRelations是空的
|
//断言userRoleRelations是空的
|
||||||
Assertions.assertTrue(userRoleRelations.isEmpty());
|
Assertions.assertTrue(userRoleRelations.isEmpty());
|
||||||
//断言模块设置
|
//断言模块设置
|
||||||
projectExtend = projectExtendMapper.selectByPrimaryKey("projectId2");
|
projectExtend = projectMapper.selectByPrimaryKey("projectId2");
|
||||||
Assertions.assertEquals(projectExtend.getModuleSetting(), JSON.toJSONString(new ModuleSettingDTO()));
|
Assertions.assertEquals(projectExtend.getModuleSetting(), JSON.toJSONString(new ModuleSettingDTO()));
|
||||||
|
|
||||||
// 修改模块设置
|
// 修改模块设置
|
||||||
project = this.generatorUpdate("organizationId", "projectId2", "org-Module", "Edit name", true, new ArrayList<>());
|
project = this.generatorUpdate("organizationId", "projectId2", "org-Module", "Edit name", true, new ArrayList<>());
|
||||||
projectExtend = projectExtendMapper.selectByPrimaryKey("projectId2");
|
projectExtend = projectMapper.selectByPrimaryKey("projectId2");
|
||||||
moduleSettingDTO = JSON.parseObject(projectExtend.getModuleSetting(), ModuleSettingDTO.class);
|
moduleSettingDTO = JSON.parseObject(projectExtend.getModuleSetting(), ModuleSettingDTO.class);
|
||||||
moduleSettingDTO.setApiTest(true);
|
moduleSettingDTO.setApiTest(true);
|
||||||
moduleSettingDTO.setTestPlan(true);
|
moduleSettingDTO.setTestPlan(true);
|
||||||
moduleSettingDTO.setUiTest(true);
|
moduleSettingDTO.setUiTest(true);
|
||||||
moduleSettingDTO.setWorkstation(true);
|
moduleSettingDTO.setWorkstation(true);
|
||||||
project.setModuleSetting(moduleSettingDTO);
|
project.setModuleSetting(JSON.toJSONString(moduleSettingDTO));
|
||||||
mvcResult = this.responsePost(updateProject, project);
|
mvcResult = this.responsePost(updateProject, project);
|
||||||
result = this.parseObjectFromMvcResult(mvcResult, ProjectExtendDTO.class);
|
result = parseObjectFromMvcResult(mvcResult, Project.class);
|
||||||
currentProject = projectMapper.selectByPrimaryKey(project.getId());
|
currentProject = projectMapper.selectByPrimaryKey(project.getId());
|
||||||
this.compareProjectDTO(currentProject, result);
|
compareProjectDTO(currentProject, result);
|
||||||
userRoleRelationExample = new UserRoleRelationExample();
|
userRoleRelationExample = new UserRoleRelationExample();
|
||||||
userRoleRelationExample.createCriteria().andSourceIdEqualTo("projectId2").andRoleIdEqualTo(InternalUserRole.PROJECT_ADMIN.getValue());
|
userRoleRelationExample.createCriteria().andSourceIdEqualTo("projectId2").andRoleIdEqualTo(InternalUserRole.PROJECT_ADMIN.getValue());
|
||||||
userRoleRelations = userRoleRelationMapper.selectByExample(userRoleRelationExample);
|
userRoleRelations = userRoleRelationMapper.selectByExample(userRoleRelationExample);
|
||||||
//断言userRoleRelations是空的
|
//断言userRoleRelations是空的
|
||||||
Assertions.assertTrue(userRoleRelations.isEmpty());
|
Assertions.assertTrue(userRoleRelations.isEmpty());
|
||||||
//断言模块设置
|
//断言模块设置
|
||||||
projectExtend = projectExtendMapper.selectByPrimaryKey("projectId2");
|
projectExtend = projectMapper.selectByPrimaryKey("projectId2");
|
||||||
Assertions.assertEquals(projectExtend.getModuleSetting(), JSON.toJSONString(moduleSettingDTO));
|
Assertions.assertEquals(projectExtend.getModuleSetting(), JSON.toJSONString(moduleSettingDTO));
|
||||||
// @@校验权限
|
// @@校验权限
|
||||||
project.setName("organization-TestName2");
|
project.setName("organization-TestName2");
|
||||||
|
@ -487,8 +487,8 @@ public class OrganizationProjectControllerTests extends BaseTest {
|
||||||
int count = parseObjectFromMvcResult(mvcResult, Integer.class);
|
int count = parseObjectFromMvcResult(mvcResult, Integer.class);
|
||||||
Project currentProject = projectMapper.selectByPrimaryKey(projectId);
|
Project currentProject = projectMapper.selectByPrimaryKey(projectId);
|
||||||
Assertions.assertEquals(currentProject.getDeleted(), true);
|
Assertions.assertEquals(currentProject.getDeleted(), true);
|
||||||
Assertions.assertTrue(currentProject.getId().equals(projectId));
|
Assertions.assertEquals(currentProject.getId(), projectId);
|
||||||
Assertions.assertTrue(count == 1);
|
Assertions.assertEquals(1, count);
|
||||||
// 校验日志
|
// 校验日志
|
||||||
checkLog(projectId, OperationLogType.DELETE);
|
checkLog(projectId, OperationLogType.DELETE);
|
||||||
// @@校验权限
|
// @@校验权限
|
||||||
|
@ -509,8 +509,8 @@ public class OrganizationProjectControllerTests extends BaseTest {
|
||||||
int count = parseObjectFromMvcResult(mvcResult, Integer.class);
|
int count = parseObjectFromMvcResult(mvcResult, Integer.class);
|
||||||
Project currentProject = projectMapper.selectByPrimaryKey(projectId);
|
Project currentProject = projectMapper.selectByPrimaryKey(projectId);
|
||||||
Assertions.assertEquals(currentProject.getDeleted(), false);
|
Assertions.assertEquals(currentProject.getDeleted(), false);
|
||||||
Assertions.assertTrue(currentProject.getId().equals(projectId));
|
Assertions.assertEquals(currentProject.getId(), projectId);
|
||||||
Assertions.assertTrue(count == 1);
|
Assertions.assertEquals(1, count);
|
||||||
// 校验日志
|
// 校验日志
|
||||||
checkLog(projectId, OperationLogType.RECOVER);
|
checkLog(projectId, OperationLogType.RECOVER);
|
||||||
// @@校验权限
|
// @@校验权限
|
||||||
|
@ -535,8 +535,8 @@ public class OrganizationProjectControllerTests extends BaseTest {
|
||||||
UserRoleRelationExample userRoleRelationExample = new UserRoleRelationExample();
|
UserRoleRelationExample userRoleRelationExample = new UserRoleRelationExample();
|
||||||
userRoleRelationExample.createCriteria().andSourceIdEqualTo(projectId);
|
userRoleRelationExample.createCriteria().andSourceIdEqualTo(projectId);
|
||||||
List<UserRoleRelation> userRoleRelations = userRoleRelationMapper.selectByExample(userRoleRelationExample);
|
List<UserRoleRelation> userRoleRelations = userRoleRelationMapper.selectByExample(userRoleRelationExample);
|
||||||
Assertions.assertEquals(userRoleRelations.stream().map(UserRoleRelation::getUserId).collect(Collectors.toList()).containsAll(userIds), true);
|
Assertions.assertTrue(userRoleRelations.stream().map(UserRoleRelation::getUserId).toList().containsAll(userIds));
|
||||||
Assertions.assertTrue(userRoleRelations.stream().map(UserRoleRelation::getUserId).collect(Collectors.toList()).containsAll(userIds));
|
Assertions.assertTrue(userRoleRelations.stream().map(UserRoleRelation::getUserId).toList().containsAll(userIds));
|
||||||
userRoleRelations.forEach(item ->{
|
userRoleRelations.forEach(item ->{
|
||||||
try {
|
try {
|
||||||
checkLog(item.getId(), OperationLogType.ADD);
|
checkLog(item.getId(), OperationLogType.ADD);
|
||||||
|
@ -592,6 +592,7 @@ public class OrganizationProjectControllerTests extends BaseTest {
|
||||||
mvcResult = this.responsePost(getProjectMemberList, memberRequest);
|
mvcResult = this.responsePost(getProjectMemberList, memberRequest);
|
||||||
returnPager = parseObjectFromMvcResult(mvcResult, Pager.class);
|
returnPager = parseObjectFromMvcResult(mvcResult, Pager.class);
|
||||||
//第一个数据的createTime是最大的
|
//第一个数据的createTime是最大的
|
||||||
|
assert returnPager != null;
|
||||||
List<UserExtend> userExtends = JSON.parseArray(JSON.toJSONString(returnPager.getList()), UserExtend.class);
|
List<UserExtend> userExtends = JSON.parseArray(JSON.toJSONString(returnPager.getList()), UserExtend.class);
|
||||||
long firstCreateTime = userExtends.get(0).getCreateTime();
|
long firstCreateTime = userExtends.get(0).getCreateTime();
|
||||||
for (UserExtend userExtend : userExtends) {
|
for (UserExtend userExtend : userExtends) {
|
||||||
|
@ -642,7 +643,7 @@ public class OrganizationProjectControllerTests extends BaseTest {
|
||||||
List<UserRoleRelation> userRoleRelations = userRoleRelationMapper.selectByExample(userRoleRelationExample);
|
List<UserRoleRelation> userRoleRelations = userRoleRelationMapper.selectByExample(userRoleRelationExample);
|
||||||
MvcResult mvcResult = this.responseGet(removeProjectMember + projectId + "/" + userId);
|
MvcResult mvcResult = this.responseGet(removeProjectMember + projectId + "/" + userId);
|
||||||
int count = parseObjectFromMvcResult(mvcResult, Integer.class);
|
int count = parseObjectFromMvcResult(mvcResult, Integer.class);
|
||||||
Assertions.assertTrue(count == userRoleRelations.size());
|
Assertions.assertEquals(count, userRoleRelations.size());
|
||||||
// 校验日志
|
// 校验日志
|
||||||
checkLog(userRoleRelations.get(0).getId(), OperationLogType.DELETE);
|
checkLog(userRoleRelations.get(0).getId(), OperationLogType.DELETE);
|
||||||
// @@校验权限
|
// @@校验权限
|
||||||
|
@ -655,7 +656,7 @@ public class OrganizationProjectControllerTests extends BaseTest {
|
||||||
String userId = "admin1";
|
String userId = "admin1";
|
||||||
MvcResult mvcResult = this.responseGet(removeProjectMember + projectId + "/" + userId);
|
MvcResult mvcResult = this.responseGet(removeProjectMember + projectId + "/" + userId);
|
||||||
int count = parseObjectFromMvcResult(mvcResult, Integer.class);
|
int count = parseObjectFromMvcResult(mvcResult, Integer.class);
|
||||||
Assertions.assertTrue(count == 0);
|
Assertions.assertEquals(0, count);
|
||||||
|
|
||||||
//用户Id不存在
|
//用户Id不存在
|
||||||
projectId = "projectId1";
|
projectId = "projectId1";
|
||||||
|
|
|
@ -2,8 +2,6 @@ package io.metersphere.system.controller;
|
||||||
|
|
||||||
import io.metersphere.project.domain.Project;
|
import io.metersphere.project.domain.Project;
|
||||||
import io.metersphere.project.domain.ProjectExample;
|
import io.metersphere.project.domain.ProjectExample;
|
||||||
import io.metersphere.project.domain.ProjectExtend;
|
|
||||||
import io.metersphere.project.mapper.ProjectExtendMapper;
|
|
||||||
import io.metersphere.project.mapper.ProjectMapper;
|
import io.metersphere.project.mapper.ProjectMapper;
|
||||||
import io.metersphere.sdk.base.BaseTest;
|
import io.metersphere.sdk.base.BaseTest;
|
||||||
import io.metersphere.sdk.constants.InternalUserRole;
|
import io.metersphere.sdk.constants.InternalUserRole;
|
||||||
|
@ -19,7 +17,6 @@ import io.metersphere.sdk.util.JSON;
|
||||||
import io.metersphere.sdk.util.Pager;
|
import io.metersphere.sdk.util.Pager;
|
||||||
import io.metersphere.system.domain.UserRoleRelation;
|
import io.metersphere.system.domain.UserRoleRelation;
|
||||||
import io.metersphere.system.domain.UserRoleRelationExample;
|
import io.metersphere.system.domain.UserRoleRelationExample;
|
||||||
import io.metersphere.system.dto.ProjectExtendDTO;
|
|
||||||
import io.metersphere.system.dto.UserExtend;
|
import io.metersphere.system.dto.UserExtend;
|
||||||
import io.metersphere.system.mapper.UserRoleRelationMapper;
|
import io.metersphere.system.mapper.UserRoleRelationMapper;
|
||||||
import io.metersphere.system.request.ProjectAddMemberRequest;
|
import io.metersphere.system.request.ProjectAddMemberRequest;
|
||||||
|
@ -42,8 +39,6 @@ import java.nio.charset.StandardCharsets;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.stream.Collectors;
|
|
||||||
|
|
||||||
|
|
||||||
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content;
|
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content;
|
||||||
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
|
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
|
||||||
|
@ -77,8 +72,6 @@ public class SystemProjectControllerTests extends BaseTest {
|
||||||
private ProjectMapper projectMapper;
|
private ProjectMapper projectMapper;
|
||||||
@Resource
|
@Resource
|
||||||
private UserRoleRelationMapper userRoleRelationMapper;
|
private UserRoleRelationMapper userRoleRelationMapper;
|
||||||
@Resource
|
|
||||||
private ProjectExtendMapper projectExtendMapper;
|
|
||||||
|
|
||||||
private void requestPost(String url, Object param, ResultMatcher resultMatcher) throws Exception {
|
private void requestPost(String url, Object param, ResultMatcher resultMatcher) throws Exception {
|
||||||
mockMvc.perform(MockMvcRequestBuilders.post(url)
|
mockMvc.perform(MockMvcRequestBuilders.post(url)
|
||||||
|
@ -140,7 +133,7 @@ public class SystemProjectControllerTests extends BaseTest {
|
||||||
//判断描述是否一样
|
//判断描述是否一样
|
||||||
Assertions.assertTrue(StringUtils.equals(currentProject.getDescription(), result.getDescription()));
|
Assertions.assertTrue(StringUtils.equals(currentProject.getDescription(), result.getDescription()));
|
||||||
//判断是否启用
|
//判断是否启用
|
||||||
Assertions.assertTrue(currentProject.getEnable() == result.getEnable());
|
Assertions.assertSame(currentProject.getEnable(), result.getEnable());
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -179,72 +172,75 @@ public class SystemProjectControllerTests extends BaseTest {
|
||||||
public void testAddProjectSuccess() throws Exception {
|
public void testAddProjectSuccess() throws Exception {
|
||||||
AddProjectRequest project = this.generatorAdd("organizationId","name", "description", true, List.of("admin"));
|
AddProjectRequest project = this.generatorAdd("organizationId","name", "description", true, List.of("admin"));
|
||||||
MvcResult mvcResult = this.responsePost(addProject, project);
|
MvcResult mvcResult = this.responsePost(addProject, project);
|
||||||
ProjectExtendDTO result = this.parseObjectFromMvcResult(mvcResult, ProjectExtendDTO.class);
|
Project result = parseObjectFromMvcResult(mvcResult, Project.class);
|
||||||
ProjectExample projectExample = new ProjectExample();
|
ProjectExample projectExample = new ProjectExample();
|
||||||
projectExample.createCriteria().andOrganizationIdEqualTo(project.getOrganizationId()).andNameEqualTo(project.getName());
|
projectExample.createCriteria().andOrganizationIdEqualTo(project.getOrganizationId()).andNameEqualTo(project.getName());
|
||||||
List<Project> projects = projectMapper.selectByExample(projectExample);
|
List<Project> projects = projectMapper.selectByExample(projectExample);
|
||||||
|
assert result != null;
|
||||||
projectId = result.getId();
|
projectId = result.getId();
|
||||||
// 校验日志
|
// 校验日志
|
||||||
checkLog(projectId, OperationLogType.ADD);
|
checkLog(projectId, OperationLogType.ADD);
|
||||||
|
|
||||||
this.compareProjectDTO(projects.get(0), result);
|
compareProjectDTO(projects.get(0), result);
|
||||||
UserRoleRelationExample userRoleRelationExample = new UserRoleRelationExample();
|
UserRoleRelationExample userRoleRelationExample = new UserRoleRelationExample();
|
||||||
userRoleRelationExample.createCriteria().andSourceIdEqualTo(projectId).andRoleIdEqualTo(InternalUserRole.PROJECT_ADMIN.getValue());
|
userRoleRelationExample.createCriteria().andSourceIdEqualTo(projectId).andRoleIdEqualTo(InternalUserRole.PROJECT_ADMIN.getValue());
|
||||||
List<UserRoleRelation> userRoleRelations = userRoleRelationMapper.selectByExample(userRoleRelationExample);
|
List<UserRoleRelation> userRoleRelations = userRoleRelationMapper.selectByExample(userRoleRelationExample);
|
||||||
Assertions.assertEquals(userRoleRelations.stream().map(UserRoleRelation::getUserId).collect(Collectors.toList()).containsAll(List.of("admin")), true);
|
Assertions.assertTrue(userRoleRelations.stream().map(UserRoleRelation::getUserId).toList().contains("admin"));
|
||||||
userRoleRelationExample.createCriteria().andSourceIdEqualTo("organizationId").andRoleIdEqualTo(InternalUserRole.ORG_MEMBER.getValue());
|
userRoleRelationExample.createCriteria().andSourceIdEqualTo("organizationId").andRoleIdEqualTo(InternalUserRole.ORG_MEMBER.getValue());
|
||||||
userRoleRelations = userRoleRelationMapper.selectByExample(userRoleRelationExample);
|
userRoleRelations = userRoleRelationMapper.selectByExample(userRoleRelationExample);
|
||||||
Assertions.assertEquals(userRoleRelations.stream().map(UserRoleRelation::getUserId).collect(Collectors.toList()).containsAll(List.of("admin")), true);
|
Assertions.assertTrue(userRoleRelations.stream().map(UserRoleRelation::getUserId).toList().contains("admin"));
|
||||||
ProjectExtend projectExtend = projectExtendMapper.selectByPrimaryKey(projectId);
|
Project currentProject = projectMapper.selectByPrimaryKey(projectId);
|
||||||
Assertions.assertEquals(projectExtend.getModuleSetting(), JSON.toJSONString(new ModuleSettingDTO()));
|
Assertions.assertEquals(currentProject.getModuleSetting(), JSON.toJSONString(new ModuleSettingDTO()));
|
||||||
|
|
||||||
//userId为空的时候
|
//userId为空的时候
|
||||||
project = this.generatorAdd("organizationId","userIdIsNull", "description", true, new ArrayList<>());
|
project = this.generatorAdd("organizationId","userIdIsNull", "description", true, new ArrayList<>());
|
||||||
mvcResult = this.responsePost(addProject, project);
|
mvcResult = this.responsePost(addProject, project);
|
||||||
result = this.parseObjectFromMvcResult(mvcResult, ProjectExtendDTO.class);
|
result = parseObjectFromMvcResult(mvcResult, Project.class);
|
||||||
projectExample = new ProjectExample();
|
projectExample = new ProjectExample();
|
||||||
projectExample.createCriteria().andOrganizationIdEqualTo(project.getOrganizationId()).andNameEqualTo(project.getName());
|
projectExample.createCriteria().andOrganizationIdEqualTo(project.getOrganizationId()).andNameEqualTo(project.getName());
|
||||||
projects = projectMapper.selectByExample(projectExample);
|
projects = projectMapper.selectByExample(projectExample);
|
||||||
|
assert result != null;
|
||||||
projectId = result.getId();
|
projectId = result.getId();
|
||||||
// 校验日志
|
// 校验日志
|
||||||
checkLog(projectId, OperationLogType.ADD);
|
checkLog(projectId, OperationLogType.ADD);
|
||||||
|
|
||||||
this.compareProjectDTO(projects.get(0), result);
|
compareProjectDTO(projects.get(0), result);
|
||||||
userRoleRelationExample = new UserRoleRelationExample();
|
userRoleRelationExample = new UserRoleRelationExample();
|
||||||
userRoleRelationExample.createCriteria().andSourceIdEqualTo(projectId).andRoleIdEqualTo(InternalUserRole.PROJECT_ADMIN.getValue());
|
userRoleRelationExample.createCriteria().andSourceIdEqualTo(projectId).andRoleIdEqualTo(InternalUserRole.PROJECT_ADMIN.getValue());
|
||||||
userRoleRelations = userRoleRelationMapper.selectByExample(userRoleRelationExample);
|
userRoleRelations = userRoleRelationMapper.selectByExample(userRoleRelationExample);
|
||||||
Assertions.assertEquals(userRoleRelations.stream().map(UserRoleRelation::getUserId).collect(Collectors.toList()).containsAll(List.of("admin")), true);
|
Assertions.assertTrue(userRoleRelations.stream().map(UserRoleRelation::getUserId).toList().contains("admin"));
|
||||||
userRoleRelationExample.createCriteria().andSourceIdEqualTo("organizationId").andRoleIdEqualTo(InternalUserRole.ORG_MEMBER.getValue());
|
userRoleRelationExample.createCriteria().andSourceIdEqualTo("organizationId").andRoleIdEqualTo(InternalUserRole.ORG_MEMBER.getValue());
|
||||||
userRoleRelations = userRoleRelationMapper.selectByExample(userRoleRelationExample);
|
userRoleRelations = userRoleRelationMapper.selectByExample(userRoleRelationExample);
|
||||||
Assertions.assertEquals(userRoleRelations.stream().map(UserRoleRelation::getUserId).collect(Collectors.toList()).containsAll(List.of("admin")), true);
|
Assertions.assertTrue(userRoleRelations.stream().map(UserRoleRelation::getUserId).toList().contains("admin"));
|
||||||
projectExtend = projectExtendMapper.selectByPrimaryKey(projectId);
|
currentProject = projectMapper.selectByPrimaryKey(projectId);
|
||||||
Assertions.assertEquals(projectExtend.getModuleSetting(), JSON.toJSONString(new ModuleSettingDTO()));
|
Assertions.assertEquals(currentProject.getModuleSetting(), JSON.toJSONString(new ModuleSettingDTO()));
|
||||||
|
|
||||||
//设置了模块模版
|
//设置了模块模版
|
||||||
ModuleSettingDTO moduleSettingDTO = new ModuleSettingDTO();
|
ModuleSettingDTO moduleSettingDTO = new ModuleSettingDTO();
|
||||||
moduleSettingDTO.setApiTest(true);
|
moduleSettingDTO.setApiTest(true);
|
||||||
moduleSettingDTO.setLoadTest(true);
|
moduleSettingDTO.setLoadTest(true);
|
||||||
project.setModuleSetting(moduleSettingDTO);
|
project.setModuleSetting(JSON.toJSONString(moduleSettingDTO));
|
||||||
project.setName("moduleSetting");
|
project.setName("moduleSetting");
|
||||||
mvcResult = this.responsePost(addProject, project);
|
mvcResult = this.responsePost(addProject, project);
|
||||||
result = this.parseObjectFromMvcResult(mvcResult, ProjectExtendDTO.class);
|
result = parseObjectFromMvcResult(mvcResult, Project.class);
|
||||||
projectExample = new ProjectExample();
|
projectExample = new ProjectExample();
|
||||||
projectExample.createCriteria().andOrganizationIdEqualTo(project.getOrganizationId()).andNameEqualTo(project.getName());
|
projectExample.createCriteria().andOrganizationIdEqualTo(project.getOrganizationId()).andNameEqualTo(project.getName());
|
||||||
projects = projectMapper.selectByExample(projectExample);
|
projects = projectMapper.selectByExample(projectExample);
|
||||||
|
assert result != null;
|
||||||
projectId = result.getId();
|
projectId = result.getId();
|
||||||
// 校验日志
|
// 校验日志
|
||||||
checkLog(projectId, OperationLogType.ADD);
|
checkLog(projectId, OperationLogType.ADD);
|
||||||
|
|
||||||
this.compareProjectDTO(projects.get(0), result);
|
compareProjectDTO(projects.get(0), result);
|
||||||
userRoleRelationExample = new UserRoleRelationExample();
|
userRoleRelationExample = new UserRoleRelationExample();
|
||||||
userRoleRelationExample.createCriteria().andSourceIdEqualTo(projectId).andRoleIdEqualTo(InternalUserRole.PROJECT_ADMIN.getValue());
|
userRoleRelationExample.createCriteria().andSourceIdEqualTo(projectId).andRoleIdEqualTo(InternalUserRole.PROJECT_ADMIN.getValue());
|
||||||
userRoleRelations = userRoleRelationMapper.selectByExample(userRoleRelationExample);
|
userRoleRelations = userRoleRelationMapper.selectByExample(userRoleRelationExample);
|
||||||
Assertions.assertEquals(userRoleRelations.stream().map(UserRoleRelation::getUserId).collect(Collectors.toList()).containsAll(List.of("admin")), true);
|
Assertions.assertTrue(userRoleRelations.stream().map(UserRoleRelation::getUserId).toList().contains("admin"));
|
||||||
userRoleRelationExample.createCriteria().andSourceIdEqualTo("organizationId").andRoleIdEqualTo(InternalUserRole.ORG_MEMBER.getValue());
|
userRoleRelationExample.createCriteria().andSourceIdEqualTo("organizationId").andRoleIdEqualTo(InternalUserRole.ORG_MEMBER.getValue());
|
||||||
userRoleRelations = userRoleRelationMapper.selectByExample(userRoleRelationExample);
|
userRoleRelations = userRoleRelationMapper.selectByExample(userRoleRelationExample);
|
||||||
Assertions.assertEquals(userRoleRelations.stream().map(UserRoleRelation::getUserId).collect(Collectors.toList()).containsAll(List.of("admin")), true);
|
Assertions.assertTrue(userRoleRelations.stream().map(UserRoleRelation::getUserId).toList().contains("admin"));
|
||||||
projectExtend = projectExtendMapper.selectByPrimaryKey(projectId);
|
currentProject = projectMapper.selectByPrimaryKey(projectId);
|
||||||
Assertions.assertEquals(projectExtend.getModuleSetting(), JSON.toJSONString(moduleSettingDTO));
|
Assertions.assertEquals(currentProject.getModuleSetting(), JSON.toJSONString(moduleSettingDTO));
|
||||||
|
|
||||||
|
|
||||||
project.setName("testAddProjectSuccess1");
|
project.setName("testAddProjectSuccess1");
|
||||||
|
@ -279,15 +275,17 @@ public class SystemProjectControllerTests extends BaseTest {
|
||||||
public void testGetProject() throws Exception {
|
public void testGetProject() throws Exception {
|
||||||
AddProjectRequest project = this.generatorAdd("organizationId","getName", "description", true, List.of("admin"));
|
AddProjectRequest project = this.generatorAdd("organizationId","getName", "description", true, List.of("admin"));
|
||||||
MvcResult mvcResult = this.responsePost(addProject, project);
|
MvcResult mvcResult = this.responsePost(addProject, project);
|
||||||
ProjectExtendDTO result = this.parseObjectFromMvcResult(mvcResult, ProjectExtendDTO.class);
|
Project result = parseObjectFromMvcResult(mvcResult, Project.class);
|
||||||
|
assert result != null;
|
||||||
projectId = result.getId();
|
projectId = result.getId();
|
||||||
mvcResult = this.responseGet(getProject + projectId);
|
mvcResult = this.responseGet(getProject + projectId);
|
||||||
ProjectExtendDTO getProjects = this.parseObjectFromMvcResult(mvcResult, ProjectExtendDTO.class);
|
Project getProjects = parseObjectFromMvcResult(mvcResult, Project.class);
|
||||||
Assertions.assertTrue(StringUtils.equals(getProjects.getId(), projectId));
|
Assertions.assertTrue(StringUtils.equals(getProjects.getId(), projectId));
|
||||||
|
|
||||||
|
|
||||||
mvcResult = this.responseGet(getProject + "projectId1");
|
mvcResult = this.responseGet(getProject + "projectId1");
|
||||||
getProjects = this.parseObjectFromMvcResult(mvcResult, ProjectExtendDTO.class);
|
getProjects = parseObjectFromMvcResult(mvcResult, Project.class);
|
||||||
|
assert getProjects != null;
|
||||||
Assertions.assertTrue(StringUtils.equals(getProjects.getId(), "projectId1"));
|
Assertions.assertTrue(StringUtils.equals(getProjects.getId(), "projectId1"));
|
||||||
// @@校验权限
|
// @@校验权限
|
||||||
requestGetPermissionTest(PermissionConstants.SYSTEM_ORGANIZATION_PROJECT_READ, getProject + projectId);
|
requestGetPermissionTest(PermissionConstants.SYSTEM_ORGANIZATION_PROJECT_READ, getProject + projectId);
|
||||||
|
@ -297,8 +295,8 @@ public class SystemProjectControllerTests extends BaseTest {
|
||||||
public void testGetProjectError() throws Exception {
|
public void testGetProjectError() throws Exception {
|
||||||
//项目不存在
|
//项目不存在
|
||||||
MvcResult mvcResult = this.responseGet(getProject + "111111");
|
MvcResult mvcResult = this.responseGet(getProject + "111111");
|
||||||
ProjectExtend project = this.parseObjectFromMvcResult(mvcResult, ProjectExtend.class);
|
Project project = parseObjectFromMvcResult(mvcResult, Project.class);
|
||||||
Assertions.assertEquals(project, new ProjectExtend());
|
Assertions.assertNull(project);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
@ -321,6 +319,7 @@ public class SystemProjectControllerTests extends BaseTest {
|
||||||
mvcResult = this.responsePost(getProjectList, projectRequest);
|
mvcResult = this.responsePost(getProjectList, projectRequest);
|
||||||
returnPager = parseObjectFromMvcResult(mvcResult, Pager.class);
|
returnPager = parseObjectFromMvcResult(mvcResult, Pager.class);
|
||||||
//第一个数据的createTime是最大的
|
//第一个数据的createTime是最大的
|
||||||
|
assert returnPager != null;
|
||||||
List<ProjectDTO> projectDTOS = JSON.parseArray(JSON.toJSONString(returnPager.getList()), ProjectDTO.class);
|
List<ProjectDTO> projectDTOS = JSON.parseArray(JSON.toJSONString(returnPager.getList()), ProjectDTO.class);
|
||||||
long firstCreateTime = projectDTOS.get(0).getCreateTime();
|
long firstCreateTime = projectDTOS.get(0).getCreateTime();
|
||||||
for (ProjectDTO projectDTO : projectDTOS) {
|
for (ProjectDTO projectDTO : projectDTOS) {
|
||||||
|
@ -332,9 +331,10 @@ public class SystemProjectControllerTests extends BaseTest {
|
||||||
mvcResult = this.responsePost(getProjectList, projectRequest);
|
mvcResult = this.responsePost(getProjectList, projectRequest);
|
||||||
returnPager = parseObjectFromMvcResult(mvcResult, Pager.class);
|
returnPager = parseObjectFromMvcResult(mvcResult, Pager.class);
|
||||||
//返回的数据中的createUser是admin或者admin1
|
//返回的数据中的createUser是admin或者admin1
|
||||||
|
assert returnPager != null;
|
||||||
projectDTOS = JSON.parseArray(JSON.toJSONString(returnPager.getList()), ProjectDTO.class);
|
projectDTOS = JSON.parseArray(JSON.toJSONString(returnPager.getList()), ProjectDTO.class);
|
||||||
//拿到所有的createUser
|
//拿到所有的createUser
|
||||||
List<String> createUsers = projectDTOS.stream().map(ProjectDTO::getCreateUser).collect(Collectors.toList());
|
List<String> createUsers = projectDTOS.stream().map(ProjectDTO::getCreateUser).toList();
|
||||||
Assertions.assertTrue(List.of("test").containsAll(createUsers));
|
Assertions.assertTrue(List.of("test").containsAll(createUsers));
|
||||||
// @@校验权限
|
// @@校验权限
|
||||||
requestPostPermissionTest(PermissionConstants.SYSTEM_ORGANIZATION_PROJECT_READ, getProjectList, projectRequest);
|
requestPostPermissionTest(PermissionConstants.SYSTEM_ORGANIZATION_PROJECT_READ, getProjectList, projectRequest);
|
||||||
|
@ -371,25 +371,25 @@ public class SystemProjectControllerTests extends BaseTest {
|
||||||
public void testUpdateProject() throws Exception {
|
public void testUpdateProject() throws Exception {
|
||||||
UpdateProjectRequest project = this.generatorUpdate("organizationId", "projectId1","TestName", "Edit name", true, List.of("admin", "admin1"));
|
UpdateProjectRequest project = this.generatorUpdate("organizationId", "projectId1","TestName", "Edit name", true, List.of("admin", "admin1"));
|
||||||
MvcResult mvcResult = this.responsePost(updateProject, project);
|
MvcResult mvcResult = this.responsePost(updateProject, project);
|
||||||
ProjectExtendDTO result = this.parseObjectFromMvcResult(mvcResult, ProjectExtendDTO.class);
|
Project result = parseObjectFromMvcResult(mvcResult, Project.class);
|
||||||
Project currentProject = projectMapper.selectByPrimaryKey(project.getId());
|
Project currentProject = projectMapper.selectByPrimaryKey(project.getId());
|
||||||
this.compareProjectDTO(currentProject, result);
|
compareProjectDTO(currentProject, result);
|
||||||
UserRoleRelationExample userRoleRelationExample = new UserRoleRelationExample();
|
UserRoleRelationExample userRoleRelationExample = new UserRoleRelationExample();
|
||||||
userRoleRelationExample.createCriteria().andSourceIdEqualTo("projectId1").andRoleIdEqualTo(InternalUserRole.PROJECT_ADMIN.getValue());
|
userRoleRelationExample.createCriteria().andSourceIdEqualTo("projectId1").andRoleIdEqualTo(InternalUserRole.PROJECT_ADMIN.getValue());
|
||||||
List<UserRoleRelation> userRoleRelations = userRoleRelationMapper.selectByExample(userRoleRelationExample);
|
List<UserRoleRelation> userRoleRelations = userRoleRelationMapper.selectByExample(userRoleRelationExample);
|
||||||
Assertions.assertEquals(userRoleRelations.stream().map(UserRoleRelation::getUserId).collect(Collectors.toList()).containsAll(List.of("admin", "admin1")), true);
|
Assertions.assertTrue(userRoleRelations.stream().map(UserRoleRelation::getUserId).toList().containsAll(List.of("admin", "admin1")));
|
||||||
userRoleRelationExample.createCriteria().andSourceIdEqualTo("organizationId").andRoleIdEqualTo(InternalUserRole.ORG_MEMBER.getValue());
|
userRoleRelationExample.createCriteria().andSourceIdEqualTo("organizationId").andRoleIdEqualTo(InternalUserRole.ORG_MEMBER.getValue());
|
||||||
userRoleRelations = userRoleRelationMapper.selectByExample(userRoleRelationExample);
|
userRoleRelations = userRoleRelationMapper.selectByExample(userRoleRelationExample);
|
||||||
Assertions.assertEquals(userRoleRelations.stream().map(UserRoleRelation::getUserId).collect(Collectors.toList()).containsAll(List.of("admin", "admin1")), true);
|
Assertions.assertTrue(userRoleRelations.stream().map(UserRoleRelation::getUserId).toList().containsAll(List.of("admin", "admin1")));
|
||||||
|
|
||||||
//用户id为空
|
//用户id为空
|
||||||
project = this.generatorUpdate("organizationId", "projectId1", "TestNameUserIdIsNull", "Edit name", true, new ArrayList<>());
|
project = this.generatorUpdate("organizationId", "projectId1", "TestNameUserIdIsNull", "Edit name", true, new ArrayList<>());
|
||||||
ProjectExtend projectExtend = projectExtendMapper.selectByPrimaryKey("projectId1");
|
Project projectExtend = projectMapper.selectByPrimaryKey("projectId1");
|
||||||
project.setModuleSetting(JSON.parseObject(projectExtend.getModuleSetting(), ModuleSettingDTO.class));
|
project.setModuleSetting(projectExtend.getModuleSetting());
|
||||||
mvcResult = this.responsePost(updateProject, project);
|
mvcResult = this.responsePost(updateProject, project);
|
||||||
result = this.parseObjectFromMvcResult(mvcResult, ProjectExtendDTO.class);
|
result = parseObjectFromMvcResult(mvcResult, Project.class);
|
||||||
currentProject = projectMapper.selectByPrimaryKey(project.getId());
|
currentProject = projectMapper.selectByPrimaryKey(project.getId());
|
||||||
this.compareProjectDTO(currentProject, result);
|
compareProjectDTO(currentProject, result);
|
||||||
userRoleRelationExample = new UserRoleRelationExample();
|
userRoleRelationExample = new UserRoleRelationExample();
|
||||||
userRoleRelationExample.createCriteria().andSourceIdEqualTo("projectId1").andRoleIdEqualTo(InternalUserRole.PROJECT_ADMIN.getValue());
|
userRoleRelationExample.createCriteria().andSourceIdEqualTo("projectId1").andRoleIdEqualTo(InternalUserRole.PROJECT_ADMIN.getValue());
|
||||||
userRoleRelations = userRoleRelationMapper.selectByExample(userRoleRelationExample);
|
userRoleRelations = userRoleRelationMapper.selectByExample(userRoleRelationExample);
|
||||||
|
@ -403,18 +403,18 @@ public class SystemProjectControllerTests extends BaseTest {
|
||||||
moduleSettingDTO.setTestPlan(true);
|
moduleSettingDTO.setTestPlan(true);
|
||||||
moduleSettingDTO.setUiTest(true);
|
moduleSettingDTO.setUiTest(true);
|
||||||
moduleSettingDTO.setWorkstation(true);
|
moduleSettingDTO.setWorkstation(true);
|
||||||
project.setModuleSetting(moduleSettingDTO);
|
project.setModuleSetting(JSON.toJSONString(moduleSettingDTO));
|
||||||
mvcResult = this.responsePost(updateProject, project);
|
mvcResult = this.responsePost(updateProject, project);
|
||||||
result = this.parseObjectFromMvcResult(mvcResult, ProjectExtendDTO.class);
|
result = parseObjectFromMvcResult(mvcResult, Project.class);
|
||||||
currentProject = projectMapper.selectByPrimaryKey(project.getId());
|
currentProject = projectMapper.selectByPrimaryKey(project.getId());
|
||||||
this.compareProjectDTO(currentProject, result);
|
compareProjectDTO(currentProject, result);
|
||||||
userRoleRelationExample = new UserRoleRelationExample();
|
userRoleRelationExample = new UserRoleRelationExample();
|
||||||
userRoleRelationExample.createCriteria().andSourceIdEqualTo("projectId1").andRoleIdEqualTo(InternalUserRole.PROJECT_ADMIN.getValue());
|
userRoleRelationExample.createCriteria().andSourceIdEqualTo("projectId1").andRoleIdEqualTo(InternalUserRole.PROJECT_ADMIN.getValue());
|
||||||
userRoleRelations = userRoleRelationMapper.selectByExample(userRoleRelationExample);
|
userRoleRelations = userRoleRelationMapper.selectByExample(userRoleRelationExample);
|
||||||
//断言userRoleRelations是空的
|
//断言userRoleRelations是空的
|
||||||
Assertions.assertTrue(userRoleRelations.isEmpty());
|
Assertions.assertTrue(userRoleRelations.isEmpty());
|
||||||
//断言模块设置
|
//断言模块设置
|
||||||
projectExtend = projectExtendMapper.selectByPrimaryKey("projectId1");
|
projectExtend = projectMapper.selectByPrimaryKey("projectId1");
|
||||||
Assertions.assertEquals(projectExtend.getModuleSetting(), JSON.toJSONString(moduleSettingDTO));
|
Assertions.assertEquals(projectExtend.getModuleSetting(), JSON.toJSONString(moduleSettingDTO));
|
||||||
|
|
||||||
|
|
||||||
|
@ -452,8 +452,8 @@ public class SystemProjectControllerTests extends BaseTest {
|
||||||
int count = parseObjectFromMvcResult(mvcResult, Integer.class);
|
int count = parseObjectFromMvcResult(mvcResult, Integer.class);
|
||||||
Project currentProject = projectMapper.selectByPrimaryKey(id);
|
Project currentProject = projectMapper.selectByPrimaryKey(id);
|
||||||
Assertions.assertEquals(currentProject.getDeleted(), true);
|
Assertions.assertEquals(currentProject.getDeleted(), true);
|
||||||
Assertions.assertTrue(currentProject.getId().equals(id));
|
Assertions.assertEquals(currentProject.getId(), id);
|
||||||
Assertions.assertTrue(count == 1);
|
Assertions.assertEquals(1, count);
|
||||||
// @@校验权限
|
// @@校验权限
|
||||||
requestGetPermissionTest(PermissionConstants.SYSTEM_ORGANIZATION_PROJECT_READ_DELETE, deleteProject + id);
|
requestGetPermissionTest(PermissionConstants.SYSTEM_ORGANIZATION_PROJECT_READ_DELETE, deleteProject + id);
|
||||||
}
|
}
|
||||||
|
@ -473,8 +473,8 @@ public class SystemProjectControllerTests extends BaseTest {
|
||||||
int count = parseObjectFromMvcResult(mvcResult, Integer.class);
|
int count = parseObjectFromMvcResult(mvcResult, Integer.class);
|
||||||
Project currentProject = projectMapper.selectByPrimaryKey(id);
|
Project currentProject = projectMapper.selectByPrimaryKey(id);
|
||||||
Assertions.assertEquals(currentProject.getDeleted(), false);
|
Assertions.assertEquals(currentProject.getDeleted(), false);
|
||||||
Assertions.assertTrue(currentProject.getId().equals(id));
|
Assertions.assertEquals(currentProject.getId(), id);
|
||||||
Assertions.assertTrue(count == 1);
|
Assertions.assertEquals(1, count);
|
||||||
// @@校验权限
|
// @@校验权限
|
||||||
requestGetPermissionTest(PermissionConstants.SYSTEM_ORGANIZATION_PROJECT_READ_RECOVER, revokeProject + id);
|
requestGetPermissionTest(PermissionConstants.SYSTEM_ORGANIZATION_PROJECT_READ_RECOVER, revokeProject + id);
|
||||||
}
|
}
|
||||||
|
@ -499,8 +499,8 @@ public class SystemProjectControllerTests extends BaseTest {
|
||||||
UserRoleRelationExample userRoleRelationExample = new UserRoleRelationExample();
|
UserRoleRelationExample userRoleRelationExample = new UserRoleRelationExample();
|
||||||
userRoleRelationExample.createCriteria().andSourceIdEqualTo("projectId").andRoleIdEqualTo(InternalUserRole.PROJECT_MEMBER.getValue());
|
userRoleRelationExample.createCriteria().andSourceIdEqualTo("projectId").andRoleIdEqualTo(InternalUserRole.PROJECT_MEMBER.getValue());
|
||||||
List<UserRoleRelation> userRoleRelations = userRoleRelationMapper.selectByExample(userRoleRelationExample);
|
List<UserRoleRelation> userRoleRelations = userRoleRelationMapper.selectByExample(userRoleRelationExample);
|
||||||
Assertions.assertEquals(userRoleRelations.stream().map(UserRoleRelation::getUserId).collect(Collectors.toList()).containsAll(userIds), true);
|
Assertions.assertTrue(userRoleRelations.stream().map(UserRoleRelation::getUserId).toList().containsAll(userIds));
|
||||||
Assertions.assertTrue(userRoleRelations.stream().map(UserRoleRelation::getUserId).collect(Collectors.toList()).containsAll(userIds));
|
Assertions.assertTrue(userRoleRelations.stream().map(UserRoleRelation::getUserId).toList().containsAll(userIds));
|
||||||
// @@校验权限
|
// @@校验权限
|
||||||
requestPostPermissionTest(PermissionConstants.SYSTEM_ORGANIZATION_PROJECT_MEMBER_ADD, addProjectMember, projectAddMemberRequest);
|
requestPostPermissionTest(PermissionConstants.SYSTEM_ORGANIZATION_PROJECT_MEMBER_ADD, addProjectMember, projectAddMemberRequest);
|
||||||
}
|
}
|
||||||
|
@ -607,7 +607,7 @@ public class SystemProjectControllerTests extends BaseTest {
|
||||||
List<UserRoleRelation> userRoleRelations = userRoleRelationMapper.selectByExample(userRoleRelationExample);
|
List<UserRoleRelation> userRoleRelations = userRoleRelationMapper.selectByExample(userRoleRelationExample);
|
||||||
MvcResult mvcResult = this.responseGet(removeProjectMember + projectId + "/" + userId);
|
MvcResult mvcResult = this.responseGet(removeProjectMember + projectId + "/" + userId);
|
||||||
int count = parseObjectFromMvcResult(mvcResult, Integer.class);
|
int count = parseObjectFromMvcResult(mvcResult, Integer.class);
|
||||||
Assertions.assertTrue(count == userRoleRelations.size());
|
Assertions.assertEquals(count, userRoleRelations.size());
|
||||||
// @@校验权限
|
// @@校验权限
|
||||||
requestGetPermissionTest(PermissionConstants.SYSTEM_ORGANIZATION_PROJECT_MEMBER_DELETE, removeProjectMember + projectId + "/" + userId);
|
requestGetPermissionTest(PermissionConstants.SYSTEM_ORGANIZATION_PROJECT_MEMBER_DELETE, removeProjectMember + projectId + "/" + userId);
|
||||||
}
|
}
|
||||||
|
@ -619,7 +619,7 @@ public class SystemProjectControllerTests extends BaseTest {
|
||||||
String userId = "admin1";
|
String userId = "admin1";
|
||||||
MvcResult mvcResult = this.responseGet(removeProjectMember + projectId + "/" + userId);
|
MvcResult mvcResult = this.responseGet(removeProjectMember + projectId + "/" + userId);
|
||||||
int count = parseObjectFromMvcResult(mvcResult, Integer.class);
|
int count = parseObjectFromMvcResult(mvcResult, Integer.class);
|
||||||
Assertions.assertTrue(count == 0);
|
Assertions.assertEquals(0, count);
|
||||||
|
|
||||||
//用户Id不存在
|
//用户Id不存在
|
||||||
projectId = "projectId1";
|
projectId = "projectId1";
|
||||||
|
|
Loading…
Reference in New Issue