Commit c73b5391 by yuwei

项目初始化

parent adf94f21
...@@ -2,7 +2,13 @@ package cn.datax.service.codegen.dao; ...@@ -2,7 +2,13 @@ package cn.datax.service.codegen.dao;
import cn.datax.common.base.BaseDao; import cn.datax.common.base.BaseDao;
import cn.datax.service.codegen.api.entity.GenTableEntity; import cn.datax.service.codegen.api.entity.GenTableEntity;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.io.Serializable;
/** /**
* <p> * <p>
...@@ -15,4 +21,9 @@ import org.apache.ibatis.annotations.Mapper; ...@@ -15,4 +21,9 @@ import org.apache.ibatis.annotations.Mapper;
@Mapper @Mapper
public interface GenTableDao extends BaseDao<GenTableEntity> { public interface GenTableDao extends BaseDao<GenTableEntity> {
@Override
GenTableEntity selectById(Serializable id);
@Override
<E extends IPage<GenTableEntity>> E selectPage(E page, @Param(Constants.WRAPPER) Wrapper<GenTableEntity> queryWrapper);
} }
...@@ -18,11 +18,11 @@ import java.util.Map; ...@@ -18,11 +18,11 @@ import java.util.Map;
public class Generate { public class Generate {
public static void main(String[] args) { // public static void main(String[] args) {
// DefaultIdentifierGenerator generator = new DefaultIdentifierGenerator(); //// DefaultIdentifierGenerator generator = new DefaultIdentifierGenerator();
// System.out.println(generator.nextId(null)); //// System.out.println(generator.nextId(null));
generateByTables("F://code", "standard", "cn.datax.service.data", "standard_", new String[]{"standard_dict", "standard_type"}); // generateByTables("F://code", "masterdata", "cn.datax.service.data", "masterdata_", new String[]{"masterdata_model", "masterdata_model_column"});
} // }
/** /**
* 根据表自动生成 * 根据表自动生成
......
...@@ -19,6 +19,9 @@ ...@@ -19,6 +19,9 @@
<result column="business_name" property="businessName" /> <result column="business_name" property="businessName" />
<result column="function_name" property="functionName" /> <result column="function_name" property="functionName" />
<result column="function_author" property="functionAuthor" /> <result column="function_author" property="functionAuthor" />
</resultMap>
<resultMap id="ExtendResultMap" type="cn.datax.service.codegen.api.entity.GenTableEntity" extends="BaseResultMap">
<result column="column_json" property="columns" typeHandler="com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler" /> <result column="column_json" property="columns" typeHandler="com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler" />
</resultMap> </resultMap>
...@@ -30,7 +33,31 @@ ...@@ -30,7 +33,31 @@
create_time, create_time,
update_by, update_by,
update_time, update_time,
remark, table_name, table_comment, class_name, package_name, module_name, business_name, function_name, function_author
</sql>
<sql id="Extend_Column_List">
id,
status,
create_by,
create_time,
update_by,
update_time,
remark, table_name, table_comment, class_name, package_name, module_name, business_name, function_name, function_author, column_json remark, table_name, table_comment, class_name, package_name, module_name, business_name, function_name, function_author, column_json
</sql> </sql>
<select id="selectById" resultMap="ExtendResultMap">
SELECT
<include refid="Extend_Column_List"></include>
FROM gen_table
WHERE 1=1 AND id = #{id}
</select>
<select id="selectPage" resultMap="BaseResultMap">
SELECT
<include refid="Base_Column_List"></include>
FROM gen_table
${ew.customSqlSegment}
</select>
</mapper> </mapper>
...@@ -2,7 +2,13 @@ package cn.datax.service.data.market.integration.dao; ...@@ -2,7 +2,13 @@ package cn.datax.service.data.market.integration.dao;
import cn.datax.common.base.BaseDao; import cn.datax.common.base.BaseDao;
import cn.datax.service.data.market.api.entity.ServiceIntegrationEntity; import cn.datax.service.data.market.api.entity.ServiceIntegrationEntity;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.io.Serializable;
/** /**
* <p> * <p>
...@@ -15,4 +21,9 @@ import org.apache.ibatis.annotations.Mapper; ...@@ -15,4 +21,9 @@ import org.apache.ibatis.annotations.Mapper;
@Mapper @Mapper
public interface ServiceIntegrationDao extends BaseDao<ServiceIntegrationEntity> { public interface ServiceIntegrationDao extends BaseDao<ServiceIntegrationEntity> {
@Override
ServiceIntegrationEntity selectById(Serializable id);
@Override
<E extends IPage<ServiceIntegrationEntity>> E selectPage(E page, @Param(Constants.WRAPPER) Wrapper<ServiceIntegrationEntity> queryWrapper);
} }
...@@ -32,7 +32,32 @@ ...@@ -32,7 +32,32 @@
update_by, update_by,
update_time, update_time,
remark, remark,
create_dept, service_no, service_name, service_type
</sql>
<sql id="Extend_Column_List">
id,
status,
create_by,
create_time,
update_by,
update_time,
remark,
create_dept, service_no, service_name, service_type, httpservice_json, webservice_json create_dept, service_no, service_name, service_type, httpservice_json, webservice_json
</sql> </sql>
<select id="selectById" resultMap="ExtendResultMap">
SELECT
<include refid="Extend_Column_List"></include>
FROM market_service_integration
WHERE 1=1 AND id = #{id}
</select>
<select id="selectPage" resultMap="BaseResultMap">
SELECT
<include refid="Base_Column_List"></include>
FROM market_service_integration
${ew.customSqlSegment}
</select>
</mapper> </mapper>
...@@ -29,12 +29,23 @@ ...@@ -29,12 +29,23 @@
create_dept, create_dept,
update_by, update_by,
update_time, update_time,
api_id, mask_name, remark
</sql>
<sql id="Extend_Column_List">
id,
status,
create_by,
create_time,
create_dept,
update_by,
update_time,
api_id, mask_name, remark, config_json api_id, mask_name, remark, config_json
</sql> </sql>
<select id="selectById" resultMap="ExtendResultMap"> <select id="selectById" resultMap="ExtendResultMap">
SELECT SELECT
<include refid="Base_Column_List"></include> <include refid="Extend_Column_List"></include>
FROM market_api_mask FROM market_api_mask
WHERE 1=1 AND id = #{id} WHERE 1=1 AND id = #{id}
</select> </select>
......
...@@ -36,11 +36,23 @@ ...@@ -36,11 +36,23 @@
create_dept, create_dept,
update_by, update_by,
update_time, update_time,
api_name, api_version, api_url, remark, req_method, res_type, deny
</sql>
<sql id="Extend_Column_List">
id,
status,
create_by,
create_time,
create_dept,
update_by,
update_time,
api_name, api_version, api_url, remark, req_method, res_type, deny, limit_json, config_json, req_json, res_json api_name, api_version, api_url, remark, req_method, res_type, deny, limit_json, config_json, req_json, res_json
</sql> </sql>
<select id="selectById" resultMap="ExtendResultMap"> <select id="selectById" resultMap="ExtendResultMap">
SELECT SELECT
<include refid="Base_Column_List"></include> <include refid="Extend_Column_List"></include>
FROM market_api FROM market_api
WHERE 1=1 AND id = #{id} WHERE 1=1 AND id = #{id}
</select> </select>
......
...@@ -8,6 +8,7 @@ import lombok.Data; ...@@ -8,6 +8,7 @@ import lombok.Data;
import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull; import javax.validation.constraints.NotNull;
import java.io.Serializable; import java.io.Serializable;
/** /**
* <p> * <p>
* 主数据模型列信息表 实体DTO * 主数据模型列信息表 实体DTO
......
...@@ -36,13 +36,13 @@ public class MetadataSourceEntity extends DataScopeBaseEntity { ...@@ -36,13 +36,13 @@ public class MetadataSourceEntity extends DataScopeBaseEntity {
private String sourceName; private String sourceName;
/** /**
* 数据源连接信息 * 元数据同步1是0否
*/ */
@TableField(typeHandler = JacksonTypeHandler.class) private Integer sourceSync;
private DbSchema dbSchema;
/** /**
* 元数据同步1是0否 * 数据源连接信息
*/ */
private Integer sourceSync; @TableField(typeHandler = JacksonTypeHandler.class)
private DbSchema dbSchema;
} }
...@@ -160,8 +160,8 @@ public class MetadataColumnController extends BaseController { ...@@ -160,8 +160,8 @@ public class MetadataColumnController extends BaseController {
@ApiImplicitParam(name = "metadataColumnQuery", value = "查询实体metadataColumnQuery", required = false, dataType = "MetadataColumnQuery") @ApiImplicitParam(name = "metadataColumnQuery", value = "查询实体metadataColumnQuery", required = false, dataType = "MetadataColumnQuery")
}) })
@GetMapping("/tree/{level}") @GetMapping("/tree/{level}")
public R getDataMetadataTree(@PathVariable String level, MetadataColumnQuery metadataColumnQuery) { public R getDataMetadataTree(@PathVariable String level) {
List<MetadataTreeVo> list = metadataColumnService.getDataMetadataTree(level, metadataColumnQuery); List<MetadataTreeVo> list = metadataColumnService.getDataMetadataTree(level);
return R.ok().setData(list); return R.ok().setData(list);
} }
} }
...@@ -2,7 +2,14 @@ package cn.datax.service.data.metadata.dao; ...@@ -2,7 +2,14 @@ package cn.datax.service.data.metadata.dao;
import cn.datax.common.base.BaseDao; import cn.datax.common.base.BaseDao;
import cn.datax.service.data.metadata.api.entity.MetadataSourceEntity; import cn.datax.service.data.metadata.api.entity.MetadataSourceEntity;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.io.Serializable;
import java.util.List;
/** /**
* <p> * <p>
...@@ -15,4 +22,12 @@ import org.apache.ibatis.annotations.Mapper; ...@@ -15,4 +22,12 @@ import org.apache.ibatis.annotations.Mapper;
@Mapper @Mapper
public interface MetadataSourceDao extends BaseDao<MetadataSourceEntity> { public interface MetadataSourceDao extends BaseDao<MetadataSourceEntity> {
@Override
MetadataSourceEntity selectById(Serializable id);
@Override
List<MetadataSourceEntity> selectList(@Param(Constants.WRAPPER) Wrapper<MetadataSourceEntity> queryWrapper);
@Override
<E extends IPage<MetadataSourceEntity>> E selectPage(E page, @Param(Constants.WRAPPER) Wrapper<MetadataSourceEntity> queryWrapper);
} }
...@@ -3,7 +3,6 @@ package cn.datax.service.data.metadata.service; ...@@ -3,7 +3,6 @@ package cn.datax.service.data.metadata.service;
import cn.datax.service.data.metadata.api.dto.MetadataColumnDto; import cn.datax.service.data.metadata.api.dto.MetadataColumnDto;
import cn.datax.common.base.BaseService; import cn.datax.common.base.BaseService;
import cn.datax.service.data.metadata.api.entity.MetadataColumnEntity; import cn.datax.service.data.metadata.api.entity.MetadataColumnEntity;
import cn.datax.service.data.metadata.api.query.MetadataColumnQuery;
import cn.datax.service.data.metadata.api.vo.MetadataTreeVo; import cn.datax.service.data.metadata.api.vo.MetadataTreeVo;
import java.util.List; import java.util.List;
...@@ -28,5 +27,5 @@ public interface MetadataColumnService extends BaseService<MetadataColumnEntity> ...@@ -28,5 +27,5 @@ public interface MetadataColumnService extends BaseService<MetadataColumnEntity>
void deleteMetadataColumnBatch(List<String> ids); void deleteMetadataColumnBatch(List<String> ids);
List<MetadataTreeVo> getDataMetadataTree(String level, MetadataColumnQuery metadataColumnQuery); List<MetadataTreeVo> getDataMetadataTree(String level);
} }
package cn.datax.service.data.metadata.service.impl; package cn.datax.service.data.metadata.service.impl;
import cn.datax.common.core.DataConstant; import cn.datax.common.core.DataConstant;
import cn.datax.common.core.RedisConstant;
import cn.datax.common.redis.service.RedisService;
import cn.datax.service.data.metadata.api.dto.MetadataColumnDto; import cn.datax.service.data.metadata.api.dto.MetadataColumnDto;
import cn.datax.service.data.metadata.api.entity.MetadataColumnEntity; import cn.datax.service.data.metadata.api.entity.MetadataColumnEntity;
import cn.datax.service.data.metadata.api.entity.MetadataSourceEntity; import cn.datax.service.data.metadata.api.entity.MetadataSourceEntity;
import cn.datax.service.data.metadata.api.entity.MetadataTableEntity; import cn.datax.service.data.metadata.api.entity.MetadataTableEntity;
import cn.datax.service.data.metadata.api.enums.DataLevel; import cn.datax.service.data.metadata.api.enums.DataLevel;
import cn.datax.service.data.metadata.api.query.MetadataColumnQuery;
import cn.datax.service.data.metadata.api.vo.MetadataTreeVo; import cn.datax.service.data.metadata.api.vo.MetadataTreeVo;
import cn.datax.service.data.metadata.dao.MetadataSourceDao;
import cn.datax.service.data.metadata.dao.MetadataTableDao;
import cn.datax.service.data.metadata.service.MetadataColumnService; import cn.datax.service.data.metadata.service.MetadataColumnService;
import cn.datax.service.data.metadata.mapstruct.MetadataColumnMapper; import cn.datax.service.data.metadata.mapstruct.MetadataColumnMapper;
import cn.datax.service.data.metadata.dao.MetadataColumnDao; import cn.datax.service.data.metadata.dao.MetadataColumnDao;
import cn.datax.common.base.BaseServiceImpl; import cn.datax.common.base.BaseServiceImpl;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Objects; import java.util.Optional;
import java.util.stream.Collectors; import java.util.stream.Collectors;
/** /**
...@@ -38,17 +37,14 @@ import java.util.stream.Collectors; ...@@ -38,17 +37,14 @@ import java.util.stream.Collectors;
public class MetadataColumnServiceImpl extends BaseServiceImpl<MetadataColumnDao, MetadataColumnEntity> implements MetadataColumnService { public class MetadataColumnServiceImpl extends BaseServiceImpl<MetadataColumnDao, MetadataColumnEntity> implements MetadataColumnService {
@Autowired @Autowired
private MetadataSourceDao metadataSourceDao;
@Autowired
private MetadataTableDao metadataTableDao;
@Autowired
private MetadataColumnDao metadataColumnDao; private MetadataColumnDao metadataColumnDao;
@Autowired @Autowired
private MetadataColumnMapper metadataColumnMapper; private MetadataColumnMapper metadataColumnMapper;
@Autowired
private RedisService redisService;
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public MetadataColumnEntity saveMetadataColumn(MetadataColumnDto metadataColumnDto) { public MetadataColumnEntity saveMetadataColumn(MetadataColumnDto metadataColumnDto) {
...@@ -84,43 +80,41 @@ public class MetadataColumnServiceImpl extends BaseServiceImpl<MetadataColumnDao ...@@ -84,43 +80,41 @@ public class MetadataColumnServiceImpl extends BaseServiceImpl<MetadataColumnDao
} }
@Override @Override
public List<MetadataTreeVo> getDataMetadataTree(String level, MetadataColumnQuery metadataColumnQuery) { public List<MetadataTreeVo> getDataMetadataTree(String level) {
List<MetadataSourceEntity> sourceList = metadataSourceDao.selectList(Wrappers.<MetadataSourceEntity>lambdaQuery() List<MetadataSourceEntity> sourceList = (List<MetadataSourceEntity>) redisService.get(RedisConstant.METADATA_SOURCE_KEY);
.eq(StrUtil.isNotBlank(metadataColumnQuery.getSourceId()), MetadataSourceEntity::getId, metadataColumnQuery.getSourceId())); List<MetadataTreeVo> list = Optional.ofNullable(sourceList).orElseGet(ArrayList::new).stream().filter(s -> DataConstant.EnableState.ENABLE.getKey().equals(s.getStatus()))
List<MetadataTableEntity> tableList = metadataTableDao.selectList(Wrappers.<MetadataTableEntity>lambdaQuery()
.eq(StrUtil.isNotBlank(metadataColumnQuery.getTableId()), MetadataTableEntity::getId, metadataColumnQuery.getTableId()));
List<MetadataColumnEntity> columnList = metadataColumnDao.selectList(Wrappers.emptyWrapper());
List<MetadataTreeVo> list = sourceList.stream().filter(s -> DataConstant.EnableState.ENABLE.getKey().equals(s.getStatus()))
.map(m -> { .map(m -> {
MetadataTreeVo tree = new MetadataTreeVo(); MetadataTreeVo tree = new MetadataTreeVo();
tree.setId(m.getId()); tree.setId(m.getId());
tree.setType(DataLevel.DATABASE.getKey()); tree.setType(DataLevel.DATABASE.getKey());
tree.setLabel(m.getSourceName()); tree.setLabel(m.getSourceName());
if (DataLevel.getLevel(level).getLevel() >= DataLevel.TABLE.getLevel()) { if (DataLevel.getLevel(level).getLevel() >= DataLevel.TABLE.getLevel()) {
tree.setChildren(getTableChildrens(m.getId(), level, tableList, columnList)); tree.setChildren(getTableChildrens(m.getId(), level));
} }
return tree; return tree;
}).collect(Collectors.toList()); }).collect(Collectors.toList());
return list; return list;
} }
private List<MetadataTreeVo> getTableChildrens(String id, String level, List<MetadataTableEntity> tableList, List<MetadataColumnEntity> columnList) { private List<MetadataTreeVo> getTableChildrens(String id, String level) {
List<MetadataTreeVo> children = tableList.stream().filter(m -> Objects.equals(id, m.getSourceId())) List<MetadataTableEntity> tableList = (List<MetadataTableEntity>) redisService.hget(RedisConstant.METADATA_TABLE_KEY, id);
List<MetadataTreeVo> children = Optional.ofNullable(tableList).orElseGet(ArrayList::new).stream()
.map(m -> { .map(m -> {
MetadataTreeVo tree = new MetadataTreeVo(); MetadataTreeVo tree = new MetadataTreeVo();
tree.setId(m.getId()); tree.setId(m.getId());
tree.setType(DataLevel.TABLE.getKey()); tree.setType(DataLevel.TABLE.getKey());
tree.setLabel(StrUtil.isBlank(m.getTableComment()) ? m.getTableName() : m.getTableComment()); tree.setLabel(StrUtil.isBlank(m.getTableComment()) ? m.getTableName() : m.getTableComment());
if (DataLevel.getLevel(level).getLevel() >= DataLevel.COLUMN.getLevel()) { if (DataLevel.getLevel(level).getLevel() >= DataLevel.COLUMN.getLevel()) {
tree.setChildren(getColumnChildrens(m.getId(), columnList)); tree.setChildren(getColumnChildrens(m.getId()));
} }
return tree; return tree;
}).collect(Collectors.toList()); }).collect(Collectors.toList());
return children; return children;
} }
private List<MetadataTreeVo> getColumnChildrens(String id, List<MetadataColumnEntity> columnList) { private List<MetadataTreeVo> getColumnChildrens(String id) {
List<MetadataTreeVo> children = columnList.stream().filter(m -> Objects.equals(id, m.getTableId())) List<MetadataColumnEntity> columnList = (List<MetadataColumnEntity>) redisService.hget(RedisConstant.METADATA_COLUMN_KEY, id);
List<MetadataTreeVo> children = Optional.ofNullable(columnList).orElseGet(ArrayList::new).stream()
.map(m -> { .map(m -> {
MetadataTreeVo tree = new MetadataTreeVo(); MetadataTreeVo tree = new MetadataTreeVo();
tree.setId(m.getId()); tree.setId(m.getId());
......
...@@ -15,6 +15,9 @@ ...@@ -15,6 +15,9 @@
<result column="db_type" property="dbType" /> <result column="db_type" property="dbType" />
<result column="source_name" property="sourceName" /> <result column="source_name" property="sourceName" />
<result column="source_sync" property="sourceSync" /> <result column="source_sync" property="sourceSync" />
</resultMap>
<resultMap id="ExtendResultMap" type="cn.datax.service.data.metadata.api.entity.MetadataSourceEntity" extends="BaseResultMap">
<result column="db_schema" property="dbSchema" typeHandler="com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler" /> <result column="db_schema" property="dbSchema" typeHandler="com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler" />
</resultMap> </resultMap>
...@@ -28,7 +31,40 @@ ...@@ -28,7 +31,40 @@
update_by, update_by,
update_time, update_time,
remark, remark,
db_type, source_name, source_sync
</sql>
<sql id="Extend_Column_List">
id,
status,
create_by,
create_time,
create_dept,
update_by,
update_time,
remark,
db_type, source_name, source_sync, db_schema db_type, source_name, source_sync, db_schema
</sql> </sql>
<select id="selectById" resultMap="ExtendResultMap">
SELECT
<include refid="Extend_Column_List"></include>
FROM metadata_source
WHERE 1=1 AND id = #{id}
</select>
<select id="selectList" resultMap="BaseResultMap">
SELECT
<include refid="Base_Column_List"></include>
FROM metadata_source
${ew.customSqlSegment}
</select>
<select id="selectPage" resultMap="BaseResultMap">
SELECT
<include refid="Base_Column_List"></include>
FROM metadata_source
${ew.customSqlSegment}
</select>
</mapper> </mapper>
...@@ -2,7 +2,14 @@ package cn.datax.service.data.visual.dao; ...@@ -2,7 +2,14 @@ package cn.datax.service.data.visual.dao;
import cn.datax.common.base.BaseDao; import cn.datax.common.base.BaseDao;
import cn.datax.service.data.visual.api.entity.DataSetEntity; import cn.datax.service.data.visual.api.entity.DataSetEntity;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.io.Serializable;
import java.util.List;
/** /**
* <p> * <p>
...@@ -15,4 +22,12 @@ import org.apache.ibatis.annotations.Mapper; ...@@ -15,4 +22,12 @@ import org.apache.ibatis.annotations.Mapper;
@Mapper @Mapper
public interface DataSetDao extends BaseDao<DataSetEntity> { public interface DataSetDao extends BaseDao<DataSetEntity> {
@Override
DataSetEntity selectById(Serializable id);
@Override
List<DataSetEntity> selectList(@Param(Constants.WRAPPER) Wrapper<DataSetEntity> queryWrapper);
@Override
<E extends IPage<DataSetEntity>> E selectPage(E page, @Param(Constants.WRAPPER) Wrapper<DataSetEntity> queryWrapper);
} }
...@@ -15,6 +15,9 @@ ...@@ -15,6 +15,9 @@
<result column="source_id" property="sourceId" /> <result column="source_id" property="sourceId" />
<result column="set_name" property="setName" /> <result column="set_name" property="setName" />
<result column="set_sql" property="setSql" /> <result column="set_sql" property="setSql" />
</resultMap>
<resultMap id="ExtendResultMap" type="cn.datax.service.data.visual.api.entity.DataSetEntity" extends="BaseResultMap">
<result column="schema_json" property="schemaConfig" typeHandler="com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler"/> <result column="schema_json" property="schemaConfig" typeHandler="com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler"/>
</resultMap> </resultMap>
...@@ -28,7 +31,40 @@ ...@@ -28,7 +31,40 @@
update_by, update_by,
update_time, update_time,
remark, remark,
source_id, set_name, set_sql
</sql>
<sql id="Extend_Column_List">
id,
status,
create_by,
create_time,
create_dept,
update_by,
update_time,
remark,
source_id, set_name, set_sql, schema_json source_id, set_name, set_sql, schema_json
</sql> </sql>
<select id="selectById" resultMap="ExtendResultMap">
SELECT
<include refid="Extend_Column_List"></include>
FROM visual_data_set
WHERE 1=1 AND id = #{id}
</select>
<select id="selectList" resultMap="BaseResultMap">
SELECT
<include refid="Base_Column_List"></include>
FROM visual_data_set
${ew.customSqlSegment}
</select>
<select id="selectPage" resultMap="BaseResultMap">
SELECT
<include refid="Base_Column_List"></include>
FROM visual_data_set
${ew.customSqlSegment}
</select>
</mapper> </mapper>
...@@ -53,10 +53,9 @@ export function updateDataColumn (data) { ...@@ -53,10 +53,9 @@ export function updateDataColumn (data) {
}) })
} }
export function getDataMetadataTree (level, data) { export function getDataMetadataTree (level) {
return request({ return request({
url: '/data/metadata/columns/tree/' + level, url: '/data/metadata/columns/tree/' + level,
method: 'get', method: 'get'
params: data
}) })
} }
...@@ -25,16 +25,16 @@ ...@@ -25,16 +25,16 @@
</el-form-item> </el-form-item>
<template v-if="form.serviceType === '1'"> <template v-if="form.serviceType === '1'">
<el-form-item label="服务请求地址" prop="serviceUrl"> <el-form-item label="服务请求地址" prop="serviceUrl">
<el-input v-model="form.serviceUrl" placeholder="请输入服务请求地址" /> <el-input v-model="form.httpService.url" placeholder="请输入服务请求地址" />
</el-form-item> </el-form-item>
<el-form-item label="服务请求头" prop="serviceHeader"> <el-form-item label="服务请求头" prop="serviceHeader">
<el-input v-model="form.serviceHeader" placeholder="请输入服务请求头,如{key:val}格式" /> <el-input v-model="form.httpService.header" placeholder="请输入服务请求头,如{key:val}格式" />
</el-form-item> </el-form-item>
<el-form-item label="服务请求参数" prop="serviceParam"> <el-form-item label="服务请求参数" prop="serviceParam">
<el-input v-model="form.serviceParam" placeholder="请输入服务请求参数,如{key:val}格式" /> <el-input v-model="form.httpService.param" placeholder="请输入服务请求参数,如{key:val}格式" />
</el-form-item> </el-form-item>
<el-form-item label="服务请求方式" prop="serviceHttpMethod"> <el-form-item label="服务请求方式" prop="serviceHttpMethod">
<el-select v-model="form.serviceHttpMethod" placeholder="请选择请求方式"> <el-select v-model="form.httpService.httpMethod" placeholder="请选择请求方式">
<el-option <el-option
v-for="dict in httpMethodOptions" v-for="dict in httpMethodOptions"
:key="dict.id" :key="dict.id"
...@@ -46,16 +46,16 @@ ...@@ -46,16 +46,16 @@
</template> </template>
<template v-if="form.serviceType === '2'"> <template v-if="form.serviceType === '2'">
<el-form-item label="服务wsdl地址" prop="serviceWsdl"> <el-form-item label="服务wsdl地址" prop="serviceWsdl">
<el-input v-model="form.serviceWsdl" placeholder="请输入服务wsdl地址" /> <el-input v-model="form.webService.wsdl" placeholder="请输入服务wsdl地址" />
</el-form-item> </el-form-item>
<el-form-item label="服务命名空间" prop="serviceTargetNamespace"> <el-form-item label="服务命名空间" prop="serviceTargetNamespace">
<el-input v-model="form.serviceTargetNamespace" placeholder="请输入服务命名空间" /> <el-input v-model="form.webService.targetNamespace" placeholder="请输入服务命名空间" />
</el-form-item> </el-form-item>
<el-form-item label="服务方法" prop="serviceMethod"> <el-form-item label="服务方法" prop="serviceMethod">
<el-input v-model="form.serviceMethod" placeholder="请输入服务方法" /> <el-input v-model="form.webService.method" placeholder="请输入服务方法" />
</el-form-item> </el-form-item>
<el-form-item label="服务请求报文" prop="serviceSoap"> <el-form-item label="服务请求报文" prop="serviceSoap">
<el-input v-model="form.serviceSoap" type="textarea" placeholder="请输入服务请求报文" /> <el-input v-model="form.webService.soap" type="textarea" placeholder="请输入服务请求报文" />
</el-form-item> </el-form-item>
</template> </template>
<el-form-item label="状态" prop="status"> <el-form-item label="状态" prop="status">
...@@ -113,7 +113,9 @@ export default { ...@@ -113,7 +113,9 @@ export default {
// 表单参数 // 表单参数
form: { form: {
serviceType: '1', serviceType: '1',
status: '1' status: '1',
httpService: {},
webService: {}
}, },
// 表单校验 // 表单校验
rules: { rules: {
......
...@@ -9,13 +9,13 @@ ...@@ -9,13 +9,13 @@
</div> </div>
<div :style="classCardbody"> <div :style="classCardbody">
<el-form ref="form" :model="form" label-width="80px" disabled> <el-form ref="form" :model="form" label-width="80px" disabled>
<el-form-item label="服务名称" prop="serviceName"> <el-form-item label="服务名称">
<el-input v-model="form.serviceName" placeholder="请输入服务名称" /> <el-input v-model="form.serviceName" placeholder="请输入服务名称" />
</el-form-item> </el-form-item>
<el-form-item label="服务编号" prop="serviceNo"> <el-form-item label="服务编号">
<el-input v-model="form.serviceNo" /> <el-input v-model="form.serviceNo" />
</el-form-item> </el-form-item>
<el-form-item label="服务类型" prop="serviceType"> <el-form-item label="服务类型">
<el-select v-model="form.serviceType"> <el-select v-model="form.serviceType">
<el-option <el-option
v-for="item in serviceTypeOptions" v-for="item in serviceTypeOptions"
...@@ -26,17 +26,17 @@ ...@@ -26,17 +26,17 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
<template v-if="form.serviceType === '1'"> <template v-if="form.serviceType === '1'">
<el-form-item label="服务请求地址" prop="serviceUrl"> <el-form-item label="服务请求地址">
<el-input v-model="form.serviceUrl" placeholder="请输入服务请求地址" /> <el-input v-model="form.httpService.url" placeholder="请输入服务请求地址" />
</el-form-item> </el-form-item>
<el-form-item label="服务请求头" prop="serviceHeader"> <el-form-item label="服务请求头">
<el-input v-model="form.serviceHeader" placeholder="请输入服务请求头" /> <el-input v-model="form.httpService.header" placeholder="请输入服务请求头,如{key:val}格式" />
</el-form-item> </el-form-item>
<el-form-item label="服务请求参数" prop="serviceParam"> <el-form-item label="服务请求参数">
<el-input v-model="form.serviceParam" placeholder="请输入服务请求参数" /> <el-input v-model="form.httpService.param" placeholder="请输入服务请求参数,如{key:val}格式" />
</el-form-item> </el-form-item>
<el-form-item label="服务请求方式" prop="serviceHttpMethod"> <el-form-item label="服务请求方式">
<el-select v-model="form.serviceHttpMethod" placeholder="请选择请求方式"> <el-select v-model="form.httpService.httpMethod" placeholder="请选择请求方式">
<el-option <el-option
v-for="dict in httpMethodOptions" v-for="dict in httpMethodOptions"
:key="dict.id" :key="dict.id"
...@@ -47,17 +47,17 @@ ...@@ -47,17 +47,17 @@
</el-form-item> </el-form-item>
</template> </template>
<template v-if="form.serviceType === '2'"> <template v-if="form.serviceType === '2'">
<el-form-item label="服务wsdl地址" prop="serviceWsdl"> <el-form-item label="服务wsdl地址">
<el-input v-model="form.serviceWsdl" placeholder="请输入服务wsdl地址" /> <el-input v-model="form.webService.wsdl" placeholder="请输入服务wsdl地址" />
</el-form-item> </el-form-item>
<el-form-item label="服务命名空间" prop="serviceTargetNamespace"> <el-form-item label="服务命名空间">
<el-input v-model="form.serviceTargetNamespace" placeholder="请输入服务命名空间" /> <el-input v-model="form.webService.targetNamespace" placeholder="请输入服务命名空间" />
</el-form-item> </el-form-item>
<el-form-item label="服务方法" prop="serviceMethod"> <el-form-item label="服务方法">
<el-input v-model="form.serviceMethod" placeholder="请输入服务方法" /> <el-input v-model="form.webService.method" placeholder="请输入服务方法" />
</el-form-item> </el-form-item>
<el-form-item label="服务请求报文" prop="serviceSoap"> <el-form-item label="服务请求报文">
<el-input v-model="form.serviceSoap" type="textarea" placeholder="请输入服务请求报文" /> <el-input v-model="form.webService.soap" type="textarea" placeholder="请输入服务请求报文" />
</el-form-item> </el-form-item>
</template> </template>
<el-form-item label="状态" prop="status"> <el-form-item label="状态" prop="status">
......
...@@ -28,16 +28,16 @@ ...@@ -28,16 +28,16 @@
</el-form-item> </el-form-item>
<template v-if="form.serviceType === '1'"> <template v-if="form.serviceType === '1'">
<el-form-item label="服务请求地址" prop="serviceUrl"> <el-form-item label="服务请求地址" prop="serviceUrl">
<el-input v-model="form.serviceUrl" placeholder="请输入服务请求地址" /> <el-input v-model="form.httpService.url" placeholder="请输入服务请求地址" />
</el-form-item> </el-form-item>
<el-form-item label="服务请求头" prop="serviceHeader"> <el-form-item label="服务请求头" prop="serviceHeader">
<el-input v-model="form.serviceHeader" placeholder="请输入服务请求头" /> <el-input v-model="form.httpService.header" placeholder="请输入服务请求头,如{key:val}格式" />
</el-form-item> </el-form-item>
<el-form-item label="服务请求参数" prop="serviceParam"> <el-form-item label="服务请求参数" prop="serviceParam">
<el-input v-model="form.serviceParam" placeholder="请输入服务请求参数" /> <el-input v-model="form.httpService.param" placeholder="请输入服务请求参数,如{key:val}格式" />
</el-form-item> </el-form-item>
<el-form-item label="服务请求方式" prop="serviceHttpMethod"> <el-form-item label="服务请求方式" prop="serviceHttpMethod">
<el-select v-model="form.serviceHttpMethod" placeholder="请选择请求方式"> <el-select v-model="form.httpService.httpMethod" placeholder="请选择请求方式">
<el-option <el-option
v-for="dict in httpMethodOptions" v-for="dict in httpMethodOptions"
:key="dict.id" :key="dict.id"
...@@ -49,16 +49,16 @@ ...@@ -49,16 +49,16 @@
</template> </template>
<template v-if="form.serviceType === '2'"> <template v-if="form.serviceType === '2'">
<el-form-item label="服务wsdl地址" prop="serviceWsdl"> <el-form-item label="服务wsdl地址" prop="serviceWsdl">
<el-input v-model="form.serviceWsdl" placeholder="请输入服务wsdl地址" /> <el-input v-model="form.webService.wsdl" placeholder="请输入服务wsdl地址" />
</el-form-item> </el-form-item>
<el-form-item label="服务命名空间" prop="serviceTargetNamespace"> <el-form-item label="服务命名空间" prop="serviceTargetNamespace">
<el-input v-model="form.serviceTargetNamespace" placeholder="请输入服务命名空间" /> <el-input v-model="form.webService.targetNamespace" placeholder="请输入服务命名空间" />
</el-form-item> </el-form-item>
<el-form-item label="服务方法" prop="serviceMethod"> <el-form-item label="服务方法" prop="serviceMethod">
<el-input v-model="form.serviceMethod" placeholder="请输入服务方法" /> <el-input v-model="form.webService.method" placeholder="请输入服务方法" />
</el-form-item> </el-form-item>
<el-form-item label="服务请求报文" prop="serviceSoap"> <el-form-item label="服务请求报文" prop="serviceSoap">
<el-input v-model="form.serviceSoap" type="textarea" placeholder="请输入服务请求报文" /> <el-input v-model="form.webService.soap" type="textarea" placeholder="请输入服务请求报文" />
</el-form-item> </el-form-item>
</template> </template>
<el-form-item label="状态" prop="status"> <el-form-item label="状态" prop="status">
......
<template> <template>
<div> <div>
<el-card class="box-card" shadow="always"> <el-row :gutter="20">
<el-row :gutter="20"> <el-col :span="6">
<el-col :span="4"> <el-card class="box-card tree-wrapper" shadow="always">
<el-tree <el-tree
:data="treeOptions" :data="treeOptions"
ref="tree" ref="tree"
...@@ -14,8 +14,10 @@ ...@@ -14,8 +14,10 @@
@node-click="handleNodeClick" @node-click="handleNodeClick"
:render-content="renderContent" :render-content="renderContent"
></el-tree> ></el-tree>
</el-col> </el-card>
<el-col :span="20" style="border-left: 2px solid #aaa;"> </el-col>
<el-col :span="18">
<el-card class="box-card" shadow="always">
<el-form :model="queryParams" ref="queryForm" :inline="true"> <el-form :model="queryParams" ref="queryForm" :inline="true">
<el-form-item label="字段名称" prop="columnName"> <el-form-item label="字段名称" prop="columnName">
<el-input <el-input
...@@ -139,9 +141,9 @@ ...@@ -139,9 +141,9 @@
:page-size.sync="queryParams.pageSize" :page-size.sync="queryParams.pageSize"
:total="total" :total="total"
></el-pagination> ></el-pagination>
</el-col> </el-card>
</el-row> </el-col>
</el-card> </el-row>
</div> </div>
</template> </template>
...@@ -224,7 +226,7 @@ export default { ...@@ -224,7 +226,7 @@ export default {
}, },
/** 查询树结构 */ /** 查询树结构 */
getTree () { getTree () {
getDataMetadataTree('table', {}).then(response => { getDataMetadataTree('table').then(response => {
if (response.success) { if (response.success) {
const { data } = response const { data } = response
this.treeOptions = data this.treeOptions = data
...@@ -332,12 +334,22 @@ export default { ...@@ -332,12 +334,22 @@ export default {
float: right; float: right;
} }
::v-deep .custom-tree-node { .tree-wrapper {
flex: 1; overflow-y: auto;
display: flex; overflow-x: hidden;
font-size: 14px; height: 450px;
.icon { .el-tree {
margin-right: 5px; min-width: 100%;
font-size: 14px;
display: inline-block;
::v-deep .custom-tree-node {
flex: 1;
display: flex;
font-size: 14px;
.icon {
margin-right: 5px;
}
}
} }
} }
</style> </style>
...@@ -27,7 +27,7 @@ ...@@ -27,7 +27,7 @@
<el-button type="primary" :disabled="btnEnable" @click="onSubmit">查询</el-button> <el-button type="primary" :disabled="btnEnable" @click="onSubmit">查询</el-button>
</el-form-item> </el-form-item>
</el-form> </el-form>
<div class="line"></div> <el-divider></el-divider>
<div id="chart" :style="{width: '100%', height: '85%'}"></div> <div id="chart" :style="{width: '100%', height: '85%'}"></div>
</div> </div>
</el-card> </el-card>
...@@ -46,7 +46,7 @@ export default { ...@@ -46,7 +46,7 @@ export default {
return { return {
classCardbody: { classCardbody: {
overflow: 'auto', overflow: 'auto',
height: document.body.offsetHeight - 170 + 'px' height: document.body.offsetHeight - 150 + 'px'
}, },
searchForm: { searchForm: {
sourceId: '', sourceId: '',
...@@ -455,8 +455,7 @@ export default { ...@@ -455,8 +455,7 @@ export default {
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.line { ::v-deep .el-divider {
height: 1px; margin: 0;
background-color: #e0e6ed;
} }
</style> </style>
...@@ -15,7 +15,7 @@ ...@@ -15,7 +15,7 @@
</el-input> </el-input>
</el-col> </el-col>
</el-row> </el-row>
<div class="line"></div> <el-divider></el-divider>
<el-row> <el-row>
<el-col :span="24"> <el-col :span="24">
<source-pane v-if="type === '1'" :data="dataList"></source-pane> <source-pane v-if="type === '1'" :data="dataList"></source-pane>
...@@ -66,7 +66,7 @@ export default { ...@@ -66,7 +66,7 @@ export default {
return { return {
classCardbody: { classCardbody: {
overflow: 'auto', overflow: 'auto',
height: document.body.offsetHeight - 170 + 'px' height: document.body.offsetHeight - 150 + 'px'
}, },
searchExecuting: false, searchExecuting: false,
type: '', type: '',
...@@ -162,9 +162,7 @@ export default { ...@@ -162,9 +162,7 @@ export default {
} }
} }
.line { ::v-deep .el-divider {
height: 1px; margin: 0;
background-color: #e0e6ed;
margin: 10px 0;
} }
</style> </style>
...@@ -89,7 +89,7 @@ export default { ...@@ -89,7 +89,7 @@ export default {
return { return {
classCardbody: { classCardbody: {
overflow: 'auto', overflow: 'auto',
height: document.body.offsetHeight - 170 + 'px' height: document.body.offsetHeight - 160 + 'px'
}, },
// 数据源数据字典 // 数据源数据字典
sourceOptions: [], sourceOptions: [],
......
<template> <template>
<div> <div>
<el-card class="box-card" shadow="always"> <el-row :gutter="20">
<el-row :gutter="20"> <el-col :span="4">
<el-col :span="4"> <el-card class="box-card tree-wrapper" shadow="always">
<el-tree <el-tree
ref="dept" ref="dept"
:data="deptOptions" :data="deptOptions"
...@@ -12,8 +12,10 @@ ...@@ -12,8 +12,10 @@
:props="defaultProps" :props="defaultProps"
@node-click="handleNodeClick" @node-click="handleNodeClick"
/> />
</el-col> </el-card>
<el-col :span="20" style="border-left: 2px solid #aaa;"> </el-col>
<el-col :span="20">
<el-card class="box-card" shadow="always">
<el-form ref="queryForm" :model="queryParams" :inline="true"> <el-form ref="queryForm" :model="queryParams" :inline="true">
<el-form-item label="用户名称" prop="username"> <el-form-item label="用户名称" prop="username">
<el-input <el-input
...@@ -193,9 +195,9 @@ ...@@ -193,9 +195,9 @@
@size-change="handleSizeChange" @size-change="handleSizeChange"
@current-change="handleCurrentChange" @current-change="handleCurrentChange"
/> />
</el-col> </el-card>
</el-row> </el-col>
</el-card> </el-row>
</div> </div>
</template> </template>
...@@ -444,4 +446,15 @@ export default { ...@@ -444,4 +446,15 @@ export default {
.right-toolbar { .right-toolbar {
float: right; float: right;
} }
.tree-wrapper {
overflow-y: auto;
overflow-x: hidden;
height: 450px;
.el-tree {
min-width: 100%;
font-size: 14px;
display: inline-block;
}
}
</style> </style>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment