feat(数据集): 表字段抽象,字段编辑、选择

This commit is contained in:
junjie 2021-02-24 17:14:37 +08:00
parent 586916a4b7
commit ab8d232169
15 changed files with 1295 additions and 69 deletions

View File

@ -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;
}

View File

@ -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<Criteria> oredCriteria;
public DatasetTableFieldExample() {
oredCriteria = new ArrayList<Criteria>();
}
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<Criteria> 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<Criterion> criteria;
protected GeneratedCriteria() {
super();
criteria = new ArrayList<Criterion>();
}
public boolean isValid() {
return criteria.size() > 0;
}
public List<Criterion> getAllCriteria() {
return criteria;
}
public List<Criterion> 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<String> values) {
addCriterion("id in", values, "id");
return (Criteria) this;
}
public Criteria andIdNotIn(List<String> 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<String> values) {
addCriterion("table_id in", values, "tableId");
return (Criteria) this;
}
public Criteria andTableIdNotIn(List<String> 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<String> values) {
addCriterion("origin_name in", values, "originName");
return (Criteria) this;
}
public Criteria andOriginNameNotIn(List<String> 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<String> values) {
addCriterion("`name` in", values, "name");
return (Criteria) this;
}
public Criteria andNameNotIn(List<String> 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<String> values) {
addCriterion("`type` in", values, "type");
return (Criteria) this;
}
public Criteria andTypeNotIn(List<String> 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<Boolean> values) {
addCriterion("`checked` in", values, "checked");
return (Criteria) this;
}
public Criteria andCheckedNotIn(List<Boolean> 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<Integer> values) {
addCriterion("column_index in", values, "columnIndex");
return (Criteria) this;
}
public Criteria andColumnIndexNotIn(List<Integer> 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<Long> values) {
addCriterion("last_sync_time in", values, "lastSyncTime");
return (Criteria) this;
}
public Criteria andLastSyncTimeNotIn(List<Long> 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);
}
}
}

View File

@ -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<DatasetTableField> 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);
}

View File

