From 75e9537a29de5617eccbe0d100eb62b5b6ee54ee Mon Sep 17 00:00:00 2001 From: junjie Date: Mon, 22 Feb 2021 15:23:08 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=95=B0=E6=8D=AE=E9=9B=86=20=E5=88=86?= =?UTF-8?q?=E7=BB=84=20=E5=9C=BA=E6=99=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../io/dataease/base/domain/DatasetGroup.java | 2 + .../base/domain/DatasetGroupExample.java | 70 +++ .../io/dataease/base/domain/DatasetScene.java | 19 - .../base/domain/DatasetSceneExample.java | 540 ------------------ .../base/mapper/DatasetGroupMapper.xml | 25 +- .../base/mapper/DatasetSceneMapper.java | 30 - .../base/mapper/DatasetSceneMapper.xml | 211 ------- .../dataset/DataSetGroupController.java | 17 +- .../request/dataset/DataSetGroupRequest.java | 13 + .../dataease/dto/dataset/DataSetGroupDTO.java | 3 + .../service/dataset/DataSetGroupService.java | 79 +++ .../db/migration/V2__metersphere_ddl.sql | 10 +- .../business/components/dataset/DataSet.vue | 4 +- .../components/dataset/group/Group.vue | 452 ++++++++++----- frontend/src/i18n/en-US.js | 16 +- frontend/src/i18n/zh-CN.js | 16 +- frontend/src/i18n/zh-TW.js | 16 +- 17 files changed, 560 insertions(+), 963 deletions(-) delete mode 100644 backend/src/main/java/io/dataease/base/domain/DatasetScene.java delete mode 100644 backend/src/main/java/io/dataease/base/domain/DatasetSceneExample.java delete mode 100644 backend/src/main/java/io/dataease/base/mapper/DatasetSceneMapper.java delete mode 100644 backend/src/main/java/io/dataease/base/mapper/DatasetSceneMapper.xml create mode 100644 backend/src/main/java/io/dataease/controller/request/dataset/DataSetGroupRequest.java diff --git a/backend/src/main/java/io/dataease/base/domain/DatasetGroup.java b/backend/src/main/java/io/dataease/base/domain/DatasetGroup.java index 243fdb6bde..f5f562e962 100644 --- a/backend/src/main/java/io/dataease/base/domain/DatasetGroup.java +++ b/backend/src/main/java/io/dataease/base/domain/DatasetGroup.java @@ -13,6 +13,8 @@ public class DatasetGroup implements Serializable { private Integer level; + private String type; + private String createBy; private Long createTime; diff --git a/backend/src/main/java/io/dataease/base/domain/DatasetGroupExample.java b/backend/src/main/java/io/dataease/base/domain/DatasetGroupExample.java index 1f3b2f4440..c000f8f0aa 100644 --- a/backend/src/main/java/io/dataease/base/domain/DatasetGroupExample.java +++ b/backend/src/main/java/io/dataease/base/domain/DatasetGroupExample.java @@ -374,6 +374,76 @@ public class DatasetGroupExample { return (Criteria) this; } + public Criteria andTypeIsNull() { + addCriterion("`type` is null"); + return (Criteria) this; + } + + public Criteria andTypeIsNotNull() { + addCriterion("`type` is not null"); + return (Criteria) this; + } + + public Criteria andTypeEqualTo(String value) { + addCriterion("`type` =", value, "type"); + return (Criteria) this; + } + + public Criteria andTypeNotEqualTo(String value) { + addCriterion("`type` <>", value, "type"); + return (Criteria) this; + } + + public Criteria andTypeGreaterThan(String value) { + addCriterion("`type` >", value, "type"); + return (Criteria) this; + } + + public Criteria andTypeGreaterThanOrEqualTo(String value) { + addCriterion("`type` >=", value, "type"); + return (Criteria) this; + } + + public Criteria andTypeLessThan(String value) { + addCriterion("`type` <", value, "type"); + return (Criteria) this; + } + + public Criteria andTypeLessThanOrEqualTo(String value) { + addCriterion("`type` <=", value, "type"); + return (Criteria) this; + } + + public Criteria andTypeLike(String value) { + addCriterion("`type` like", value, "type"); + return (Criteria) this; + } + + public Criteria andTypeNotLike(String value) { + addCriterion("`type` not like", value, "type"); + return (Criteria) this; + } + + public Criteria andTypeIn(List values) { + addCriterion("`type` in", values, "type"); + return (Criteria) this; + } + + public Criteria andTypeNotIn(List values) { + addCriterion("`type` not in", values, "type"); + return (Criteria) this; + } + + public Criteria andTypeBetween(String value1, String value2) { + addCriterion("`type` between", value1, value2, "type"); + return (Criteria) this; + } + + public Criteria andTypeNotBetween(String value1, String value2) { + addCriterion("`type` not between", value1, value2, "type"); + return (Criteria) this; + } + public Criteria andCreateByIsNull() { addCriterion("create_by is null"); return (Criteria) this; diff --git a/backend/src/main/java/io/dataease/base/domain/DatasetScene.java b/backend/src/main/java/io/dataease/base/domain/DatasetScene.java deleted file mode 100644 index 9d860e998a..0000000000 --- a/backend/src/main/java/io/dataease/base/domain/DatasetScene.java +++ /dev/null @@ -1,19 +0,0 @@ -package io.dataease.base.domain; - -import java.io.Serializable; -import lombok.Data; - -@Data -public class DatasetScene implements Serializable { - private String id; - - private String name; - - private String groupId; - - private String createBy; - - private Long createTime; - - private static final long serialVersionUID = 1L; -} \ No newline at end of file diff --git a/backend/src/main/java/io/dataease/base/domain/DatasetSceneExample.java b/backend/src/main/java/io/dataease/base/domain/DatasetSceneExample.java deleted file mode 100644 index df9477381e..0000000000 --- a/backend/src/main/java/io/dataease/base/domain/DatasetSceneExample.java +++ /dev/null @@ -1,540 +0,0 @@ -package io.dataease.base.domain; - -import java.util.ArrayList; -import java.util.List; - -public class DatasetSceneExample { - protected String orderByClause; - - protected boolean distinct; - - protected List oredCriteria; - - public DatasetSceneExample() { - oredCriteria = new ArrayList(); - } - - public void setOrderByClause(String orderByClause) { - this.orderByClause = orderByClause; - } - - public String getOrderByClause() { - return orderByClause; - } - - public void setDistinct(boolean distinct) { - this.distinct = distinct; - } - - public boolean isDistinct() { - return distinct; - } - - public List getOredCriteria() { - return oredCriteria; - } - - public void or(Criteria criteria) { - oredCriteria.add(criteria); - } - - public Criteria or() { - Criteria criteria = createCriteriaInternal(); - oredCriteria.add(criteria); - return criteria; - } - - public Criteria createCriteria() { - Criteria criteria = createCriteriaInternal(); - if (oredCriteria.size() == 0) { - oredCriteria.add(criteria); - } - return criteria; - } - - protected Criteria createCriteriaInternal() { - Criteria criteria = new Criteria(); - return criteria; - } - - public void clear() { - oredCriteria.clear(); - orderByClause = null; - distinct = false; - } - - protected abstract static class GeneratedCriteria { - protected List criteria; - - protected GeneratedCriteria() { - super(); - criteria = new ArrayList(); - } - - public boolean isValid() { - return criteria.size() > 0; - } - - public List getAllCriteria() { - return criteria; - } - - public List getCriteria() { - return criteria; - } - - protected void addCriterion(String condition) { - if (condition == null) { - throw new RuntimeException("Value for condition cannot be null"); - } - criteria.add(new Criterion(condition)); - } - - protected void addCriterion(String condition, Object value, String property) { - if (value == null) { - throw new RuntimeException("Value for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value)); - } - - protected void addCriterion(String condition, Object value1, Object value2, String property) { - if (value1 == null || value2 == null) { - throw new RuntimeException("Between values for " + property + " cannot be null"); - } - criteria.add(new Criterion(condition, value1, value2)); - } - - public Criteria andIdIsNull() { - addCriterion("id is null"); - return (Criteria) this; - } - - public Criteria andIdIsNotNull() { - addCriterion("id is not null"); - return (Criteria) this; - } - - public Criteria andIdEqualTo(String value) { - addCriterion("id =", value, "id"); - return (Criteria) this; - } - - public Criteria andIdNotEqualTo(String value) { - addCriterion("id <>", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThan(String value) { - addCriterion("id >", value, "id"); - return (Criteria) this; - } - - public Criteria andIdGreaterThanOrEqualTo(String value) { - addCriterion("id >=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThan(String value) { - addCriterion("id <", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLessThanOrEqualTo(String value) { - addCriterion("id <=", value, "id"); - return (Criteria) this; - } - - public Criteria andIdLike(String value) { - addCriterion("id like", value, "id"); - return (Criteria) this; - } - - public Criteria andIdNotLike(String value) { - addCriterion("id not like", value, "id"); - return (Criteria) this; - } - - public Criteria andIdIn(List values) { - addCriterion("id in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdNotIn(List values) { - addCriterion("id not in", values, "id"); - return (Criteria) this; - } - - public Criteria andIdBetween(String value1, String value2) { - addCriterion("id between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andIdNotBetween(String value1, String value2) { - addCriterion("id not between", value1, value2, "id"); - return (Criteria) this; - } - - public Criteria andNameIsNull() { - addCriterion("`name` is null"); - return (Criteria) this; - } - - public Criteria andNameIsNotNull() { - addCriterion("`name` is not null"); - return (Criteria) this; - } - - public Criteria andNameEqualTo(String value) { - addCriterion("`name` =", value, "name"); - return (Criteria) this; - } - - public Criteria andNameNotEqualTo(String value) { - addCriterion("`name` <>", value, "name"); - return (Criteria) this; - } - - public Criteria andNameGreaterThan(String value) { - addCriterion("`name` >", value, "name"); - return (Criteria) this; - } - - public Criteria andNameGreaterThanOrEqualTo(String value) { - addCriterion("`name` >=", value, "name"); - return (Criteria) this; - } - - public Criteria andNameLessThan(String value) { - addCriterion("`name` <", value, "name"); - return (Criteria) this; - } - - public Criteria andNameLessThanOrEqualTo(String value) { - addCriterion("`name` <=", value, "name"); - return (Criteria) this; - } - - public Criteria andNameLike(String value) { - addCriterion("`name` like", value, "name"); - return (Criteria) this; - } - - public Criteria andNameNotLike(String value) { - addCriterion("`name` not like", value, "name"); - return (Criteria) this; - } - - public Criteria andNameIn(List values) { - addCriterion("`name` in", values, "name"); - return (Criteria) this; - } - - public Criteria andNameNotIn(List values) { - addCriterion("`name` not in", values, "name"); - return (Criteria) this; - } - - public Criteria andNameBetween(String value1, String value2) { - addCriterion("`name` between", value1, value2, "name"); - return (Criteria) this; - } - - public Criteria andNameNotBetween(String value1, String value2) { - addCriterion("`name` not between", value1, value2, "name"); - return (Criteria) this; - } - - public Criteria andGroupIdIsNull() { - addCriterion("group_id is null"); - return (Criteria) this; - } - - public Criteria andGroupIdIsNotNull() { - addCriterion("group_id is not null"); - return (Criteria) this; - } - - public Criteria andGroupIdEqualTo(String value) { - addCriterion("group_id =", value, "groupId"); - return (Criteria) this; - } - - public Criteria andGroupIdNotEqualTo(String value) { - addCriterion("group_id <>", value, "groupId"); - return (Criteria) this; - } - - public Criteria andGroupIdGreaterThan(String value) { - addCriterion("group_id >", value, "groupId"); - return (Criteria) this; - } - - public Criteria andGroupIdGreaterThanOrEqualTo(String value) { - addCriterion("group_id >=", value, "groupId"); - return (Criteria) this; - } - - public Criteria andGroupIdLessThan(String value) { - addCriterion("group_id <", value, "groupId"); - return (Criteria) this; - } - - public Criteria andGroupIdLessThanOrEqualTo(String value) { - addCriterion("group_id <=", value, "groupId"); - return (Criteria) this; - } - - public Criteria andGroupIdLike(String value) { - addCriterion("group_id like", value, "groupId"); - return (Criteria) this; - } - - public Criteria andGroupIdNotLike(String value) { - addCriterion("group_id not like", value, "groupId"); - return (Criteria) this; - } - - public Criteria andGroupIdIn(List values) { - addCriterion("group_id in", values, "groupId"); - return (Criteria) this; - } - - public Criteria andGroupIdNotIn(List values) { - addCriterion("group_id not in", values, "groupId"); - return (Criteria) this; - } - - public Criteria andGroupIdBetween(String value1, String value2) { - addCriterion("group_id between", value1, value2, "groupId"); - return (Criteria) this; - } - - public Criteria andGroupIdNotBetween(String value1, String value2) { - addCriterion("group_id not between", value1, value2, "groupId"); - return (Criteria) this; - } - - public Criteria andCreateByIsNull() { - addCriterion("create_by is null"); - return (Criteria) this; - } - - public Criteria andCreateByIsNotNull() { - addCriterion("create_by is not null"); - return (Criteria) this; - } - - public Criteria andCreateByEqualTo(String value) { - addCriterion("create_by =", value, "createBy"); - return (Criteria) this; - } - - public Criteria andCreateByNotEqualTo(String value) { - addCriterion("create_by <>", value, "createBy"); - return (Criteria) this; - } - - public Criteria andCreateByGreaterThan(String value) { - addCriterion("create_by >", value, "createBy"); - return (Criteria) this; - } - - public Criteria andCreateByGreaterThanOrEqualTo(String value) { - addCriterion("create_by >=", value, "createBy"); - return (Criteria) this; - } - - public Criteria andCreateByLessThan(String value) { - addCriterion("create_by <", value, "createBy"); - return (Criteria) this; - } - - public Criteria andCreateByLessThanOrEqualTo(String value) { - addCriterion("create_by <=", value, "createBy"); - return (Criteria) this; - } - - public Criteria andCreateByLike(String value) { - addCriterion("create_by like", value, "createBy"); - return (Criteria) this; - } - - public Criteria andCreateByNotLike(String value) { - addCriterion("create_by not like", value, "createBy"); - return (Criteria) this; - } - - public Criteria andCreateByIn(List values) { - addCriterion("create_by in", values, "createBy"); - return (Criteria) this; - } - - public Criteria andCreateByNotIn(List values) { - addCriterion("create_by not in", values, "createBy"); - return (Criteria) this; - } - - public Criteria andCreateByBetween(String value1, String value2) { - addCriterion("create_by between", value1, value2, "createBy"); - return (Criteria) this; - } - - public Criteria andCreateByNotBetween(String value1, String value2) { - addCriterion("create_by not between", value1, value2, "createBy"); - return (Criteria) this; - } - - public Criteria andCreateTimeIsNull() { - addCriterion("create_time is null"); - return (Criteria) this; - } - - public Criteria andCreateTimeIsNotNull() { - addCriterion("create_time is not null"); - return (Criteria) this; - } - - public Criteria andCreateTimeEqualTo(Long value) { - addCriterion("create_time =", value, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeNotEqualTo(Long value) { - addCriterion("create_time <>", value, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeGreaterThan(Long value) { - addCriterion("create_time >", value, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeGreaterThanOrEqualTo(Long value) { - addCriterion("create_time >=", value, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeLessThan(Long value) { - addCriterion("create_time <", value, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeLessThanOrEqualTo(Long value) { - addCriterion("create_time <=", value, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeIn(List values) { - addCriterion("create_time in", values, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeNotIn(List values) { - addCriterion("create_time not in", values, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeBetween(Long value1, Long value2) { - addCriterion("create_time between", value1, value2, "createTime"); - return (Criteria) this; - } - - public Criteria andCreateTimeNotBetween(Long value1, Long value2) { - addCriterion("create_time not between", value1, value2, "createTime"); - return (Criteria) this; - } - } - - public static class Criteria extends GeneratedCriteria { - - protected Criteria() { - super(); - } - } - - public static class Criterion { - private String condition; - - private Object value; - - private Object secondValue; - - private boolean noValue; - - private boolean singleValue; - - private boolean betweenValue; - - private boolean listValue; - - private String typeHandler; - - public String getCondition() { - return condition; - } - - public Object getValue() { - return value; - } - - public Object getSecondValue() { - return secondValue; - } - - public boolean isNoValue() { - return noValue; - } - - public boolean isSingleValue() { - return singleValue; - } - - public boolean isBetweenValue() { - return betweenValue; - } - - public boolean isListValue() { - return listValue; - } - - public String getTypeHandler() { - return typeHandler; - } - - protected Criterion(String condition) { - super(); - this.condition = condition; - this.typeHandler = null; - this.noValue = true; - } - - protected Criterion(String condition, Object value, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.typeHandler = typeHandler; - if (value instanceof List) { - this.listValue = true; - } else { - this.singleValue = true; - } - } - - protected Criterion(String condition, Object value) { - this(condition, value, null); - } - - protected Criterion(String condition, Object value, Object secondValue, String typeHandler) { - super(); - this.condition = condition; - this.value = value; - this.secondValue = secondValue; - this.typeHandler = typeHandler; - this.betweenValue = true; - } - - protected Criterion(String condition, Object value, Object secondValue) { - this(condition, value, secondValue, null); - } - } -} \ No newline at end of file diff --git a/backend/src/main/java/io/dataease/base/mapper/DatasetGroupMapper.xml b/backend/src/main/java/io/dataease/base/mapper/DatasetGroupMapper.xml index 536a853c73..fbbf54126b 100644 --- a/backend/src/main/java/io/dataease/base/mapper/DatasetGroupMapper.xml +++ b/backend/src/main/java/io/dataease/base/mapper/DatasetGroupMapper.xml @@ -6,6 +6,7 @@ + @@ -68,7 +69,7 @@ - id, `name`, pid, `level`, create_by, create_time + id, `name`, pid, `level`, `type`, create_by, create_time - select - - distinct - - - from dataset_scene - - - - - order by ${orderByClause} - - - - - delete from dataset_scene - where id = #{id,jdbcType=VARCHAR} - - - delete from dataset_scene - - - - - - insert into dataset_scene (id, `name`, group_id, - create_by, create_time) - values (#{id,jdbcType=VARCHAR}, #{name,jdbcType=VARCHAR}, #{groupId,jdbcType=VARCHAR}, - #{createBy,jdbcType=VARCHAR}, #{createTime,jdbcType=BIGINT}) - - - insert into dataset_scene - - - id, - - - `name`, - - - group_id, - - - create_by, - - - create_time, - - - - - #{id,jdbcType=VARCHAR}, - - - #{name,jdbcType=VARCHAR}, - - - #{groupId,jdbcType=VARCHAR}, - - - #{createBy,jdbcType=VARCHAR}, - - - #{createTime,jdbcType=BIGINT}, - - - - - - update dataset_scene - - - id = #{record.id,jdbcType=VARCHAR}, - - - `name` = #{record.name,jdbcType=VARCHAR}, - - - group_id = #{record.groupId,jdbcType=VARCHAR}, - - - create_by = #{record.createBy,jdbcType=VARCHAR}, - - - create_time = #{record.createTime,jdbcType=BIGINT}, - - - - - - - - update dataset_scene - set id = #{record.id,jdbcType=VARCHAR}, - `name` = #{record.name,jdbcType=VARCHAR}, - group_id = #{record.groupId,jdbcType=VARCHAR}, - create_by = #{record.createBy,jdbcType=VARCHAR}, - create_time = #{record.createTime,jdbcType=BIGINT} - - - - - - update dataset_scene - - - `name` = #{name,jdbcType=VARCHAR}, - - - group_id = #{groupId,jdbcType=VARCHAR}, - - - create_by = #{createBy,jdbcType=VARCHAR}, - - - create_time = #{createTime,jdbcType=BIGINT}, - - - where id = #{id,jdbcType=VARCHAR} - - - update dataset_scene - set `name` = #{name,jdbcType=VARCHAR}, - group_id = #{groupId,jdbcType=VARCHAR}, - create_by = #{createBy,jdbcType=VARCHAR}, - create_time = #{createTime,jdbcType=BIGINT} - where id = #{id,jdbcType=VARCHAR} - - \ No newline at end of file diff --git a/backend/src/main/java/io/dataease/controller/dataset/DataSetGroupController.java b/backend/src/main/java/io/dataease/controller/dataset/DataSetGroupController.java index cfac4320df..a569bfad26 100644 --- a/backend/src/main/java/io/dataease/controller/dataset/DataSetGroupController.java +++ b/backend/src/main/java/io/dataease/controller/dataset/DataSetGroupController.java @@ -1,14 +1,13 @@ package io.dataease.controller.dataset; import io.dataease.base.domain.DatasetGroup; +import io.dataease.controller.request.dataset.DataSetGroupRequest; import io.dataease.dto.dataset.DataSetGroupDTO; import io.dataease.service.dataset.DataSetGroupService; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; +import java.util.List; /** * @Author gin @@ -24,4 +23,14 @@ public class DataSetGroupController { public DataSetGroupDTO save(@RequestBody DatasetGroup datasetGroup) { return dataSetGroupService.save(datasetGroup); } + + @PostMapping("/tree") + public List tree(@RequestBody DataSetGroupRequest datasetGroup) { + return dataSetGroupService.tree(datasetGroup); + } + + @PostMapping("/delete/{id}") + public void tree(@PathVariable String id) { + dataSetGroupService.delete(id); + } } diff --git a/backend/src/main/java/io/dataease/controller/request/dataset/DataSetGroupRequest.java b/backend/src/main/java/io/dataease/controller/request/dataset/DataSetGroupRequest.java new file mode 100644 index 0000000000..77a095c176 --- /dev/null +++ b/backend/src/main/java/io/dataease/controller/request/dataset/DataSetGroupRequest.java @@ -0,0 +1,13 @@ +package io.dataease.controller.request.dataset; + +import io.dataease.base.domain.DatasetGroup; +import lombok.Data; + +/** + * @Author gin + * @Date 2021/2/22 1:30 下午 + */ +@Data +public class DataSetGroupRequest extends DatasetGroup { + private String sort; +} diff --git a/backend/src/main/java/io/dataease/dto/dataset/DataSetGroupDTO.java b/backend/src/main/java/io/dataease/dto/dataset/DataSetGroupDTO.java index 27e7ccc26b..058c0b43f5 100644 --- a/backend/src/main/java/io/dataease/dto/dataset/DataSetGroupDTO.java +++ b/backend/src/main/java/io/dataease/dto/dataset/DataSetGroupDTO.java @@ -3,6 +3,8 @@ package io.dataease.dto.dataset; import io.dataease.base.domain.DatasetGroup; import lombok.Data; +import java.util.List; + /** * @Author gin * @Date 2021/2/20 8:17 下午 @@ -10,4 +12,5 @@ import lombok.Data; @Data public class DataSetGroupDTO extends DatasetGroup { private String label; + private List children; } diff --git a/backend/src/main/java/io/dataease/service/dataset/DataSetGroupService.java b/backend/src/main/java/io/dataease/service/dataset/DataSetGroupService.java index 7218d55312..fa97f5af66 100644 --- a/backend/src/main/java/io/dataease/service/dataset/DataSetGroupService.java +++ b/backend/src/main/java/io/dataease/service/dataset/DataSetGroupService.java @@ -2,13 +2,19 @@ package io.dataease.service.dataset; import com.alibaba.nacos.common.util.UuidUtils; import io.dataease.base.domain.DatasetGroup; +import io.dataease.base.domain.DatasetGroupExample; import io.dataease.base.mapper.DatasetGroupMapper; import io.dataease.commons.utils.BeanUtils; +import io.dataease.controller.request.dataset.DataSetGroupRequest; import io.dataease.dto.dataset.DataSetGroupDTO; +import org.apache.commons.collections.CollectionUtils; import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Service; import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.List; +import java.util.stream.Collectors; /** * @Author gin @@ -32,4 +38,77 @@ public class DataSetGroupService { dataSetGroupDTO.setLabel(dataSetGroupDTO.getName()); return dataSetGroupDTO; } + + public void delete(String id) { + DataSetGroupRequest datasetGroup = new DataSetGroupRequest(); + datasetGroup.setId(id); + List tree = tree(datasetGroup); + List ids = new ArrayList<>(); + getAllId(tree, ids); + DatasetGroupExample datasetGroupExample = new DatasetGroupExample(); + datasetGroupExample.createCriteria().andIdIn(ids); + datasetGroupMapper.deleteByExample(datasetGroupExample); + } + + public List tree(DataSetGroupRequest datasetGroup) { + DatasetGroupExample datasetGroupExample = new DatasetGroupExample(); + DatasetGroupExample.Criteria criteria = datasetGroupExample.createCriteria(); + if (StringUtils.isNotEmpty(datasetGroup.getName())) { + criteria.andNameLike("%" + datasetGroup.getName() + "%"); + } + if (StringUtils.isNotEmpty(datasetGroup.getType())) { + criteria.andTypeEqualTo(datasetGroup.getType()); + } + if (StringUtils.isNotEmpty(datasetGroup.getId())) { + criteria.andIdEqualTo(datasetGroup.getId()); + } else { + criteria.andLevelEqualTo(0); + } + datasetGroupExample.setOrderByClause(datasetGroup.getSort()); + List datasetGroups = datasetGroupMapper.selectByExample(datasetGroupExample); + List DTOs = datasetGroups.stream().map(ele -> { + DataSetGroupDTO dto = new DataSetGroupDTO(); + BeanUtils.copyBean(dto, ele); + dto.setLabel(ele.getName()); + return dto; + }).collect(Collectors.toList()); + getAll(DTOs, datasetGroup); + return DTOs; + } + + public void getAll(List list, DataSetGroupRequest datasetGroup) { + for (DataSetGroupDTO obj : list) { + DatasetGroupExample datasetGroupExample = new DatasetGroupExample(); + DatasetGroupExample.Criteria criteria = datasetGroupExample.createCriteria(); + if (StringUtils.isNotEmpty(datasetGroup.getName())) { + criteria.andNameLike("%" + datasetGroup.getName() + "%"); + } + if (StringUtils.isNotEmpty(datasetGroup.getType())) { + criteria.andTypeEqualTo(datasetGroup.getType()); + } + criteria.andPidEqualTo(obj.getId()); + datasetGroupExample.setOrderByClause(datasetGroup.getSort()); + List datasetGroups = datasetGroupMapper.selectByExample(datasetGroupExample); + List DTOs = datasetGroups.stream().map(ele -> { + DataSetGroupDTO dto = new DataSetGroupDTO(); + BeanUtils.copyBean(dto, ele); + dto.setLabel(ele.getName()); + return dto; + }).collect(Collectors.toList()); + obj.setChildren(DTOs); + if (CollectionUtils.isNotEmpty(DTOs)) { + getAll(DTOs, datasetGroup); + } + } + } + + public List getAllId(List list, List ids) { + for (DataSetGroupDTO dto : list) { + ids.add(dto.getId()); + if (CollectionUtils.isNotEmpty(dto.getChildren())) { + getAllId(dto.getChildren(), ids); + } + } + return ids; + } } diff --git a/backend/src/main/resources/db/migration/V2__metersphere_ddl.sql b/backend/src/main/resources/db/migration/V2__metersphere_ddl.sql index 1743b2210b..0fcce1f2a1 100644 --- a/backend/src/main/resources/db/migration/V2__metersphere_ddl.sql +++ b/backend/src/main/resources/db/migration/V2__metersphere_ddl.sql @@ -340,19 +340,11 @@ CREATE TABLE IF NOT EXISTS `dataset_group` ( `name` varchar(64) NOT NULL COMMENT '名称', `pid` varchar(50) COMMENT '父级ID', `level` int(10) COMMENT '当前分组处于第几级', + `type` varchar(50) COMMENT 'group or scene', `create_by` varchar(50) COMMENT '创建人ID', `create_time` bigint(13) COMMENT '创建时间', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; - -CREATE TABLE IF NOT EXISTS `dataset_scene` ( - `id` varchar(50) NOT NULL COMMENT 'ID', - `name` varchar(64) NOT NULL COMMENT '名称', - `group_id` varchar(50) COMMENT 'DataSet Group ID', - `create_by` varchar(50) COMMENT '创建人ID', - `create_time` bigint(13) COMMENT '创建时间', - PRIMARY KEY (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; -- dataset end diff --git a/frontend/src/business/components/dataset/DataSet.vue b/frontend/src/business/components/dataset/DataSet.vue index 20dda22ca0..7d59ddd3ec 100644 --- a/frontend/src/business/components/dataset/DataSet.vue +++ b/frontend/src/business/components/dataset/DataSet.vue @@ -34,8 +34,8 @@ .ms-aside-container { height: calc(100vh - 40px); padding: 20px; - min-width: 260px; - max-width: 460px; + min-width: 300px; + max-width: 500px; } .ms-main-container { diff --git a/frontend/src/business/components/dataset/group/Group.vue b/frontend/src/business/components/dataset/group/Group.vue index 6d465c331f..8c4a9e22ea 100644 --- a/frontend/src/business/components/dataset/group/Group.vue +++ b/frontend/src/business/components/dataset/group/Group.vue @@ -1,204 +1,364 @@ diff --git a/frontend/src/i18n/en-US.js b/frontend/src/i18n/en-US.js index 76768de603..b0bd700005 100644 --- a/frontend/src/i18n/en-US.js +++ b/frontend/src/i18n/en-US.js @@ -1523,6 +1523,20 @@ export default { datalist:'Data List', add_group:'Add Group', add_scene:'Add Scene', - group:'DataSet Group' + group:'Group', + scene:'Scene', + delete:'Delete', + move_to:'Move', + rename:'Rename', + tips:'Tips', + confirm_delete:'Confirm Delete', + delete_success:'Delete Success', + confirm:'Confirm', + cancel:'Cancel', + search:'Search', + back:'Back', + add_table:'Add Table', + process:'Process', + update:'Update' } }; diff --git a/frontend/src/i18n/zh-CN.js b/frontend/src/i18n/zh-CN.js index 2a3bddda22..8b52e52982 100644 --- a/frontend/src/i18n/zh-CN.js +++ b/frontend/src/i18n/zh-CN.js @@ -1526,6 +1526,20 @@ export default { datalist:'数据列表', add_group:'添加分组', add_scene:'添加场景', - group:'分组' + group:'分组', + scene:'场景', + delete:'删除', + move_to:'移动到', + rename:'重命名', + tips:'提示', + confirm_delete:'确认删除', + delete_success:'删除成功', + confirm:'确认', + cancel:'取消', + search:'搜索', + back:'返回', + add_table:'添加表', + process:'进度', + update:'更新' } }; diff --git a/frontend/src/i18n/zh-TW.js b/frontend/src/i18n/zh-TW.js index f46f0f1161..f4ce65bbc3 100644 --- a/frontend/src/i18n/zh-TW.js +++ b/frontend/src/i18n/zh-TW.js @@ -1524,6 +1524,20 @@ export default { datalist:'數據列表', add_group:'添加分組', add_scene:'添加場景', - group:'分組' + group:'分組', + scene:'場景', + delete:'刪除', + move_to:'移動到', + rename:'重命名', + tips:'提示', + confirm_delete:'確認刪除', + delete_success:'刪除成功', + confirm:'確認', + cancel:'取消', + search:'搜索', + back:'返回', + add_table:'添加表', + process:'進度', + update:'更新' } };