diff --git a/backend/src/main/java/io/dataease/base/domain/DatasetTableField.java b/backend/src/main/java/io/dataease/base/domain/DatasetTableField.java new file mode 100644 index 0000000000..99f3a2741b --- /dev/null +++ b/backend/src/main/java/io/dataease/base/domain/DatasetTableField.java @@ -0,0 +1,25 @@ +package io.dataease.base.domain; + +import java.io.Serializable; +import lombok.Data; + +@Data +public class DatasetTableField implements Serializable { + private String id; + + private String tableId; + + private String originName; + + private String name; + + private String type; + + private Boolean checked; + + private Integer columnIndex; + + private Long lastSyncTime; + + private static final long serialVersionUID = 1L; +} \ No newline at end of file diff --git a/backend/src/main/java/io/dataease/base/domain/DatasetTableFieldExample.java b/backend/src/main/java/io/dataease/base/domain/DatasetTableFieldExample.java new file mode 100644 index 0000000000..43156b884e --- /dev/null +++ b/backend/src/main/java/io/dataease/base/domain/DatasetTableFieldExample.java @@ -0,0 +1,730 @@ +package io.dataease.base.domain; + +import java.util.ArrayList; +import java.util.List; + +public class DatasetTableFieldExample { + protected String orderByClause; + + protected boolean distinct; + + protected List oredCriteria; + + public DatasetTableFieldExample() { + 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 andTableIdIsNull() { + addCriterion("table_id is null"); + return (Criteria) this; + } + + public Criteria andTableIdIsNotNull() { + addCriterion("table_id is not null"); + return (Criteria) this; + } + + public Criteria andTableIdEqualTo(String value) { + addCriterion("table_id =", value, "tableId"); + return (Criteria) this; + } + + public Criteria andTableIdNotEqualTo(String value) { + addCriterion("table_id <>", value, "tableId"); + return (Criteria) this; + } + + public Criteria andTableIdGreaterThan(String value) { + addCriterion("table_id >", value, "tableId"); + return (Criteria) this; + } + + public Criteria andTableIdGreaterThanOrEqualTo(String value) { + addCriterion("table_id >=", value, "tableId"); + return (Criteria) this; + } + + public Criteria andTableIdLessThan(String value) { + addCriterion("table_id <", value, "tableId"); + return (Criteria) this; + } + + public Criteria andTableIdLessThanOrEqualTo(String value) { + addCriterion("table_id <=", value, "tableId"); + return (Criteria) this; + } + + public Criteria andTableIdLike(String value) { + addCriterion("table_id like", value, "tableId"); + return (Criteria) this; + } + + public Criteria andTableIdNotLike(String value) { + addCriterion("table_id not like", value, "tableId"); + return (Criteria) this; + } + + public Criteria andTableIdIn(List values) { + addCriterion("table_id in", values, "tableId"); + return (Criteria) this; + } + + public Criteria andTableIdNotIn(List values) { + addCriterion("table_id not in", values, "tableId"); + return (Criteria) this; + } + + public Criteria andTableIdBetween(String value1, String value2) { + addCriterion("table_id between", value1, value2, "tableId"); + return (Criteria) this; + } + + public Criteria andTableIdNotBetween(String value1, String value2) { + addCriterion("table_id not between", value1, value2, "tableId"); + return (Criteria) this; + } + + public Criteria andOriginNameIsNull() { + addCriterion("origin_name is null"); + return (Criteria) this; + } + + public Criteria andOriginNameIsNotNull() { + addCriterion("origin_name is not null"); + return (Criteria) this; + } + + public Criteria andOriginNameEqualTo(String value) { + addCriterion("origin_name =", value, "originName"); + return (Criteria) this; + } + + public Criteria andOriginNameNotEqualTo(String value) { + addCriterion("origin_name <>", value, "originName"); + return (Criteria) this; + } + + public Criteria andOriginNameGreaterThan(String value) { + addCriterion("origin_name >", value, "originName"); + return (Criteria) this; + } + + public Criteria andOriginNameGreaterThanOrEqualTo(String value) { + addCriterion("origin_name >=", value, "originName"); + return (Criteria) this; + } + + public Criteria andOriginNameLessThan(String value) { + addCriterion("origin_name <", value, "originName"); + return (Criteria) this; + } + + public Criteria andOriginNameLessThanOrEqualTo(String value) { + addCriterion("origin_name <=", value, "originName"); + return (Criteria) this; + } + + public Criteria andOriginNameLike(String value) { + addCriterion("origin_name like", value, "originName"); + return (Criteria) this; + } + + public Criteria andOriginNameNotLike(String value) { + addCriterion("origin_name not like", value, "originName"); + return (Criteria) this; + } + + public Criteria andOriginNameIn(List values) { + addCriterion("origin_name in", values, "originName"); + return (Criteria) this; + } + + public Criteria andOriginNameNotIn(List values) { + addCriterion("origin_name not in", values, "originName"); + return (Criteria) this; + } + + public Criteria andOriginNameBetween(String value1, String value2) { + addCriterion("origin_name between", value1, value2, "originName"); + return (Criteria) this; + } + + public Criteria andOriginNameNotBetween(String value1, String value2) { + addCriterion("origin_name not between", value1, value2, "originName"); + 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 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 andCheckedIsNull() { + addCriterion("`checked` is null"); + return (Criteria) this; + } + + public Criteria andCheckedIsNotNull() { + addCriterion("`checked` is not null"); + return (Criteria) this; + } + + public Criteria andCheckedEqualTo(Boolean value) { + addCriterion("`checked` =", value, "checked"); + return (Criteria) this; + } + + public Criteria andCheckedNotEqualTo(Boolean value) { + addCriterion("`checked` <>", value, "checked"); + return (Criteria) this; + } + + public Criteria andCheckedGreaterThan(Boolean value) { + addCriterion("`checked` >", value, "checked"); + return (Criteria) this; + } + + public Criteria andCheckedGreaterThanOrEqualTo(Boolean value) { + addCriterion("`checked` >=", value, "checked"); + return (Criteria) this; + } + + public Criteria andCheckedLessThan(Boolean value) { + addCriterion("`checked` <", value, "checked"); + return (Criteria) this; + } + + public Criteria andCheckedLessThanOrEqualTo(Boolean value) { + addCriterion("`checked` <=", value, "checked"); + return (Criteria) this; + } + + public Criteria andCheckedIn(List values) { + addCriterion("`checked` in", values, "checked"); + return (Criteria) this; + } + + public Criteria andCheckedNotIn(List values) { + addCriterion("`checked` not in", values, "checked"); + return (Criteria) this; + } + + public Criteria andCheckedBetween(Boolean value1, Boolean value2) { + addCriterion("`checked` between", value1, value2, "checked"); + return (Criteria) this; + } + + public Criteria andCheckedNotBetween(Boolean value1, Boolean value2) { + addCriterion("`checked` not between", value1, value2, "checked"); + return (Criteria) this; + } + + public Criteria andColumnIndexIsNull() { + addCriterion("column_index is null"); + return (Criteria) this; + } + + public Criteria andColumnIndexIsNotNull() { + addCriterion("column_index is not null"); + return (Criteria) this; + } + + public Criteria andColumnIndexEqualTo(Integer value) { + addCriterion("column_index =", value, "columnIndex"); + return (Criteria) this; + } + + public Criteria andColumnIndexNotEqualTo(Integer value) { + addCriterion("column_index <>", value, "columnIndex"); + return (Criteria) this; + } + + public Criteria andColumnIndexGreaterThan(Integer value) { + addCriterion("column_index >", value, "columnIndex"); + return (Criteria) this; + } + + public Criteria andColumnIndexGreaterThanOrEqualTo(Integer value) { + addCriterion("column_index >=", value, "columnIndex"); + return (Criteria) this; + } + + public Criteria andColumnIndexLessThan(Integer value) { + addCriterion("column_index <", value, "columnIndex"); + return (Criteria) this; + } + + public Criteria andColumnIndexLessThanOrEqualTo(Integer value) { + addCriterion("column_index <=", value, "columnIndex"); + return (Criteria) this; + } + + public Criteria andColumnIndexIn(List values) { + addCriterion("column_index in", values, "columnIndex"); + return (Criteria) this; + } + + public Criteria andColumnIndexNotIn(List values) { + addCriterion("column_index not in", values, "columnIndex"); + return (Criteria) this; + } + + public Criteria andColumnIndexBetween(Integer value1, Integer value2) { + addCriterion("column_index between", value1, value2, "columnIndex"); + return (Criteria) this; + } + + public Criteria andColumnIndexNotBetween(Integer value1, Integer value2) { + addCriterion("column_index not between", value1, value2, "columnIndex"); + return (Criteria) this; + } + + public Criteria andLastSyncTimeIsNull() { + addCriterion("last_sync_time is null"); + return (Criteria) this; + } + + public Criteria andLastSyncTimeIsNotNull() { + addCriterion("last_sync_time is not null"); + return (Criteria) this; + } + + public Criteria andLastSyncTimeEqualTo(Long value) { + addCriterion("last_sync_time =", value, "lastSyncTime"); + return (Criteria) this; + } + + public Criteria andLastSyncTimeNotEqualTo(Long value) { + addCriterion("last_sync_time <>", value, "lastSyncTime"); + return (Criteria) this; + } + + public Criteria andLastSyncTimeGreaterThan(Long value) { + addCriterion("last_sync_time >", value, "lastSyncTime"); + return (Criteria) this; + } + + public Criteria andLastSyncTimeGreaterThanOrEqualTo(Long value) { + addCriterion("last_sync_time >=", value, "lastSyncTime"); + return (Criteria) this; + } + + public Criteria andLastSyncTimeLessThan(Long value) { + addCriterion("last_sync_time <", value, "lastSyncTime"); + return (Criteria) this; + } + + public Criteria andLastSyncTimeLessThanOrEqualTo(Long value) { + addCriterion("last_sync_time <=", value, "lastSyncTime"); + return (Criteria) this; + } + + public Criteria andLastSyncTimeIn(List values) { + addCriterion("last_sync_time in", values, "lastSyncTime"); + return (Criteria) this; + } + + public Criteria andLastSyncTimeNotIn(List values) { + addCriterion("last_sync_time not in", values, "lastSyncTime"); + return (Criteria) this; + } + + public Criteria andLastSyncTimeBetween(Long value1, Long value2) { + addCriterion("last_sync_time between", value1, value2, "lastSyncTime"); + return (Criteria) this; + } + + public Criteria andLastSyncTimeNotBetween(Long value1, Long value2) { + addCriterion("last_sync_time not between", value1, value2, "lastSyncTime"); + 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/DatasetTableFieldMapper.java b/backend/src/main/java/io/dataease/base/mapper/DatasetTableFieldMapper.java new file mode 100644 index 0000000000..a22f2e1786 --- /dev/null +++ b/backend/src/main/java/io/dataease/base/mapper/DatasetTableFieldMapper.java @@ -0,0 +1,30 @@ +package io.dataease.base.mapper; + +import io.dataease.base.domain.DatasetTableField; +import io.dataease.base.domain.DatasetTableFieldExample; +import java.util.List; +import org.apache.ibatis.annotations.Param; + +public interface DatasetTableFieldMapper { + long countByExample(DatasetTableFieldExample example); + + int deleteByExample(DatasetTableFieldExample example); + + int deleteByPrimaryKey(String id); + + int insert(DatasetTableField record); + + int insertSelective(DatasetTableField record); + + List selectByExample(DatasetTableFieldExample example); + + DatasetTableField selectByPrimaryKey(String id); + + int updateByExampleSelective(@Param("record") DatasetTableField record, @Param("example") DatasetTableFieldExample example); + + int updateByExample(@Param("record") DatasetTableField record, @Param("example") DatasetTableFieldExample example); + + int updateByPrimaryKeySelective(DatasetTableField record); + + int updateByPrimaryKey(DatasetTableField record); +} \ No newline at end of file diff --git a/backend/src/main/java/io/dataease/base/mapper/DatasetTableFieldMapper.xml b/backend/src/main/java/io/dataease/base/mapper/DatasetTableFieldMapper.xml new file mode 100644 index 0000000000..d8704dc80c --- /dev/null +++ b/backend/src/main/java/io/dataease/base/mapper/DatasetTableFieldMapper.xml @@ -0,0 +1,258 @@ + + + + + + + + + + + + + + + + + + + + + + and ${criterion.condition} + + + and ${criterion.condition} #{criterion.value} + + + and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} + + + and ${criterion.condition} + + #{listItem} + + + + + + + + + + + + + + + + + + and ${criterion.condition} + + + and ${criterion.condition} #{criterion.value} + + + and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} + + + and ${criterion.condition} + + #{listItem} + + + + + + + + + + + id, table_id, origin_name, `name`, `type`, `checked`, column_index, last_sync_time + + + + + delete from dataset_table_field + where id = #{id,jdbcType=VARCHAR} + + + delete from dataset_table_field + + + + + + insert into dataset_table_field (id, table_id, origin_name, + `name`, `type`, `checked`, column_index, + last_sync_time) + values (#{id,jdbcType=VARCHAR}, #{tableId,jdbcType=VARCHAR}, #{originName,jdbcType=VARCHAR}, + #{name,jdbcType=VARCHAR}, #{type,jdbcType=VARCHAR}, #{checked,jdbcType=BIT}, #{columnIndex,jdbcType=INTEGER}, + #{lastSyncTime,jdbcType=BIGINT}) + + + insert into dataset_table_field + + + id, + + + table_id, + + + origin_name, + + + `name`, + + + `type`, + + + `checked`, + + + column_index, + + + last_sync_time, + + + + + #{id,jdbcType=VARCHAR}, + + + #{tableId,jdbcType=VARCHAR}, + + + #{originName,jdbcType=VARCHAR}, + + + #{name,jdbcType=VARCHAR}, + + + #{type,jdbcType=VARCHAR}, + + + #{checked,jdbcType=BIT}, + + + #{columnIndex,jdbcType=INTEGER}, + + + #{lastSyncTime,jdbcType=BIGINT}, + + + + + + update dataset_table_field + + + id = #{record.id,jdbcType=VARCHAR}, + + + table_id = #{record.tableId,jdbcType=VARCHAR}, + + + origin_name = #{record.originName,jdbcType=VARCHAR}, + + + `name` = #{record.name,jdbcType=VARCHAR}, + + + `type` = #{record.type,jdbcType=VARCHAR}, + + + `checked` = #{record.checked,jdbcType=BIT}, + + + column_index = #{record.columnIndex,jdbcType=INTEGER}, + + + last_sync_time = #{record.lastSyncTime,jdbcType=BIGINT}, + + + + + + + + update dataset_table_field + set id = #{record.id,jdbcType=VARCHAR}, + table_id = #{record.tableId,jdbcType=VARCHAR}, + origin_name = #{record.originName,jdbcType=VARCHAR}, + `name` = #{record.name,jdbcType=VARCHAR}, + `type` = #{record.type,jdbcType=VARCHAR}, + `checked` = #{record.checked,jdbcType=BIT}, + column_index = #{record.columnIndex,jdbcType=INTEGER}, + last_sync_time = #{record.lastSyncTime,jdbcType=BIGINT} + + + + + + update dataset_table_field + + + table_id = #{tableId,jdbcType=VARCHAR}, + + + origin_name = #{originName,jdbcType=VARCHAR}, + + + `name` = #{name,jdbcType=VARCHAR}, + + + `type` = #{type,jdbcType=VARCHAR}, + + + `checked` = #{checked,jdbcType=BIT}, + + + column_index = #{columnIndex,jdbcType=INTEGER}, + + + last_sync_time = #{lastSyncTime,jdbcType=BIGINT}, + + + where id = #{id,jdbcType=VARCHAR} + + + update dataset_table_field + set table_id = #{tableId,jdbcType=VARCHAR}, + origin_name = #{originName,jdbcType=VARCHAR}, + `name` = #{name,jdbcType=VARCHAR}, + `type` = #{type,jdbcType=VARCHAR}, + `checked` = #{checked,jdbcType=BIT}, + column_index = #{columnIndex,jdbcType=INTEGER}, + last_sync_time = #{lastSyncTime,jdbcType=BIGINT} + where id = #{id,jdbcType=VARCHAR} + + \ No newline at end of file diff --git a/backend/src/main/java/io/dataease/controller/dataset/DataSetTableController.java b/backend/src/main/java/io/dataease/controller/dataset/DataSetTableController.java index 8d7a15d520..1543f54a0b 100644 --- a/backend/src/main/java/io/dataease/controller/dataset/DataSetTableController.java +++ b/backend/src/main/java/io/dataease/controller/dataset/DataSetTableController.java @@ -21,12 +21,12 @@ public class DataSetTableController { private DataSetTableService dataSetTableService; @PostMapping("batchAdd") - public void batchAdd(@RequestBody List datasetTable) { + public void batchAdd(@RequestBody List datasetTable) throws Exception { dataSetTableService.batchInsert(datasetTable); } @PostMapping("update") - public DatasetTable save(@RequestBody DatasetTable datasetTable) { + public DatasetTable save(@RequestBody DatasetTable datasetTable) throws Exception { return dataSetTableService.save(datasetTable); } diff --git a/backend/src/main/java/io/dataease/controller/dataset/DataSetTableFieldController.java b/backend/src/main/java/io/dataease/controller/dataset/DataSetTableFieldController.java new file mode 100644 index 0000000000..691948db33 --- /dev/null +++ b/backend/src/main/java/io/dataease/controller/dataset/DataSetTableFieldController.java @@ -0,0 +1,31 @@ +package io.dataease.controller.dataset; + +import io.dataease.base.domain.DatasetTableField; +import io.dataease.service.dataset.DataSetTableFieldsService; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import java.util.List; + +/** + * @Author gin + * @Date 2021/2/24 4:28 下午 + */ +@RestController +@RequestMapping("/dataset/field") +public class DataSetTableFieldController { + @Resource + private DataSetTableFieldsService dataSetTableFieldsService; + + @PostMapping("list/{tableId}") + public List list(@PathVariable String tableId) { + DatasetTableField datasetTableField = new DatasetTableField(); + datasetTableField.setTableId(tableId); + return dataSetTableFieldsService.list(datasetTableField); + } + + @PostMapping("batchEdit") + public void batchEdit(@RequestBody List list) { + dataSetTableFieldsService.batchEdit(list); + } +} diff --git a/backend/src/main/java/io/dataease/service/dataset/DataSetTableFieldsService.java b/backend/src/main/java/io/dataease/service/dataset/DataSetTableFieldsService.java new file mode 100644 index 0000000000..c62d53483f --- /dev/null +++ b/backend/src/main/java/io/dataease/service/dataset/DataSetTableFieldsService.java @@ -0,0 +1,57 @@ +package io.dataease.service.dataset; + +import com.alibaba.nacos.common.util.UuidUtils; +import io.dataease.base.domain.DatasetTableField; +import io.dataease.base.domain.DatasetTableFieldExample; +import io.dataease.base.mapper.DatasetTableFieldMapper; +import org.apache.commons.lang3.ObjectUtils; +import org.apache.commons.lang3.StringUtils; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; + +/** + * @Author gin + * @Date 2021/2/24 2:03 下午 + */ +@Service +public class DataSetTableFieldsService { + @Resource + private DatasetTableFieldMapper datasetTableFieldMapper; + + public void batchEdit(List list) { + for (DatasetTableField field : list) { + save(field); + } + } + + public DatasetTableField save(DatasetTableField datasetTableField) { + if (StringUtils.isEmpty(datasetTableField.getId())) { + datasetTableField.setId(UuidUtils.generateUuid()); + datasetTableFieldMapper.insert(datasetTableField); + } else { + datasetTableFieldMapper.updateByPrimaryKey(datasetTableField); + } + return datasetTableField; + } + + public List list(DatasetTableField datasetTableField) { + DatasetTableFieldExample datasetTableFieldExample = new DatasetTableFieldExample(); + DatasetTableFieldExample.Criteria criteria = datasetTableFieldExample.createCriteria(); + if (StringUtils.isNotEmpty(datasetTableField.getTableId())) { + criteria.andTableIdEqualTo(datasetTableField.getTableId()); + } + if (ObjectUtils.isNotEmpty(datasetTableField.getChecked())) { + criteria.andCheckedEqualTo(datasetTableField.getChecked()); + } + datasetTableFieldExample.setOrderByClause("column_index asc"); + return datasetTableFieldMapper.selectByExample(datasetTableFieldExample); + } + + public void deleteByTableId(String tableId) { + DatasetTableFieldExample datasetTableFieldExample = new DatasetTableFieldExample(); + datasetTableFieldExample.createCriteria().andTableIdEqualTo(tableId); + datasetTableFieldMapper.deleteByExample(datasetTableFieldExample); + } +} diff --git a/backend/src/main/java/io/dataease/service/dataset/DataSetTableService.java b/backend/src/main/java/io/dataease/service/dataset/DataSetTableService.java index 05ab6fd49e..67b66df352 100644 --- a/backend/src/main/java/io/dataease/service/dataset/DataSetTableService.java +++ b/backend/src/main/java/io/dataease/service/dataset/DataSetTableService.java @@ -6,22 +6,26 @@ import com.alibaba.nacos.common.util.UuidUtils; import com.google.gson.Gson; import io.dataease.base.domain.DatasetTable; import io.dataease.base.domain.DatasetTableExample; +import io.dataease.base.domain.DatasetTableField; import io.dataease.base.domain.Datasource; import io.dataease.base.mapper.DatasetTableMapper; import io.dataease.base.mapper.DatasourceMapper; +import io.dataease.commons.utils.BeanUtils; +import io.dataease.commons.utils.SessionUtils; import io.dataease.controller.request.dataset.DataSetTableRequest; import io.dataease.datasource.dto.TableFiled; import io.dataease.datasource.provider.DatasourceProvider; import io.dataease.datasource.provider.ProviderFactory; import io.dataease.datasource.request.DatasourceRequest; import io.dataease.dto.dataset.DataTableInfoDTO; +import jnr.ffi.Struct; +import org.apache.commons.collections.CollectionUtils; import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Service; import javax.annotation.Resource; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; +import java.util.stream.Collectors; /** * @Author gin @@ -33,14 +37,16 @@ public class DataSetTableService { private DatasetTableMapper datasetTableMapper; @Resource private DatasourceMapper datasourceMapper; + @Resource + private DataSetTableFieldsService dataSetTableFieldsService; - public void batchInsert(List datasetTable) { + public void batchInsert(List datasetTable) throws Exception { for (DatasetTable table : datasetTable) { save(table); } } - public DatasetTable save(DatasetTable datasetTable) { + public DatasetTable save(DatasetTable datasetTable) throws Exception { if (StringUtils.isEmpty(datasetTable.getId())) { datasetTable.setId(UuidUtils.generateUuid()); datasetTable.setCreateTime(System.currentTimeMillis()); @@ -49,7 +55,11 @@ public class DataSetTableService { dataTableInfoDTO.setTable(datasetTable.getName()); } datasetTable.setInfo(new Gson().toJson(dataTableInfoDTO)); - datasetTableMapper.insert(datasetTable); + int insert = datasetTableMapper.insert(datasetTable); + // 添加表成功后,获取当前表字段和类型,抽象到dataease数据库 + if (insert == 1) { + saveTableField(datasetTable); + } } else { datasetTableMapper.updateByPrimaryKeyWithBLOBs(datasetTable); } @@ -58,6 +68,7 @@ public class DataSetTableService { public void delete(String id) { datasetTableMapper.deleteByPrimaryKey(id); + dataSetTableFieldsService.deleteByTableId(id); } public List list(DataSetTableRequest dataSetTableRequest) { @@ -98,25 +109,58 @@ public class DataSetTableService { DatasourceRequest datasourceRequest = new DatasourceRequest(); datasourceRequest.setDatasource(ds); String table = new Gson().fromJson(dataSetTableRequest.getInfo(), DataTableInfoDTO.class).getTable(); - datasourceRequest.setTable(table); - datasourceRequest.setQuery("SELECT * FROM " + table + " LIMIT 0,10;"); +// datasourceRequest.setTable(table); - List fields = datasourceProvider.getTableFileds(datasourceRequest); - List data = datasourceProvider.getData(datasourceRequest); + DatasetTableField datasetTableField = new DatasetTableField(); + datasetTableField.setTableId(dataSetTableRequest.getId()); + datasetTableField.setChecked(Boolean.TRUE); + List fields = dataSetTableFieldsService.list(datasetTableField); + + String[] fieldArray = fields.stream().map(DatasetTableField::getOriginName).toArray(String[]::new); + datasourceRequest.setQuery("SELECT " + StringUtils.join(fieldArray, ",") + " FROM " + table + " LIMIT 0,10;"); + + List data = new ArrayList<>(); + try { + data.addAll(datasourceProvider.getData(datasourceRequest)); + } catch (Exception e) { + } JSONArray jsonArray = new JSONArray(); - data.forEach(ele -> { - JSONObject jsonObject = new JSONObject(); - for (int i = 0; i < ele.length; i++) { - jsonObject.put(fields.get(i).getFieldName(), ele[i]); - } - jsonArray.add(jsonObject); - }); + if (CollectionUtils.isNotEmpty(data)) { + data.forEach(ele -> { + JSONObject jsonObject = new JSONObject(); + for (int i = 0; i < ele.length; i++) { + jsonObject.put(fieldArray[i], ele[i]); + } + jsonArray.add(jsonObject); + }); + } Map map = new HashMap<>(); - map.put("fields",fields); - map.put("data",jsonArray); + map.put("fields", fields); + map.put("data", jsonArray); return map; } + + public void saveTableField(DatasetTable datasetTable) throws Exception { + DataSetTableRequest dataSetTableRequest = new DataSetTableRequest(); + BeanUtils.copyBean(dataSetTableRequest, datasetTable); + List fields = getFields(dataSetTableRequest); + long syncTime = System.currentTimeMillis(); + if (CollectionUtils.isNotEmpty(fields)) { + for (int i = 0; i < fields.size(); i++) { + TableFiled filed = fields.get(i); + DatasetTableField datasetTableField = new DatasetTableField(); + datasetTableField.setTableId(datasetTable.getId()); + datasetTableField.setOriginName(filed.getFieldName()); + datasetTableField.setName(filed.getRemarks()); + datasetTableField.setType(filed.getFieldType()); + datasetTableField.setChecked(true); + datasetTableField.setColumnIndex(i); + datasetTableField.setLastSyncTime(syncTime); + dataSetTableFieldsService.save(datasetTableField); + } + } + } } diff --git a/backend/src/main/resources/db/migration/V9__dataset_tables.sql b/backend/src/main/resources/db/migration/V9__dataset_tables.sql index f69e8d94ac..8d5abde829 100644 --- a/backend/src/main/resources/db/migration/V9__dataset_tables.sql +++ b/backend/src/main/resources/db/migration/V9__dataset_tables.sql @@ -1,12 +1,27 @@ -CREATE TABLE IF NOT EXISTS `dataset_table` ( - `id` varchar(50) NOT NULL COMMENT 'ID', - `name` varchar(64) NOT NULL COMMENT '表名称', - `scene_id` varchar(50) NOT NULL COMMENT '场景ID', - `data_source_id` varchar(50) NOT NULL COMMENT '数据源ID', - `type` varchar(50) COMMENT 'db,sql,excel,custom', - `info` longtext COMMENT '表原始信息', - `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_table` +( + `id` varchar(50) NOT NULL COMMENT 'ID', + `name` varchar(64) NOT NULL COMMENT '表名称', + `scene_id` varchar(50) NOT NULL COMMENT '场景ID', + `data_source_id` varchar(50) NOT NULL COMMENT '数据源ID', + `type` varchar(50) COMMENT 'db,sql,excel,custom', + `info` longtext COMMENT '表原始信息', + `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_table_field` +( + `id` varchar(50) NOT NULL COMMENT 'ID', + `table_id` varchar(50) NOT NULL COMMENT '表ID', + `origin_name` varchar(255) NOT NULL COMMENT '原始名', + `name` varchar(255) NOT NULL COMMENT '字段名', + `type` varchar(50) NOT NULL COMMENT '字段类型', + `checked` tinyint(1) NOT NULL DEFAULT true COMMENT '是否选中', + `column_index` int(10) NOT NULL COMMENT '列位置', + `last_sync_time` bigint(13) COMMENT '同步时间', + PRIMARY KEY (`id`) +) ENGINE = InnoDB + DEFAULT CHARSET = utf8mb4; diff --git a/frontend/src/business/components/dataset/data/TabDataPreview.vue b/frontend/src/business/components/dataset/data/TabDataPreview.vue index 8a8e52eb13..4fb3f12c14 100644 --- a/frontend/src/business/components/dataset/data/TabDataPreview.vue +++ b/frontend/src/business/components/dataset/data/TabDataPreview.vue @@ -6,11 +6,11 @@ border style="width: 100%;"> + :key="field.originName" + :prop="field.originName" + :label="field.name"> @@ -26,23 +26,6 @@ export default { name: "TabDataPreview", data() { return { - tableData: [{ - date: '2016-05-02', - name: '王小虎', - address: '上海市普陀区金沙江路 1518 弄' - }, { - date: '2016-05-04', - name: '王小虎', - address: '上海市普陀区金沙江路 1517 弄' - }, { - date: '2016-05-01', - name: '王小虎', - address: '上海市普陀区金沙江路 1519 弄' - }, { - date: '2016-05-03', - name: '王小虎', - address: '上海市普陀区金沙江路 1516 弄' - }] } }, computed: {}, diff --git a/frontend/src/business/components/dataset/data/ViewTable.vue b/frontend/src/business/components/dataset/data/ViewTable.vue index 2d3b00c659..728f8d6a22 100644 --- a/frontend/src/business/components/dataset/data/ViewTable.vue +++ b/frontend/src/business/components/dataset/data/ViewTable.vue @@ -7,10 +7,10 @@ {{table.name}} - + {{$t('dataset.edit')}} - + {{$t('dataset.create_view')}} @@ -31,6 +31,32 @@ tab4 + + + + + + + + + + + + + + + + + + + @@ -43,17 +69,18 @@ export default { components: {TabDataPreview}, data() { return { + editField: false, table: { name: '' }, fields: [], data: [], tabActive: 'dataPreview', + tableFields: [] } }, computed: { tableId() { - console.log(this.$store.state.dataset.table); this.initTable(this.$store.state.dataset.table); return this.$store.state.dataset.table; } @@ -90,16 +117,28 @@ export default { }, initTableFields() { - if (this.table.id) { - this.$post('/dataset/table/getFields', this.table, response => { - }); - } + this.$post('/dataset/field/list/' + this.table.id, null, response => { + this.tableFields = response.data; + }); }, - initTableData() { - if (this.table.id) { - this.$post('/dataset/table/getData', this.table, response => { - }); - } + + edit() { + this.editField = true; + // 请求当前表的所有字段,进行编辑 + this.initTableFields(); + }, + + saveEdit() { + console.log(this.tableFields); + this.$post('/dataset/field/batchEdit', this.tableFields, response => { + this.closeEdit(); + this.initTable(this.table.id); + }) + }, + + closeEdit() { + this.editField = false; + this.tableFields = []; }, resetTable() { diff --git a/frontend/src/business/components/dataset/group/Group.vue b/frontend/src/business/components/dataset/group/Group.vue index f3c959b744..40c4fb920e 100644 --- a/frontend/src/business/components/dataset/group/Group.vue +++ b/frontend/src/business/components/dataset/group/Group.vue @@ -178,7 +178,7 @@ - +