@ -0,0 +1,258 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="io.dataease.base.mapper.DatasetTableFieldMapper">
<resultMap id="BaseResultMap" type="io.dataease.base.domain.DatasetTableField">
<id column="id" jdbcType="VARCHAR" property="id" />
<result column="table_id" jdbcType="VARCHAR" property="tableId" />
<result column="origin_name" jdbcType="VARCHAR" property="originName" />
<result column="name" jdbcType="VARCHAR" property="name" />
<result column="type" jdbcType="VARCHAR" property="type" />
<result column="checked" jdbcType="BIT" property="checked" />
<result column="column_index" jdbcType="INTEGER" property="columnIndex" />
<result column="last_sync_time" jdbcType="BIGINT" property="lastSyncTime" />
</resultMap>
<sql id="Example_Where_Clause">
<where>
<foreach collection="oredCriteria" item="criteria" separator="or">
<if test="criteria.valid">
<trim prefix="(" prefixOverrides="and" suffix=")">
<foreach collection="criteria.criteria" item="criterion">
<choose>
<when test="criterion.noValue">
and ${criterion.condition}
</when>
<when test="criterion.singleValue">
and ${criterion.condition} #{criterion.value}
</when>
<when test="criterion.betweenValue">
and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
</when>
<when test="criterion.listValue">
and ${criterion.condition}
<foreach close=")" collection="criterion.value" item="listItem" open="(" separator=",">
#{listItem}
</foreach>
</when>
</choose>
</foreach>
</trim>
</if>
</foreach>
</where>
</sql>
<sql id="Update_By_Example_Where_Clause">
<where>
<foreach collection="example.oredCriteria" item="criteria" separator="or">
<if test="criteria.valid">
<trim prefix="(" prefixOverrides="and" suffix=")">
<foreach collection="criteria.criteria" item="criterion">
<choose>
<when test="criterion.noValue">
and ${criterion.condition}
</when>
<when test="criterion.singleValue">
and ${criterion.condition} #{criterion.value}
</when>
<when test="criterion.betweenValue">
and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
</when>
<when test="criterion.listValue">
and ${criterion.condition}
<foreach close=")" collection="criterion.value" item="listItem" open="(" separator=",">
#{listItem}
</foreach>
</when>
</choose>
</foreach>
</trim>
</if>
</foreach>
</where>
</sql>
<sql id="Base_Column_List">
id, table_id, origin_name, `name`, `type`, `checked`, column_index, last_sync_time
</sql>
<select id="selectByExample" parameterType="io.dataease.base.domain.DatasetTableFieldExample" resultMap="BaseResultMap">
select
<if test="distinct">
distinct
</if>
<include refid="Base_Column_List" />
from dataset_table_field
<if test="_parameter != null">
<include refid="Example_Where_Clause" />
</if>
<if test="orderByClause != null">
order by ${orderByClause}
</if>
</select>
<select id="selectByPrimaryKey" parameterType="java.lang.String" resultMap="BaseResultMap">
select
<include refid="Base_Column_List" />
from dataset_table_field
where id = #{id,jdbcType=VARCHAR}
</select>
<delete id="deleteByPrimaryKey" parameterType="java.lang.String">
delete from dataset_table_field
where id = #{id,jdbcType=VARCHAR}
</delete>
<delete id="deleteByExample" parameterType="io.dataease.base.domain.DatasetTableFieldExample">
delete from dataset_table_field
<if test="_parameter != null">
<include refid="Example_Where_Clause" />
</if>
</delete>
<insert id="insert" parameterType="io.dataease.base.domain.DatasetTableField">
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>
<insert id="insertSelective" parameterType="io.dataease.base.domain.DatasetTableField">
insert into dataset_table_field
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="id != null">
id,
</if>
<if test="tableId != null">
table_id,
</if>
<if test="originName != null">
origin_name,
</if>
<if test="name != null">
`name`,
</if>
<if test="type != null">
`type`,
</if>
<if test="checked != null">
`checked`,
</if>
<if test="columnIndex != null">
column_index,
</if>
<if test="lastSyncTime != null">
last_sync_time,
</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="id != null">
#{id,jdbcType=VARCHAR},
</if>
<if test="tableId != null">
#{tableId,jdbcType=VARCHAR},
</if>
<if test="originName != null">
#{originName,jdbcType=VARCHAR},
</if>
<if test="name != null">
#{name,jdbcType=VARCHAR},
</if>
<if test="type != null">
#{type,jdbcType=VARCHAR},
</if>
<if test="checked != null">
#{checked,jdbcType=BIT},
</if>
<if test="columnIndex != null">
#{columnIndex,jdbcType=INTEGER},
</if>
<if test="lastSyncTime != null">
#{lastSyncTime,jdbcType=BIGINT},
</if>
</trim>
</insert>
<select id="countByExample" parameterType="io.dataease.base.domain.DatasetTableFieldExample" resultType="java.lang.Long">
select count(*) from dataset_table_field
<if test="_parameter != null">
<include refid="Example_Where_Clause" />
</if>
</select>
<update id="updateByExampleSelective" parameterType="map">
update dataset_table_field
<set>
<if test="record.id != null">
id = #{record.id,jdbcType=VARCHAR},
</if>
<if test="record.tableId != null">
table_id = #{record.tableId,jdbcType=VARCHAR},
</if>
<if test="record.originName != null">
origin_name = #{record.originName,jdbcType=VARCHAR},
</if>
<if test="record.name != null">
`name` = #{record.name,jdbcType=VARCHAR},
</if>
<if test="record.type != null">
`type` = #{record.type,jdbcType=VARCHAR},
</if>
<if test="record.checked != null">
`checked` = #{record.checked,jdbcType=BIT},
</if>
<if test="record.columnIndex != null">
column_index = #{record.columnIndex,jdbcType=INTEGER},
</if>
<if test="record.lastSyncTime != null">
last_sync_time = #{record.lastSyncTime,jdbcType=BIGINT},
</if>
</set>
<if test="_parameter != null">
<include refid="Update_By_Example_Where_Clause" />
</if>
</update>
<update id="updateByExample" parameterType="map">
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}
<if test="_parameter != null">
<include refid="Update_By_Example_Where_Clause" />
</if>
</update>
<update id="updateByPrimaryKeySelective" parameterType="io.dataease.base.domain.DatasetTableField">
update dataset_table_field
<set>
<if test="tableId != null">
table_id = #{tableId,jdbcType=VARCHAR},
</if>
<if test="originName != null">
origin_name = #{originName,jdbcType=VARCHAR},
</if>
<if test="name != null">
`name` = #{name,jdbcType=VARCHAR},
</if>
<if test="type != null">
`type` = #{type,jdbcType=VARCHAR},
</if>
<if test="checked != null">
`checked` = #{checked,jdbcType=BIT},
</if>
<if test="columnIndex != null">
column_index = #{columnIndex,jdbcType=INTEGER},
</if>
<if test="lastSyncTime != null">
last_sync_time = #{lastSyncTime,jdbcType=BIGINT},
</if>
</set>
where id = #{id,jdbcType=VARCHAR}
</update>
<update id="updateByPrimaryKey" parameterType="io.dataease.base.domain.DatasetTableField">
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}
</update>
</mapper>

View File

@ -21,12 +21,12 @@ public class DataSetTableController {
private DataSetTableService dataSetTableService;
@PostMapping("batchAdd")
public void batchAdd(@RequestBody List<DatasetTable> datasetTable) {
public void batchAdd(@RequestBody List<DatasetTable> 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);
}

View File

@ -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<DatasetTableField> list(@PathVariable String tableId) {
DatasetTableField datasetTableField = new DatasetTableField();
datasetTableField.setTableId(tableId);
return dataSetTableFieldsService.list(datasetTableField);
}
@PostMapping("batchEdit")
public void batchEdit(@RequestBody List<DatasetTableField> list) {
dataSetTableFieldsService.batchEdit(list);
}
}

View File

@ -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<DatasetTableField> 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<DatasetTableField> 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);
}
}

View File

