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 new file mode 100644 index 0000000000..a569bfad26 --- /dev/null +++ b/backend/src/main/java/io/dataease/controller/dataset/DataSetGroupController.java @@ -0,0 +1,36 @@ +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.*; + +import javax.annotation.Resource; +import java.util.List; + +/** + * @Author gin + * @Date 2021/2/20 8:29 下午 + */ +@RestController +@RequestMapping("dataset/group") +public class DataSetGroupController { + @Resource + private DataSetGroupService dataSetGroupService; + + @PostMapping("/save") + 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/controller/sys/SysDeptController.java b/backend/src/main/java/io/dataease/controller/sys/SysDeptController.java index 5b62ec3c03..7e53faa408 100644 --- a/backend/src/main/java/io/dataease/controller/sys/SysDeptController.java +++ b/backend/src/main/java/io/dataease/controller/sys/SysDeptController.java @@ -1,6 +1,7 @@ package io.dataease.controller.sys; import io.dataease.base.domain.SysDept; +import io.dataease.controller.ResultHolder; import io.dataease.service.sys.DeptService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -16,7 +17,7 @@ import java.util.List; @RequiredArgsConstructor @Api(tags = "系统:部门管理") @RequestMapping("/api/dept") -public class SysDeptController { +public class SysDeptController extends ResultHolder { @Resource @@ -24,9 +25,9 @@ public class SysDeptController { @ApiOperation("查询部门") @PostMapping("/root") - public List rootData(){ + public ResultHolder rootData(){ List root = deptService.root(); - return root; + return success(root); } @ApiOperation("新增部门") diff --git a/backend/src/main/java/io/dataease/dto/dataset/DataSetGroupDTO.java b/backend/src/main/java/io/dataease/dto/dataset/DataSetGroupDTO.java new file mode 100644 index 0000000000..058c0b43f5 --- /dev/null +++ b/backend/src/main/java/io/dataease/dto/dataset/DataSetGroupDTO.java @@ -0,0 +1,16 @@ +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 下午 + */ +@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 new file mode 100644 index 0000000000..fa97f5af66 --- /dev/null +++ b/backend/src/main/java/io/dataease/service/dataset/DataSetGroupService.java @@ -0,0 +1,114 @@ +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 + * @Date 2021/2/20 8:10 下午 + */ +@Service +public class DataSetGroupService { + @Resource + private DatasetGroupMapper datasetGroupMapper; + + public DataSetGroupDTO save(DatasetGroup datasetGroup) { + if (StringUtils.isEmpty(datasetGroup.getId())) { + datasetGroup.setId(UuidUtils.generateUuid()); + datasetGroup.setCreateTime(System.currentTimeMillis()); + datasetGroupMapper.insert(datasetGroup); + } else { + datasetGroupMapper.updateByPrimaryKey(datasetGroup); + } + DataSetGroupDTO dataSetGroupDTO = new DataSetGroupDTO(); + BeanUtils.copyBean(dataSetGroupDTO, datasetGroup); + 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/package.json b/frontend/package.json index 56c59e3a8b..80e3c509a7 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -46,7 +46,8 @@ "vuedraggable": "^2.24.3", "vuex": "^3.1.2", "xml-js": "^1.6.11", - "yan-progress": "^1.0.3" + "yan-progress": "^1.0.3", + "@riophae/vue-treeselect": "0.4.0" }, "devDependencies": { "@vue/cli-plugin-babel": "^4.1.0", diff --git a/frontend/src/business/App.vue b/frontend/src/business/App.vue index 5d5e6938a6..028a7e623b 100644 --- a/frontend/src/business/App.vue +++ b/frontend/src/business/App.vue @@ -15,7 +15,7 @@ - + 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 e570ce94a9..8c4a9e22ea 100644 --- a/frontend/src/business/components/dataset/group/Group.vue +++ b/frontend/src/business/components/dataset/group/Group.vue @@ -1,156 +1,364 @@ diff --git a/frontend/src/business/components/settings/router.js b/frontend/src/business/components/settings/router.js index 83cbd90284..38ba994e9a 100644 --- a/frontend/src/business/components/settings/router.js +++ b/frontend/src/business/components/settings/router.js @@ -19,7 +19,7 @@ export default { }, { path: 'organization', - component: () => import('@/business/components/settings/system/Organization'), + component: () => import('@/business/components/settings/sys/dept'), meta: {system: true, title: 'commons.organization'} }, // { diff --git a/frontend/src/business/components/settings/sys/dept.vue b/frontend/src/business/components/settings/sys/dept.vue new file mode 100644 index 0000000000..2478c5782d --- /dev/null +++ b/frontend/src/business/components/settings/sys/dept.vue @@ -0,0 +1,633 @@ + + + + + diff --git a/frontend/src/business/components/settings/sys/test.vue b/frontend/src/business/components/settings/sys/test.vue new file mode 100644 index 0000000000..92fa1d07ac --- /dev/null +++ b/frontend/src/business/components/settings/sys/test.vue @@ -0,0 +1,47 @@ + + + + + diff --git a/frontend/src/business/main.js b/frontend/src/business/main.js index 87b3862555..ed78b3c9c7 100644 --- a/frontend/src/business/main.js +++ b/frontend/src/business/main.js @@ -1,5 +1,6 @@ import Vue from 'vue'; import ElementUI from 'element-ui'; +import Fit2CloudUI from 'fit2cloud-ui'; import '../assets/theme/index.css'; import icon from "../common/js/icon"; import filters from "../common/js/filter"; @@ -31,6 +32,9 @@ Vue.use(icon); Vue.use(ElementUI, { i18n: (key, value) => i18n.t(key, value) }); +Vue.use(Fit2CloudUI, { + i18n: (key, value) => i18n.t(key, value) +}); Vue.use(filters); Vue.use(ajax); Vue.use(chart); diff --git a/frontend/src/i18n/en-US.js b/frontend/src/i18n/en-US.js index 9fcaadd8f9..b0bd700005 100644 --- a/frontend/src/i18n/en-US.js +++ b/frontend/src/i18n/en-US.js @@ -1522,6 +1522,21 @@ export default { dataset:{ datalist:'Data List', add_group:'Add Group', - add_scene:'Add Scene' + add_scene:'Add Scene', + 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-TW.js b/frontend/src/i18n/zh-TW.js index 31a9cc3a6f..f4ce65bbc3 100644 --- a/frontend/src/i18n/zh-TW.js +++ b/frontend/src/i18n/zh-TW.js @@ -1523,6 +1523,21 @@ export default { dataset:{ datalist:'數據列表', add_group:'添加分組', - add_scene:'添加場景' + add_scene:'添加場景', + group:'分組', + scene:'場景', + delete:'刪除', + move_to:'移動到', + rename:'重命名', + tips:'提示', + confirm_delete:'確認刪除', + delete_success:'刪除成功', + confirm:'確認', + cancel:'取消', + search:'搜索', + back:'返回', + add_table:'添加表', + process:'進度', + update:'更新' } }; diff --git a/frontend/vue.config.js b/frontend/vue.config.js index 2ead3f8545..747e0670bb 100644 --- a/frontend/vue.config.js +++ b/frontend/vue.config.js @@ -28,7 +28,8 @@ module.exports = { } }, configureWebpack: { - devtool: 'source-map', + // devtool: 'source-map', + devtool: 'eval-source-map', resolve: { alias: { '@': resolve('src')