@ -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> datasetTable) {
public void batchInsert(List<DatasetTable> 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<DatasetTable> 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<TableFiled> fields = datasourceProvider.getTableFileds(datasourceRequest);
List<String[]> data = datasourceProvider.getData(datasourceRequest);
DatasetTableField datasetTableField = new DatasetTableField();
datasetTableField.setTableId(dataSetTableRequest.getId());
datasetTableField.setChecked(Boolean.TRUE);
List<DatasetTableField> 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<String[]> data = new ArrayList<>();
try {
data.addAll(datasourceProvider.getData(datasourceRequest));
} catch (Exception e) {
}
JSONArray jsonArray = new JSONArray();
if (CollectionUtils.isNotEmpty(data)) {
data.forEach(ele -> {
JSONObject jsonObject = new JSONObject();
for (int i = 0; i < ele.length; i++) {
jsonObject.put(fields.get(i).getFieldName(), ele[i]);
jsonObject.put(fieldArray[i], ele[i]);
}
jsonArray.add(jsonObject);
});
}
Map<String, Object> 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<TableFiled> 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);
}
}
}
}

View File

@ -1,4 +1,5 @@
CREATE TABLE IF NOT EXISTS `dataset_table` (
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',
@ -8,5 +9,19 @@ CREATE TABLE IF NOT EXISTS `dataset_table` (
`create_by` varchar(50) COMMENT '创建人ID',
`create_time` bigint(13) COMMENT '创建时间',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
) 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;

View File

@ -6,11 +6,11 @@
border
style="width: 100%;">
<el-table-column
width="180px"
min-width="200px"
v-for="field in fields"
:key="field.fieldName"
:prop="field.fieldName"
:label="field.fieldName">
:key="field.originName"
:prop="field.originName"
:label="field.name">
</el-table-column>
</el-table>
</el-col>
@ -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: {},

View File

@ -7,10 +7,10 @@
{{table.name}}
</span>
<el-row style="float: right">
<el-button size="mini">
<el-button size="mini" @click="edit">
{{$t('dataset.edit')}}
</el-button>
<el-button size="mini">
<el-button size="mini" type="primary">
{{$t('dataset.create_view')}}
</el-button>
</el-row>
@ -31,6 +31,32 @@
tab4
</el-tab-pane>
</el-tabs>
<el-dialog :title="table.name" :visible.sync="editField" :fullscreen="true" :show-close="false">
<el-table :data="tableFields" size="mini" max-height="600px">
<el-table-column property="type" :label="$t('dataset.field_type')" width="100">
</el-table-column>
<el-table-column property="name" :label="$t('dataset.field_name')" width="160">
<template slot-scope="scope">
<el-input v-model="scope.row.name" size="mini"></el-input>
</template>
</el-table-column>
<el-table-column property="originName" :label="$t('dataset.field_origin_name')" width="160">
</el-table-column>
<el-table-column property="checked" :label="$t('dataset.field_check')" width="80">
<template slot-scope="scope">
<el-checkbox v-model="scope.row.checked"></el-checkbox>
</template>
</el-table-column>
<!--下面这一列占位-->
<el-table-column property="">
</el-table-column>
</el-table>
<div slot="footer" class="dialog-footer">
<el-button @click="closeEdit" size="mini">{{$t('dataset.cancel')}}</el-button>
<el-button type="primary" @click="saveEdit" size="mini">{{$t('dataset.confirm')}}</el-button>
</div>
</el-dialog>
</el-row>
</el-col>
</template>
@ -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() {

View File

@ -178,7 +178,7 @@
</span>
<span>
<span @click.stop style="margin-left: 12px;">
<el-dropdown trigger="click" @command="clickMore">
<el-dropdown trigger="click" @command="clickMore" size="small">
<span class="el-dropdown-link">
<el-button
icon="el-icon-more"
@ -268,11 +268,13 @@ export default {
this.tree(this.groupForm);
this.tableTree();
this.$router.push('/dataset');
this.$store.commit('setTable', null);
},
activated() {
this.tree(this.groupForm);
this.tableTree();
this.$router.push('/dataset');
this.$store.commit('setTable', null);
},
watch: {
// search(val){

View File

@ -1549,6 +1549,10 @@ export default {
table:'Table',
edit: 'Edit',
create_view: 'Create View',
data_preview:'Data Preview'
data_preview:'Data Preview',
field_type:'Field Type',
field_name:'Field Name',
field_origin_name:'Origin Name',
field_check:'Checked'
}
};

View File

@ -1560,7 +1560,11 @@ export default {
table: '表',
edit: '编辑',
create_view: '创建试图',
data_preview:'数据预览'
data_preview:'数据预览',
field_type:'字段类型',
field_name:'字段名',
field_origin_name:'原始名',
field_check:'选中'
},
datasource: {
create: '新建数据连接',

View File

@ -1550,6 +1550,10 @@ export default {
table:'表',
edit: '編輯',
create_view: '創建試圖',
data_preview:'數據預覽'
data_preview:'數據預覽',
field_type:'字段類型',
field_name:'字段名',
field_origin_name:'原始名',
field_check:'選中'
}
};