Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
D
datax-cloud
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
黄营
datax-cloud
Commits
9579d532
Commit
9579d532
authored
Jul 31, 2020
by
yuwei
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
项目初始化
parent
1891a5c0
Hide whitespace changes
Inline
Side-by-side
Showing
128 changed files
with
2498 additions
and
1569 deletions
+2498
-1569
datax-gateway-dev.yml
datax-config/src/main/resources/config/datax-gateway-dev.yml
+12
-12
datax-service-data-console-dev.yml
.../main/resources/config/datax-service-data-console-dev.yml
+1
-1
datax-service-data-visual-dev.yml
...c/main/resources/config/datax-service-data-visual-dev.yml
+1
-1
bootstrap.yml
...e-parent/codegen-service/src/main/resources/bootstrap.yml
+1
-1
DataThemeDto.java
...a/cn/datax/service/data/factory/api/dto/DataThemeDto.java
+0
-30
DataThemeEntity.java
...atax/service/data/factory/api/entity/DataThemeEntity.java
+0
-29
DataSetServiceFeign.java
...x/service/data/factory/api/feign/DataSetServiceFeign.java
+0
-14
DataSourceServiceFeign.java
...ervice/data/factory/api/feign/DataSourceServiceFeign.java
+0
-18
DataSetServiceFeignFallbackFactory.java
...api/feign/factory/DataSetServiceFeignFallbackFactory.java
+0
-17
DataSourceServiceFeignFallbackFactory.java
.../feign/factory/DataSourceServiceFeignFallbackFactory.java
+0
-17
DataSetServiceFeignFallbackImpl.java
...y/api/feign/fallback/DataSetServiceFeignFallbackImpl.java
+0
-21
DataThemeQuery.java
.../datax/service/data/factory/api/query/DataThemeQuery.java
+0
-22
DataThemeVo.java
...ava/cn/datax/service/data/factory/api/vo/DataThemeVo.java
+0
-28
spring.factories
...-service-api/src/main/resources/META-INF/spring.factories
+0
-5
DataSetController.java
...ax/service/data/factory/controller/DataSetController.java
+0
-156
InnerController.java
...atax/service/data/factory/controller/InnerController.java
+0
-37
DataThemeDao.java
.../java/cn/datax/service/data/factory/dao/DataThemeDao.java
+0
-18
DataThemeMapper.java
...datax/service/data/factory/mapstruct/DataThemeMapper.java
+0
-20
DataThemeService.java
.../datax/service/data/factory/service/DataThemeService.java
+0
-28
DataSourceServiceImpl.java
...vice/data/factory/service/impl/DataSourceServiceImpl.java
+0
-126
DataThemeServiceImpl.java
...rvice/data/factory/service/impl/DataThemeServiceImpl.java
+0
-67
DataThemeMapper.xml
...ory-service/src/main/resources/mapper/DataThemeMapper.xml
+0
-31
pom.xml
...et-service-parent/data-market-service-api-mapping/pom.xml
+1
-6
RequestHandler.java
...rvice/data/market/api/mapping/handler/RequestHandler.java
+1
-10
ApiMappingEngine.java
...ata/market/api/mapping/service/impl/ApiMappingEngine.java
+5
-5
bootstrap.yml
...rket-service-api-mapping/src/main/resources/bootstrap.yml
+1
-1
pom.xml
...es/data-market-service-parent/data-market-service/pom.xml
+1
-1
DataApiController.java
...tax/service/data/market/controller/DataApiController.java
+22
-0
DataApiService.java
.../cn/datax/service/data/market/service/DataApiService.java
+3
-0
DataApiServiceImpl.java
.../service/data/market/service/impl/DataApiServiceImpl.java
+59
-0
bootstrap.yml
...rent/data-market-service/src/main/resources/bootstrap.yml
+1
-1
DbSchema.java
...java/cn/datax/service/data/metadata/api/dto/DbSchema.java
+1
-1
MetadataColumnDto.java
...atax/service/data/metadata/api/dto/MetadataColumnDto.java
+1
-1
MetadataSourceDto.java
...atax/service/data/metadata/api/dto/MetadataSourceDto.java
+3
-5
MetadataTableDto.java
...datax/service/data/metadata/api/dto/MetadataTableDto.java
+1
-1
SqlConsoleDto.java
...cn/datax/service/data/metadata/api/dto/SqlConsoleDto.java
+1
-1
MetadataColumnEntity.java
...ervice/data/metadata/api/entity/MetadataColumnEntity.java
+1
-1
MetadataSourceEntity.java
...ervice/data/metadata/api/entity/MetadataSourceEntity.java
+4
-4
MetadataTableEntity.java
...service/data/metadata/api/entity/MetadataTableEntity.java
+1
-1
MetadataSourceServiceFeign.java
...e/data/metadata/api/feign/MetadataSourceServiceFeign.java
+19
-0
MetadataSourceServiceFeignFallbackFactory.java
...gn/factory/MetadataSourceServiceFeignFallbackFactory.java
+17
-0
MetadataSourceServiceFeignFallbackImpl.java
...eign/fallback/MetadataSourceServiceFeignFallbackImpl.java
+10
-7
DbDataQuery.java
...cn/datax/service/data/metadata/api/query/DbDataQuery.java
+1
-1
MetadataColumnQuery.java
.../service/data/metadata/api/query/MetadataColumnQuery.java
+1
-1
MetadataSourceQuery.java
.../service/data/metadata/api/query/MetadataSourceQuery.java
+2
-4
MetadataTableQuery.java
...x/service/data/metadata/api/query/MetadataTableQuery.java
+1
-1
MetadataColumnVo.java
.../datax/service/data/metadata/api/vo/MetadataColumnVo.java
+1
-1
MetadataDatabase.java
.../datax/service/data/metadata/api/vo/MetadataDatabase.java
+0
-188
MetadataSourceVo.java
.../datax/service/data/metadata/api/vo/MetadataSourceVo.java
+3
-4
MetadataTableVo.java
...n/datax/service/data/metadata/api/vo/MetadataTableVo.java
+1
-1
SqlConsoleVo.java
...a/cn/datax/service/data/metadata/api/vo/SqlConsoleVo.java
+1
-1
spring.factories
...-service-api/src/main/resources/META-INF/spring.factories
+3
-1
pom.xml
...data-service-parent/data-metadata-service-console/pom.xml
+3
-3
DataxConsoleApplication.java
...ervice/data/metadata/console/DataxConsoleApplication.java
+4
-4
CallableTemplate.java
...ce/data/metadata/console/concurrent/CallableTemplate.java
+1
-2
DateHander.java
.../service/data/metadata/console/concurrent/DateHander.java
+2
-2
DataResourceServerConfig.java
...ata/metadata/console/config/DataResourceServerConfig.java
+1
-1
StartedUpRunner.java
...service/data/metadata/console/config/StartedUpRunner.java
+1
-1
SwaggerConfig.java
...x/service/data/metadata/console/config/SwaggerConfig.java
+1
-1
SwaggerProperties.java
...rvice/data/metadata/console/config/SwaggerProperties.java
+1
-1
InnerController.java
...ice/data/metadata/console/controller/InnerController.java
+1
-1
SqlConsoleController.java
...ata/metadata/console/controller/SqlConsoleController.java
+4
-4
SqlConsoleService.java
...vice/data/metadata/console/service/SqlConsoleService.java
+3
-3
SqlConsoleServiceImpl.java
.../metadata/console/service/impl/SqlConsoleServiceImpl.java
+11
-11
bootstrap.yml
...metadata-service-console/src/main/resources/bootstrap.yml
+2
-2
logback-spring.xml
...ata-service-console/src/main/resources/logback-spring.xml
+1
-1
spy.properties
...etadata-service-console/src/main/resources/spy.properties
+0
-0
pom.xml
...ata-metadata-service-parent/data-metadata-service/pom.xml
+2
-2
AsyncTask.java
.../java/cn/datax/service/data/metadata/async/AsyncTask.java
+21
-18
DataMetadataController.java
...vice/data/metadata/controller/DataMetadataController.java
+0
-52
InnerController.java
...tax/service/data/metadata/controller/InnerController.java
+28
-0
MetadataColumnController.java
...ce/data/metadata/controller/MetadataColumnController.java
+36
-36
MetadataSourceController.java
...ce/data/metadata/controller/MetadataSourceController.java
+78
-50
MetadataTableController.java
...ice/data/metadata/controller/MetadataTableController.java
+34
-34
MetadataColumnDao.java
...cn/datax/service/data/metadata/dao/MetadataColumnDao.java
+2
-2
MetadataSourceDao.java
...cn/datax/service/data/metadata/dao/MetadataSourceDao.java
+3
-3
MetadataTableDao.java
.../cn/datax/service/data/metadata/dao/MetadataTableDao.java
+2
-2
MetadataColumnMapper.java
...service/data/metadata/mapstruct/MetadataColumnMapper.java
+4
-4
MetadataSourceMapper.java
...service/data/metadata/mapstruct/MetadataSourceMapper.java
+5
-5
MetadataTableMapper.java
.../service/data/metadata/mapstruct/MetadataTableMapper.java
+4
-4
DataMetadataService.java
...ax/service/data/metadata/service/DataMetadataService.java
+0
-10
MetadataColumnService.java
.../service/data/metadata/service/MetadataColumnService.java
+8
-8
MetadataSourceService.java
.../service/data/metadata/service/MetadataSourceService.java
+15
-12
MetadataTableService.java
...x/service/data/metadata/service/MetadataTableService.java
+8
-8
DataMetadataServiceImpl.java
...e/data/metadata/service/impl/DataMetadataServiceImpl.java
+0
-140
MetadataColumnServiceImpl.java
...data/metadata/service/impl/MetadataColumnServiceImpl.java
+23
-23
MetadataSourceServiceImpl.java
...data/metadata/service/impl/MetadataSourceServiceImpl.java
+232
-0
MetadataTableServiceImpl.java
.../data/metadata/service/impl/MetadataTableServiceImpl.java
+23
-23
MetadataColumnDao.xml
...a-service/src/main/resources/mapper/MetadataColumnDao.xml
+2
-2
MetadataSourceMapper.xml
...ervice/src/main/resources/mapper/MetadataSourceMapper.xml
+3
-4
MetadataTableDao.xml
...ta-service/src/main/resources/mapper/MetadataTableDao.xml
+2
-2
pom.xml
datax-modules/data-metadata-service-parent/pom.xml
+2
-0
pom.xml
...ata-visual-service-parent/data-visual-service-api/pom.xml
+2
-2
ColumnParse.java
...ava/cn/datax/service/data/visual/api/dto/ColumnParse.java
+1
-1
SchemaConfig.java
...va/cn/datax/service/data/visual/api/dto/SchemaConfig.java
+1
-1
SqlParseDto.java
...ava/cn/datax/service/data/visual/api/dto/SqlParseDto.java
+1
-1
VisualDataSetDto.java
...n/datax/service/data/visual/api/dto/VisualDataSetDto.java
+4
-3
VisualDataSetEntity.java
...x/service/data/visual/api/entity/VisualDataSetEntity.java
+8
-5
VisualDataSetQuery.java
...tax/service/data/visual/api/query/VisualDataSetQuery.java
+3
-3
VisualDataSetVo.java
.../cn/datax/service/data/visual/api/vo/VisualDataSetVo.java
+4
-4
spring.factories
...-service-api/src/main/resources/META-INF/spring.factories
+1
-0
pom.xml
...es/data-visual-service-parent/data-visual-service/pom.xml
+8
-4
DataxVisualApplication.java
.../cn/datax/service/data/visual/DataxVisualApplication.java
+4
-4
DataResourceServerConfig.java
.../service/data/visual/config/DataResourceServerConfig.java
+1
-1
StartedUpRunner.java
.../cn/datax/service/data/visual/config/StartedUpRunner.java
+1
-1
SwaggerConfig.java
...va/cn/datax/service/data/visual/config/SwaggerConfig.java
+1
-1
SwaggerProperties.java
...n/datax/service/data/visual/config/SwaggerProperties.java
+1
-1
VisualDataSetController.java
...rvice/data/visual/controller/VisualDataSetController.java
+58
-44
VisualDataSetDao.java
...va/cn/datax/service/data/visual/dao/VisualDataSetDao.java
+4
-4
VisualDataSetMapper.java
...ax/service/data/visual/mapstruct/VisualDataSetMapper.java
+6
-6
VisualDataSetService.java
...tax/service/data/visual/service/VisualDataSetService.java
+11
-11
VisualDataSetServiceImpl.java
...ce/data/visual/service/impl/VisualDataSetServiceImpl.java
+26
-24
bootstrap.yml
...rent/data-visual-service/src/main/resources/bootstrap.yml
+2
-2
logback-spring.xml
...data-visual-service/src/main/resources/logback-spring.xml
+1
-1
VisualDataSetMapper.xml
...service/src/main/resources/mapper/VisualDataSetMapper.xml
+2
-3
spy.properties
...ent/data-visual-service/src/main/resources/spy.properties
+0
-0
pom.xml
datax-modules/data-visual-service-parent/pom.xml
+5
-5
pom.xml
datax-modules/pom.xml
+3
-2
dataapi.js
datax-ui/src/api/market/dataapi.js
+8
-0
dataset.js
datax-ui/src/api/visual/dataset.js
+62
-0
DataSourceDetail.vue
datax-ui/src/views/factory/datasource/DataSourceDetail.vue
+4
-4
DataApiDetail.vue
datax-ui/src/views/market/dataapi/DataApiDetail.vue
+24
-1
DataSetAdd.vue
datax-ui/src/views/visual/dataset/DataSetAdd.vue
+390
-0
DataSetDetail.vue
datax-ui/src/views/visual/dataset/DataSetDetail.vue
+287
-0
DataSetEdit.vue
datax-ui/src/views/visual/dataset/DataSetEdit.vue
+405
-0
DataSetList.vue
datax-ui/src/views/visual/dataset/DataSetList.vue
+356
-0
index.vue
datax-ui/src/views/visual/dataset/index.vue
+48
-0
pom.xml
pom.xml
+0
-1
No files found.
datax-config/src/main/resources/config/datax-gateway-dev.yml
View file @
9579d532
...
@@ -60,21 +60,21 @@ spring:
...
@@ -60,21 +60,21 @@ spring:
args
:
args
:
name
:
fileHystrix
name
:
fileHystrix
fallbackUri
:
forward:/fallback
fallbackUri
:
forward:/fallback
#
数据工厂中心
#
元数据管理
-
id
:
datax-service-data-
factory
-
id
:
datax-service-data-
metadata
uri
:
lb://datax-service-data-
factory
uri
:
lb://datax-service-data-
metadata
predicates
:
predicates
:
-
Path=/data/
factory
/**
-
Path=/data/
metadata
/**
filters
:
filters
:
-
SwaggerHeaderFilter
-
SwaggerHeaderFilter
-
StripPrefix=2
-
StripPrefix=2
-
name
:
Hystrix
-
name
:
Hystrix
args
:
args
:
name
:
data
Factory
Hystrix
name
:
data
Metadata
Hystrix
fallbackUri
:
forward:/fallback
fallbackUri
:
forward:/fallback
# 数据SQL工作台
# 数据SQL工作台
-
id
:
datax-service-data-
sql-
console
-
id
:
datax-service-data-console
uri
:
lb://datax-service-data-
sql-
console
uri
:
lb://datax-service-data-console
predicates
:
predicates
:
-
Path=/data/console/**
-
Path=/data/console/**
filters
:
filters
:
...
@@ -108,17 +108,17 @@ spring:
...
@@ -108,17 +108,17 @@ spring:
args
:
args
:
name
:
dataApiMappingHystrix
name
:
dataApiMappingHystrix
fallbackUri
:
forward:/fallback
fallbackUri
:
forward:/fallback
#
元数据管理
#
数据可视化
-
id
:
datax-service-data-
metadata
-
id
:
datax-service-data-
visual
uri
:
lb://datax-service-data-
metadata
uri
:
lb://datax-service-data-
visual
predicates
:
predicates
:
-
Path=/data/
metadata
/**
-
Path=/data/
visual
/**
filters
:
filters
:
-
SwaggerHeaderFilter
-
SwaggerHeaderFilter
-
StripPrefix=2
-
StripPrefix=2
-
name
:
Hystrix
-
name
:
Hystrix
args
:
args
:
name
:
data
Metadata
Hystrix
name
:
data
Visual
Hystrix
fallbackUri
:
forward:/fallback
fallbackUri
:
forward:/fallback
# 定时任务
# 定时任务
-
id
:
datax-service-quartz
-
id
:
datax-service-quartz
...
...
datax-config/src/main/resources/config/datax-service-data-
sql-
console-dev.yml
→
datax-config/src/main/resources/config/datax-service-data-console-dev.yml
View file @
9579d532
...
@@ -48,7 +48,7 @@ spring:
...
@@ -48,7 +48,7 @@ spring:
mybatis-plus
:
mybatis-plus
:
mapper-locations
:
classpath*:mapper/*Mapper.xml
mapper-locations
:
classpath*:mapper/*Mapper.xml
type-aliases-package
:
cn.datax.service.data.
factory
.api.entity
type-aliases-package
:
cn.datax.service.data.
metadata
.api.entity
global-config
:
global-config
:
db-config
:
db-config
:
id-type
:
ASSIGN_ID
id-type
:
ASSIGN_ID
...
...
datax-config/src/main/resources/config/datax-service-data-
factory
-dev.yml
→
datax-config/src/main/resources/config/datax-service-data-
visual
-dev.yml
View file @
9579d532
...
@@ -48,7 +48,7 @@ spring:
...
@@ -48,7 +48,7 @@ spring:
mybatis-plus
:
mybatis-plus
:
mapper-locations
:
classpath*:mapper/*Mapper.xml
mapper-locations
:
classpath*:mapper/*Mapper.xml
type-aliases-package
:
cn.datax.service.data.
factory
.api.entity
type-aliases-package
:
cn.datax.service.data.
visual
.api.entity
global-config
:
global-config
:
db-config
:
db-config
:
id-type
:
ASSIGN_ID
id-type
:
ASSIGN_ID
...
...
datax-modules/codegen-service-parent/codegen-service/src/main/resources/bootstrap.yml
View file @
9579d532
server
:
server
:
port
:
8
71
0
port
:
8
83
0
spring
:
spring
:
application
:
application
:
...
...
datax-modules/data-factory-service-parent/data-factory-service-api/src/main/java/cn/datax/service/data/factory/api/dto/DataThemeDto.java
deleted
100644 → 0
View file @
1891a5c0
package
cn
.
datax
.
service
.
data
.
factory
.
api
.
dto
;
import
cn.datax.common.validate.ValidationGroups
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
javax.validation.constraints.NotBlank
;
import
java.io.Serializable
;
/**
* <p>
* 数据主题信息表 实体DTO
* </p>
*
* @author yuwei
* @since 2020-07-26
*/
@ApiModel
(
value
=
"数据主题信息表Model"
)
@Data
public
class
DataThemeDto
implements
Serializable
{
private
static
final
long
serialVersionUID
=
1L
;
@ApiModelProperty
(
value
=
"主键ID"
)
@NotBlank
(
message
=
"主键ID不能为空"
,
groups
=
{
ValidationGroups
.
Update
.
class
})
private
String
id
;
@ApiModelProperty
(
value
=
"主题名称"
)
@NotBlank
(
message
=
"主题名称不能为空"
,
groups
=
{
ValidationGroups
.
Insert
.
class
,
ValidationGroups
.
Update
.
class
})
private
String
themeName
;
}
datax-modules/data-factory-service-parent/data-factory-service-api/src/main/java/cn/datax/service/data/factory/api/entity/DataThemeEntity.java
deleted
100644 → 0
View file @
1891a5c0
package
cn
.
datax
.
service
.
data
.
factory
.
api
.
entity
;
import
cn.datax.common.base.DataScopeBaseEntity
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
import
lombok.experimental.Accessors
;
/**
* <p>
* 数据主题信息表
* </p>
*
* @author yuwei
* @since 2020-07-26
*/
@Data
@EqualsAndHashCode
(
callSuper
=
true
)
@Accessors
(
chain
=
true
)
@TableName
(
"factory_theme"
)
public
class
DataThemeEntity
extends
DataScopeBaseEntity
{
private
static
final
long
serialVersionUID
=
1L
;
/**
* 数据主题
*/
private
String
themeName
;
}
datax-modules/data-factory-service-parent/data-factory-service-api/src/main/java/cn/datax/service/data/factory/api/feign/DataSetServiceFeign.java
deleted
100644 → 0
View file @
1891a5c0
package
cn
.
datax
.
service
.
data
.
factory
.
api
.
feign
;
import
cn.datax.service.data.factory.api.entity.DataSetEntity
;
import
cn.datax.service.data.factory.api.feign.factory.DataSetServiceFeignFallbackFactory
;
import
org.springframework.cloud.openfeign.FeignClient
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.PathVariable
;
@FeignClient
(
contextId
=
"dataSetServiceFeign"
,
value
=
"datax-service-data-factory"
,
fallbackFactory
=
DataSetServiceFeignFallbackFactory
.
class
)
public
interface
DataSetServiceFeign
{
@GetMapping
(
"/inner/sets/{id}"
)
DataSetEntity
getDataSetById
(
@PathVariable
(
"id"
)
String
id
);
}
datax-modules/data-factory-service-parent/data-factory-service-api/src/main/java/cn/datax/service/data/factory/api/feign/DataSourceServiceFeign.java
deleted
100644 → 0
View file @
1891a5c0
package
cn
.
datax
.
service
.
data
.
factory
.
api
.
feign
;
import
cn.datax.service.data.factory.api.entity.DataSourceEntity
;
import
cn.datax.service.data.factory.api.feign.factory.DataSourceServiceFeignFallbackFactory
;
import
org.springframework.cloud.openfeign.FeignClient
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.PathVariable
;
import
org.springframework.web.bind.annotation.PutMapping
;
@FeignClient
(
contextId
=
"dataSourceServiceFeign"
,
value
=
"datax-service-data-factory"
,
fallbackFactory
=
DataSourceServiceFeignFallbackFactory
.
class
)
public
interface
DataSourceServiceFeign
{
@GetMapping
(
"/inner/sources/{id}"
)
DataSourceEntity
getDataSourceById
(
@PathVariable
(
"id"
)
String
id
);
@PutMapping
(
"/inner/sources/sync/{id}"
)
void
updateDataSourceSyncById
(
@PathVariable
(
"id"
)
String
id
);
}
datax-modules/data-factory-service-parent/data-factory-service-api/src/main/java/cn/datax/service/data/factory/api/feign/factory/DataSetServiceFeignFallbackFactory.java
deleted
100644 → 0
View file @
1891a5c0
package
cn
.
datax
.
service
.
data
.
factory
.
api
.
feign
.
factory
;
import
cn.datax.service.data.factory.api.feign.DataSetServiceFeign
;
import
cn.datax.service.data.factory.api.feign.fallback.DataSetServiceFeignFallbackImpl
;
import
feign.hystrix.FallbackFactory
;
import
org.springframework.stereotype.Component
;
@Component
public
class
DataSetServiceFeignFallbackFactory
implements
FallbackFactory
<
DataSetServiceFeign
>
{
@Override
public
DataSetServiceFeign
create
(
Throwable
throwable
)
{
DataSetServiceFeignFallbackImpl
dataSetServiceFeignFallback
=
new
DataSetServiceFeignFallbackImpl
();
dataSetServiceFeignFallback
.
setCause
(
throwable
);
return
dataSetServiceFeignFallback
;
}
}
datax-modules/data-factory-service-parent/data-factory-service-api/src/main/java/cn/datax/service/data/factory/api/feign/factory/DataSourceServiceFeignFallbackFactory.java
deleted
100644 → 0
View file @
1891a5c0
package
cn
.
datax
.
service
.
data
.
factory
.
api
.
feign
.
factory
;
import
cn.datax.service.data.factory.api.feign.DataSourceServiceFeign
;
import
cn.datax.service.data.factory.api.feign.fallback.DataSourceServiceFeignFallbackImpl
;
import
feign.hystrix.FallbackFactory
;
import
org.springframework.stereotype.Component
;
@Component
public
class
DataSourceServiceFeignFallbackFactory
implements
FallbackFactory
<
DataSourceServiceFeign
>
{
@Override
public
DataSourceServiceFeign
create
(
Throwable
throwable
)
{
DataSourceServiceFeignFallbackImpl
dataSourceServiceFeignFallback
=
new
DataSourceServiceFeignFallbackImpl
();
dataSourceServiceFeignFallback
.
setCause
(
throwable
);
return
dataSourceServiceFeignFallback
;
}
}
datax-modules/data-factory-service-parent/data-factory-service-api/src/main/java/cn/datax/service/data/factory/api/feign/fallback/DataSetServiceFeignFallbackImpl.java
deleted
100644 → 0
View file @
1891a5c0
package
cn
.
datax
.
service
.
data
.
factory
.
api
.
feign
.
fallback
;
import
cn.datax.service.data.factory.api.entity.DataSetEntity
;
import
cn.datax.service.data.factory.api.feign.DataSetServiceFeign
;
import
lombok.Setter
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.stereotype.Component
;
@Slf4j
@Component
public
class
DataSetServiceFeignFallbackImpl
implements
DataSetServiceFeign
{
@Setter
private
Throwable
cause
;
@Override
public
DataSetEntity
getDataSetById
(
String
id
)
{
log
.
error
(
"feign 调用{}出错"
,
id
,
cause
);
return
null
;
}
}
datax-modules/data-factory-service-parent/data-factory-service-api/src/main/java/cn/datax/service/data/factory/api/query/DataThemeQuery.java
deleted
100644 → 0
View file @
1891a5c0
package
cn
.
datax
.
service
.
data
.
factory
.
api
.
query
;
import
cn.datax.common.base.BaseQueryParams
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
/**
* <p>
* 数据主题信息表 查询实体
* </p>
*
* @author yuwei
* @since 2020-07-26
*/
@Data
@EqualsAndHashCode
(
callSuper
=
true
)
public
class
DataThemeQuery
extends
BaseQueryParams
{
private
static
final
long
serialVersionUID
=
1L
;
private
String
themeName
;
}
datax-modules/data-factory-service-parent/data-factory-service-api/src/main/java/cn/datax/service/data/factory/api/vo/DataThemeVo.java
deleted
100644 → 0
View file @
1891a5c0
package
cn
.
datax
.
service
.
data
.
factory
.
api
.
vo
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
lombok.Data
;
import
java.io.Serializable
;
import
java.time.LocalDateTime
;
/**
* <p>
* 数据主题信息表 实体VO
* </p>
*
* @author yuwei
* @since 2020-07-26
*/
@Data
public
class
DataThemeVo
implements
Serializable
{
private
static
final
long
serialVersionUID
=
1L
;
private
String
id
;
private
String
status
;
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
,
timezone
=
"GMT+8"
)
private
LocalDateTime
createTime
;
private
String
remark
;
private
String
themeName
;
}
datax-modules/data-factory-service-parent/data-factory-service-api/src/main/resources/META-INF/spring.factories
deleted
100644 → 0
View file @
1891a5c0
org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
cn.datax.service.data.factory.api.feign.factory.DataSourceServiceFeignFallbackFactory,\
cn.datax.service.data.factory.api.feign.fallback.DataSourceServiceFeignFallbackImpl,\
cn.datax.service.data.factory.api.feign.factory.DataSetServiceFeignFallbackFactory,\
cn.datax.service.data.factory.api.feign.fallback.DataSetServiceFeignFallbackImpl
datax-modules/data-factory-service-parent/data-factory-service/src/main/java/cn/datax/service/data/factory/controller/DataSetController.java
deleted
100644 → 0
View file @
1891a5c0
package
cn
.
datax
.
service
.
data
.
factory
.
controller
;
import
cn.datax.common.core.DataConstant
;
import
cn.datax.common.core.JsonPage
;
import
cn.datax.common.core.R
;
import
cn.datax.common.validate.ValidationGroups
;
import
cn.datax.service.data.factory.api.dto.DataSetDto
;
import
cn.datax.service.data.factory.api.dto.SqlParseDto
;
import
cn.datax.service.data.factory.api.entity.DataSetEntity
;
import
cn.datax.service.data.factory.api.vo.DataSetVo
;
import
cn.datax.service.data.factory.api.query.DataSetQuery
;
import
cn.datax.service.data.factory.mapstruct.DataSetMapper
;
import
cn.datax.service.data.factory.service.DataSetService
;
import
cn.hutool.core.util.StrUtil
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiImplicitParam
;
import
io.swagger.annotations.ApiImplicitParams
;
import
io.swagger.annotations.ApiOperation
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.validation.annotation.Validated
;
import
org.springframework.web.bind.annotation.*
;
import
cn.datax.common.base.BaseController
;
import
java.util.List
;
import
java.util.stream.Collectors
;
/**
* <p>
* 数据集信息表 前端控制器
* </p>
*
* @author yuwei
* @since 2020-03-20
*/
@Api
(
tags
=
{
"数据集信息表"
})
@RestController
@RequestMapping
(
"/dataSets"
)
public
class
DataSetController
extends
BaseController
{
@Autowired
private
DataSetService
dataSetService
;
@Autowired
private
DataSetMapper
dataSetMapper
;
/**
* 通过ID查询信息
*
* @param id
* @return
*/
@ApiOperation
(
value
=
"获取详细信息"
,
notes
=
"根据url的id来获取详细信息"
)
@ApiImplicitParam
(
name
=
"id"
,
value
=
"ID"
,
required
=
true
,
dataType
=
"String"
,
paramType
=
"path"
)
@GetMapping
(
"/{id}"
)
public
R
getDataSetById
(
@PathVariable
String
id
)
{
DataSetEntity
dataSetEntity
=
dataSetService
.
getDataSetById
(
id
);
return
R
.
ok
().
setData
(
dataSetMapper
.
toVO
(
dataSetEntity
));
}
@ApiOperation
(
value
=
"获取列表"
,
notes
=
""
)
@GetMapping
(
"/list"
)
public
R
getDataSetList
()
{
QueryWrapper
<
DataSetEntity
>
queryWrapper
=
new
QueryWrapper
<>();
queryWrapper
.
eq
(
"status"
,
DataConstant
.
EnableState
.
ENABLE
.
getKey
());
List
<
DataSetEntity
>
list
=
dataSetService
.
list
(
queryWrapper
);
List
<
DataSetVo
>
collect
=
list
.
stream
().
map
(
dataSetMapper:
:
toVO
).
collect
(
Collectors
.
toList
());
return
R
.
ok
().
setData
(
collect
);
}
/**
* 分页查询信息
*
* @param dataSetQuery
* @return
*/
@ApiOperation
(
value
=
"分页查询"
,
notes
=
""
)
@ApiImplicitParams
({
@ApiImplicitParam
(
name
=
"dataSetQuery"
,
value
=
"查询实体dataSetQuery"
,
required
=
true
,
dataTypeClass
=
DataSetQuery
.
class
)
})
@GetMapping
(
"/page"
)
public
R
getDataSetPage
(
DataSetQuery
dataSetQuery
)
{
QueryWrapper
<
DataSetEntity
>
queryWrapper
=
new
QueryWrapper
<>();
queryWrapper
.
like
(
StrUtil
.
isNotBlank
(
dataSetQuery
.
getSetName
()),
"set_name"
,
dataSetQuery
.
getSetName
());
IPage
<
DataSetEntity
>
page
=
dataSetService
.
page
(
new
Page
<>(
dataSetQuery
.
getPageNum
(),
dataSetQuery
.
getPageSize
()),
queryWrapper
);
List
<
DataSetVo
>
collect
=
page
.
getRecords
().
stream
().
map
(
dataSetMapper:
:
toVO
).
collect
(
Collectors
.
toList
());
JsonPage
<
DataSetVo
>
jsonPage
=
new
JsonPage
<>(
page
.
getCurrent
(),
page
.
getSize
(),
page
.
getTotal
(),
collect
);
return
R
.
ok
().
setData
(
jsonPage
);
}
/**
* 添加
* @param dataSet
* @return
*/
@ApiOperation
(
value
=
"添加信息"
,
notes
=
"根据dataSet对象添加信息"
)
@ApiImplicitParam
(
name
=
"dataSet"
,
value
=
"详细实体dataSet"
,
required
=
true
,
dataType
=
"DataSetDto"
)
@PostMapping
()
public
R
saveDataSet
(
@RequestBody
@Validated
({
ValidationGroups
.
Insert
.
class
})
DataSetDto
dataSet
)
{
dataSetService
.
saveDataSet
(
dataSet
);
return
R
.
ok
();
}
/**
* 修改
* @param dataSet
* @return
*/
@ApiOperation
(
value
=
"修改信息"
,
notes
=
"根据url的id来指定修改对象,并根据传过来的信息来修改详细信息"
)
@ApiImplicitParams
({
@ApiImplicitParam
(
name
=
"id"
,
value
=
"ID"
,
required
=
true
,
dataType
=
"String"
,
paramType
=
"path"
),
@ApiImplicitParam
(
name
=
"dataSet"
,
value
=
"详细实体dataSet"
,
required
=
true
,
dataType
=
"DataSetDto"
)
})
@PutMapping
(
"/{id}"
)
public
R
updateDataSet
(
@PathVariable
String
id
,
@RequestBody
@Validated
({
ValidationGroups
.
Update
.
class
})
DataSetDto
dataSet
)
{
dataSetService
.
updateDataSet
(
dataSet
);
return
R
.
ok
();
}
/**
* 删除
* @param id
* @return
*/
@ApiOperation
(
value
=
"删除"
,
notes
=
"根据url的id来指定删除对象"
)
@ApiImplicitParam
(
name
=
"id"
,
value
=
"ID"
,
required
=
true
,
dataType
=
"String"
,
paramType
=
"path"
)
@DeleteMapping
(
"/{id}"
)
public
R
deleteDataSetById
(
@PathVariable
String
id
)
{
dataSetService
.
deleteDataSetById
(
id
);
return
R
.
ok
();
}
@ApiOperation
(
value
=
"批量删除"
,
notes
=
"根据url的ids来批量删除对象"
)
@ApiImplicitParam
(
name
=
"ids"
,
value
=
"ID集合"
,
required
=
true
,
dataType
=
"List"
,
paramType
=
"path"
)
@DeleteMapping
(
"/batch/{ids}"
)
public
R
deleteDataSetBatch
(
@PathVariable
List
<
String
>
ids
)
{
dataSetService
.
deleteDataSetBatch
(
ids
);
return
R
.
ok
();
}
/**
* SQL解析
* @param sqlParseDto
* @return
*/
@ApiOperation
(
value
=
"SQL解析"
)
@ApiImplicitParam
(
name
=
"sqlParseDto"
,
value
=
"SQL解析实体sqlParseDto"
,
required
=
true
,
dataType
=
"SqlParseDto"
)
@PostMapping
(
"/sql/analyse"
)
public
R
sqlAnalyse
(
@RequestBody
@Validated
SqlParseDto
sqlParseDto
)
{
List
<
String
>
list
=
dataSetService
.
sqlAnalyse
(
sqlParseDto
);
return
R
.
ok
().
setData
(
list
);
}
}
datax-modules/data-factory-service-parent/data-factory-service/src/main/java/cn/datax/service/data/factory/controller/InnerController.java
deleted
100644 → 0
View file @
1891a5c0
package
cn
.
datax
.
service
.
data
.
factory
.
controller
;
import
cn.datax.common.base.BaseController
;
import
cn.datax.service.data.factory.api.entity.DataSetEntity
;
import
cn.datax.service.data.factory.api.entity.DataSourceEntity
;
import
cn.datax.service.data.factory.service.DataSetService
;
import
cn.datax.service.data.factory.service.DataSourceService
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.*
;
@RestController
@RequestMapping
(
"/inner"
)
public
class
InnerController
extends
BaseController
{
@Autowired
private
DataSourceService
dataSourceService
;
@Autowired
private
DataSetService
dataSetService
;
@GetMapping
(
"/sources/{id}"
)
public
DataSourceEntity
getDataSourceById
(
@PathVariable
(
"id"
)
String
id
)
{
DataSourceEntity
dataSourceEntity
=
dataSourceService
.
getDataSourceById
(
id
);
return
dataSourceEntity
;
}
@PutMapping
(
"/sources/sync/{id}"
)
public
void
updateDataSourceSyncById
(
@PathVariable
(
"id"
)
String
id
)
{
dataSourceService
.
updateDataSourceSyncById
(
id
);
}
@GetMapping
(
"/sets/{id}"
)
public
DataSetEntity
getDataSetById
(
@PathVariable
(
"id"
)
String
id
)
{
DataSetEntity
dataSetEntity
=
dataSetService
.
getDataSetById
(
id
);
return
dataSetEntity
;
}
}
datax-modules/data-factory-service-parent/data-factory-service/src/main/java/cn/datax/service/data/factory/dao/DataThemeDao.java
deleted
100644 → 0
View file @
1891a5c0
package
cn
.
datax
.
service
.
data
.
factory
.
dao
;
import
cn.datax.common.base.BaseDao
;
import
cn.datax.service.data.factory.api.entity.DataThemeEntity
;
import
org.apache.ibatis.annotations.Mapper
;
/**
* <p>
* 数据主题信息表 Mapper 接口
* </p>
*
* @author yuwei
* @since 2020-07-26
*/
@Mapper
public
interface
DataThemeDao
extends
BaseDao
<
DataThemeEntity
>
{
}
datax-modules/data-factory-service-parent/data-factory-service/src/main/java/cn/datax/service/data/factory/mapstruct/DataThemeMapper.java
deleted
100644 → 0
View file @
1891a5c0
package
cn
.
datax
.
service
.
data
.
factory
.
mapstruct
;
import
cn.datax.common.mapstruct.EntityMapper
;
import
cn.datax.service.data.factory.api.dto.DataThemeDto
;
import
cn.datax.service.data.factory.api.entity.DataThemeEntity
;
import
cn.datax.service.data.factory.api.vo.DataThemeVo
;
import
org.mapstruct.Mapper
;
/**
* <p>
* 数据主题信息表 Mapper 实体映射
* </p>
*
* @author yuwei
* @since 2020-07-26
*/
@Mapper
(
componentModel
=
"spring"
)
public
interface
DataThemeMapper
extends
EntityMapper
<
DataThemeDto
,
DataThemeEntity
,
DataThemeVo
>
{
}
datax-modules/data-factory-service-parent/data-factory-service/src/main/java/cn/datax/service/data/factory/service/DataThemeService.java
deleted
100644 → 0
View file @
1891a5c0
package
cn
.
datax
.
service
.
data
.
factory
.
service
;
import
cn.datax.service.data.factory.api.entity.DataThemeEntity
;
import
cn.datax.service.data.factory.api.dto.DataThemeDto
;
import
cn.datax.common.base.BaseService
;
import
java.util.List
;
/**
* <p>
* 数据主题信息表 服务类
* </p>
*
* @author yuwei
* @since 2020-07-26
*/
public
interface
DataThemeService
extends
BaseService
<
DataThemeEntity
>
{
DataThemeEntity
saveDataTheme
(
DataThemeDto
dataTheme
);
DataThemeEntity
updateDataTheme
(
DataThemeDto
dataTheme
);
DataThemeEntity
getDataThemeById
(
String
id
);
void
deleteDataThemeById
(
String
id
);
void
deleteDataThemeBatch
(
List
<
String
>
ids
);
}
datax-modules/data-factory-service-parent/data-factory-service/src/main/java/cn/datax/service/data/factory/service/impl/DataSourceServiceImpl.java
deleted
100644 → 0
View file @
1891a5c0
package
cn
.
datax
.
service
.
data
.
factory
.
service
.
impl
;
import
cn.datax.common.core.DataConstant
;
import
cn.datax.common.database.DataSourceFactory
;
import
cn.datax.common.database.DbQuery
;
import
cn.datax.common.database.constants.DbQueryProperty
;
import
cn.datax.common.database.core.DbColumn
;
import
cn.datax.common.database.core.DbTable
;
import
cn.datax.service.data.factory.api.dto.DataSourceDto
;
import
cn.datax.service.data.factory.api.dto.DbSchema
;
import
cn.datax.service.data.factory.api.entity.DataSourceEntity
;
import
cn.datax.service.data.factory.dao.DataSourceDao
;
import
cn.datax.service.data.factory.service.DataSourceService
;
import
cn.datax.service.data.factory.mapstruct.DataSourceMapper
;
import
cn.datax.common.base.BaseServiceImpl
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Propagation
;
import
org.springframework.transaction.annotation.Transactional
;
import
java.util.List
;
/**
* <p>
* 数据源信息表 服务实现类
* </p>
*
* @author yuwei
* @since 2020-03-14
*/
@Service
@Transactional
(
propagation
=
Propagation
.
SUPPORTS
,
readOnly
=
true
,
rollbackFor
=
Exception
.
class
)
public
class
DataSourceServiceImpl
extends
BaseServiceImpl
<
DataSourceDao
,
DataSourceEntity
>
implements
DataSourceService
{
@Autowired
private
DataSourceDao
dataSourceDao
;
@Autowired
private
DataSourceMapper
dataSourceMapper
;
@Autowired
private
DataSourceFactory
dataSourceFactory
;
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
void
saveDataSource
(
DataSourceDto
dataSourceDto
)
{
DataSourceEntity
dataSource
=
dataSourceMapper
.
toEntity
(
dataSourceDto
);
dataSource
.
setSourceSync
(
Integer
.
valueOf
(
DataConstant
.
TrueOrFalse
.
FALSE
.
getKey
()));
dataSourceDao
.
insert
(
dataSource
);
}
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
void
updateDataSource
(
DataSourceDto
dataSourceDto
)
{
DataSourceEntity
dataSource
=
dataSourceMapper
.
toEntity
(
dataSourceDto
);
dataSourceDao
.
updateById
(
dataSource
);
}
@Override
public
DataSourceEntity
getDataSourceById
(
String
id
)
{
DataSourceEntity
dataSourceEntity
=
super
.
getById
(
id
);
return
dataSourceEntity
;
}
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
void
deleteDataSourceById
(
String
id
)
{
dataSourceDao
.
deleteById
(
id
);
}
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
void
deleteDataSourceBatch
(
List
<
String
>
ids
)
{
dataSourceDao
.
deleteBatchIds
(
ids
);
}
@Override
public
DbQuery
checkConnection
(
DataSourceDto
dataSourceDto
)
{
DataSourceEntity
dataSource
=
dataSourceMapper
.
toEntity
(
dataSourceDto
);
DbSchema
dbSchema
=
dataSource
.
getDbSchema
();
DbQueryProperty
dbQueryProperty
=
new
DbQueryProperty
(
dataSource
.
getDbType
(),
dbSchema
.
getHost
(),
dbSchema
.
getUsername
(),
dbSchema
.
getPassword
(),
dbSchema
.
getPort
(),
dbSchema
.
getDbName
(),
dbSchema
.
getSid
());
DbQuery
dbQuery
=
dataSourceFactory
.
createDbQuery
(
dbQueryProperty
);
return
dbQuery
;
}
@Override
public
DbQuery
getDbQuery
(
String
id
)
{
DataSourceEntity
dataSource
=
getById
(
id
);
DbSchema
dbSchema
=
dataSource
.
getDbSchema
();
DbQueryProperty
dbQueryProperty
=
new
DbQueryProperty
(
dataSource
.
getDbType
(),
dbSchema
.
getHost
(),
dbSchema
.
getUsername
(),
dbSchema
.
getPassword
(),
dbSchema
.
getPort
(),
dbSchema
.
getDbName
(),
dbSchema
.
getSid
());
DbQuery
dbQuery
=
dataSourceFactory
.
createDbQuery
(
dbQueryProperty
);
return
dbQuery
;
}
@Override
public
List
<
DbTable
>
getDbTables
(
String
id
)
{
DataSourceEntity
dataSource
=
getById
(
id
);
DbSchema
dbSchema
=
dataSource
.
getDbSchema
();
DbQueryProperty
dbQueryProperty
=
new
DbQueryProperty
(
dataSource
.
getDbType
(),
dbSchema
.
getHost
(),
dbSchema
.
getUsername
(),
dbSchema
.
getPassword
(),
dbSchema
.
getPort
(),
dbSchema
.
getDbName
(),
dbSchema
.
getSid
());
DbQuery
dbQuery
=
dataSourceFactory
.
createDbQuery
(
dbQueryProperty
);
List
<
DbTable
>
tables
=
dbQuery
.
getTables
(
dbSchema
.
getDbName
());
return
tables
;
}
@Override
public
List
<
DbColumn
>
getDbTableColumns
(
String
id
,
String
tableName
)
{
DataSourceEntity
dataSource
=
getById
(
id
);
DbSchema
dbSchema
=
dataSource
.
getDbSchema
();
DbQueryProperty
dbQueryProperty
=
new
DbQueryProperty
(
dataSource
.
getDbType
(),
dbSchema
.
getHost
(),
dbSchema
.
getUsername
(),
dbSchema
.
getPassword
(),
dbSchema
.
getPort
(),
dbSchema
.
getDbName
(),
dbSchema
.
getSid
());
DbQuery
dbQuery
=
dataSourceFactory
.
createDbQuery
(
dbQueryProperty
);
List
<
DbColumn
>
columns
=
dbQuery
.
getTableColumns
(
dbSchema
.
getDbName
(),
tableName
);
return
columns
;
}
@Override
public
void
updateDataSourceSyncById
(
String
id
)
{
DataSourceEntity
dataSource
=
new
DataSourceEntity
();
dataSource
.
setId
(
id
);
dataSource
.
setSourceSync
(
Integer
.
valueOf
(
DataConstant
.
TrueOrFalse
.
TRUE
.
getKey
()));
dataSourceDao
.
updateById
(
dataSource
);
}
}
datax-modules/data-factory-service-parent/data-factory-service/src/main/java/cn/datax/service/data/factory/service/impl/DataThemeServiceImpl.java
deleted
100644 → 0
View file @
1891a5c0
package
cn
.
datax
.
service
.
data
.
factory
.
service
.
impl
;
import
cn.datax.service.data.factory.api.entity.DataThemeEntity
;
import
cn.datax.service.data.factory.api.dto.DataThemeDto
;
import
cn.datax.service.data.factory.service.DataThemeService
;
import
cn.datax.service.data.factory.mapstruct.DataThemeMapper
;
import
cn.datax.service.data.factory.dao.DataThemeDao
;
import
cn.datax.common.base.BaseServiceImpl
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Propagation
;
import
org.springframework.transaction.annotation.Transactional
;
import
java.util.List
;
/**
* <p>
* 数据主题信息表 服务实现类
* </p>
*
* @author yuwei
* @since 2020-07-26
*/
@Service
@Transactional
(
propagation
=
Propagation
.
SUPPORTS
,
readOnly
=
true
,
rollbackFor
=
Exception
.
class
)
public
class
DataThemeServiceImpl
extends
BaseServiceImpl
<
DataThemeDao
,
DataThemeEntity
>
implements
DataThemeService
{
@Autowired
private
DataThemeDao
dataThemeDao
;
@Autowired
private
DataThemeMapper
dataThemeMapper
;
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
DataThemeEntity
saveDataTheme
(
DataThemeDto
dataThemeDto
)
{
DataThemeEntity
dataTheme
=
dataThemeMapper
.
toEntity
(
dataThemeDto
);
dataThemeDao
.
insert
(
dataTheme
);
return
dataTheme
;
}
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
DataThemeEntity
updateDataTheme
(
DataThemeDto
dataThemeDto
)
{
DataThemeEntity
dataTheme
=
dataThemeMapper
.
toEntity
(
dataThemeDto
);
dataThemeDao
.
updateById
(
dataTheme
);
return
dataTheme
;
}
@Override
public
DataThemeEntity
getDataThemeById
(
String
id
)
{
DataThemeEntity
dataThemeEntity
=
super
.
getById
(
id
);
return
dataThemeEntity
;
}
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
void
deleteDataThemeById
(
String
id
)
{
dataThemeDao
.
deleteById
(
id
);
}
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
void
deleteDataThemeBatch
(
List
<
String
>
ids
)
{
dataThemeDao
.
deleteBatchIds
(
ids
);
}
}
datax-modules/data-factory-service-parent/data-factory-service/src/main/resources/mapper/DataThemeMapper.xml
deleted
100644 → 0
View file @
1891a5c0
<?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=
"cn.datax.service.data.factory.dao.DataThemeDao"
>
<!-- 通用查询映射结果 -->
<resultMap
id=
"BaseResultMap"
type=
"cn.datax.service.data.factory.api.entity.DataThemeEntity"
>
<result
column=
"id"
property=
"id"
/>
<result
column=
"status"
property=
"status"
/>
<result
column=
"create_by"
property=
"createBy"
/>
<result
column=
"create_time"
property=
"createTime"
/>
<result
column=
"create_dept"
property=
"createDept"
/>
<result
column=
"update_by"
property=
"updateBy"
/>
<result
column=
"update_time"
property=
"updateTime"
/>
<result
column=
"remark"
property=
"remark"
/>
<result
column=
"theme_name"
property=
"themeName"
/>
</resultMap>
<!-- 通用查询结果列 -->
<sql
id=
"Base_Column_List"
>
id,
status,
create_by,
create_time,
create_dept,
update_by,
update_time,
remark,
theme_name
</sql>
</mapper>
datax-modules/data-market-service-parent/data-market-service-api-mapping/pom.xml
View file @
9579d532
...
@@ -76,7 +76,7 @@
...
@@ -76,7 +76,7 @@
</dependency>
</dependency>
<dependency>
<dependency>
<groupId>
cn.datax
</groupId>
<groupId>
cn.datax
</groupId>
<artifactId>
data-
factory
-service-api
</artifactId>
<artifactId>
data-
metadata
-service-api
</artifactId>
<version>
2.0.0
</version>
<version>
2.0.0
</version>
</dependency>
</dependency>
<dependency>
<dependency>
...
@@ -84,11 +84,6 @@
...
@@ -84,11 +84,6 @@
<artifactId>
datax-common-rabbitmq
</artifactId>
<artifactId>
datax-common-rabbitmq
</artifactId>
<version>
2.0.0
</version>
<version>
2.0.0
</version>
</dependency>
</dependency>
<dependency>
<groupId>
com.thoughtworks.xstream
</groupId>
<artifactId>
xstream
</artifactId>
<version>
${xstream.vsersion}
</version>
</dependency>
</dependencies>
</dependencies>
<build>
<build>
...
...
datax-modules/data-market-service-parent/data-market-service-api-mapping/src/main/java/cn/datax/service/data/market/api/mapping/handler/RequestHandler.java
View file @
9579d532
...
@@ -6,14 +6,11 @@ import cn.datax.common.database.core.PageResult;
...
@@ -6,14 +6,11 @@ import cn.datax.common.database.core.PageResult;
import
cn.datax.common.utils.ThrowableUtil
;
import
cn.datax.common.utils.ThrowableUtil
;
import
cn.datax.service.data.market.api.dto.ApiLogDto
;
import
cn.datax.service.data.market.api.dto.ApiLogDto
;
import
cn.datax.service.data.market.api.entity.DataApiEntity
;
import
cn.datax.service.data.market.api.entity.DataApiEntity
;
import
cn.datax.service.data.market.api.enums.ResType
;
import
cn.datax.service.data.market.api.mapping.service.ApiLogService
;
import
cn.datax.service.data.market.api.mapping.service.ApiLogService
;
import
cn.datax.service.data.market.api.mapping.service.impl.ApiMappingEngine
;
import
cn.datax.service.data.market.api.mapping.service.impl.ApiMappingEngine
;
import
cn.datax.service.data.market.api.mapping.utils.ThreadUtil
;
import
cn.datax.service.data.market.api.mapping.utils.ThreadUtil
;
import
cn.hutool.core.map.MapUtil
;
import
cn.hutool.core.map.MapUtil
;
import
com.fasterxml.jackson.databind.ObjectMapper
;
import
com.fasterxml.jackson.databind.ObjectMapper
;
import
com.thoughtworks.xstream.XStream
;
import
com.thoughtworks.xstream.io.xml.StaxDriver
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.web.bind.annotation.PathVariable
;
import
org.springframework.web.bind.annotation.PathVariable
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RequestBody
;
...
@@ -86,13 +83,7 @@ public class RequestHandler {
...
@@ -86,13 +83,7 @@ public class RequestHandler {
requestInterceptor
.
postHandle
(
request
,
response
,
api
,
params
,
value
);
requestInterceptor
.
postHandle
(
request
,
response
,
api
,
params
,
value
);
ThreadUtil
.
getInstance
().
get
().
setCallerSize
(
value
.
getData
().
size
());
ThreadUtil
.
getInstance
().
get
().
setCallerSize
(
value
.
getData
().
size
());
ThreadUtil
.
getInstance
().
get
().
setTime
(
System
.
currentTimeMillis
()
-
start
);
ThreadUtil
.
getInstance
().
get
().
setTime
(
System
.
currentTimeMillis
()
-
start
);
R
r
=
R
.
ok
().
setData
(
value
);
return
R
.
ok
().
setData
(
value
);
if
(
ResType
.
XML
.
getDesc
().
equals
(
api
.
getResType
()))
{
XStream
xstream
=
new
XStream
(
new
StaxDriver
());
xstream
.
alias
(
"R"
,
R
.
class
);
return
xstream
.
toXML
(
r
);
}
return
r
;
}
catch
(
Exception
e
)
{
}
catch
(
Exception
e
)
{
log
.
error
(
"全局异常信息ex={}, StackTrace={}"
,
e
.
getMessage
(),
ThrowableUtil
.
getStackTrace
(
e
));
log
.
error
(
"全局异常信息ex={}, StackTrace={}"
,
e
.
getMessage
(),
ThrowableUtil
.
getStackTrace
(
e
));
ThreadUtil
.
getInstance
().
get
().
setStatus
(
DataConstant
.
EnableState
.
DISABLE
.
getKey
());
ThreadUtil
.
getInstance
().
get
().
setStatus
(
DataConstant
.
EnableState
.
DISABLE
.
getKey
());
...
...
datax-modules/data-market-service-parent/data-market-service-api-mapping/src/main/java/cn/datax/service/data/market/api/mapping/service/impl/ApiMappingEngine.java
View file @
9579d532
...
@@ -7,9 +7,6 @@ import cn.datax.common.database.core.PageResult;
...
@@ -7,9 +7,6 @@ import cn.datax.common.database.core.PageResult;
import
cn.datax.common.exception.DataException
;
import
cn.datax.common.exception.DataException
;
import
cn.datax.common.utils.PageUtil
;
import
cn.datax.common.utils.PageUtil
;
import
cn.datax.common.utils.ThrowableUtil
;
import
cn.datax.common.utils.ThrowableUtil
;
import
cn.datax.service.data.factory.api.dto.DbSchema
;
import
cn.datax.service.data.factory.api.entity.DataSourceEntity
;
import
cn.datax.service.data.factory.api.feign.DataSourceServiceFeign
;
import
cn.datax.service.data.market.api.dto.FieldRule
;
import
cn.datax.service.data.market.api.dto.FieldRule
;
import
cn.datax.service.data.market.api.entity.ApiMaskEntity
;
import
cn.datax.service.data.market.api.entity.ApiMaskEntity
;
import
cn.datax.service.data.market.api.entity.DataApiEntity
;
import
cn.datax.service.data.market.api.entity.DataApiEntity
;
...
@@ -18,6 +15,9 @@ import cn.datax.service.data.market.api.mapping.factory.AbstractFactory;
...
@@ -18,6 +15,9 @@ import cn.datax.service.data.market.api.mapping.factory.AbstractFactory;
import
cn.datax.service.data.market.api.mapping.factory.FactoryProducer
;
import
cn.datax.service.data.market.api.mapping.factory.FactoryProducer
;
import
cn.datax.service.data.market.api.mapping.factory.crypto.Crypto
;
import
cn.datax.service.data.market.api.mapping.factory.crypto.Crypto
;
import
cn.datax.service.data.market.api.mapping.utils.SqlBuilderUtil
;
import
cn.datax.service.data.market.api.mapping.utils.SqlBuilderUtil
;
import
cn.datax.service.data.metadata.api.dto.DbSchema
;
import
cn.datax.service.data.metadata.api.entity.MetadataSourceEntity
;
import
cn.datax.service.data.metadata.api.feign.MetadataSourceServiceFeign
;
import
cn.hutool.core.collection.CollUtil
;
import
cn.hutool.core.collection.CollUtil
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
...
@@ -34,13 +34,13 @@ public class ApiMappingEngine {
...
@@ -34,13 +34,13 @@ public class ApiMappingEngine {
private
DataSourceFactory
dataSourceFactory
;
private
DataSourceFactory
dataSourceFactory
;
@Autowired
@Autowired
private
DataSourceServiceFeign
dataSourceServiceFeign
;
private
MetadataSourceServiceFeign
meta
dataSourceServiceFeign
;
@Autowired
@Autowired
private
ApiMaskServiceFeign
apiMaskServiceFeign
;
private
ApiMaskServiceFeign
apiMaskServiceFeign
;
public
PageResult
<
Map
<
String
,
Object
>>
execute
(
DataApiEntity
dataApi
,
Map
<
String
,
Object
>
params
)
{
public
PageResult
<
Map
<
String
,
Object
>>
execute
(
DataApiEntity
dataApi
,
Map
<
String
,
Object
>
params
)
{
DataSourceEntity
dataSource
=
dataSourceServiceFeign
.
getD
ataSourceById
(
dataApi
.
getExecuteConfig
().
getSourceId
());
MetadataSourceEntity
dataSource
=
metadataSourceServiceFeign
.
getMetad
ataSourceById
(
dataApi
.
getExecuteConfig
().
getSourceId
());
if
(
dataSource
==
null
)
{
if
(
dataSource
==
null
)
{
throw
new
DataException
(
"API调用查询数据源出错"
);
throw
new
DataException
(
"API调用查询数据源出错"
);
}
}
...
...
datax-modules/data-market-service-parent/data-market-service-api-mapping/src/main/resources/bootstrap.yml
View file @
9579d532
server
:
server
:
port
:
88
19
port
:
88
23
spring
:
spring
:
application
:
application
:
...
...
datax-modules/data-market-service-parent/data-market-service/pom.xml
View file @
9579d532
...
@@ -76,7 +76,7 @@
...
@@ -76,7 +76,7 @@
</dependency>
</dependency>
<dependency>
<dependency>
<groupId>
cn.datax
</groupId>
<groupId>
cn.datax
</groupId>
<artifactId>
data
-factory-service-api
</artifactId>
<artifactId>
data
x-common-office
</artifactId>
<version>
2.0.0
</version>
<version>
2.0.0
</version>
</dependency>
</dependency>
<dependency>
<dependency>
...
...
datax-modules/data-market-service-parent/data-market-service/src/main/java/cn/datax/service/data/market/controller/DataApiController.java
View file @
9579d532
...
@@ -12,6 +12,9 @@ import cn.datax.service.data.market.api.vo.SqlParseVo;
...
@@ -12,6 +12,9 @@ import cn.datax.service.data.market.api.vo.SqlParseVo;
import
cn.datax.service.data.market.mapstruct.DataApiMapper
;
import
cn.datax.service.data.market.mapstruct.DataApiMapper
;
import
cn.datax.service.data.market.service.DataApiService
;
import
cn.datax.service.data.market.service.DataApiService
;
import
cn.hutool.core.util.StrUtil
;
import
cn.hutool.core.util.StrUtil
;
import
com.aspose.words.Document
;
import
com.aspose.words.SaveFormat
;
import
com.aspose.words.SaveOptions
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
...
@@ -25,6 +28,8 @@ import org.springframework.web.bind.annotation.*;
...
@@ -25,6 +28,8 @@ import org.springframework.web.bind.annotation.*;
import
cn.datax.common.base.BaseController
;
import
cn.datax.common.base.BaseController
;
import
javax.servlet.http.HttpServletResponse
;
import
java.io.OutputStream
;
import
java.util.List
;
import
java.util.List
;
import
java.util.stream.Collectors
;
import
java.util.stream.Collectors
;
...
@@ -186,4 +191,21 @@ public class DataApiController extends BaseController {
...
@@ -186,4 +191,21 @@ public class DataApiController extends BaseController {
dataApiService
.
cancelDataApi
(
id
);
dataApiService
.
cancelDataApi
(
id
);
return
R
.
ok
();
return
R
.
ok
();
}
}
@ApiOperation
(
value
=
"接口文档"
,
notes
=
"根据url的id来指定生成接口文档对象"
)
@ApiImplicitParam
(
name
=
"id"
,
value
=
"ID"
,
required
=
true
,
dataType
=
"String"
,
paramType
=
"path"
)
@PostMapping
(
"/word/{id}"
)
public
void
wordDataApi
(
@PathVariable
String
id
,
HttpServletResponse
response
)
throws
Exception
{
// 清空response
response
.
reset
();
// 设置response的Header
response
.
setContentType
(
"application/octet-stream;charset=utf-8"
);
// 设置content-disposition响应头控制浏览器以下载的形式打开文件
response
.
addHeader
(
"Content-Disposition"
,
"attachment;filename="
+
new
String
(
"接口文档.docx"
.
getBytes
()));
Document
doc
=
dataApiService
.
wordDataApi
(
id
);
OutputStream
out
=
response
.
getOutputStream
();
doc
.
save
(
out
,
SaveOptions
.
createSaveOptions
(
SaveFormat
.
DOCX
));
out
.
flush
();
out
.
close
();
}
}
}
datax-modules/data-market-service-parent/data-market-service/src/main/java/cn/datax/service/data/market/service/DataApiService.java
View file @
9579d532
...
@@ -5,6 +5,7 @@ import cn.datax.service.data.market.api.entity.DataApiEntity;
...
@@ -5,6 +5,7 @@ import cn.datax.service.data.market.api.entity.DataApiEntity;
import
cn.datax.service.data.market.api.dto.DataApiDto
;
import
cn.datax.service.data.market.api.dto.DataApiDto
;
import
cn.datax.common.base.BaseService
;
import
cn.datax.common.base.BaseService
;
import
cn.datax.service.data.market.api.vo.SqlParseVo
;
import
cn.datax.service.data.market.api.vo.SqlParseVo
;
import
com.aspose.words.Document
;
import
java.util.List
;
import
java.util.List
;
...
@@ -35,4 +36,6 @@ public interface DataApiService extends BaseService<DataApiEntity> {
...
@@ -35,4 +36,6 @@ public interface DataApiService extends BaseService<DataApiEntity> {
void
releaseDataApi
(
String
id
);
void
releaseDataApi
(
String
id
);
void
cancelDataApi
(
String
id
);
void
cancelDataApi
(
String
id
);
Document
wordDataApi
(
String
id
)
throws
Exception
;
}
}
datax-modules/data-market-service-parent/data-market-service/src/main/java/cn/datax/service/data/market/service/impl/DataApiServiceImpl.java
View file @
9579d532
package
cn
.
datax
.
service
.
data
.
market
.
service
.
impl
;
package
cn
.
datax
.
service
.
data
.
market
.
service
.
impl
;
import
cn.datax.commo.office.word.WordUtil
;
import
cn.datax.common.core.DataConstant
;
import
cn.datax.common.core.DataConstant
;
import
cn.datax.common.exception.DataException
;
import
cn.datax.common.exception.DataException
;
import
cn.datax.common.rabbitmq.config.RabbitMqConstant
;
import
cn.datax.common.rabbitmq.config.RabbitMqConstant
;
...
@@ -13,6 +14,10 @@ import cn.datax.service.data.market.mapstruct.DataApiMapper;
...
@@ -13,6 +14,10 @@ import cn.datax.service.data.market.mapstruct.DataApiMapper;
import
cn.datax.service.data.market.dao.DataApiDao
;
import
cn.datax.service.data.market.dao.DataApiDao
;
import
cn.datax.common.base.BaseServiceImpl
;
import
cn.datax.common.base.BaseServiceImpl
;
import
cn.datax.service.data.market.utils.SqlBuilderUtil
;
import
cn.datax.service.data.market.utils.SqlBuilderUtil
;
import
com.aspose.words.Document
;
import
com.aspose.words.MailMerge
;
import
com.aspose.words.net.System.Data.DataRow
;
import
com.aspose.words.net.System.Data.DataTable
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
import
net.sf.jsqlparser.JSQLParserException
;
import
net.sf.jsqlparser.JSQLParserException
;
import
net.sf.jsqlparser.expression.ExpressionVisitorAdapter
;
import
net.sf.jsqlparser.expression.ExpressionVisitorAdapter
;
...
@@ -30,10 +35,13 @@ import net.sf.jsqlparser.util.deparser.ExpressionDeParser;
...
@@ -30,10 +35,13 @@ import net.sf.jsqlparser.util.deparser.ExpressionDeParser;
import
net.sf.jsqlparser.util.deparser.SelectDeParser
;
import
net.sf.jsqlparser.util.deparser.SelectDeParser
;
import
org.springframework.amqp.rabbit.core.RabbitTemplate
;
import
org.springframework.amqp.rabbit.core.RabbitTemplate
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.core.io.ClassPathResource
;
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.io.IOException
;
import
java.io.InputStream
;
import
java.time.LocalDateTime
;
import
java.time.LocalDateTime
;
import
java.util.ArrayList
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.List
;
...
@@ -239,4 +247,55 @@ public class DataApiServiceImpl extends BaseServiceImpl<DataApiDao, DataApiEntit
...
@@ -239,4 +247,55 @@ public class DataApiServiceImpl extends BaseServiceImpl<DataApiDao, DataApiEntit
dataApiEntity
.
setStatus
(
DataConstant
.
ApiState
.
CANCEL
.
getKey
());
dataApiEntity
.
setStatus
(
DataConstant
.
ApiState
.
CANCEL
.
getKey
());
dataApiDao
.
updateById
(
dataApiEntity
);
dataApiDao
.
updateById
(
dataApiEntity
);
}
}
@Override
public
Document
wordDataApi
(
String
id
)
throws
Exception
{
DataApiEntity
dataApiEntity
=
super
.
getById
(
id
);
// 合并模版
ClassPathResource
classPathResource
=
new
ClassPathResource
(
"templates/api_1.0.0.docx"
);
InputStream
inputStream
=
classPathResource
.
getInputStream
();
Document
doc
=
WordUtil
.
getInstance
().
getDocument
(
inputStream
);
// 提供字段
String
[]
fieldNames
=
new
String
[]
{
"apiName"
,
"apiVersion"
,
"reqMethod"
,
"resType"
,
"apiUrl"
,
"remark"
};
Object
[]
fieldValues
=
new
Object
[]
{
dataApiEntity
.
getApiName
(),
dataApiEntity
.
getApiVersion
(),
dataApiEntity
.
getReqMethod
(),
dataApiEntity
.
getResType
(),
"/services/"
+
dataApiEntity
.
getApiVersion
()+
dataApiEntity
.
getApiUrl
(),
dataApiEntity
.
getRemark
()};
MailMerge
mailMerge
=
doc
.
getMailMerge
();
mailMerge
.
execute
(
fieldNames
,
fieldValues
);
// 请求参数 TableStart:ReqParamList TableEnd:ReqParamList
DataTable
reqParamTable
=
new
DataTable
(
"ReqParamList"
);
reqParamTable
.
getColumns
().
add
(
"paramName"
);
reqParamTable
.
getColumns
().
add
(
"remark"
);
reqParamTable
.
getColumns
().
add
(
"paramType"
);
reqParamTable
.
getColumns
().
add
(
"nullable"
);
reqParamTable
.
getColumns
().
add
(
"exampleValue"
);
List
<
ReqParam
>
reqParamList
=
dataApiEntity
.
getReqParams
();
for
(
int
i
=
0
;
i
<
reqParamList
.
size
();
i
++)
{
DataRow
row
=
reqParamTable
.
newRow
();
ReqParam
param
=
reqParamList
.
get
(
i
);
row
.
set
(
0
,
param
.
getParamName
());
row
.
set
(
1
,
param
.
getRemark
());
row
.
set
(
2
,
param
.
getParamType
());
row
.
set
(
3
,
"1"
.
equals
(
param
.
getNullable
())
?
"Y"
:
"N"
);
row
.
set
(
4
,
param
.
getExampleValue
());
reqParamTable
.
getRows
().
add
(
row
);
}
mailMerge
.
executeWithRegions
(
reqParamTable
);
// 返回字段 TableStart:ResParamList TableEnd:ResParamList
DataTable
resParamTable
=
new
DataTable
(
"ResParamList"
);
resParamTable
.
getColumns
().
add
(
"fieldName"
);
resParamTable
.
getColumns
().
add
(
"dataType"
);
resParamTable
.
getColumns
().
add
(
"remark"
);
resParamTable
.
getColumns
().
add
(
"exampleValue"
);
List
<
ResParam
>
resParamList
=
dataApiEntity
.
getResParams
();
for
(
int
i
=
0
;
i
<
resParamList
.
size
();
i
++)
{
DataRow
row
=
resParamTable
.
newRow
();
ResParam
param
=
resParamList
.
get
(
i
);
row
.
set
(
0
,
param
.
getFieldName
());
row
.
set
(
1
,
param
.
getDataType
());
row
.
set
(
2
,
param
.
getRemark
());
row
.
set
(
3
,
param
.
getExampleValue
());
resParamTable
.
getRows
().
add
(
row
);
}
mailMerge
.
executeWithRegions
(
resParamTable
);
return
doc
;
}
}
}
datax-modules/data-market-service-parent/data-market-service/src/main/resources/bootstrap.yml
View file @
9579d532
server
:
server
:
port
:
88
18
port
:
88
22
spring
:
spring
:
application
:
application
:
...
...
datax-modules/data-
factory-service-parent/data-factory-service-api/src/main/java/cn/datax/service/data/factory
/api/dto/DbSchema.java
→
datax-modules/data-
metadata-service-parent/data-metadata-service-api/src/main/java/cn/datax/service/data/metadata
/api/dto/DbSchema.java
View file @
9579d532
package
cn
.
datax
.
service
.
data
.
factory
.
api
.
dto
;
package
cn
.
datax
.
service
.
data
.
metadata
.
api
.
dto
;
import
cn.datax.common.validate.ValidationGroups
;
import
cn.datax.common.validate.ValidationGroups
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModel
;
...
...
datax-modules/data-metadata-service-parent/data-metadata-service-api/src/main/java/cn/datax/service/data/metadata/api/dto/
Data
MetadataColumnDto.java
→
datax-modules/data-metadata-service-parent/data-metadata-service-api/src/main/java/cn/datax/service/data/metadata/api/dto/MetadataColumnDto.java
View file @
9579d532
...
@@ -18,7 +18,7 @@ import java.io.Serializable;
...
@@ -18,7 +18,7 @@ import java.io.Serializable;
*/
*/
@ApiModel
(
value
=
"元数据信息表Model"
)
@ApiModel
(
value
=
"元数据信息表Model"
)
@Data
@Data
public
class
Data
MetadataColumnDto
implements
Serializable
{
public
class
MetadataColumnDto
implements
Serializable
{
private
static
final
long
serialVersionUID
=
1L
;
private
static
final
long
serialVersionUID
=
1L
;
...
...
datax-modules/data-
factory-service-parent/data-factory-service-api/src/main/java/cn/datax/service/data/factory/api/dto/D
ataSourceDto.java
→
datax-modules/data-
metadata-service-parent/data-metadata-service-api/src/main/java/cn/datax/service/data/metadata/api/dto/Metad
ataSourceDto.java
View file @
9579d532
package
cn
.
datax
.
service
.
data
.
factory
.
api
.
dto
;
package
cn
.
datax
.
service
.
data
.
metadata
.
api
.
dto
;
import
cn.datax.common.validate.ValidationGroups
;
import
cn.datax.common.validate.ValidationGroups
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModel
;
...
@@ -9,6 +9,7 @@ import javax.validation.Valid;
...
@@ -9,6 +9,7 @@ import javax.validation.Valid;
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
...
@@ -19,7 +20,7 @@ import java.io.Serializable;
...
@@ -19,7 +20,7 @@ import java.io.Serializable;
*/
*/
@ApiModel
(
value
=
"数据源信息表Model"
)
@ApiModel
(
value
=
"数据源信息表Model"
)
@Data
@Data
public
class
D
ataSourceDto
implements
Serializable
{
public
class
Metad
ataSourceDto
implements
Serializable
{
private
static
final
long
serialVersionUID
=
1L
;
private
static
final
long
serialVersionUID
=
1L
;
...
@@ -32,9 +33,6 @@ public class DataSourceDto implements Serializable {
...
@@ -32,9 +33,6 @@ public class DataSourceDto implements Serializable {
@ApiModelProperty
(
value
=
"数据源名称"
)
@ApiModelProperty
(
value
=
"数据源名称"
)
@NotBlank
(
message
=
"数据源名称不能为空"
,
groups
=
{
ValidationGroups
.
Insert
.
class
,
ValidationGroups
.
Update
.
class
})
@NotBlank
(
message
=
"数据源名称不能为空"
,
groups
=
{
ValidationGroups
.
Insert
.
class
,
ValidationGroups
.
Update
.
class
})
private
String
sourceName
;
private
String
sourceName
;
@ApiModelProperty
(
value
=
"数据主题"
)
@NotBlank
(
message
=
"数据主题不能为空"
,
groups
=
{
ValidationGroups
.
Insert
.
class
,
ValidationGroups
.
Update
.
class
})
private
String
themeId
;
@ApiModelProperty
(
value
=
"数据源连接信息"
)
@ApiModelProperty
(
value
=
"数据源连接信息"
)
@Valid
@Valid
private
DbSchema
dbSchema
;
private
DbSchema
dbSchema
;
...
...
datax-modules/data-metadata-service-parent/data-metadata-service-api/src/main/java/cn/datax/service/data/metadata/api/dto/
Data
MetadataTableDto.java
→
datax-modules/data-metadata-service-parent/data-metadata-service-api/src/main/java/cn/datax/service/data/metadata/api/dto/MetadataTableDto.java
View file @
9579d532
...
@@ -18,7 +18,7 @@ import java.io.Serializable;
...
@@ -18,7 +18,7 @@ import java.io.Serializable;
*/
*/
@ApiModel
(
value
=
"数据库表信息表Model"
)
@ApiModel
(
value
=
"数据库表信息表Model"
)
@Data
@Data
public
class
Data
MetadataTableDto
implements
Serializable
{
public
class
MetadataTableDto
implements
Serializable
{
private
static
final
long
serialVersionUID
=
1L
;
private
static
final
long
serialVersionUID
=
1L
;
...
...
datax-modules/data-
factory-service-parent/data-factory-service-api/src/main/java/cn/datax/service/data/factory
/api/dto/SqlConsoleDto.java
→
datax-modules/data-
metadata-service-parent/data-metadata-service-api/src/main/java/cn/datax/service/data/metadata
/api/dto/SqlConsoleDto.java
View file @
9579d532
package
cn
.
datax
.
service
.
data
.
factory
.
api
.
dto
;
package
cn
.
datax
.
service
.
data
.
metadata
.
api
.
dto
;
import
cn.datax.common.validate.ValidationGroups
;
import
cn.datax.common.validate.ValidationGroups
;
import
io.swagger.annotations.ApiModelProperty
;
import
io.swagger.annotations.ApiModelProperty
;
...
...
datax-modules/data-metadata-service-parent/data-metadata-service-api/src/main/java/cn/datax/service/data/metadata/api/entity/
Data
MetadataColumnEntity.java
→
datax-modules/data-metadata-service-parent/data-metadata-service-api/src/main/java/cn/datax/service/data/metadata/api/entity/MetadataColumnEntity.java
View file @
9579d532
...
@@ -19,7 +19,7 @@ import java.io.Serializable;
...
@@ -19,7 +19,7 @@ import java.io.Serializable;
@Data
@Data
@Accessors
(
chain
=
true
)
@Accessors
(
chain
=
true
)
@TableName
(
"metadata_column"
)
@TableName
(
"metadata_column"
)
public
class
Data
MetadataColumnEntity
implements
Serializable
{
public
class
MetadataColumnEntity
implements
Serializable
{
private
static
final
long
serialVersionUID
=
1L
;
private
static
final
long
serialVersionUID
=
1L
;
...
...
datax-modules/data-
factory-service-parent/data-factory-service-api/src/main/java/cn/datax/service/data/factory/api/entity/D
ataSourceEntity.java
→
datax-modules/data-
metadata-service-parent/data-metadata-service-api/src/main/java/cn/datax/service/data/metadata/api/entity/Metad
ataSourceEntity.java
View file @
9579d532
package
cn
.
datax
.
service
.
data
.
factory
.
api
.
entity
;
package
cn
.
datax
.
service
.
data
.
metadata
.
api
.
entity
;
import
cn.datax.common.base.DataScopeBaseEntity
;
import
cn.datax.common.base.DataScopeBaseEntity
;
import
cn.datax.service.data.
factory
.api.dto.DbSchema
;
import
cn.datax.service.data.
metadata
.api.dto.DbSchema
;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler
;
import
com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler
;
...
@@ -20,8 +20,8 @@ import lombok.experimental.Accessors;
...
@@ -20,8 +20,8 @@ import lombok.experimental.Accessors;
@Data
@Data
@EqualsAndHashCode
(
callSuper
=
true
)
@EqualsAndHashCode
(
callSuper
=
true
)
@Accessors
(
chain
=
true
)
@Accessors
(
chain
=
true
)
@TableName
(
value
=
"
factory
_source"
,
autoResultMap
=
true
)
@TableName
(
value
=
"
metadata
_source"
,
autoResultMap
=
true
)
public
class
D
ataSourceEntity
extends
DataScopeBaseEntity
{
public
class
Metad
ataSourceEntity
extends
DataScopeBaseEntity
{
private
static
final
long
serialVersionUID
=
1L
;
private
static
final
long
serialVersionUID
=
1L
;
...
...
datax-modules/data-metadata-service-parent/data-metadata-service-api/src/main/java/cn/datax/service/data/metadata/api/entity/
Data
MetadataTableEntity.java
→
datax-modules/data-metadata-service-parent/data-metadata-service-api/src/main/java/cn/datax/service/data/metadata/api/entity/MetadataTableEntity.java
View file @
9579d532
...
@@ -19,7 +19,7 @@ import java.io.Serializable;
...
@@ -19,7 +19,7 @@ import java.io.Serializable;
@Data
@Data
@Accessors
(
chain
=
true
)
@Accessors
(
chain
=
true
)
@TableName
(
"metadata_table"
)
@TableName
(
"metadata_table"
)
public
class
Data
MetadataTableEntity
implements
Serializable
{
public
class
MetadataTableEntity
implements
Serializable
{
private
static
final
long
serialVersionUID
=
1L
;
private
static
final
long
serialVersionUID
=
1L
;
...
...
datax-modules/data-metadata-service-parent/data-metadata-service-api/src/main/java/cn/datax/service/data/metadata/api/feign/MetadataSourceServiceFeign.java
0 → 100644
View file @
9579d532
package
cn
.
datax
.
service
.
data
.
metadata
.
api
.
feign
;
import
cn.datax.service.data.metadata.api.entity.MetadataSourceEntity
;
import
cn.datax.service.data.metadata.api.feign.factory.MetadataSourceServiceFeignFallbackFactory
;
import
org.springframework.cloud.openfeign.FeignClient
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.PathVariable
;
import
java.util.List
;
@FeignClient
(
contextId
=
"metadataSourceServiceFeign"
,
value
=
"datax-service-data-metadata"
,
fallbackFactory
=
MetadataSourceServiceFeignFallbackFactory
.
class
)
public
interface
MetadataSourceServiceFeign
{
@GetMapping
(
"/inner/sources/{id}"
)
MetadataSourceEntity
getMetadataSourceById
(
@PathVariable
(
"id"
)
String
id
);
@GetMapping
(
"/inner/sources/list"
)
List
<
MetadataSourceEntity
>
getMetadataSourceList
();
}
datax-modules/data-metadata-service-parent/data-metadata-service-api/src/main/java/cn/datax/service/data/metadata/api/feign/factory/MetadataSourceServiceFeignFallbackFactory.java
0 → 100644
View file @
9579d532
package
cn
.
datax
.
service
.
data
.
metadata
.
api
.
feign
.
factory
;
import
cn.datax.service.data.metadata.api.feign.MetadataSourceServiceFeign
;
import
cn.datax.service.data.metadata.api.feign.fallback.MetadataSourceServiceFeignFallbackImpl
;
import
feign.hystrix.FallbackFactory
;
import
org.springframework.stereotype.Component
;
@Component
public
class
MetadataSourceServiceFeignFallbackFactory
implements
FallbackFactory
<
MetadataSourceServiceFeign
>
{
@Override
public
MetadataSourceServiceFeign
create
(
Throwable
throwable
)
{
MetadataSourceServiceFeignFallbackImpl
metadataSourceServiceFeignFallback
=
new
MetadataSourceServiceFeignFallbackImpl
();
metadataSourceServiceFeignFallback
.
setCause
(
throwable
);
return
metadataSourceServiceFeignFallback
;
}
}
datax-modules/data-
factory-service-parent/data-factory-service-api/src/main/java/cn/datax/service/data/factory/api/feign/fallback/D
ataSourceServiceFeignFallbackImpl.java
→
datax-modules/data-
metadata-service-parent/data-metadata-service-api/src/main/java/cn/datax/service/data/metadata/api/feign/fallback/Metad
ataSourceServiceFeignFallbackImpl.java
View file @
9579d532
package
cn
.
datax
.
service
.
data
.
factory
.
api
.
feign
.
fallback
;
package
cn
.
datax
.
service
.
data
.
metadata
.
api
.
feign
.
fallback
;
import
cn.datax.service.data.
factory.api.entity.D
ataSourceEntity
;
import
cn.datax.service.data.
metadata.api.entity.Metad
ataSourceEntity
;
import
cn.datax.service.data.
factory.api.feign.D
ataSourceServiceFeign
;
import
cn.datax.service.data.
metadata.api.feign.Metad
ataSourceServiceFeign
;
import
lombok.Setter
;
import
lombok.Setter
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.stereotype.Component
;
import
org.springframework.stereotype.Component
;
import
java.util.List
;
@Slf4j
@Slf4j
@Component
@Component
public
class
DataSourceServiceFeignFallbackImpl
implements
D
ataSourceServiceFeign
{
public
class
MetadataSourceServiceFeignFallbackImpl
implements
Metad
ataSourceServiceFeign
{
@Setter
@Setter
private
Throwable
cause
;
private
Throwable
cause
;
@Override
@Override
public
DataSourceEntity
getD
ataSourceById
(
String
id
)
{
public
MetadataSourceEntity
getMetad
ataSourceById
(
String
id
)
{
log
.
error
(
"feign 调用{}出错"
,
id
,
cause
);
log
.
error
(
"feign 调用{}出错"
,
id
,
cause
);
return
null
;
return
null
;
}
}
@Override
@Override
public
void
updateDataSourceSyncById
(
String
id
)
{
public
List
<
MetadataSourceEntity
>
getMetadataSourceList
()
{
log
.
error
(
"feign 调用{}出错"
,
id
,
cause
);
log
.
error
(
"feign 调用出错"
,
cause
);
return
null
;
}
}
}
}
datax-modules/data-
factory-service-parent/data-factory-service-api/src/main/java/cn/datax/service/data/factory
/api/query/DbDataQuery.java
→
datax-modules/data-
metadata-service-parent/data-metadata-service-api/src/main/java/cn/datax/service/data/metadata
/api/query/DbDataQuery.java
View file @
9579d532
package
cn
.
datax
.
service
.
data
.
factory
.
api
.
query
;
package
cn
.
datax
.
service
.
data
.
metadata
.
api
.
query
;
import
lombok.Data
;
import
lombok.Data
;
...
...
datax-modules/data-metadata-service-parent/data-metadata-service-api/src/main/java/cn/datax/service/data/metadata/api/query/
Data
MetadataColumnQuery.java
→
datax-modules/data-metadata-service-parent/data-metadata-service-api/src/main/java/cn/datax/service/data/metadata/api/query/MetadataColumnQuery.java
View file @
9579d532
...
@@ -14,7 +14,7 @@ import lombok.EqualsAndHashCode;
...
@@ -14,7 +14,7 @@ import lombok.EqualsAndHashCode;
*/
*/
@Data
@Data
@EqualsAndHashCode
(
callSuper
=
true
)
@EqualsAndHashCode
(
callSuper
=
true
)
public
class
Data
MetadataColumnQuery
extends
BaseQueryParams
{
public
class
MetadataColumnQuery
extends
BaseQueryParams
{
private
static
final
long
serialVersionUID
=
1L
;
private
static
final
long
serialVersionUID
=
1L
;
...
...
datax-modules/data-
factory-service-parent/data-factory-service-api/src/main/java/cn/datax/service/data/factory/api/query/D
ataSourceQuery.java
→
datax-modules/data-
metadata-service-parent/data-metadata-service-api/src/main/java/cn/datax/service/data/metadata/api/query/Metad
ataSourceQuery.java
View file @
9579d532
package
cn
.
datax
.
service
.
data
.
factory
.
api
.
query
;
package
cn
.
datax
.
service
.
data
.
metadata
.
api
.
query
;
import
cn.datax.common.base.BaseQueryParams
;
import
cn.datax.common.base.BaseQueryParams
;
import
lombok.Data
;
import
lombok.Data
;
...
@@ -14,11 +14,9 @@ import lombok.EqualsAndHashCode;
...
@@ -14,11 +14,9 @@ import lombok.EqualsAndHashCode;
*/
*/
@Data
@Data
@EqualsAndHashCode
(
callSuper
=
true
)
@EqualsAndHashCode
(
callSuper
=
true
)
public
class
D
ataSourceQuery
extends
BaseQueryParams
{
public
class
Metad
ataSourceQuery
extends
BaseQueryParams
{
private
static
final
long
serialVersionUID
=
1L
;
private
static
final
long
serialVersionUID
=
1L
;
private
String
sourceName
;
private
String
sourceName
;
private
String
themeId
;
}
}
datax-modules/data-metadata-service-parent/data-metadata-service-api/src/main/java/cn/datax/service/data/metadata/api/query/
Data
MetadataTableQuery.java
→
datax-modules/data-metadata-service-parent/data-metadata-service-api/src/main/java/cn/datax/service/data/metadata/api/query/MetadataTableQuery.java
View file @
9579d532
...
@@ -14,7 +14,7 @@ import lombok.EqualsAndHashCode;
...
@@ -14,7 +14,7 @@ import lombok.EqualsAndHashCode;
*/
*/
@Data
@Data
@EqualsAndHashCode
(
callSuper
=
true
)
@EqualsAndHashCode
(
callSuper
=
true
)
public
class
Data
MetadataTableQuery
extends
BaseQueryParams
{
public
class
MetadataTableQuery
extends
BaseQueryParams
{
private
static
final
long
serialVersionUID
=
1L
;
private
static
final
long
serialVersionUID
=
1L
;
...
...
datax-modules/data-metadata-service-parent/data-metadata-service-api/src/main/java/cn/datax/service/data/metadata/api/vo/
Data
MetadataColumnVo.java
→
datax-modules/data-metadata-service-parent/data-metadata-service-api/src/main/java/cn/datax/service/data/metadata/api/vo/MetadataColumnVo.java
View file @
9579d532
...
@@ -13,7 +13,7 @@ import java.io.Serializable;
...
@@ -13,7 +13,7 @@ import java.io.Serializable;
* @since 2020-07-29
* @since 2020-07-29
*/
*/
@Data
@Data
public
class
Data
MetadataColumnVo
implements
Serializable
{
public
class
MetadataColumnVo
implements
Serializable
{
private
static
final
long
serialVersionUID
=
1L
;
private
static
final
long
serialVersionUID
=
1L
;
...
...
datax-modules/data-metadata-service-parent/data-metadata-service-api/src/main/java/cn/datax/service/data/metadata/api/vo/MetadataDatabase.java
deleted
100644 → 0
View file @
1891a5c0
package
cn
.
datax
.
service
.
data
.
metadata
.
api
.
vo
;
import
java.io.Serializable
;
import
java.util.List
;
public
class
MetadataDatabase
implements
Serializable
{
private
static
final
long
serialVersionUID
=
1L
;
private
String
database
;
private
List
<
MetadataTable
>
tables
;
public
String
getDatabase
()
{
return
database
;
}
public
void
setDatabase
(
String
database
)
{
this
.
database
=
database
;
}
public
List
<
MetadataTable
>
getTables
()
{
return
tables
;
}
public
void
setTables
(
List
<
MetadataTable
>
tables
)
{
this
.
tables
=
tables
;
}
@Override
public
String
toString
()
{
return
"MetadataDatabase{"
+
"database='"
+
database
+
'\''
+
", tables="
+
tables
+
'}'
;
}
public
class
MetadataTable
implements
Serializable
{
private
static
final
long
serialVersionUID
=
1L
;
private
String
tableName
;
private
String
tableComment
;
private
List
<
MetadataColumn
>
columns
;
public
String
getTableName
()
{
return
tableName
;
}
public
void
setTableName
(
String
tableName
)
{
this
.
tableName
=
tableName
;
}
public
String
getTableComment
()
{
return
tableComment
;
}
public
void
setTableComment
(
String
tableComment
)
{
this
.
tableComment
=
tableComment
;
}
public
List
<
MetadataColumn
>
getColumns
()
{
return
columns
;
}
public
void
setColumns
(
List
<
MetadataColumn
>
columns
)
{
this
.
columns
=
columns
;
}
@Override
public
String
toString
()
{
return
"MetadataTable{"
+
"tableName='"
+
tableName
+
'\''
+
", tableComment='"
+
tableComment
+
'\''
+
", columns="
+
columns
+
'}'
;
}
}
public
class
MetadataColumn
implements
Serializable
{
private
static
final
long
serialVersionUID
=
1L
;
private
String
columnPosition
;
private
String
columnName
;
private
String
dataType
;
private
String
dataLength
;
private
String
dataPrecision
;
private
String
dataScale
;
private
String
columnNullable
;
private
String
columnKey
;
private
String
dataDefault
;
private
String
columnComment
;
public
String
getColumnPosition
()
{
return
columnPosition
;
}
public
void
setColumnPosition
(
String
columnPosition
)
{
this
.
columnPosition
=
columnPosition
;
}
public
String
getColumnName
()
{
return
columnName
;
}
public
void
setColumnName
(
String
columnName
)
{
this
.
columnName
=
columnName
;
}
public
String
getDataType
()
{
return
dataType
;
}
public
void
setDataType
(
String
dataType
)
{
this
.
dataType
=
dataType
;
}
public
String
getDataLength
()
{
return
dataLength
;
}
public
void
setDataLength
(
String
dataLength
)
{
this
.
dataLength
=
dataLength
;
}
public
String
getDataPrecision
()
{
return
dataPrecision
;
}
public
void
setDataPrecision
(
String
dataPrecision
)
{
this
.
dataPrecision
=
dataPrecision
;
}
public
String
getDataScale
()
{
return
dataScale
;
}
public
void
setDataScale
(
String
dataScale
)
{
this
.
dataScale
=
dataScale
;
}
public
String
getColumnNullable
()
{
return
columnNullable
;
}
public
void
setColumnNullable
(
String
columnNullable
)
{
this
.
columnNullable
=
columnNullable
;
}
public
String
getColumnKey
()
{
return
columnKey
;
}
public
void
setColumnKey
(
String
columnKey
)
{
this
.
columnKey
=
columnKey
;
}
public
String
getDataDefault
()
{
return
dataDefault
;
}
public
void
setDataDefault
(
String
dataDefault
)
{
this
.
dataDefault
=
dataDefault
;
}
public
String
getColumnComment
()
{
return
columnComment
;
}
public
void
setColumnComment
(
String
columnComment
)
{
this
.
columnComment
=
columnComment
;
}
@Override
public
String
toString
()
{
return
"MetadataColumn{"
+
"columnPosition='"
+
columnPosition
+
'\''
+
", columnName='"
+
columnName
+
'\''
+
", dataType='"
+
dataType
+
'\''
+
", dataLength='"
+
dataLength
+
'\''
+
", dataPrecision='"
+
dataPrecision
+
'\''
+
", dataScale='"
+
dataScale
+
'\''
+
", columnNullable='"
+
columnNullable
+
'\''
+
", columnKey='"
+
columnKey
+
'\''
+
", dataDefault='"
+
dataDefault
+
'\''
+
", columnComment='"
+
columnComment
+
'\''
+
'}'
;
}
}
}
datax-modules/data-
factory-service-parent/data-factory-service-api/src/main/java/cn/datax/service/data/factory/api/vo/D
ataSourceVo.java
→
datax-modules/data-
metadata-service-parent/data-metadata-service-api/src/main/java/cn/datax/service/data/metadata/api/vo/Metad
ataSourceVo.java
View file @
9579d532
package
cn
.
datax
.
service
.
data
.
factory
.
api
.
vo
;
package
cn
.
datax
.
service
.
data
.
metadata
.
api
.
vo
;
import
cn.datax.service.data.
factory
.api.dto.DbSchema
;
import
cn.datax.service.data.
metadata
.api.dto.DbSchema
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
lombok.Data
;
import
lombok.Data
;
...
@@ -16,7 +16,7 @@ import java.time.LocalDateTime;
...
@@ -16,7 +16,7 @@ import java.time.LocalDateTime;
* @since 2020-03-14
* @since 2020-03-14
*/
*/
@Data
@Data
public
class
D
ataSourceVo
implements
Serializable
{
public
class
Metad
ataSourceVo
implements
Serializable
{
private
static
final
long
serialVersionUID
=
1L
;
private
static
final
long
serialVersionUID
=
1L
;
...
@@ -27,7 +27,6 @@ public class DataSourceVo implements Serializable {
...
@@ -27,7 +27,6 @@ public class DataSourceVo implements Serializable {
private
String
remark
;
private
String
remark
;
private
String
dbType
;
private
String
dbType
;
private
String
sourceName
;
private
String
sourceName
;
private
String
themeId
;
private
DbSchema
dbSchema
;
private
DbSchema
dbSchema
;
private
Integer
sync
;
private
Integer
sync
;
}
}
datax-modules/data-metadata-service-parent/data-metadata-service-api/src/main/java/cn/datax/service/data/metadata/api/vo/
Data
MetadataTableVo.java
→
datax-modules/data-metadata-service-parent/data-metadata-service-api/src/main/java/cn/datax/service/data/metadata/api/vo/MetadataTableVo.java
View file @
9579d532
...
@@ -13,7 +13,7 @@ import java.io.Serializable;
...
@@ -13,7 +13,7 @@ import java.io.Serializable;
* @since 2020-07-29
* @since 2020-07-29
*/
*/
@Data
@Data
public
class
Data
MetadataTableVo
implements
Serializable
{
public
class
MetadataTableVo
implements
Serializable
{
private
static
final
long
serialVersionUID
=
1L
;
private
static
final
long
serialVersionUID
=
1L
;
...
...
datax-modules/data-
factory-service-parent/data-factory-service-api/src/main/java/cn/datax/service/data/factory
/api/vo/SqlConsoleVo.java
→
datax-modules/data-
metadata-service-parent/data-metadata-service-api/src/main/java/cn/datax/service/data/metadata
/api/vo/SqlConsoleVo.java
View file @
9579d532
package
cn
.
datax
.
service
.
data
.
factory
.
api
.
vo
;
package
cn
.
datax
.
service
.
data
.
metadata
.
api
.
vo
;
import
lombok.Data
;
import
lombok.Data
;
...
...
datax-modules/data-metadata-service-parent/data-metadata-service-api/src/main/resources/META-INF/spring.factories
View file @
9579d532
org.springframework.boot.autoconfigure.EnableAutoConfiguration=
org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
cn.datax.service.data.metadata.api.feign.factory.MetadataSourceServiceFeignFallbackFactory,\
cn.datax.service.data.metadata.api.feign.fallback.MetadataSourceServiceFeignFallbackImpl
datax-modules/data-
factory-service-parent/data-factory-servic
e/pom.xml
→
datax-modules/data-
metadata-service-parent/data-metadata-service-consol
e/pom.xml
View file @
9579d532
...
@@ -3,13 +3,13 @@
...
@@ -3,13 +3,13 @@
xmlns:xsi=
"http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsi=
"http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation=
"http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
>
xsi:schemaLocation=
"http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
>
<parent>
<parent>
<artifactId>
data-
factory
-service-parent
</artifactId>
<artifactId>
data-
metadata
-service-parent
</artifactId>
<groupId>
cn.datax
</groupId>
<groupId>
cn.datax
</groupId>
<version>
2.0.0
</version>
<version>
2.0.0
</version>
</parent>
</parent>
<modelVersion>
4.0.0
</modelVersion>
<modelVersion>
4.0.0
</modelVersion>
<version>
2.0.0
</version>
<version>
2.0.0
</version>
<artifactId>
data-
factory-servic
e
</artifactId>
<artifactId>
data-
metadata-service-consol
e
</artifactId>
<dependencies>
<dependencies>
<!--web 模块-->
<!--web 模块-->
...
@@ -71,7 +71,7 @@
...
@@ -71,7 +71,7 @@
</dependency>
</dependency>
<dependency>
<dependency>
<groupId>
cn.datax
</groupId>
<groupId>
cn.datax
</groupId>
<artifactId>
data-
factory
-service-api
</artifactId>
<artifactId>
data-
metadata
-service-api
</artifactId>
<version>
2.0.0
</version>
<version>
2.0.0
</version>
</dependency>
</dependency>
</dependencies>
</dependencies>
...
...
datax-modules/data-
factory-service-parent/data-factory-service-sql-console/src/main/java/cn/datax/service/data/factory/sql/console/DataxSql
ConsoleApplication.java
→
datax-modules/data-
metadata-service-parent/data-metadata-service-console/src/main/java/cn/datax/service/data/metadata/console/Datax
ConsoleApplication.java
View file @
9579d532
package
cn
.
datax
.
service
.
data
.
factory
.
sql
.
console
;
package
cn
.
datax
.
service
.
data
.
metadata
.
console
;
import
org.springframework.boot.SpringApplication
;
import
org.springframework.boot.SpringApplication
;
import
org.springframework.cloud.client.SpringCloudApplication
;
import
org.springframework.cloud.client.SpringCloudApplication
;
import
org.springframework.cloud.openfeign.EnableFeignClients
;
import
org.springframework.cloud.openfeign.EnableFeignClients
;
@EnableFeignClients
(
basePackages
=
{
"cn.datax.service.system.api.feign"
,
"cn.datax.service.data.factory.api.feign"
})
@EnableFeignClients
(
basePackages
=
{
"cn.datax.service.system.api.feign"
})
@SpringCloudApplication
@SpringCloudApplication
public
class
Datax
Sql
ConsoleApplication
{
public
class
DataxConsoleApplication
{
public
static
void
main
(
String
[]
args
)
{
public
static
void
main
(
String
[]
args
)
{
SpringApplication
.
run
(
Datax
Sql
ConsoleApplication
.
class
);
SpringApplication
.
run
(
DataxConsoleApplication
.
class
);
}
}
}
}
datax-modules/data-
factory-service-parent/data-factory-service-sql-console/src/main/java/cn/datax/service/data/factory/sql
/console/concurrent/CallableTemplate.java
→
datax-modules/data-
metadata-service-parent/data-metadata-service-console/src/main/java/cn/datax/service/data/metadata
/console/concurrent/CallableTemplate.java
View file @
9579d532
package
cn
.
datax
.
service
.
data
.
factory
.
sql
.
console
.
concurrent
;
package
cn
.
datax
.
service
.
data
.
metadata
.
console
.
concurrent
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
import
java.sql.SQLException
;
import
java.util.concurrent.Callable
;
import
java.util.concurrent.Callable
;
/**
/**
...
...
datax-modules/data-
factory-service-parent/data-factory-service-sql-console/src/main/java/cn/datax/service/data/factory/sql
/console/concurrent/DateHander.java
→
datax-modules/data-
metadata-service-parent/data-metadata-service-console/src/main/java/cn/datax/service/data/metadata
/console/concurrent/DateHander.java
View file @
9579d532
package
cn
.
datax
.
service
.
data
.
factory
.
sql
.
console
.
concurrent
;
package
cn
.
datax
.
service
.
data
.
metadata
.
console
.
concurrent
;
import
cn.datax.service.data.
factory
.api.vo.SqlConsoleVo
;
import
cn.datax.service.data.
metadata
.api.vo.SqlConsoleVo
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
import
java.sql.*
;
import
java.sql.*
;
...
...
datax-modules/data-
factory-service-parent/data-factory-service-sql-console/src/main/java/cn/datax/service/data/factory/sql
/console/config/DataResourceServerConfig.java
→
datax-modules/data-
metadata-service-parent/data-metadata-service-console/src/main/java/cn/datax/service/data/metadata
/console/config/DataResourceServerConfig.java
View file @
9579d532
package
cn
.
datax
.
service
.
data
.
factory
.
sql
.
console
.
config
;
package
cn
.
datax
.
service
.
data
.
metadata
.
console
.
config
;
import
cn.datax.common.security.handler.DataAccessDeniedHandler
;
import
cn.datax.common.security.handler.DataAccessDeniedHandler
;
import
cn.datax.common.security.handler.DataAuthExceptionEntryPoint
;
import
cn.datax.common.security.handler.DataAuthExceptionEntryPoint
;
...
...
datax-modules/data-
factory-service-parent/data-factory-service-sql-console/src/main/java/cn/datax/service/data/factory/sql
/console/config/StartedUpRunner.java
→
datax-modules/data-
metadata-service-parent/data-metadata-service-console/src/main/java/cn/datax/service/data/metadata
/console/config/StartedUpRunner.java
View file @
9579d532
package
cn
.
datax
.
service
.
data
.
factory
.
sql
.
console
.
config
;
package
cn
.
datax
.
service
.
data
.
metadata
.
console
.
config
;
import
lombok.RequiredArgsConstructor
;
import
lombok.RequiredArgsConstructor
;
import
org.springframework.boot.ApplicationArguments
;
import
org.springframework.boot.ApplicationArguments
;
...
...
datax-modules/data-
factory-service-parent/data-factory-service-sql-console/src/main/java/cn/datax/service/data/factory/sql
/console/config/SwaggerConfig.java
→
datax-modules/data-
metadata-service-parent/data-metadata-service-console/src/main/java/cn/datax/service/data/metadata
/console/config/SwaggerConfig.java
View file @
9579d532
package
cn
.
datax
.
service
.
data
.
factory
.
sql
.
console
.
config
;
package
cn
.
datax
.
service
.
data
.
metadata
.
console
.
config
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.boot.autoconfigure.condition.ConditionalOnProperty
;
import
org.springframework.boot.autoconfigure.condition.ConditionalOnProperty
;
...
...
datax-modules/data-
factory-service-parent/data-factory-service-sql-console/src/main/java/cn/datax/service/data/factory/sql
/console/config/SwaggerProperties.java
→
datax-modules/data-
metadata-service-parent/data-metadata-service-console/src/main/java/cn/datax/service/data/metadata
/console/config/SwaggerProperties.java
View file @
9579d532
package
cn
.
datax
.
service
.
data
.
factory
.
sql
.
console
.
config
;
package
cn
.
datax
.
service
.
data
.
metadata
.
console
.
config
;
import
org.springframework.boot.context.properties.ConfigurationProperties
;
import
org.springframework.boot.context.properties.ConfigurationProperties
;
...
...
datax-modules/data-
factory-service-parent/data-factory-service-sql-console/src/main/java/cn/datax/service/data/factory/sql
/console/controller/InnerController.java
→
datax-modules/data-
metadata-service-parent/data-metadata-service-console/src/main/java/cn/datax/service/data/metadata
/console/controller/InnerController.java
View file @
9579d532
package
cn
.
datax
.
service
.
data
.
factory
.
sql
.
console
.
controller
;
package
cn
.
datax
.
service
.
data
.
metadata
.
console
.
controller
;
import
cn.datax.common.base.BaseController
;
import
cn.datax.common.base.BaseController
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RequestMapping
;
...
...
datax-modules/data-
factory-service-parent/data-factory-service-sql-console/src/main/java/cn/datax/service/data/factory/sql
/console/controller/SqlConsoleController.java
→
datax-modules/data-
metadata-service-parent/data-metadata-service-console/src/main/java/cn/datax/service/data/metadata
/console/controller/SqlConsoleController.java
View file @
9579d532
package
cn
.
datax
.
service
.
data
.
factory
.
sql
.
console
.
controller
;
package
cn
.
datax
.
service
.
data
.
metadata
.
console
.
controller
;
import
cn.datax.common.base.BaseController
;
import
cn.datax.common.base.BaseController
;
import
cn.datax.common.core.R
;
import
cn.datax.common.core.R
;
import
cn.datax.common.validate.ValidationGroups
;
import
cn.datax.common.validate.ValidationGroups
;
import
cn.datax.service.data.
factory
.api.dto.SqlConsoleDto
;
import
cn.datax.service.data.
metadata
.api.dto.SqlConsoleDto
;
import
cn.datax.service.data.
factory
.api.vo.SqlConsoleVo
;
import
cn.datax.service.data.
metadata
.api.vo.SqlConsoleVo
;
import
cn.datax.service.data.
factory.sql
.console.service.SqlConsoleService
;
import
cn.datax.service.data.
metadata
.console.service.SqlConsoleService
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.validation.annotation.Validated
;
import
org.springframework.validation.annotation.Validated
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.PostMapping
;
...
...
datax-modules/data-
factory-service-parent/data-factory-service-sql-console/src/main/java/cn/datax/service/data/factory/sql
/console/service/SqlConsoleService.java
→
datax-modules/data-
metadata-service-parent/data-metadata-service-console/src/main/java/cn/datax/service/data/metadata
/console/service/SqlConsoleService.java
View file @
9579d532
package
cn
.
datax
.
service
.
data
.
factory
.
sql
.
console
.
service
;
package
cn
.
datax
.
service
.
data
.
metadata
.
console
.
service
;
import
cn.datax.service.data.
factory
.api.dto.SqlConsoleDto
;
import
cn.datax.service.data.
metadata
.api.dto.SqlConsoleDto
;
import
cn.datax.service.data.
factory
.api.vo.SqlConsoleVo
;
import
cn.datax.service.data.
metadata
.api.vo.SqlConsoleVo
;
import
java.util.List
;
import
java.util.List
;
...
...
datax-modules/data-
factory-service-parent/data-factory-service-sql-console/src/main/java/cn/datax/service/data/factory/sql
/console/service/impl/SqlConsoleServiceImpl.java
→
datax-modules/data-
metadata-service-parent/data-metadata-service-console/src/main/java/cn/datax/service/data/metadata
/console/service/impl/SqlConsoleServiceImpl.java
View file @
9579d532
package
cn
.
datax
.
service
.
data
.
factory
.
sql
.
console
.
service
.
impl
;
package
cn
.
datax
.
service
.
data
.
metadata
.
console
.
service
.
impl
;
import
cn.datax.common.database.DataSourceFactory
;
import
cn.datax.common.database.DataSourceFactory
;
import
cn.datax.common.database.DbQuery
;
import
cn.datax.common.database.DbQuery
;
import
cn.datax.common.database.constants.DbQueryProperty
;
import
cn.datax.common.database.constants.DbQueryProperty
;
import
cn.datax.common.exception.DataException
;
import
cn.datax.common.exception.DataException
;
import
cn.datax.common.utils.ThrowableUtil
;
import
cn.datax.common.utils.ThrowableUtil
;
import
cn.datax.service.data.
factory
.api.dto.DbSchema
;
import
cn.datax.service.data.
metadata
.api.dto.DbSchema
;
import
cn.datax.service.data.
factory
.api.dto.SqlConsoleDto
;
import
cn.datax.service.data.
metadata
.api.dto.SqlConsoleDto
;
import
cn.datax.service.data.
factory.api.entity.D
ataSourceEntity
;
import
cn.datax.service.data.
metadata.api.entity.Metad
ataSourceEntity
;
import
cn.datax.service.data.
factory.api.feign.D
ataSourceServiceFeign
;
import
cn.datax.service.data.
metadata.api.feign.Metad
ataSourceServiceFeign
;
import
cn.datax.service.data.
factory
.api.vo.SqlConsoleVo
;
import
cn.datax.service.data.
metadata
.api.vo.SqlConsoleVo
;
import
cn.datax.service.data.
factory.sql
.console.concurrent.CallableTemplate
;
import
cn.datax.service.data.
metadata
.console.concurrent.CallableTemplate
;
import
cn.datax.service.data.
factory.sql
.console.concurrent.DateHander
;
import
cn.datax.service.data.
metadata
.console.concurrent.DateHander
;
import
cn.datax.service.data.
factory.sql
.console.service.SqlConsoleService
;
import
cn.datax.service.data.
metadata
.console.service.SqlConsoleService
;
import
cn.hutool.core.collection.CollUtil
;
import
cn.hutool.core.collection.CollUtil
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
import
net.sf.jsqlparser.JSQLParserException
;
import
net.sf.jsqlparser.JSQLParserException
;
...
@@ -37,7 +37,7 @@ public class SqlConsoleServiceImpl implements SqlConsoleService {
...
@@ -37,7 +37,7 @@ public class SqlConsoleServiceImpl implements SqlConsoleService {
private
DataSourceFactory
dataSourceFactory
;
private
DataSourceFactory
dataSourceFactory
;
@Autowired
@Autowired
private
DataSourceServiceFeign
dataSourceServiceFeign
;
private
MetadataSourceServiceFeign
meta
dataSourceServiceFeign
;
private
static
Map
<
String
,
List
<
Connection
>>
connectionMap
=
new
ConcurrentHashMap
<>();
private
static
Map
<
String
,
List
<
Connection
>>
connectionMap
=
new
ConcurrentHashMap
<>();
...
@@ -55,7 +55,7 @@ public class SqlConsoleServiceImpl implements SqlConsoleService {
...
@@ -55,7 +55,7 @@ public class SqlConsoleServiceImpl implements SqlConsoleService {
if
(
CollUtil
.
isEmpty
(
sqls
))
{
if
(
CollUtil
.
isEmpty
(
sqls
))
{
throw
new
DataException
(
"未解析到SQL语句"
);
throw
new
DataException
(
"未解析到SQL语句"
);
}
}
DataSourceEntity
dataSource
=
dataSourceServiceFeign
.
getD
ataSourceById
(
sqlConsoleDto
.
getSourceId
());
MetadataSourceEntity
dataSource
=
metadataSourceServiceFeign
.
getMetad
ataSourceById
(
sqlConsoleDto
.
getSourceId
());
if
(
dataSource
==
null
){
if
(
dataSource
==
null
){
throw
new
DataException
(
"SQL工作台查询数据源出错"
);
throw
new
DataException
(
"SQL工作台查询数据源出错"
);
}
}
...
...
datax-modules/data-
factory-service-parent/data-factory-service-sql
-console/src/main/resources/bootstrap.yml
→
datax-modules/data-
metadata-service-parent/data-metadata-service
-console/src/main/resources/bootstrap.yml
View file @
9579d532
server
:
server
:
port
:
88
17
port
:
88
21
spring
:
spring
:
application
:
application
:
name
:
datax-service-data-
sql-
console
name
:
datax-service-data-console
profiles
:
profiles
:
active
:
dev
active
:
dev
cloud
:
cloud
:
...
...
datax-modules/data-
factory-service-parent/data-factory-service-sql
-console/src/main/resources/logback-spring.xml
→
datax-modules/data-
metadata-service-parent/data-metadata-service
-console/src/main/resources/logback-spring.xml
View file @
9579d532
<?xml version="1.0" encoding="UTF-8"?>
<?xml version="1.0" encoding="UTF-8"?>
<configuration
scan=
"true"
scanPeriod=
"60 seconds"
debug=
"false"
>
<configuration
scan=
"true"
scanPeriod=
"60 seconds"
debug=
"false"
>
<springProperty
scope=
"context"
name=
"springAppName"
source=
"spring.application.name"
/>
<springProperty
scope=
"context"
name=
"springAppName"
source=
"spring.application.name"
/>
<property
name=
"log.path"
value=
"logs/datax-service-data-
sql-
console"
/>
<property
name=
"log.path"
value=
"logs/datax-service-data-console"
/>
<property
name=
"log.maxHistory"
value=
"15"
/>
<property
name=
"log.maxHistory"
value=
"15"
/>
<property
name=
"log.totalSizeCap"
value=
"500MB"
/>
<property
name=
"log.totalSizeCap"
value=
"500MB"
/>
<property
name=
"log.maxFileSize"
value=
"10MB"
/>
<property
name=
"log.maxFileSize"
value=
"10MB"
/>
...
...
datax-modules/data-
factory-service-parent/data-factory-service-sql
-console/src/main/resources/spy.properties
→
datax-modules/data-
metadata-service-parent/data-metadata-service
-console/src/main/resources/spy.properties
View file @
9579d532
File moved
datax-modules/data-metadata-service-parent/data-metadata-service/pom.xml
View file @
9579d532
...
@@ -71,12 +71,12 @@
...
@@ -71,12 +71,12 @@
</dependency>
</dependency>
<dependency>
<dependency>
<groupId>
cn.datax
</groupId>
<groupId>
cn.datax
</groupId>
<artifactId>
data
-metadata-service-api
</artifactId>
<artifactId>
data
x-common-database
</artifactId>
<version>
2.0.0
</version>
<version>
2.0.0
</version>
</dependency>
</dependency>
<dependency>
<dependency>
<groupId>
cn.datax
</groupId>
<groupId>
cn.datax
</groupId>
<artifactId>
data-
factory
-service-api
</artifactId>
<artifactId>
data-
metadata
-service-api
</artifactId>
<version>
2.0.0
</version>
<version>
2.0.0
</version>
</dependency>
</dependency>
<dependency>
<dependency>
...
...
datax-modules/data-metadata-service-parent/data-metadata-service/src/main/java/cn/datax/service/data/metadata/async/AsyncTask.java
View file @
9579d532
package
cn
.
datax
.
service
.
data
.
metadata
.
async
;
package
cn
.
datax
.
service
.
data
.
metadata
.
async
;
import
cn.datax.common.core.DataConstant
;
import
cn.datax.common.database.DataSourceFactory
;
import
cn.datax.common.database.DataSourceFactory
;
import
cn.datax.common.database.DbQuery
;
import
cn.datax.common.database.DbQuery
;
import
cn.datax.common.database.constants.DbQueryProperty
;
import
cn.datax.common.database.constants.DbQueryProperty
;
import
cn.datax.common.database.core.DbColumn
;
import
cn.datax.common.database.core.DbColumn
;
import
cn.datax.common.database.core.DbTable
;
import
cn.datax.common.database.core.DbTable
;
import
cn.datax.service.data.
factory
.api.dto.DbSchema
;
import
cn.datax.service.data.
metadata
.api.dto.DbSchema
;
import
cn.datax.service.data.
factory.api.entity.DataSource
Entity
;
import
cn.datax.service.data.
metadata.api.entity.MetadataColumn
Entity
;
import
cn.datax.service.data.
factory.api.feign.DataSourceServiceFeign
;
import
cn.datax.service.data.
metadata.api.entity.MetadataSourceEntity
;
import
cn.datax.service.data.metadata.api.entity.
DataMetadataColumn
Entity
;
import
cn.datax.service.data.metadata.api.entity.
MetadataTable
Entity
;
import
cn.datax.service.data.metadata.
api.entity.DataMetadataTableEntity
;
import
cn.datax.service.data.metadata.
dao.MetadataColumnDao
;
import
cn.datax.service.data.metadata.dao.
DataMetadataColumn
Dao
;
import
cn.datax.service.data.metadata.dao.
MetadataSource
Dao
;
import
cn.datax.service.data.metadata.dao.
Data
MetadataTableDao
;
import
cn.datax.service.data.metadata.dao.MetadataTableDao
;
import
cn.hutool.core.collection.CollUtil
;
import
cn.hutool.core.collection.CollUtil
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
...
@@ -32,16 +33,16 @@ public class AsyncTask {
...
@@ -32,16 +33,16 @@ public class AsyncTask {
private
DataSourceFactory
dataSourceFactory
;
private
DataSourceFactory
dataSourceFactory
;
@Autowired
@Autowired
private
DataSourceServiceFeign
dataSourceServiceFeign
;
private
MetadataSourceDao
metadataSourceDao
;
@Autowired
@Autowired
private
DataMetadataTableDao
dataM
etadataTableDao
;
private
MetadataTableDao
m
etadataTableDao
;
@Autowired
@Autowired
private
DataMetadataColumnDao
dataM
etadataColumnDao
;
private
MetadataColumnDao
m
etadataColumnDao
;
@Async
@Async
public
void
doTask
(
D
ataSourceEntity
dataSource
)
{
public
void
doTask
(
Metad
ataSourceEntity
dataSource
)
{
long
start
=
System
.
currentTimeMillis
();
long
start
=
System
.
currentTimeMillis
();
DbSchema
dbSchema
=
dataSource
.
getDbSchema
();
DbSchema
dbSchema
=
dataSource
.
getDbSchema
();
DbQueryProperty
dbQueryProperty
=
new
DbQueryProperty
(
dataSource
.
getDbType
(),
dbSchema
.
getHost
(),
DbQueryProperty
dbQueryProperty
=
new
DbQueryProperty
(
dataSource
.
getDbType
(),
dbSchema
.
getHost
(),
...
@@ -49,8 +50,8 @@ public class AsyncTask {
...
@@ -49,8 +50,8 @@ public class AsyncTask {
DbQuery
dbQuery
=
dataSourceFactory
.
createDbQuery
(
dbQueryProperty
);
DbQuery
dbQuery
=
dataSourceFactory
.
createDbQuery
(
dbQueryProperty
);
List
<
DbTable
>
tables
=
dbQuery
.
getTables
(
dbSchema
.
getDbName
());
List
<
DbTable
>
tables
=
dbQuery
.
getTables
(
dbSchema
.
getDbName
());
if
(
CollUtil
.
isNotEmpty
(
tables
))
{
if
(
CollUtil
.
isNotEmpty
(
tables
))
{
List
<
Data
MetadataTableEntity
>
metadataTableEntityList
=
tables
.
stream
().
map
(
table
->
{
List
<
MetadataTableEntity
>
metadataTableEntityList
=
tables
.
stream
().
map
(
table
->
{
DataMetadataTableEntity
metadataTable
=
new
Data
MetadataTableEntity
();
MetadataTableEntity
metadataTable
=
new
MetadataTableEntity
();
metadataTable
.
setSourceId
(
dataSource
.
getId
());
metadataTable
.
setSourceId
(
dataSource
.
getId
());
metadataTable
.
setTableName
(
table
.
getTableName
());
metadataTable
.
setTableName
(
table
.
getTableName
());
metadataTable
.
setTableComment
(
table
.
getTableComment
());
metadataTable
.
setTableComment
(
table
.
getTableComment
());
...
@@ -58,11 +59,11 @@ public class AsyncTask {
...
@@ -58,11 +59,11 @@ public class AsyncTask {
}).
collect
(
Collectors
.
toList
());
}).
collect
(
Collectors
.
toList
());
if
(
CollUtil
.
isNotEmpty
(
metadataTableEntityList
))
{
if
(
CollUtil
.
isNotEmpty
(
metadataTableEntityList
))
{
metadataTableEntityList
.
stream
().
forEach
(
table
->
{
metadataTableEntityList
.
stream
().
forEach
(
table
->
{
dataM
etadataTableDao
.
insert
(
table
);
m
etadataTableDao
.
insert
(
table
);
List
<
DbColumn
>
columns
=
dbQuery
.
getTableColumns
(
dbSchema
.
getDbName
(),
table
.
getTableName
());
List
<
DbColumn
>
columns
=
dbQuery
.
getTableColumns
(
dbSchema
.
getDbName
(),
table
.
getTableName
());
if
(
CollUtil
.
isNotEmpty
(
columns
))
{
if
(
CollUtil
.
isNotEmpty
(
columns
))
{
List
<
Data
MetadataColumnEntity
>
metadataColumnEntityList
=
columns
.
stream
().
map
(
column
->
{
List
<
MetadataColumnEntity
>
metadataColumnEntityList
=
columns
.
stream
().
map
(
column
->
{
DataMetadataColumnEntity
metadataColumn
=
new
Data
MetadataColumnEntity
();
MetadataColumnEntity
metadataColumn
=
new
MetadataColumnEntity
();
metadataColumn
.
setSourceId
(
dataSource
.
getId
());
metadataColumn
.
setSourceId
(
dataSource
.
getId
());
metadataColumn
.
setTableId
(
table
.
getId
());
metadataColumn
.
setTableId
(
table
.
getId
());
metadataColumn
.
setColumnName
(
column
.
getColName
());
metadataColumn
.
setColumnName
(
column
.
getColName
());
...
@@ -78,13 +79,14 @@ public class AsyncTask {
...
@@ -78,13 +79,14 @@ public class AsyncTask {
return
metadataColumn
;
return
metadataColumn
;
}).
collect
(
Collectors
.
toList
());
}).
collect
(
Collectors
.
toList
());
if
(
CollUtil
.
isNotEmpty
(
metadataColumnEntityList
))
{
if
(
CollUtil
.
isNotEmpty
(
metadataColumnEntityList
))
{
metadataColumnEntityList
.
stream
().
forEach
(
column
->
dataM
etadataColumnDao
.
insert
(
column
));
metadataColumnEntityList
.
stream
().
forEach
(
column
->
m
etadataColumnDao
.
insert
(
column
));
}
}
}
}
});
});
}
}
}
}
dataSourceServiceFeign
.
updateDataSourceSyncById
(
dataSource
.
getId
());
dataSource
.
setSourceSync
(
Integer
.
valueOf
(
DataConstant
.
TrueOrFalse
.
TRUE
.
getKey
()));
metadataSourceDao
.
updateById
(
dataSource
);
log
.
info
(
"异步任务执行完成!耗时{}秒"
,
(
System
.
currentTimeMillis
()
-
start
/
1000
));
log
.
info
(
"异步任务执行完成!耗时{}秒"
,
(
System
.
currentTimeMillis
()
-
start
/
1000
));
}
}
}
}
\ No newline at end of file
datax-modules/data-metadata-service-parent/data-metadata-service/src/main/java/cn/datax/service/data/metadata/controller/DataMetadataController.java
deleted
100644 → 0
View file @
1891a5c0
package
cn
.
datax
.
service
.
data
.
metadata
.
controller
;
import
cn.datax.common.core.R
;
import
cn.datax.service.data.metadata.service.DataMetadataService
;
import
com.aspose.words.Document
;
import
com.aspose.words.SaveFormat
;
import
com.aspose.words.SaveOptions
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiImplicitParam
;
import
io.swagger.annotations.ApiOperation
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.PathVariable
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
import
javax.servlet.http.HttpServletResponse
;
import
java.io.OutputStream
;
@Api
(
tags
=
{
"元数据"
})
@RestController
@RequestMapping
(
"/databases"
)
public
class
DataMetadataController
{
@Autowired
private
DataMetadataService
dataMetadataService
;
@ApiOperation
(
value
=
"同步"
,
notes
=
"根据url的id来指定同步对象"
)
@ApiImplicitParam
(
name
=
"id"
,
value
=
"ID"
,
required
=
true
,
dataType
=
"String"
,
paramType
=
"path"
)
@PostMapping
(
"/sync/{id}"
)
public
R
syncMetadata
(
@PathVariable
String
id
)
{
dataMetadataService
.
syncMetadata
(
id
);
return
R
.
ok
();
}
@ApiOperation
(
value
=
"数据库设计文档"
,
notes
=
"根据url的id来指定生成数据库设计文档对象"
)
@ApiImplicitParam
(
name
=
"id"
,
value
=
"ID"
,
required
=
true
,
dataType
=
"String"
,
paramType
=
"path"
)
@PostMapping
(
"/word/{id}"
)
public
void
wordMetadata
(
@PathVariable
String
id
,
HttpServletResponse
response
)
throws
Exception
{
// 清空response
response
.
reset
();
// 设置response的Header
response
.
setContentType
(
"application/octet-stream;charset=utf-8"
);
// 设置content-disposition响应头控制浏览器以下载的形式打开文件
response
.
addHeader
(
"Content-Disposition"
,
"attachment;filename="
+
new
String
(
"数据库设计文档.doc"
.
getBytes
()));
Document
doc
=
dataMetadataService
.
wordMetadata
(
id
);
OutputStream
out
=
response
.
getOutputStream
();
doc
.
save
(
out
,
SaveOptions
.
createSaveOptions
(
SaveFormat
.
DOC
));
out
.
flush
();
out
.
close
();
}
}
datax-modules/data-metadata-service-parent/data-metadata-service/src/main/java/cn/datax/service/data/metadata/controller/InnerController.java
View file @
9579d532
package
cn
.
datax
.
service
.
data
.
metadata
.
controller
;
package
cn
.
datax
.
service
.
data
.
metadata
.
controller
;
import
cn.datax.common.base.BaseController
;
import
cn.datax.common.base.BaseController
;
import
cn.datax.common.core.DataConstant
;
import
cn.datax.common.security.annotation.DataInner
;
import
cn.datax.service.data.metadata.api.entity.MetadataSourceEntity
;
import
cn.datax.service.data.metadata.service.MetadataSourceService
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.PathVariable
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
import
org.springframework.web.bind.annotation.RestController
;
import
java.util.List
;
@RestController
@RestController
@RequestMapping
(
"/inner"
)
@RequestMapping
(
"/inner"
)
public
class
InnerController
extends
BaseController
{
public
class
InnerController
extends
BaseController
{
@Autowired
private
MetadataSourceService
metadataSourceService
;
@DataInner
@GetMapping
(
"/sources/{id}"
)
public
MetadataSourceEntity
getMetadataSourceById
(
@PathVariable
(
"id"
)
String
id
)
{
MetadataSourceEntity
metadataSourceEntity
=
metadataSourceService
.
getMetadataSourceById
(
id
);
return
metadataSourceEntity
;
}
@DataInner
@GetMapping
(
"/sources/list"
)
public
List
<
MetadataSourceEntity
>
getMetadataSourceList
()
{
QueryWrapper
<
MetadataSourceEntity
>
queryWrapper
=
new
QueryWrapper
<>();
queryWrapper
.
eq
(
"status"
,
DataConstant
.
EnableState
.
ENABLE
.
getKey
());
List
<
MetadataSourceEntity
>
list
=
metadataSourceService
.
list
(
queryWrapper
);
return
list
;
}
}
}
datax-modules/data-metadata-service-parent/data-metadata-service/src/main/java/cn/datax/service/data/metadata/controller/
Data
MetadataColumnController.java
→
datax-modules/data-metadata-service-parent/data-metadata-service/src/main/java/cn/datax/service/data/metadata/controller/MetadataColumnController.java
View file @
9579d532
...
@@ -3,12 +3,12 @@ package cn.datax.service.data.metadata.controller;
...
@@ -3,12 +3,12 @@ package cn.datax.service.data.metadata.controller;
import
cn.datax.common.core.JsonPage
;
import
cn.datax.common.core.JsonPage
;
import
cn.datax.common.core.R
;
import
cn.datax.common.core.R
;
import
cn.datax.common.validate.ValidationGroups
;
import
cn.datax.common.validate.ValidationGroups
;
import
cn.datax.service.data.metadata.api.dto.
Data
MetadataColumnDto
;
import
cn.datax.service.data.metadata.api.dto.MetadataColumnDto
;
import
cn.datax.service.data.metadata.api.entity.
Data
MetadataColumnEntity
;
import
cn.datax.service.data.metadata.api.entity.MetadataColumnEntity
;
import
cn.datax.service.data.metadata.api.vo.
Data
MetadataColumnVo
;
import
cn.datax.service.data.metadata.api.vo.MetadataColumnVo
;
import
cn.datax.service.data.metadata.api.query.
Data
MetadataColumnQuery
;
import
cn.datax.service.data.metadata.api.query.MetadataColumnQuery
;
import
cn.datax.service.data.metadata.mapstruct.
Data
MetadataColumnMapper
;
import
cn.datax.service.data.metadata.mapstruct.MetadataColumnMapper
;
import
cn.datax.service.data.metadata.service.
Data
MetadataColumnService
;
import
cn.datax.service.data.metadata.service.MetadataColumnService
;
import
cn.hutool.core.util.StrUtil
;
import
cn.hutool.core.util.StrUtil
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
...
@@ -37,13 +37,13 @@ import java.util.stream.Collectors;
...
@@ -37,13 +37,13 @@ import java.util.stream.Collectors;
@Api
(
tags
=
{
"元数据信息表"
})
@Api
(
tags
=
{
"元数据信息表"
})
@RestController
@RestController
@RequestMapping
(
"/columns"
)
@RequestMapping
(
"/columns"
)
public
class
Data
MetadataColumnController
extends
BaseController
{
public
class
MetadataColumnController
extends
BaseController
{
@Autowired
@Autowired
private
DataMetadataColumnService
dataM
etadataColumnService
;
private
MetadataColumnService
m
etadataColumnService
;
@Autowired
@Autowired
private
DataMetadataColumnMapper
dataM
etadataColumnMapper
;
private
MetadataColumnMapper
m
etadataColumnMapper
;
/**
/**
* 通过ID查询信息
* 通过ID查询信息
...
@@ -55,41 +55,41 @@ public class DataMetadataColumnController extends BaseController {
...
@@ -55,41 +55,41 @@ public class DataMetadataColumnController extends BaseController {
@ApiImplicitParam
(
name
=
"id"
,
value
=
"ID"
,
required
=
true
,
dataType
=
"String"
,
paramType
=
"path"
)
@ApiImplicitParam
(
name
=
"id"
,
value
=
"ID"
,
required
=
true
,
dataType
=
"String"
,
paramType
=
"path"
)
@GetMapping
(
"/{id}"
)
@GetMapping
(
"/{id}"
)
public
R
getDataMetadataColumnById
(
@PathVariable
String
id
)
{
public
R
getDataMetadataColumnById
(
@PathVariable
String
id
)
{
DataMetadataColumnEntity
dataMetadataColumnEntity
=
dataMetadataColumnService
.
getData
MetadataColumnById
(
id
);
MetadataColumnEntity
metadataColumnEntity
=
metadataColumnService
.
get
MetadataColumnById
(
id
);
return
R
.
ok
().
setData
(
dataMetadataColumnMapper
.
toVO
(
dataM
etadataColumnEntity
));
return
R
.
ok
().
setData
(
metadataColumnMapper
.
toVO
(
m
etadataColumnEntity
));
}
}
@ApiOperation
(
value
=
"获取列表"
,
notes
=
""
)
@ApiOperation
(
value
=
"获取列表"
,
notes
=
""
)
@GetMapping
(
"/list"
)
@GetMapping
(
"/list"
)
public
R
getDataMetadataColumnList
(
DataMetadataColumnQuery
dataM
etadataColumnQuery
)
{
public
R
getDataMetadataColumnList
(
MetadataColumnQuery
m
etadataColumnQuery
)
{
QueryWrapper
<
Data
MetadataColumnEntity
>
queryWrapper
=
new
QueryWrapper
<>();
QueryWrapper
<
MetadataColumnEntity
>
queryWrapper
=
new
QueryWrapper
<>();
queryWrapper
.
like
(
StrUtil
.
isNotBlank
(
dataMetadataColumnQuery
.
getColumnName
()),
"column_name"
,
dataM
etadataColumnQuery
.
getColumnName
());
queryWrapper
.
like
(
StrUtil
.
isNotBlank
(
metadataColumnQuery
.
getColumnName
()),
"column_name"
,
m
etadataColumnQuery
.
getColumnName
());
queryWrapper
.
eq
(
StrUtil
.
isNotBlank
(
dataMetadataColumnQuery
.
getSourceId
()),
"source_id"
,
dataM
etadataColumnQuery
.
getSourceId
());
queryWrapper
.
eq
(
StrUtil
.
isNotBlank
(
metadataColumnQuery
.
getSourceId
()),
"source_id"
,
m
etadataColumnQuery
.
getSourceId
());
queryWrapper
.
eq
(
StrUtil
.
isNotBlank
(
dataMetadataColumnQuery
.
getTableId
()),
"table_id"
,
dataM
etadataColumnQuery
.
getTableId
());
queryWrapper
.
eq
(
StrUtil
.
isNotBlank
(
metadataColumnQuery
.
getTableId
()),
"table_id"
,
m
etadataColumnQuery
.
getTableId
());
List
<
DataMetadataColumnEntity
>
list
=
dataM
etadataColumnService
.
list
(
queryWrapper
);
List
<
MetadataColumnEntity
>
list
=
m
etadataColumnService
.
list
(
queryWrapper
);
List
<
DataMetadataColumnVo
>
collect
=
list
.
stream
().
map
(
dataM
etadataColumnMapper:
:
toVO
).
collect
(
Collectors
.
toList
());
List
<
MetadataColumnVo
>
collect
=
list
.
stream
().
map
(
m
etadataColumnMapper:
:
toVO
).
collect
(
Collectors
.
toList
());
return
R
.
ok
().
setData
(
collect
);
return
R
.
ok
().
setData
(
collect
);
}
}
/**
/**
* 分页查询信息
* 分页查询信息
*
*
* @param
dataM
etadataColumnQuery
* @param
m
etadataColumnQuery
* @return
* @return
*/
*/
@ApiOperation
(
value
=
"分页查询"
,
notes
=
""
)
@ApiOperation
(
value
=
"分页查询"
,
notes
=
""
)
@ApiImplicitParams
({
@ApiImplicitParams
({
@ApiImplicitParam
(
name
=
"dataMetadataColumnQuery"
,
value
=
"查询实体dataMetadataColumnQuery"
,
required
=
true
,
dataTypeClass
=
Data
MetadataColumnQuery
.
class
)
@ApiImplicitParam
(
name
=
"dataMetadataColumnQuery"
,
value
=
"查询实体dataMetadataColumnQuery"
,
required
=
true
,
dataTypeClass
=
MetadataColumnQuery
.
class
)
})
})
@GetMapping
(
"/page"
)
@GetMapping
(
"/page"
)
public
R
getDataMetadataColumnPage
(
DataMetadataColumnQuery
dataM
etadataColumnQuery
)
{
public
R
getDataMetadataColumnPage
(
MetadataColumnQuery
m
etadataColumnQuery
)
{
QueryWrapper
<
Data
MetadataColumnEntity
>
queryWrapper
=
new
QueryWrapper
<>();
QueryWrapper
<
MetadataColumnEntity
>
queryWrapper
=
new
QueryWrapper
<>();
queryWrapper
.
like
(
StrUtil
.
isNotBlank
(
dataMetadataColumnQuery
.
getColumnName
()),
"column_name"
,
dataM
etadataColumnQuery
.
getColumnName
());
queryWrapper
.
like
(
StrUtil
.
isNotBlank
(
metadataColumnQuery
.
getColumnName
()),
"column_name"
,
m
etadataColumnQuery
.
getColumnName
());
queryWrapper
.
eq
(
StrUtil
.
isNotBlank
(
dataMetadataColumnQuery
.
getSourceId
()),
"source_id"
,
dataM
etadataColumnQuery
.
getSourceId
());
queryWrapper
.
eq
(
StrUtil
.
isNotBlank
(
metadataColumnQuery
.
getSourceId
()),
"source_id"
,
m
etadataColumnQuery
.
getSourceId
());
queryWrapper
.
eq
(
StrUtil
.
isNotBlank
(
dataMetadataColumnQuery
.
getTableId
()),
"table_id"
,
dataM
etadataColumnQuery
.
getTableId
());
queryWrapper
.
eq
(
StrUtil
.
isNotBlank
(
metadataColumnQuery
.
getTableId
()),
"table_id"
,
m
etadataColumnQuery
.
getTableId
());
IPage
<
DataMetadataColumnEntity
>
page
=
dataMetadataColumnService
.
page
(
new
Page
<>(
dataMetadataColumnQuery
.
getPageNum
(),
dataM
etadataColumnQuery
.
getPageSize
()),
queryWrapper
);
IPage
<
MetadataColumnEntity
>
page
=
metadataColumnService
.
page
(
new
Page
<>(
metadataColumnQuery
.
getPageNum
(),
m
etadataColumnQuery
.
getPageSize
()),
queryWrapper
);
List
<
DataMetadataColumnVo
>
collect
=
page
.
getRecords
().
stream
().
map
(
dataM
etadataColumnMapper:
:
toVO
).
collect
(
Collectors
.
toList
());
List
<
MetadataColumnVo
>
collect
=
page
.
getRecords
().
stream
().
map
(
m
etadataColumnMapper:
:
toVO
).
collect
(
Collectors
.
toList
());
JsonPage
<
Data
MetadataColumnVo
>
jsonPage
=
new
JsonPage
<>(
page
.
getCurrent
(),
page
.
getSize
(),
page
.
getTotal
(),
collect
);
JsonPage
<
MetadataColumnVo
>
jsonPage
=
new
JsonPage
<>(
page
.
getCurrent
(),
page
.
getSize
(),
page
.
getTotal
(),
collect
);
return
R
.
ok
().
setData
(
jsonPage
);
return
R
.
ok
().
setData
(
jsonPage
);
}
}
...
@@ -101,9 +101,9 @@ public class DataMetadataColumnController extends BaseController {
...
@@ -101,9 +101,9 @@ public class DataMetadataColumnController extends BaseController {
@ApiOperation
(
value
=
"添加信息"
,
notes
=
"根据dataMetadataColumn对象添加信息"
)
@ApiOperation
(
value
=
"添加信息"
,
notes
=
"根据dataMetadataColumn对象添加信息"
)
@ApiImplicitParam
(
name
=
"dataMetadataColumn"
,
value
=
"详细实体dataMetadataColumn"
,
required
=
true
,
dataType
=
"DataMetadataColumnDto"
)
@ApiImplicitParam
(
name
=
"dataMetadataColumn"
,
value
=
"详细实体dataMetadataColumn"
,
required
=
true
,
dataType
=
"DataMetadataColumnDto"
)
@PostMapping
()
@PostMapping
()
public
R
saveDataMetadataColumn
(
@RequestBody
@Validated
({
ValidationGroups
.
Insert
.
class
})
Data
MetadataColumnDto
dataMetadataColumn
)
{
public
R
saveDataMetadataColumn
(
@RequestBody
@Validated
({
ValidationGroups
.
Insert
.
class
})
MetadataColumnDto
dataMetadataColumn
)
{
DataMetadataColumnEntity
dataMetadataColumnEntity
=
dataMetadataColumnService
.
saveData
MetadataColumn
(
dataMetadataColumn
);
MetadataColumnEntity
metadataColumnEntity
=
metadataColumnService
.
save
MetadataColumn
(
dataMetadataColumn
);
return
R
.
ok
().
setData
(
dataMetadataColumnMapper
.
toVO
(
dataM
etadataColumnEntity
));
return
R
.
ok
().
setData
(
metadataColumnMapper
.
toVO
(
m
etadataColumnEntity
));
}
}
/**
/**
...
@@ -117,9 +117,9 @@ public class DataMetadataColumnController extends BaseController {
...
@@ -117,9 +117,9 @@ public class DataMetadataColumnController extends BaseController {
@ApiImplicitParam
(
name
=
"dataMetadataColumn"
,
value
=
"详细实体dataMetadataColumn"
,
required
=
true
,
dataType
=
"DataMetadataColumnDto"
)
@ApiImplicitParam
(
name
=
"dataMetadataColumn"
,
value
=
"详细实体dataMetadataColumn"
,
required
=
true
,
dataType
=
"DataMetadataColumnDto"
)
})
})
@PutMapping
(
"/{id}"
)
@PutMapping
(
"/{id}"
)
public
R
updateDataMetadataColumn
(
@PathVariable
String
id
,
@RequestBody
@Validated
({
ValidationGroups
.
Update
.
class
})
Data
MetadataColumnDto
dataMetadataColumn
)
{
public
R
updateDataMetadataColumn
(
@PathVariable
String
id
,
@RequestBody
@Validated
({
ValidationGroups
.
Update
.
class
})
MetadataColumnDto
dataMetadataColumn
)
{
DataMetadataColumnEntity
dataMetadataColumnEntity
=
dataMetadataColumnService
.
updateData
MetadataColumn
(
dataMetadataColumn
);
MetadataColumnEntity
metadataColumnEntity
=
metadataColumnService
.
update
MetadataColumn
(
dataMetadataColumn
);
return
R
.
ok
().
setData
(
dataMetadataColumnMapper
.
toVO
(
dataM
etadataColumnEntity
));
return
R
.
ok
().
setData
(
metadataColumnMapper
.
toVO
(
m
etadataColumnEntity
));
}
}
/**
/**
...
@@ -131,7 +131,7 @@ public class DataMetadataColumnController extends BaseController {
...
@@ -131,7 +131,7 @@ public class DataMetadataColumnController extends BaseController {
@ApiImplicitParam
(
name
=
"id"
,
value
=
"ID"
,
required
=
true
,
dataType
=
"String"
,
paramType
=
"path"
)
@ApiImplicitParam
(
name
=
"id"
,
value
=
"ID"
,
required
=
true
,
dataType
=
"String"
,
paramType
=
"path"
)
@DeleteMapping
(
"/{id}"
)
@DeleteMapping
(
"/{id}"
)
public
R
deleteDataMetadataColumnById
(
@PathVariable
String
id
)
{
public
R
deleteDataMetadataColumnById
(
@PathVariable
String
id
)
{
dataMetadataColumnService
.
deleteData
MetadataColumnById
(
id
);
metadataColumnService
.
delete
MetadataColumnById
(
id
);
return
R
.
ok
();
return
R
.
ok
();
}
}
...
@@ -144,7 +144,7 @@ public class DataMetadataColumnController extends BaseController {
...
@@ -144,7 +144,7 @@ public class DataMetadataColumnController extends BaseController {
@ApiImplicitParam
(
name
=
"ids"
,
value
=
"ID集合"
,
required
=
true
,
dataType
=
"List"
,
paramType
=
"path"
)
@ApiImplicitParam
(
name
=
"ids"
,
value
=
"ID集合"
,
required
=
true
,
dataType
=
"List"
,
paramType
=
"path"
)
@DeleteMapping
(
"/batch/{ids}"
)
@DeleteMapping
(
"/batch/{ids}"
)
public
R
deleteDataMetadataColumnBatch
(
@PathVariable
List
<
String
>
ids
)
{
public
R
deleteDataMetadataColumnBatch
(
@PathVariable
List
<
String
>
ids
)
{
dataMetadataColumnService
.
deleteData
MetadataColumnBatch
(
ids
);
metadataColumnService
.
delete
MetadataColumnBatch
(
ids
);
return
R
.
ok
();
return
R
.
ok
();
}
}
}
}
datax-modules/data-
factory-service-parent/data-factory-service/src/main/java/cn/datax/service/data/factory/controller/D
ataSourceController.java
→
datax-modules/data-
metadata-service-parent/data-metadata-service/src/main/java/cn/datax/service/data/metadata/controller/Metad
ataSourceController.java
View file @
9579d532
package
cn
.
datax
.
service
.
data
.
factory
.
controller
;
package
cn
.
datax
.
service
.
data
.
metadata
.
controller
;
import
cn.datax.common.base.BaseController
;
import
cn.datax.common.core.DataConstant
;
import
cn.datax.common.core.DataConstant
;
import
cn.datax.common.core.JsonPage
;
import
cn.datax.common.core.JsonPage
;
import
cn.datax.common.core.R
;
import
cn.datax.common.core.R
;
...
@@ -8,14 +9,17 @@ import cn.datax.common.database.core.DbColumn;
...
@@ -8,14 +9,17 @@ import cn.datax.common.database.core.DbColumn;
import
cn.datax.common.database.core.DbTable
;
import
cn.datax.common.database.core.DbTable
;
import
cn.datax.common.database.core.PageResult
;
import
cn.datax.common.database.core.PageResult
;
import
cn.datax.common.validate.ValidationGroups
;
import
cn.datax.common.validate.ValidationGroups
;
import
cn.datax.service.data.
factory.api.dto.D
ataSourceDto
;
import
cn.datax.service.data.
metadata.api.dto.Metad
ataSourceDto
;
import
cn.datax.service.data.
factory.api.entity.D
ataSourceEntity
;
import
cn.datax.service.data.
metadata.api.entity.Metad
ataSourceEntity
;
import
cn.datax.service.data.
factory.api.query.DataSource
Query
;
import
cn.datax.service.data.
metadata.api.query.DbData
Query
;
import
cn.datax.service.data.
factory.api.query.DbData
Query
;
import
cn.datax.service.data.
metadata.api.query.MetadataSource
Query
;
import
cn.datax.service.data.
factory.api.vo.D
ataSourceVo
;
import
cn.datax.service.data.
metadata.api.vo.Metad
ataSourceVo
;
import
cn.datax.service.data.
factory.mapstruct.D
ataSourceMapper
;
import
cn.datax.service.data.
metadata.mapstruct.Metad
ataSourceMapper
;
import
cn.datax.service.data.
factory.service.D
ataSourceService
;
import
cn.datax.service.data.
metadata.service.Metad
ataSourceService
;
import
cn.hutool.core.util.StrUtil
;
import
cn.hutool.core.util.StrUtil
;
import
com.aspose.words.Document
;
import
com.aspose.words.SaveFormat
;
import
com.aspose.words.SaveOptions
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
...
@@ -27,8 +31,8 @@ import org.springframework.beans.factory.annotation.Autowired;
...
@@ -27,8 +31,8 @@ import org.springframework.beans.factory.annotation.Autowired;
import
org.springframework.validation.annotation.Validated
;
import
org.springframework.validation.annotation.Validated
;
import
org.springframework.web.bind.annotation.*
;
import
org.springframework.web.bind.annotation.*
;
import
cn.datax.common.base.BaseController
;
import
javax.servlet.http.HttpServletResponse
;
import
java.io.OutputStream
;
import
java.util.List
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Map
;
import
java.util.stream.Collectors
;
import
java.util.stream.Collectors
;
...
@@ -43,14 +47,14 @@ import java.util.stream.Collectors;
...
@@ -43,14 +47,14 @@ import java.util.stream.Collectors;
*/
*/
@Api
(
tags
=
{
"数据源信息表"
})
@Api
(
tags
=
{
"数据源信息表"
})
@RestController
@RestController
@RequestMapping
(
"/
dataS
ources"
)
@RequestMapping
(
"/
s
ources"
)
public
class
D
ataSourceController
extends
BaseController
{
public
class
Metad
ataSourceController
extends
BaseController
{
@Autowired
@Autowired
private
DataSourceService
dataSourceService
;
private
MetadataSourceService
meta
dataSourceService
;
@Autowired
@Autowired
private
DataSourceMapper
dataSourceMapper
;
private
MetadataSourceMapper
meta
dataSourceMapper
;
/**
/**
* 通过ID查询信息
* 通过ID查询信息
...
@@ -61,68 +65,67 @@ public class DataSourceController extends BaseController {
...
@@ -61,68 +65,67 @@ public class DataSourceController extends BaseController {
@ApiOperation
(
value
=
"获取详细信息"
,
notes
=
"根据url的id来获取详细信息"
)
@ApiOperation
(
value
=
"获取详细信息"
,
notes
=
"根据url的id来获取详细信息"
)
@ApiImplicitParam
(
name
=
"id"
,
value
=
"ID"
,
required
=
true
,
dataType
=
"String"
,
paramType
=
"path"
)
@ApiImplicitParam
(
name
=
"id"
,
value
=
"ID"
,
required
=
true
,
dataType
=
"String"
,
paramType
=
"path"
)
@GetMapping
(
"/{id}"
)
@GetMapping
(
"/{id}"
)
public
R
get
D
ataSourceById
(
@PathVariable
String
id
)
{
public
R
get
Metad
ataSourceById
(
@PathVariable
String
id
)
{
DataSourceEntity
dataSourceEntity
=
dataSourceService
.
getD
ataSourceById
(
id
);
MetadataSourceEntity
metadataSourceEntity
=
metadataSourceService
.
getMetad
ataSourceById
(
id
);
return
R
.
ok
().
setData
(
dataSourceMapper
.
toVO
(
dataSourceEntity
));
return
R
.
ok
().
setData
(
metadataSourceMapper
.
toVO
(
meta
dataSourceEntity
));
}
}
@ApiOperation
(
value
=
"获取列表"
,
notes
=
""
)
@ApiOperation
(
value
=
"获取列表"
,
notes
=
""
)
@GetMapping
(
"/list"
)
@GetMapping
(
"/list"
)
public
R
get
D
ataSourceList
()
{
public
R
get
Metad
ataSourceList
()
{
QueryWrapper
<
D
ataSourceEntity
>
queryWrapper
=
new
QueryWrapper
<>();
QueryWrapper
<
Metad
ataSourceEntity
>
queryWrapper
=
new
QueryWrapper
<>();
queryWrapper
.
eq
(
"status"
,
DataConstant
.
EnableState
.
ENABLE
.
getKey
());
queryWrapper
.
eq
(
"status"
,
DataConstant
.
EnableState
.
ENABLE
.
getKey
());
List
<
DataSourceEntity
>
list
=
dataSourceService
.
list
(
queryWrapper
);
List
<
MetadataSourceEntity
>
list
=
meta
dataSourceService
.
list
(
queryWrapper
);
List
<
DataSourceVo
>
collect
=
list
.
stream
().
map
(
dataSourceMapper:
:
toVO
).
collect
(
Collectors
.
toList
());
List
<
MetadataSourceVo
>
collect
=
list
.
stream
().
map
(
meta
dataSourceMapper:
:
toVO
).
collect
(
Collectors
.
toList
());
return
R
.
ok
().
setData
(
collect
);
return
R
.
ok
().
setData
(
collect
);
}
}
/**
/**
* 分页查询信息
* 分页查询信息
*
*
* @param dataSourceQuery
* @param
meta
dataSourceQuery
* @return
* @return
*/
*/
@ApiOperation
(
value
=
"分页查询"
,
notes
=
""
)
@ApiOperation
(
value
=
"分页查询"
,
notes
=
""
)
@ApiImplicitParams
({
@ApiImplicitParams
({
@ApiImplicitParam
(
name
=
"
dataSourceQuery"
,
value
=
"查询实体dataSourceQuery"
,
required
=
true
,
dataTypeClass
=
D
ataSourceQuery
.
class
)
@ApiImplicitParam
(
name
=
"
metadataSourceQuery"
,
value
=
"查询实体metadataSourceQuery"
,
required
=
true
,
dataTypeClass
=
Metad
ataSourceQuery
.
class
)
})
})
@GetMapping
(
"/page"
)
@GetMapping
(
"/page"
)
public
R
getDataSourcePage
(
DataSourceQuery
dataSourceQuery
)
{
public
R
getMetadataSourcePage
(
MetadataSourceQuery
metadataSourceQuery
)
{
QueryWrapper
<
DataSourceEntity
>
queryWrapper
=
new
QueryWrapper
<>();
QueryWrapper
<
MetadataSourceEntity
>
queryWrapper
=
new
QueryWrapper
<>();
queryWrapper
.
like
(
StrUtil
.
isNotBlank
(
dataSourceQuery
.
getSourceName
()),
"source_name"
,
dataSourceQuery
.
getSourceName
());
queryWrapper
.
like
(
StrUtil
.
isNotBlank
(
metadataSourceQuery
.
getSourceName
()),
"source_name"
,
metadataSourceQuery
.
getSourceName
());
queryWrapper
.
eq
(
StrUtil
.
isNotBlank
(
dataSourceQuery
.
getThemeId
()),
"theme_id"
,
dataSourceQuery
.
getThemeId
());
IPage
<
MetadataSourceEntity
>
page
=
metadataSourceService
.
page
(
new
Page
<>(
metadataSourceQuery
.
getPageNum
(),
metadataSourceQuery
.
getPageSize
()),
queryWrapper
);
IPage
<
DataSourceEntity
>
page
=
dataSourceService
.
page
(
new
Page
<>(
dataSourceQuery
.
getPageNum
(),
dataSourceQuery
.
getPageSize
()),
queryWrapper
);
List
<
MetadataSourceVo
>
collect
=
page
.
getRecords
().
stream
().
map
(
metadataSourceMapper:
:
toVO
).
collect
(
Collectors
.
toList
());
List
<
DataSourceVo
>
collect
=
page
.
getRecords
().
stream
().
map
(
dataSourceMapper:
:
toVO
).
collect
(
Collectors
.
toList
());
JsonPage
<
MetadataSourceVo
>
jsonPage
=
new
JsonPage
<>(
page
.
getCurrent
(),
page
.
getSize
(),
page
.
getTotal
(),
collect
);
JsonPage
<
DataSourceVo
>
jsonPage
=
new
JsonPage
<>(
page
.
getCurrent
(),
page
.
getSize
(),
page
.
getTotal
(),
collect
);
return
R
.
ok
().
setData
(
jsonPage
);
return
R
.
ok
().
setData
(
jsonPage
);
}
}
/**
/**
* 添加
* 添加
* @param
dataSource
* @param
metadataSourceDto
* @return
* @return
*/
*/
@ApiOperation
(
value
=
"添加信息"
,
notes
=
"根据
dataSource
对象添加信息"
)
@ApiOperation
(
value
=
"添加信息"
,
notes
=
"根据
metadataSourceDto
对象添加信息"
)
@ApiImplicitParam
(
name
=
"
dataSource"
,
value
=
"详细实体dataSource"
,
required
=
true
,
dataType
=
"D
ataSourceDto"
)
@ApiImplicitParam
(
name
=
"
metadataSourceDto"
,
value
=
"详细实体metadataSourceDto"
,
required
=
true
,
dataType
=
"Metad
ataSourceDto"
)
@PostMapping
()
@PostMapping
()
public
R
save
DataSource
(
@RequestBody
@Validated
({
ValidationGroups
.
Insert
.
class
})
DataSourceDto
dataSource
)
{
public
R
save
MetadataSource
(
@RequestBody
@Validated
({
ValidationGroups
.
Insert
.
class
})
MetadataSourceDto
metadataSourceDto
)
{
dataSourceService
.
saveDataSource
(
dataSource
);
metadataSourceService
.
saveMetadataSource
(
metadataSourceDto
);
return
R
.
ok
();
return
R
.
ok
();
}
}
/**
/**
* 修改
* 修改
* @param
dataSource
* @param
metadataSourceDto
* @return
* @return
*/
*/
@ApiOperation
(
value
=
"修改信息"
,
notes
=
"根据url的id来指定修改对象,并根据传过来的信息来修改详细信息"
)
@ApiOperation
(
value
=
"修改信息"
,
notes
=
"根据url的id来指定修改对象,并根据传过来的信息来修改详细信息"
)
@ApiImplicitParams
({
@ApiImplicitParams
({
@ApiImplicitParam
(
name
=
"id"
,
value
=
"ID"
,
required
=
true
,
dataType
=
"String"
,
paramType
=
"path"
),
@ApiImplicitParam
(
name
=
"id"
,
value
=
"ID"
,
required
=
true
,
dataType
=
"String"
,
paramType
=
"path"
),
@ApiImplicitParam
(
name
=
"
dataSource"
,
value
=
"详细实体dataSource"
,
required
=
true
,
dataType
=
"D
ataSourceDto"
)
@ApiImplicitParam
(
name
=
"
metadataSourceDto"
,
value
=
"详细实体metadataSourceDto"
,
required
=
true
,
dataType
=
"Metad
ataSourceDto"
)
})
})
@PutMapping
(
"/{id}"
)
@PutMapping
(
"/{id}"
)
public
R
update
DataSource
(
@PathVariable
String
id
,
@RequestBody
@Validated
({
ValidationGroups
.
Update
.
class
})
DataSourceDto
dataSource
)
{
public
R
update
MetadataSource
(
@PathVariable
String
id
,
@RequestBody
@Validated
({
ValidationGroups
.
Update
.
class
})
MetadataSourceDto
metadataSourceDto
)
{
dataSourceService
.
updateDataSource
(
dataSource
);
metadataSourceService
.
updateMetadataSource
(
metadataSourceDto
);
return
R
.
ok
();
return
R
.
ok
();
}
}
...
@@ -134,29 +137,29 @@ public class DataSourceController extends BaseController {
...
@@ -134,29 +137,29 @@ public class DataSourceController extends BaseController {
@ApiOperation
(
value
=
"删除"
,
notes
=
"根据url的id来指定删除对象"
)
@ApiOperation
(
value
=
"删除"
,
notes
=
"根据url的id来指定删除对象"
)
@ApiImplicitParam
(
name
=
"id"
,
value
=
"ID"
,
required
=
true
,
dataType
=
"String"
,
paramType
=
"path"
)
@ApiImplicitParam
(
name
=
"id"
,
value
=
"ID"
,
required
=
true
,
dataType
=
"String"
,
paramType
=
"path"
)
@DeleteMapping
(
"/{id}"
)
@DeleteMapping
(
"/{id}"
)
public
R
delete
D
ataSourceById
(
@PathVariable
String
id
)
{
public
R
delete
Metad
ataSourceById
(
@PathVariable
String
id
)
{
dataSourceService
.
deleteD
ataSourceById
(
id
);
metadataSourceService
.
deleteMetad
ataSourceById
(
id
);
return
R
.
ok
();
return
R
.
ok
();
}
}
@ApiOperation
(
value
=
"批量删除"
,
notes
=
"根据url的ids来批量删除对象"
)
@ApiOperation
(
value
=
"批量删除"
,
notes
=
"根据url的ids来批量删除对象"
)
@ApiImplicitParam
(
name
=
"ids"
,
value
=
"ID集合"
,
required
=
true
,
dataType
=
"List"
,
paramType
=
"path"
)
@ApiImplicitParam
(
name
=
"ids"
,
value
=
"ID集合"
,
required
=
true
,
dataType
=
"List"
,
paramType
=
"path"
)
@DeleteMapping
(
"/batch/{ids}"
)
@DeleteMapping
(
"/batch/{ids}"
)
public
R
delete
D
ataSourceBatch
(
@PathVariable
List
<
String
>
ids
)
{
public
R
delete
Metad
ataSourceBatch
(
@PathVariable
List
<
String
>
ids
)
{
dataSourceService
.
deleteD
ataSourceBatch
(
ids
);
metadataSourceService
.
deleteMetad
ataSourceBatch
(
ids
);
return
R
.
ok
();
return
R
.
ok
();
}
}
/**
/**
* 检测数据库连通性
* 检测数据库连通性
* @param
dataSource
* @param
metadataSourceDto
* @return
* @return
*/
*/
@ApiOperation
(
value
=
"数据库连通性"
,
notes
=
"根据数据库配置信息检测数据库连通性"
)
@ApiOperation
(
value
=
"数据库连通性"
,
notes
=
"根据数据库配置信息检测数据库连通性"
)
@ApiImplicitParam
(
name
=
"dataSource"
,
value
=
"详细实体dataSource"
,
required
=
true
,
dataType
=
"DataSourceDto"
)
@ApiImplicitParam
(
name
=
"dataSource"
,
value
=
"详细实体dataSource"
,
required
=
true
,
dataType
=
"DataSourceDto"
)
@PostMapping
(
"/checkConnection"
)
@PostMapping
(
"/checkConnection"
)
public
R
checkConnection
(
@RequestBody
@Validated
({
ValidationGroups
.
Insert
.
class
})
DataSourceDto
dataSource
)
{
public
R
checkConnection
(
@RequestBody
@Validated
({
ValidationGroups
.
Insert
.
class
})
MetadataSourceDto
metadataSourceDto
)
{
DbQuery
dbQuery
=
dataSourceService
.
checkConnection
(
dataSource
);
DbQuery
dbQuery
=
metadataSourceService
.
checkConnection
(
metadataSourceDto
);
Boolean
valid
=
dbQuery
.
valid
();
Boolean
valid
=
dbQuery
.
valid
();
return
valid
?
R
.
ok
()
:
R
.
error
(
"数据库连接有误,请检查数据库配置是否正确"
);
return
valid
?
R
.
ok
()
:
R
.
error
(
"数据库连接有误,请检查数据库配置是否正确"
);
}
}
...
@@ -172,7 +175,7 @@ public class DataSourceController extends BaseController {
...
@@ -172,7 +175,7 @@ public class DataSourceController extends BaseController {
})
})
@GetMapping
(
"/{id}/tables"
)
@GetMapping
(
"/{id}/tables"
)
public
R
getDbTables
(
@PathVariable
String
id
)
{
public
R
getDbTables
(
@PathVariable
String
id
)
{
List
<
DbTable
>
tables
=
dataSourceService
.
getDbTables
(
id
);
List
<
DbTable
>
tables
=
meta
dataSourceService
.
getDbTables
(
id
);
return
R
.
ok
().
setData
(
tables
);
return
R
.
ok
().
setData
(
tables
);
}
}
...
@@ -188,7 +191,7 @@ public class DataSourceController extends BaseController {
...
@@ -188,7 +191,7 @@ public class DataSourceController extends BaseController {
})
})
@GetMapping
(
"/{id}/{tableName}/columns"
)
@GetMapping
(
"/{id}/{tableName}/columns"
)
public
R
getDbTableColumns
(
@PathVariable
String
id
,
@PathVariable
String
tableName
)
{
public
R
getDbTableColumns
(
@PathVariable
String
id
,
@PathVariable
String
tableName
)
{
List
<
DbColumn
>
columns
=
dataSourceService
.
getDbTableColumns
(
id
,
tableName
);
List
<
DbColumn
>
columns
=
meta
dataSourceService
.
getDbTableColumns
(
id
,
tableName
);
return
R
.
ok
().
setData
(
columns
);
return
R
.
ok
().
setData
(
columns
);
}
}
...
@@ -196,7 +199,7 @@ public class DataSourceController extends BaseController {
...
@@ -196,7 +199,7 @@ public class DataSourceController extends BaseController {
@ApiImplicitParam
(
name
=
"dbDataQuery"
,
value
=
"详细实体dbDataQuery"
,
required
=
true
,
dataType
=
"DbDataQuery"
)
@ApiImplicitParam
(
name
=
"dbDataQuery"
,
value
=
"详细实体dbDataQuery"
,
required
=
true
,
dataType
=
"DbDataQuery"
)
@PostMapping
(
"/queryList"
)
@PostMapping
(
"/queryList"
)
public
R
queryList
(
@RequestBody
@Validated
DbDataQuery
dbDataQuery
)
{
public
R
queryList
(
@RequestBody
@Validated
DbDataQuery
dbDataQuery
)
{
DbQuery
dbQuery
=
dataSourceService
.
getDbQuery
(
dbDataQuery
.
getDataSourceId
());
DbQuery
dbQuery
=
meta
dataSourceService
.
getDbQuery
(
dbDataQuery
.
getDataSourceId
());
List
<
Map
<
String
,
Object
>>
list
=
dbQuery
.
queryList
(
dbDataQuery
.
getSql
());
List
<
Map
<
String
,
Object
>>
list
=
dbQuery
.
queryList
(
dbDataQuery
.
getSql
());
return
R
.
ok
().
setData
(
list
);
return
R
.
ok
().
setData
(
list
);
}
}
...
@@ -205,9 +208,34 @@ public class DataSourceController extends BaseController {
...
@@ -205,9 +208,34 @@ public class DataSourceController extends BaseController {
@ApiImplicitParam
(
name
=
"dbDataQuery"
,
value
=
"详细实体dbDataQuery"
,
required
=
true
,
dataType
=
"DbDataQuery"
)
@ApiImplicitParam
(
name
=
"dbDataQuery"
,
value
=
"详细实体dbDataQuery"
,
required
=
true
,
dataType
=
"DbDataQuery"
)
@PostMapping
(
"/queryByPage"
)
@PostMapping
(
"/queryByPage"
)
public
R
queryByPage
(
@RequestBody
@Validated
DbDataQuery
dbDataQuery
)
{
public
R
queryByPage
(
@RequestBody
@Validated
DbDataQuery
dbDataQuery
)
{
DbQuery
dbQuery
=
dataSourceService
.
getDbQuery
(
dbDataQuery
.
getDataSourceId
());
DbQuery
dbQuery
=
meta
dataSourceService
.
getDbQuery
(
dbDataQuery
.
getDataSourceId
());
PageResult
<
Map
<
String
,
Object
>>
page
=
dbQuery
.
queryByPage
(
dbDataQuery
.
getSql
(),
dbDataQuery
.
getOffset
(),
dbDataQuery
.
getPageSize
());
PageResult
<
Map
<
String
,
Object
>>
page
=
dbQuery
.
queryByPage
(
dbDataQuery
.
getSql
(),
dbDataQuery
.
getOffset
(),
dbDataQuery
.
getPageSize
());
page
.
setPageNum
(
dbDataQuery
.
getPageNum
()).
setPageSize
(
dbDataQuery
.
getPageSize
());
page
.
setPageNum
(
dbDataQuery
.
getPageNum
()).
setPageSize
(
dbDataQuery
.
getPageSize
());
return
R
.
ok
().
setData
(
page
);
return
R
.
ok
().
setData
(
page
);
}
}
@ApiOperation
(
value
=
"同步"
,
notes
=
"根据url的id来指定同步对象"
)
@ApiImplicitParam
(
name
=
"id"
,
value
=
"ID"
,
required
=
true
,
dataType
=
"String"
,
paramType
=
"path"
)
@PostMapping
(
"/sync/{id}"
)
public
R
syncMetadata
(
@PathVariable
String
id
)
{
metadataSourceService
.
syncMetadata
(
id
);
return
R
.
ok
();
}
@ApiOperation
(
value
=
"数据库设计文档"
,
notes
=
"根据url的id来指定生成数据库设计文档对象"
)
@ApiImplicitParam
(
name
=
"id"
,
value
=
"ID"
,
required
=
true
,
dataType
=
"String"
,
paramType
=
"path"
)
@PostMapping
(
"/word/{id}"
)
public
void
wordMetadata
(
@PathVariable
String
id
,
HttpServletResponse
response
)
throws
Exception
{
// 清空response
response
.
reset
();
// 设置response的Header
response
.
setContentType
(
"application/octet-stream;charset=utf-8"
);
// 设置content-disposition响应头控制浏览器以下载的形式打开文件
response
.
addHeader
(
"Content-Disposition"
,
"attachment;filename="
+
new
String
(
"数据库设计文档.doc"
.
getBytes
()));
Document
doc
=
metadataSourceService
.
wordMetadata
(
id
);
OutputStream
out
=
response
.
getOutputStream
();
doc
.
save
(
out
,
SaveOptions
.
createSaveOptions
(
SaveFormat
.
DOC
));
out
.
flush
();
out
.
close
();
}
}
}
datax-modules/data-metadata-service-parent/data-metadata-service/src/main/java/cn/datax/service/data/metadata/controller/
Data
MetadataTableController.java
→
datax-modules/data-metadata-service-parent/data-metadata-service/src/main/java/cn/datax/service/data/metadata/controller/MetadataTableController.java
View file @
9579d532
...
@@ -3,12 +3,12 @@ package cn.datax.service.data.metadata.controller;
...
@@ -3,12 +3,12 @@ package cn.datax.service.data.metadata.controller;
import
cn.datax.common.core.JsonPage
;
import
cn.datax.common.core.JsonPage
;
import
cn.datax.common.core.R
;
import
cn.datax.common.core.R
;
import
cn.datax.common.validate.ValidationGroups
;
import
cn.datax.common.validate.ValidationGroups
;
import
cn.datax.service.data.metadata.api.dto.
Data
MetadataTableDto
;
import
cn.datax.service.data.metadata.api.dto.MetadataTableDto
;
import
cn.datax.service.data.metadata.api.entity.
Data
MetadataTableEntity
;
import
cn.datax.service.data.metadata.api.entity.MetadataTableEntity
;
import
cn.datax.service.data.metadata.api.vo.
Data
MetadataTableVo
;
import
cn.datax.service.data.metadata.api.vo.MetadataTableVo
;
import
cn.datax.service.data.metadata.api.query.
Data
MetadataTableQuery
;
import
cn.datax.service.data.metadata.api.query.MetadataTableQuery
;
import
cn.datax.service.data.metadata.mapstruct.
Data
MetadataTableMapper
;
import
cn.datax.service.data.metadata.mapstruct.MetadataTableMapper
;
import
cn.datax.service.data.metadata.service.
Data
MetadataTableService
;
import
cn.datax.service.data.metadata.service.MetadataTableService
;
import
cn.hutool.core.util.StrUtil
;
import
cn.hutool.core.util.StrUtil
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
...
@@ -37,13 +37,13 @@ import java.util.stream.Collectors;
...
@@ -37,13 +37,13 @@ import java.util.stream.Collectors;
@Api
(
tags
=
{
"数据库表信息表"
})
@Api
(
tags
=
{
"数据库表信息表"
})
@RestController
@RestController
@RequestMapping
(
"/tables"
)
@RequestMapping
(
"/tables"
)
public
class
Data
MetadataTableController
extends
BaseController
{
public
class
MetadataTableController
extends
BaseController
{
@Autowired
@Autowired
private
DataMetadataTableService
dataM
etadataTableService
;
private
MetadataTableService
m
etadataTableService
;
@Autowired
@Autowired
private
DataMetadataTableMapper
dataM
etadataTableMapper
;
private
MetadataTableMapper
m
etadataTableMapper
;
/**
/**
* 通过ID查询信息
* 通过ID查询信息
...
@@ -55,39 +55,39 @@ public class DataMetadataTableController extends BaseController {
...
@@ -55,39 +55,39 @@ public class DataMetadataTableController extends BaseController {
@ApiImplicitParam
(
name
=
"id"
,
value
=
"ID"
,
required
=
true
,
dataType
=
"String"
,
paramType
=
"path"
)
@ApiImplicitParam
(
name
=
"id"
,
value
=
"ID"
,
required
=
true
,
dataType
=
"String"
,
paramType
=
"path"
)
@GetMapping
(
"/{id}"
)
@GetMapping
(
"/{id}"
)
public
R
getDataMetadataTableById
(
@PathVariable
String
id
)
{
public
R
getDataMetadataTableById
(
@PathVariable
String
id
)
{
DataMetadataTableEntity
dataMetadataTableEntity
=
dataMetadataTableService
.
getData
MetadataTableById
(
id
);
MetadataTableEntity
metadataTableEntity
=
metadataTableService
.
get
MetadataTableById
(
id
);
return
R
.
ok
().
setData
(
dataMetadataTableMapper
.
toVO
(
dataM
etadataTableEntity
));
return
R
.
ok
().
setData
(
metadataTableMapper
.
toVO
(
m
etadataTableEntity
));
}
}
@ApiOperation
(
value
=
"获取列表"
,
notes
=
""
)
@ApiOperation
(
value
=
"获取列表"
,
notes
=
""
)
@GetMapping
(
"/list"
)
@GetMapping
(
"/list"
)
public
R
getDataMetadataTableList
(
DataMetadataTableQuery
dataM
etadataTableQuery
)
{
public
R
getDataMetadataTableList
(
MetadataTableQuery
m
etadataTableQuery
)
{
QueryWrapper
<
Data
MetadataTableEntity
>
queryWrapper
=
new
QueryWrapper
<>();
QueryWrapper
<
MetadataTableEntity
>
queryWrapper
=
new
QueryWrapper
<>();
queryWrapper
.
like
(
StrUtil
.
isNotBlank
(
dataMetadataTableQuery
.
getTableName
()),
"table_name"
,
dataM
etadataTableQuery
.
getTableName
());
queryWrapper
.
like
(
StrUtil
.
isNotBlank
(
metadataTableQuery
.
getTableName
()),
"table_name"
,
m
etadataTableQuery
.
getTableName
());
queryWrapper
.
eq
(
StrUtil
.
isNotBlank
(
dataMetadataTableQuery
.
getSourceId
()),
"source_id"
,
dataM
etadataTableQuery
.
getSourceId
());
queryWrapper
.
eq
(
StrUtil
.
isNotBlank
(
metadataTableQuery
.
getSourceId
()),
"source_id"
,
m
etadataTableQuery
.
getSourceId
());
List
<
DataMetadataTableEntity
>
list
=
dataM
etadataTableService
.
list
(
queryWrapper
);
List
<
MetadataTableEntity
>
list
=
m
etadataTableService
.
list
(
queryWrapper
);
List
<
DataMetadataTableVo
>
collect
=
list
.
stream
().
map
(
dataM
etadataTableMapper:
:
toVO
).
collect
(
Collectors
.
toList
());
List
<
MetadataTableVo
>
collect
=
list
.
stream
().
map
(
m
etadataTableMapper:
:
toVO
).
collect
(
Collectors
.
toList
());
return
R
.
ok
().
setData
(
collect
);
return
R
.
ok
().
setData
(
collect
);
}
}
/**
/**
* 分页查询信息
* 分页查询信息
*
*
* @param
dataM
etadataTableQuery
* @param
m
etadataTableQuery
* @return
* @return
*/
*/
@ApiOperation
(
value
=
"分页查询"
,
notes
=
""
)
@ApiOperation
(
value
=
"分页查询"
,
notes
=
""
)
@ApiImplicitParams
({
@ApiImplicitParams
({
@ApiImplicitParam
(
name
=
"dataMetadataTableQuery"
,
value
=
"查询实体dataMetadataTableQuery"
,
required
=
true
,
dataTypeClass
=
Data
MetadataTableQuery
.
class
)
@ApiImplicitParam
(
name
=
"dataMetadataTableQuery"
,
value
=
"查询实体dataMetadataTableQuery"
,
required
=
true
,
dataTypeClass
=
MetadataTableQuery
.
class
)
})
})
@GetMapping
(
"/page"
)
@GetMapping
(
"/page"
)
public
R
getDataMetadataTablePage
(
DataMetadataTableQuery
dataM
etadataTableQuery
)
{
public
R
getDataMetadataTablePage
(
MetadataTableQuery
m
etadataTableQuery
)
{
QueryWrapper
<
Data
MetadataTableEntity
>
queryWrapper
=
new
QueryWrapper
<>();
QueryWrapper
<
MetadataTableEntity
>
queryWrapper
=
new
QueryWrapper
<>();
queryWrapper
.
like
(
StrUtil
.
isNotBlank
(
dataMetadataTableQuery
.
getTableName
()),
"table_name"
,
dataM
etadataTableQuery
.
getTableName
());
queryWrapper
.
like
(
StrUtil
.
isNotBlank
(
metadataTableQuery
.
getTableName
()),
"table_name"
,
m
etadataTableQuery
.
getTableName
());
queryWrapper
.
eq
(
StrUtil
.
isNotBlank
(
dataMetadataTableQuery
.
getSourceId
()),
"source_id"
,
dataM
etadataTableQuery
.
getSourceId
());
queryWrapper
.
eq
(
StrUtil
.
isNotBlank
(
metadataTableQuery
.
getSourceId
()),
"source_id"
,
m
etadataTableQuery
.
getSourceId
());
IPage
<
DataMetadataTableEntity
>
page
=
dataMetadataTableService
.
page
(
new
Page
<>(
dataMetadataTableQuery
.
getPageNum
(),
dataM
etadataTableQuery
.
getPageSize
()),
queryWrapper
);
IPage
<
MetadataTableEntity
>
page
=
metadataTableService
.
page
(
new
Page
<>(
metadataTableQuery
.
getPageNum
(),
m
etadataTableQuery
.
getPageSize
()),
queryWrapper
);
List
<
DataMetadataTableVo
>
collect
=
page
.
getRecords
().
stream
().
map
(
dataM
etadataTableMapper:
:
toVO
).
collect
(
Collectors
.
toList
());
List
<
MetadataTableVo
>
collect
=
page
.
getRecords
().
stream
().
map
(
m
etadataTableMapper:
:
toVO
).
collect
(
Collectors
.
toList
());
JsonPage
<
Data
MetadataTableVo
>
jsonPage
=
new
JsonPage
<>(
page
.
getCurrent
(),
page
.
getSize
(),
page
.
getTotal
(),
collect
);
JsonPage
<
MetadataTableVo
>
jsonPage
=
new
JsonPage
<>(
page
.
getCurrent
(),
page
.
getSize
(),
page
.
getTotal
(),
collect
);
return
R
.
ok
().
setData
(
jsonPage
);
return
R
.
ok
().
setData
(
jsonPage
);
}
}
...
@@ -99,9 +99,9 @@ public class DataMetadataTableController extends BaseController {
...
@@ -99,9 +99,9 @@ public class DataMetadataTableController extends BaseController {
@ApiOperation
(
value
=
"添加信息"
,
notes
=
"根据dataMetadataTable对象添加信息"
)
@ApiOperation
(
value
=
"添加信息"
,
notes
=
"根据dataMetadataTable对象添加信息"
)
@ApiImplicitParam
(
name
=
"dataMetadataTable"
,
value
=
"详细实体dataMetadataTable"
,
required
=
true
,
dataType
=
"DataMetadataTableDto"
)
@ApiImplicitParam
(
name
=
"dataMetadataTable"
,
value
=
"详细实体dataMetadataTable"
,
required
=
true
,
dataType
=
"DataMetadataTableDto"
)
@PostMapping
()
@PostMapping
()
public
R
saveDataMetadataTable
(
@RequestBody
@Validated
({
ValidationGroups
.
Insert
.
class
})
Data
MetadataTableDto
dataMetadataTable
)
{
public
R
saveDataMetadataTable
(
@RequestBody
@Validated
({
ValidationGroups
.
Insert
.
class
})
MetadataTableDto
dataMetadataTable
)
{
DataMetadataTableEntity
dataMetadataTableEntity
=
dataMetadataTableService
.
saveData
MetadataTable
(
dataMetadataTable
);
MetadataTableEntity
metadataTableEntity
=
metadataTableService
.
save
MetadataTable
(
dataMetadataTable
);
return
R
.
ok
().
setData
(
dataMetadataTableMapper
.
toVO
(
dataM
etadataTableEntity
));
return
R
.
ok
().
setData
(
metadataTableMapper
.
toVO
(
m
etadataTableEntity
));
}
}
/**
/**
...
@@ -115,9 +115,9 @@ public class DataMetadataTableController extends BaseController {
...
@@ -115,9 +115,9 @@ public class DataMetadataTableController extends BaseController {
@ApiImplicitParam
(
name
=
"dataMetadataTable"
,
value
=
"详细实体dataMetadataTable"
,
required
=
true
,
dataType
=
"DataMetadataTableDto"
)
@ApiImplicitParam
(
name
=
"dataMetadataTable"
,
value
=
"详细实体dataMetadataTable"
,
required
=
true
,
dataType
=
"DataMetadataTableDto"
)
})
})
@PutMapping
(
"/{id}"
)
@PutMapping
(
"/{id}"
)
public
R
updateDataMetadataTable
(
@PathVariable
String
id
,
@RequestBody
@Validated
({
ValidationGroups
.
Update
.
class
})
Data
MetadataTableDto
dataMetadataTable
)
{
public
R
updateDataMetadataTable
(
@PathVariable
String
id
,
@RequestBody
@Validated
({
ValidationGroups
.
Update
.
class
})
MetadataTableDto
dataMetadataTable
)
{
DataMetadataTableEntity
dataMetadataTableEntity
=
dataMetadataTableService
.
updateData
MetadataTable
(
dataMetadataTable
);
MetadataTableEntity
metadataTableEntity
=
metadataTableService
.
update
MetadataTable
(
dataMetadataTable
);
return
R
.
ok
().
setData
(
dataMetadataTableMapper
.
toVO
(
dataM
etadataTableEntity
));
return
R
.
ok
().
setData
(
metadataTableMapper
.
toVO
(
m
etadataTableEntity
));
}
}
/**
/**
...
@@ -129,7 +129,7 @@ public class DataMetadataTableController extends BaseController {
...
@@ -129,7 +129,7 @@ public class DataMetadataTableController extends BaseController {
@ApiImplicitParam
(
name
=
"id"
,
value
=
"ID"
,
required
=
true
,
dataType
=
"String"
,
paramType
=
"path"
)
@ApiImplicitParam
(
name
=
"id"
,
value
=
"ID"
,
required
=
true
,
dataType
=
"String"
,
paramType
=
"path"
)
@DeleteMapping
(
"/{id}"
)
@DeleteMapping
(
"/{id}"
)
public
R
deleteDataMetadataTableById
(
@PathVariable
String
id
)
{
public
R
deleteDataMetadataTableById
(
@PathVariable
String
id
)
{
dataMetadataTableService
.
deleteData
MetadataTableById
(
id
);
metadataTableService
.
delete
MetadataTableById
(
id
);
return
R
.
ok
();
return
R
.
ok
();
}
}
...
@@ -142,7 +142,7 @@ public class DataMetadataTableController extends BaseController {
...
@@ -142,7 +142,7 @@ public class DataMetadataTableController extends BaseController {
@ApiImplicitParam
(
name
=
"ids"
,
value
=
"ID集合"
,
required
=
true
,
dataType
=
"List"
,
paramType
=
"path"
)
@ApiImplicitParam
(
name
=
"ids"
,
value
=
"ID集合"
,
required
=
true
,
dataType
=
"List"
,
paramType
=
"path"
)
@DeleteMapping
(
"/batch/{ids}"
)
@DeleteMapping
(
"/batch/{ids}"
)
public
R
deleteDataMetadataTableBatch
(
@PathVariable
List
<
String
>
ids
)
{
public
R
deleteDataMetadataTableBatch
(
@PathVariable
List
<
String
>
ids
)
{
dataMetadataTableService
.
deleteData
MetadataTableBatch
(
ids
);
metadataTableService
.
delete
MetadataTableBatch
(
ids
);
return
R
.
ok
();
return
R
.
ok
();
}
}
}
}
datax-modules/data-metadata-service-parent/data-metadata-service/src/main/java/cn/datax/service/data/metadata/dao/
Data
MetadataColumnDao.java
→
datax-modules/data-metadata-service-parent/data-metadata-service/src/main/java/cn/datax/service/data/metadata/dao/MetadataColumnDao.java
View file @
9579d532
package
cn
.
datax
.
service
.
data
.
metadata
.
dao
;
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.
Data
MetadataColumnEntity
;
import
cn.datax.service.data.metadata.api.entity.MetadataColumnEntity
;
import
org.apache.ibatis.annotations.Mapper
;
import
org.apache.ibatis.annotations.Mapper
;
/**
/**
...
@@ -13,6 +13,6 @@ import org.apache.ibatis.annotations.Mapper;
...
@@ -13,6 +13,6 @@ import org.apache.ibatis.annotations.Mapper;
* @since 2020-07-29
* @since 2020-07-29
*/
*/
@Mapper
@Mapper
public
interface
DataMetadataColumnDao
extends
BaseDao
<
Data
MetadataColumnEntity
>
{
public
interface
MetadataColumnDao
extends
BaseDao
<
MetadataColumnEntity
>
{
}
}
datax-modules/data-
factory-service-parent/data-factory-service/src/main/java/cn/datax/service/data/factory/dao/D
ataSourceDao.java
→
datax-modules/data-
metadata-service-parent/data-metadata-service/src/main/java/cn/datax/service/data/metadata/dao/Metad
ataSourceDao.java
View file @
9579d532
package
cn
.
datax
.
service
.
data
.
factory
.
dao
;
package
cn
.
datax
.
service
.
data
.
metadata
.
dao
;
import
cn.datax.common.base.BaseDao
;
import
cn.datax.common.base.BaseDao
;
import
cn.datax.service.data.
factory.api.entity.D
ataSourceEntity
;
import
cn.datax.service.data.
metadata.api.entity.Metad
ataSourceEntity
;
import
org.apache.ibatis.annotations.Mapper
;
import
org.apache.ibatis.annotations.Mapper
;
/**
/**
...
@@ -13,6 +13,6 @@ import org.apache.ibatis.annotations.Mapper;
...
@@ -13,6 +13,6 @@ import org.apache.ibatis.annotations.Mapper;
* @since 2020-03-14
* @since 2020-03-14
*/
*/
@Mapper
@Mapper
public
interface
DataSourceDao
extends
BaseDao
<
D
ataSourceEntity
>
{
public
interface
MetadataSourceDao
extends
BaseDao
<
Metad
ataSourceEntity
>
{
}
}
datax-modules/data-metadata-service-parent/data-metadata-service/src/main/java/cn/datax/service/data/metadata/dao/
Data
MetadataTableDao.java
→
datax-modules/data-metadata-service-parent/data-metadata-service/src/main/java/cn/datax/service/data/metadata/dao/MetadataTableDao.java
View file @
9579d532
package
cn
.
datax
.
service
.
data
.
metadata
.
dao
;
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.
Data
MetadataTableEntity
;
import
cn.datax.service.data.metadata.api.entity.MetadataTableEntity
;
import
org.apache.ibatis.annotations.Mapper
;
import
org.apache.ibatis.annotations.Mapper
;
/**
/**
...
@@ -13,6 +13,6 @@ import org.apache.ibatis.annotations.Mapper;
...
@@ -13,6 +13,6 @@ import org.apache.ibatis.annotations.Mapper;
* @since 2020-07-29
* @since 2020-07-29
*/
*/
@Mapper
@Mapper
public
interface
DataMetadataTableDao
extends
BaseDao
<
Data
MetadataTableEntity
>
{
public
interface
MetadataTableDao
extends
BaseDao
<
MetadataTableEntity
>
{
}
}
datax-modules/data-metadata-service-parent/data-metadata-service/src/main/java/cn/datax/service/data/metadata/mapstruct/
Data
MetadataColumnMapper.java
→
datax-modules/data-metadata-service-parent/data-metadata-service/src/main/java/cn/datax/service/data/metadata/mapstruct/MetadataColumnMapper.java
View file @
9579d532
package
cn
.
datax
.
service
.
data
.
metadata
.
mapstruct
;
package
cn
.
datax
.
service
.
data
.
metadata
.
mapstruct
;
import
cn.datax.common.mapstruct.EntityMapper
;
import
cn.datax.common.mapstruct.EntityMapper
;
import
cn.datax.service.data.metadata.api.dto.
Data
MetadataColumnDto
;
import
cn.datax.service.data.metadata.api.dto.MetadataColumnDto
;
import
cn.datax.service.data.metadata.api.entity.
Data
MetadataColumnEntity
;
import
cn.datax.service.data.metadata.api.entity.MetadataColumnEntity
;
import
cn.datax.service.data.metadata.api.vo.
Data
MetadataColumnVo
;
import
cn.datax.service.data.metadata.api.vo.MetadataColumnVo
;
import
org.mapstruct.Mapper
;
import
org.mapstruct.Mapper
;
/**
/**
...
@@ -15,6 +15,6 @@ import org.mapstruct.Mapper;
...
@@ -15,6 +15,6 @@ import org.mapstruct.Mapper;
* @since 2020-07-29
* @since 2020-07-29
*/
*/
@Mapper
(
componentModel
=
"spring"
)
@Mapper
(
componentModel
=
"spring"
)
public
interface
DataMetadataColumnMapper
extends
EntityMapper
<
DataMetadataColumnDto
,
DataMetadataColumnEntity
,
Data
MetadataColumnVo
>
{
public
interface
MetadataColumnMapper
extends
EntityMapper
<
MetadataColumnDto
,
MetadataColumnEntity
,
MetadataColumnVo
>
{
}
}
datax-modules/data-
factory-service-parent/data-factory-service/src/main/java/cn/datax/service/data/factory/mapstruct/D
ataSourceMapper.java
→
datax-modules/data-
metadata-service-parent/data-metadata-service/src/main/java/cn/datax/service/data/metadata/mapstruct/Metad
ataSourceMapper.java
View file @
9579d532
package
cn
.
datax
.
service
.
data
.
factory
.
mapstruct
;
package
cn
.
datax
.
service
.
data
.
metadata
.
mapstruct
;
import
cn.datax.common.mapstruct.EntityMapper
;
import
cn.datax.common.mapstruct.EntityMapper
;
import
cn.datax.service.data.
factory.api.dto.D
ataSourceDto
;
import
cn.datax.service.data.
metadata.api.dto.Metad
ataSourceDto
;
import
cn.datax.service.data.
factory.api.entity.D
ataSourceEntity
;
import
cn.datax.service.data.
metadata.api.entity.Metad
ataSourceEntity
;
import
cn.datax.service.data.
factory.api.vo.D
ataSourceVo
;
import
cn.datax.service.data.
metadata.api.vo.Metad
ataSourceVo
;
import
org.mapstruct.Mapper
;
import
org.mapstruct.Mapper
;
/**
/**
...
@@ -15,6 +15,6 @@ import org.mapstruct.Mapper;
...
@@ -15,6 +15,6 @@ import org.mapstruct.Mapper;
* @since 2020-03-14
* @since 2020-03-14
*/
*/
@Mapper
(
componentModel
=
"spring"
)
@Mapper
(
componentModel
=
"spring"
)
public
interface
DataSourceMapper
extends
EntityMapper
<
DataSourceDto
,
DataSourceEntity
,
D
ataSourceVo
>
{
public
interface
MetadataSourceMapper
extends
EntityMapper
<
MetadataSourceDto
,
MetadataSourceEntity
,
Metad
ataSourceVo
>
{
}
}
datax-modules/data-metadata-service-parent/data-metadata-service/src/main/java/cn/datax/service/data/metadata/mapstruct/
Data
MetadataTableMapper.java
→
datax-modules/data-metadata-service-parent/data-metadata-service/src/main/java/cn/datax/service/data/metadata/mapstruct/MetadataTableMapper.java
View file @
9579d532
package
cn
.
datax
.
service
.
data
.
metadata
.
mapstruct
;
package
cn
.
datax
.
service
.
data
.
metadata
.
mapstruct
;
import
cn.datax.common.mapstruct.EntityMapper
;
import
cn.datax.common.mapstruct.EntityMapper
;
import
cn.datax.service.data.metadata.api.dto.
Data
MetadataTableDto
;
import
cn.datax.service.data.metadata.api.dto.MetadataTableDto
;
import
cn.datax.service.data.metadata.api.entity.
Data
MetadataTableEntity
;
import
cn.datax.service.data.metadata.api.entity.MetadataTableEntity
;
import
cn.datax.service.data.metadata.api.vo.
Data
MetadataTableVo
;
import
cn.datax.service.data.metadata.api.vo.MetadataTableVo
;
import
org.mapstruct.Mapper
;
import
org.mapstruct.Mapper
;
/**
/**
...
@@ -15,6 +15,6 @@ import org.mapstruct.Mapper;
...
@@ -15,6 +15,6 @@ import org.mapstruct.Mapper;
* @since 2020-07-29
* @since 2020-07-29
*/
*/
@Mapper
(
componentModel
=
"spring"
)
@Mapper
(
componentModel
=
"spring"
)
public
interface
DataMetadataTableMapper
extends
EntityMapper
<
DataMetadataTableDto
,
DataMetadataTableEntity
,
Data
MetadataTableVo
>
{
public
interface
MetadataTableMapper
extends
EntityMapper
<
MetadataTableDto
,
MetadataTableEntity
,
MetadataTableVo
>
{
}
}
datax-modules/data-metadata-service-parent/data-metadata-service/src/main/java/cn/datax/service/data/metadata/service/DataMetadataService.java
deleted
100644 → 0
View file @
1891a5c0
package
cn
.
datax
.
service
.
data
.
metadata
.
service
;
import
com.aspose.words.Document
;
public
interface
DataMetadataService
{
void
syncMetadata
(
String
id
);
Document
wordMetadata
(
String
id
)
throws
Exception
;
}
datax-modules/data-metadata-service-parent/data-metadata-service/src/main/java/cn/datax/service/data/metadata/service/
Data
MetadataColumnService.java
→
datax-modules/data-metadata-service-parent/data-metadata-service/src/main/java/cn/datax/service/data/metadata/service/MetadataColumnService.java
View file @
9579d532
package
cn
.
datax
.
service
.
data
.
metadata
.
service
;
package
cn
.
datax
.
service
.
data
.
metadata
.
service
;
import
cn.datax.service.data.metadata.api.entity.DataMetadataColumnEntity
;
import
cn.datax.service.data.metadata.api.dto.MetadataColumnDto
;
import
cn.datax.service.data.metadata.api.dto.DataMetadataColumnDto
;
import
cn.datax.common.base.BaseService
;
import
cn.datax.common.base.BaseService
;
import
cn.datax.service.data.metadata.api.entity.MetadataColumnEntity
;
import
java.util.List
;
import
java.util.List
;
...
@@ -14,15 +14,15 @@ import java.util.List;
...
@@ -14,15 +14,15 @@ import java.util.List;
* @author yuwei
* @author yuwei
* @since 2020-07-29
* @since 2020-07-29
*/
*/
public
interface
DataMetadataColumnService
extends
BaseService
<
Data
MetadataColumnEntity
>
{
public
interface
MetadataColumnService
extends
BaseService
<
MetadataColumnEntity
>
{
DataMetadataColumnEntity
saveDataMetadataColumn
(
DataMetadataColumnDto
dataM
etadataColumn
);
MetadataColumnEntity
saveMetadataColumn
(
MetadataColumnDto
m
etadataColumn
);
DataMetadataColumnEntity
updateDataMetadataColumn
(
DataMetadataColumnDto
dataM
etadataColumn
);
MetadataColumnEntity
updateMetadataColumn
(
MetadataColumnDto
m
etadataColumn
);
DataMetadataColumnEntity
getData
MetadataColumnById
(
String
id
);
MetadataColumnEntity
get
MetadataColumnById
(
String
id
);
void
delete
Data
MetadataColumnById
(
String
id
);
void
deleteMetadataColumnById
(
String
id
);
void
delete
Data
MetadataColumnBatch
(
List
<
String
>
ids
);
void
deleteMetadataColumnBatch
(
List
<
String
>
ids
);
}
}
datax-modules/data-
factory-service-parent/data-factory-service/src/main/java/cn/datax/service/data/factory/service/D
ataSourceService.java
→
datax-modules/data-
metadata-service-parent/data-metadata-service/src/main/java/cn/datax/service/data/metadata/service/Metad
ataSourceService.java
View file @
9579d532
package
cn
.
datax
.
service
.
data
.
factory
.
service
;
package
cn
.
datax
.
service
.
data
.
metadata
.
service
;
import
cn.datax.common.base.BaseService
;
import
cn.datax.common.database.DbQuery
;
import
cn.datax.common.database.DbQuery
;
import
cn.datax.common.database.core.DbColumn
;
import
cn.datax.common.database.core.DbColumn
;
import
cn.datax.common.database.core.DbTable
;
import
cn.datax.common.database.core.DbTable
;
import
cn.datax.service.data.
factory.api.dto.D
ataSourceDto
;
import
cn.datax.service.data.
metadata.api.dto.Metad
ataSourceDto
;
import
cn.datax.service.data.
factory.api.entity.D
ataSourceEntity
;
import
cn.datax.service.data.
metadata.api.entity.Metad
ataSourceEntity
;
import
c
n.datax.common.base.BaseService
;
import
c
om.aspose.words.Document
;
import
java.util.List
;
import
java.util.List
;
...
@@ -17,19 +18,19 @@ import java.util.List;
...
@@ -17,19 +18,19 @@ import java.util.List;
* @author yuwei
* @author yuwei
* @since 2020-03-14
* @since 2020-03-14
*/
*/
public
interface
DataSourceService
extends
BaseService
<
D
ataSourceEntity
>
{
public
interface
MetadataSourceService
extends
BaseService
<
Metad
ataSourceEntity
>
{
void
save
DataSource
(
DataSourceDto
dataSource
);
void
save
MetadataSource
(
MetadataSourceDto
metadataSourceDto
);
void
update
DataSource
(
DataSourceDto
dataSource
);
void
update
MetadataSource
(
MetadataSourceDto
metadataSourceDto
);
DataSourceEntity
getD
ataSourceById
(
String
id
);
MetadataSourceEntity
getMetad
ataSourceById
(
String
id
);
void
delete
D
ataSourceById
(
String
id
);
void
delete
Metad
ataSourceById
(
String
id
);
void
delete
D
ataSourceBatch
(
List
<
String
>
ids
);
void
delete
Metad
ataSourceBatch
(
List
<
String
>
ids
);
DbQuery
checkConnection
(
DataSourceDto
dataSource
);
DbQuery
checkConnection
(
MetadataSourceDto
metadataSourceDto
);
DbQuery
getDbQuery
(
String
id
);
DbQuery
getDbQuery
(
String
id
);
...
@@ -37,5 +38,7 @@ public interface DataSourceService extends BaseService<DataSourceEntity> {
...
@@ -37,5 +38,7 @@ public interface DataSourceService extends BaseService<DataSourceEntity> {
List
<
DbColumn
>
getDbTableColumns
(
String
id
,
String
tableName
);
List
<
DbColumn
>
getDbTableColumns
(
String
id
,
String
tableName
);
void
updateDataSourceSyncById
(
String
id
);
void
syncMetadata
(
String
id
);
Document
wordMetadata
(
String
id
)
throws
Exception
;
}
}
datax-modules/data-metadata-service-parent/data-metadata-service/src/main/java/cn/datax/service/data/metadata/service/
Data
MetadataTableService.java
→
datax-modules/data-metadata-service-parent/data-metadata-service/src/main/java/cn/datax/service/data/metadata/service/MetadataTableService.java
View file @
9579d532
package
cn
.
datax
.
service
.
data
.
metadata
.
service
;
package
cn
.
datax
.
service
.
data
.
metadata
.
service
;
import
cn.datax.service.data.metadata.api.entity.
Data
MetadataTableEntity
;
import
cn.datax.service.data.metadata.api.entity.MetadataTableEntity
;
import
cn.datax.service.data.metadata.api.dto.
Data
MetadataTableDto
;
import
cn.datax.service.data.metadata.api.dto.MetadataTableDto
;
import
cn.datax.common.base.BaseService
;
import
cn.datax.common.base.BaseService
;
import
java.util.List
;
import
java.util.List
;
...
@@ -14,15 +14,15 @@ import java.util.List;
...
@@ -14,15 +14,15 @@ import java.util.List;
* @author yuwei
* @author yuwei
* @since 2020-07-29
* @since 2020-07-29
*/
*/
public
interface
DataMetadataTableService
extends
BaseService
<
Data
MetadataTableEntity
>
{
public
interface
MetadataTableService
extends
BaseService
<
MetadataTableEntity
>
{
DataMetadataTableEntity
saveDataMetadataTable
(
DataMetadataTableDto
dataM
etadataTable
);
MetadataTableEntity
saveMetadataTable
(
MetadataTableDto
m
etadataTable
);
DataMetadataTableEntity
updateDataMetadataTable
(
DataMetadataTableDto
dataM
etadataTable
);
MetadataTableEntity
updateMetadataTable
(
MetadataTableDto
m
etadataTable
);
DataMetadataTableEntity
getData
MetadataTableById
(
String
id
);
MetadataTableEntity
get
MetadataTableById
(
String
id
);
void
delete
Data
MetadataTableById
(
String
id
);
void
deleteMetadataTableById
(
String
id
);
void
delete
Data
MetadataTableBatch
(
List
<
String
>
ids
);
void
deleteMetadataTableBatch
(
List
<
String
>
ids
);
}
}
datax-modules/data-metadata-service-parent/data-metadata-service/src/main/java/cn/datax/service/data/metadata/service/impl/DataMetadataServiceImpl.java
deleted
100644 → 0
View file @
1891a5c0
package
cn
.
datax
.
service
.
data
.
metadata
.
service
.
impl
;
import
cn.datax.commo.office.word.WordUtil
;
import
cn.datax.common.core.DataConstant
;
import
cn.datax.common.exception.DataException
;
import
cn.datax.service.data.factory.api.dto.DbSchema
;
import
cn.datax.service.data.factory.api.entity.DataSourceEntity
;
import
cn.datax.service.data.factory.api.feign.DataSourceServiceFeign
;
import
cn.datax.service.data.metadata.api.entity.DataMetadataColumnEntity
;
import
cn.datax.service.data.metadata.api.entity.DataMetadataTableEntity
;
import
cn.datax.service.data.metadata.async.AsyncTask
;
import
cn.datax.service.data.metadata.dao.DataMetadataColumnDao
;
import
cn.datax.service.data.metadata.dao.DataMetadataTableDao
;
import
cn.datax.service.data.metadata.service.DataMetadataService
;
import
cn.hutool.core.util.StrUtil
;
import
com.aspose.words.Document
;
import
com.aspose.words.MailMerge
;
import
com.aspose.words.net.System.Data.DataRelation
;
import
com.aspose.words.net.System.Data.DataRow
;
import
com.aspose.words.net.System.Data.DataSet
;
import
com.aspose.words.net.System.Data.DataTable
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.core.io.ClassPathResource
;
import
org.springframework.stereotype.Service
;
import
java.io.InputStream
;
import
java.util.List
;
@Slf4j
@Service
public
class
DataMetadataServiceImpl
implements
DataMetadataService
{
@Autowired
private
DataSourceServiceFeign
dataSourceServiceFeign
;
@Autowired
private
AsyncTask
asyncTask
;
@Autowired
private
DataMetadataTableDao
dataMetadataTableDao
;
@Autowired
private
DataMetadataColumnDao
dataMetadataColumnDao
;
@Override
public
void
syncMetadata
(
String
id
)
{
DataSourceEntity
dataSourceEntity
=
dataSourceServiceFeign
.
getDataSourceById
(
id
);
if
(
dataSourceServiceFeign
==
null
)
{
throw
new
DataException
(
"未找到数据源"
);
}
if
(
Integer
.
valueOf
(
DataConstant
.
TrueOrFalse
.
TRUE
.
getKey
()).
equals
(
dataSourceEntity
.
getSourceSync
()))
{
throw
new
DataException
(
"元数据已同步"
);
}
// 异步执行同步任务
asyncTask
.
doTask
(
dataSourceEntity
);
}
@Override
public
Document
wordMetadata
(
String
id
)
throws
Exception
{
DataSourceEntity
dataSourceEntity
=
dataSourceServiceFeign
.
getDataSourceById
(
id
);
if
(
dataSourceServiceFeign
==
null
)
{
throw
new
DataException
(
"未找到数据源"
);
}
DbSchema
dbSchema
=
dataSourceEntity
.
getDbSchema
();
String
dbName
=
dbSchema
.
getDbName
();
if
(
StrUtil
.
isBlank
(
dbName
))
{
dbName
=
dbSchema
.
getUsername
();
}
QueryWrapper
<
DataMetadataTableEntity
>
tableQueryWrapper
=
new
QueryWrapper
<>();
tableQueryWrapper
.
eq
(
"source_id"
,
id
);
List
<
DataMetadataTableEntity
>
tableEntityList
=
dataMetadataTableDao
.
selectList
(
tableQueryWrapper
);
// 数据表(主表) TableStart:TableList TableEnd:TableList
DataTable
tableTable
=
new
DataTable
(
"TableList"
);
tableTable
.
getColumns
().
add
(
"id"
);
tableTable
.
getColumns
().
add
(
"tableName"
);
tableTable
.
getColumns
().
add
(
"tableComment"
);
for
(
int
i
=
0
;
i
<
tableEntityList
.
size
();
i
++)
{
DataRow
row
=
tableTable
.
newRow
();
DataMetadataTableEntity
table
=
tableEntityList
.
get
(
i
);
row
.
set
(
0
,
table
.
getId
());
row
.
set
(
1
,
table
.
getTableName
());
row
.
set
(
2
,
table
.
getTableComment
());
tableTable
.
getRows
().
add
(
row
);
}
QueryWrapper
<
DataMetadataColumnEntity
>
columnQueryWrapper
=
new
QueryWrapper
<>();
columnQueryWrapper
.
eq
(
"source_id"
,
id
);
columnQueryWrapper
.
orderByAsc
(
"column_position"
);
List
<
DataMetadataColumnEntity
>
columnEntityList
=
dataMetadataColumnDao
.
selectList
(
columnQueryWrapper
);
// 元数据(子表) TableStart:ColumnList TableEnd:ColumnList
DataTable
columnTable
=
new
DataTable
(
"ColumnList"
);
columnTable
.
getColumns
().
add
(
"id"
);
columnTable
.
getColumns
().
add
(
"tid"
);
columnTable
.
getColumns
().
add
(
"columnPosition"
);
columnTable
.
getColumns
().
add
(
"columnName"
);
columnTable
.
getColumns
().
add
(
"dataType"
);
columnTable
.
getColumns
().
add
(
"dataLength"
);
columnTable
.
getColumns
().
add
(
"dataPrecision"
);
columnTable
.
getColumns
().
add
(
"dataScale"
);
columnTable
.
getColumns
().
add
(
"columnNullable"
);
columnTable
.
getColumns
().
add
(
"columnKey"
);
columnTable
.
getColumns
().
add
(
"dataDefault"
);
columnTable
.
getColumns
().
add
(
"columnComment"
);
for
(
int
i
=
0
;
i
<
columnEntityList
.
size
();
i
++)
{
DataRow
row
=
columnTable
.
newRow
();
DataMetadataColumnEntity
column
=
columnEntityList
.
get
(
i
);
row
.
set
(
0
,
column
.
getId
());
row
.
set
(
1
,
column
.
getTableId
());
row
.
set
(
2
,
column
.
getColumnPosition
());
row
.
set
(
3
,
column
.
getColumnName
());
row
.
set
(
4
,
column
.
getDataType
());
row
.
set
(
5
,
column
.
getDataLength
());
row
.
set
(
6
,
column
.
getDataPrecision
());
row
.
set
(
7
,
column
.
getDataScale
());
row
.
set
(
8
,
"1"
.
equals
(
column
.
getColumnNullable
())
?
"Y"
:
"N"
);
row
.
set
(
9
,
"1"
.
equals
(
column
.
getColumnKey
())
?
"Y"
:
"N"
);
row
.
set
(
10
,
column
.
getDataDefault
());
row
.
set
(
11
,
column
.
getColumnComment
());
columnTable
.
getRows
().
add
(
row
);
}
// 提供数据源
DataSet
dataSet
=
new
DataSet
();
dataSet
.
getTables
().
add
(
tableTable
);
dataSet
.
getTables
().
add
(
columnTable
);
DataRelation
dataRelation
=
new
DataRelation
(
"TableColumnRelation"
,
tableTable
.
getColumns
().
get
(
"id"
),
columnTable
.
getColumns
().
get
(
"tid"
));
dataSet
.
getRelations
().
add
(
dataRelation
);
// 合并模版
ClassPathResource
classPathResource
=
new
ClassPathResource
(
"templates/metadata_1.0.0.doc"
);
InputStream
inputStream
=
classPathResource
.
getInputStream
();
Document
doc
=
WordUtil
.
getInstance
().
getDocument
(
inputStream
);
// 提供数据源
String
[]
fieldNames
=
new
String
[]
{
"database"
};
Object
[]
fieldValues
=
new
Object
[]
{
dbName
.
toUpperCase
()};
MailMerge
mailMerge
=
doc
.
getMailMerge
();
mailMerge
.
execute
(
fieldNames
,
fieldValues
);
mailMerge
.
executeWithRegions
(
dataSet
);
return
doc
;
}
}
datax-modules/data-metadata-service-parent/data-metadata-service/src/main/java/cn/datax/service/data/metadata/service/impl/
Data
MetadataColumnServiceImpl.java
→
datax-modules/data-metadata-service-parent/data-metadata-service/src/main/java/cn/datax/service/data/metadata/service/impl/MetadataColumnServiceImpl.java
View file @
9579d532
package
cn
.
datax
.
service
.
data
.
metadata
.
service
.
impl
;
package
cn
.
datax
.
service
.
data
.
metadata
.
service
.
impl
;
import
cn.datax.service.data.metadata.api.
entity.DataMetadataColumnEntity
;
import
cn.datax.service.data.metadata.api.
dto.MetadataColumnDto
;
import
cn.datax.service.data.metadata.api.
dto.DataMetadataColumnDto
;
import
cn.datax.service.data.metadata.api.
entity.MetadataColumnEntity
;
import
cn.datax.service.data.metadata.service.
Data
MetadataColumnService
;
import
cn.datax.service.data.metadata.service.MetadataColumnService
;
import
cn.datax.service.data.metadata.mapstruct.
Data
MetadataColumnMapper
;
import
cn.datax.service.data.metadata.mapstruct.MetadataColumnMapper
;
import
cn.datax.service.data.metadata.dao.
Data
MetadataColumnDao
;
import
cn.datax.service.data.metadata.dao.MetadataColumnDao
;
import
cn.datax.common.base.BaseServiceImpl
;
import
cn.datax.common.base.BaseServiceImpl
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
...
@@ -23,45 +23,45 @@ import java.util.List;
...
@@ -23,45 +23,45 @@ import java.util.List;
*/
*/
@Service
@Service
@Transactional
(
propagation
=
Propagation
.
SUPPORTS
,
readOnly
=
true
,
rollbackFor
=
Exception
.
class
)
@Transactional
(
propagation
=
Propagation
.
SUPPORTS
,
readOnly
=
true
,
rollbackFor
=
Exception
.
class
)
public
class
DataMetadataColumnServiceImpl
extends
BaseServiceImpl
<
DataMetadataColumnDao
,
DataMetadataColumnEntity
>
implements
Data
MetadataColumnService
{
public
class
MetadataColumnServiceImpl
extends
BaseServiceImpl
<
MetadataColumnDao
,
MetadataColumnEntity
>
implements
MetadataColumnService
{
@Autowired
@Autowired
private
DataMetadataColumnDao
dataM
etadataColumnDao
;
private
MetadataColumnDao
m
etadataColumnDao
;
@Autowired
@Autowired
private
DataMetadataColumnMapper
dataM
etadataColumnMapper
;
private
MetadataColumnMapper
m
etadataColumnMapper
;
@Override
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
DataMetadataColumnEntity
saveDataMetadataColumn
(
DataMetadataColumnDto
dataM
etadataColumnDto
)
{
public
MetadataColumnEntity
saveMetadataColumn
(
MetadataColumnDto
m
etadataColumnDto
)
{
DataMetadataColumnEntity
dataMetadataColumn
=
dataMetadataColumnMapper
.
toEntity
(
dataM
etadataColumnDto
);
MetadataColumnEntity
metadataColumn
=
metadataColumnMapper
.
toEntity
(
m
etadataColumnDto
);
dataMetadataColumnDao
.
insert
(
dataM
etadataColumn
);
metadataColumnDao
.
insert
(
m
etadataColumn
);
return
dataM
etadataColumn
;
return
m
etadataColumn
;
}
}
@Override
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
DataMetadataColumnEntity
updateDataMetadataColumn
(
DataMetadataColumnDto
dataM
etadataColumnDto
)
{
public
MetadataColumnEntity
updateMetadataColumn
(
MetadataColumnDto
m
etadataColumnDto
)
{
DataMetadataColumnEntity
dataMetadataColumn
=
dataMetadataColumnMapper
.
toEntity
(
dataM
etadataColumnDto
);
MetadataColumnEntity
metadataColumn
=
metadataColumnMapper
.
toEntity
(
m
etadataColumnDto
);
dataMetadataColumnDao
.
updateById
(
dataM
etadataColumn
);
metadataColumnDao
.
updateById
(
m
etadataColumn
);
return
dataM
etadataColumn
;
return
m
etadataColumn
;
}
}
@Override
@Override
public
DataMetadataColumnEntity
getData
MetadataColumnById
(
String
id
)
{
public
MetadataColumnEntity
get
MetadataColumnById
(
String
id
)
{
DataMetadataColumnEntity
dataM
etadataColumnEntity
=
super
.
getById
(
id
);
MetadataColumnEntity
m
etadataColumnEntity
=
super
.
getById
(
id
);
return
dataM
etadataColumnEntity
;
return
m
etadataColumnEntity
;
}
}
@Override
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
void
delete
Data
MetadataColumnById
(
String
id
)
{
public
void
deleteMetadataColumnById
(
String
id
)
{
dataM
etadataColumnDao
.
deleteById
(
id
);
m
etadataColumnDao
.
deleteById
(
id
);
}
}
@Override
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
void
delete
Data
MetadataColumnBatch
(
List
<
String
>
ids
)
{
public
void
deleteMetadataColumnBatch
(
List
<
String
>
ids
)
{
dataM
etadataColumnDao
.
deleteBatchIds
(
ids
);
m
etadataColumnDao
.
deleteBatchIds
(
ids
);
}
}
}
}
datax-modules/data-metadata-service-parent/data-metadata-service/src/main/java/cn/datax/service/data/metadata/service/impl/MetadataSourceServiceImpl.java
0 → 100644
View file @
9579d532
package
cn
.
datax
.
service
.
data
.
metadata
.
service
.
impl
;
import
cn.datax.commo.office.word.WordUtil
;
import
cn.datax.common.base.BaseServiceImpl
;
import
cn.datax.common.core.DataConstant
;
import
cn.datax.common.database.DataSourceFactory
;
import
cn.datax.common.database.DbQuery
;
import
cn.datax.common.database.constants.DbQueryProperty
;
import
cn.datax.common.database.core.DbColumn
;
import
cn.datax.common.database.core.DbTable
;
import
cn.datax.common.exception.DataException
;
import
cn.datax.service.data.metadata.api.dto.DbSchema
;
import
cn.datax.service.data.metadata.api.dto.MetadataSourceDto
;
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.MetadataTableEntity
;
import
cn.datax.service.data.metadata.async.AsyncTask
;
import
cn.datax.service.data.metadata.dao.MetadataColumnDao
;
import
cn.datax.service.data.metadata.dao.MetadataSourceDao
;
import
cn.datax.service.data.metadata.dao.MetadataTableDao
;
import
cn.datax.service.data.metadata.mapstruct.MetadataSourceMapper
;
import
cn.datax.service.data.metadata.service.MetadataSourceService
;
import
cn.hutool.core.util.StrUtil
;
import
com.aspose.words.Document
;
import
com.aspose.words.MailMerge
;
import
com.aspose.words.net.System.Data.DataRelation
;
import
com.aspose.words.net.System.Data.DataRow
;
import
com.aspose.words.net.System.Data.DataSet
;
import
com.aspose.words.net.System.Data.DataTable
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.core.io.ClassPathResource
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Propagation
;
import
org.springframework.transaction.annotation.Transactional
;
import
java.io.InputStream
;
import
java.util.List
;
/**
* <p>
* 数据源信息表 服务实现类
* </p>
*
* @author yuwei
* @since 2020-03-14
*/
@Service
@Transactional
(
propagation
=
Propagation
.
SUPPORTS
,
readOnly
=
true
,
rollbackFor
=
Exception
.
class
)
public
class
MetadataSourceServiceImpl
extends
BaseServiceImpl
<
MetadataSourceDao
,
MetadataSourceEntity
>
implements
MetadataSourceService
{
@Autowired
private
MetadataSourceDao
metadataSourceDao
;
@Autowired
private
MetadataSourceMapper
metadataSourceMapper
;
@Autowired
private
DataSourceFactory
dataSourceFactory
;
@Autowired
private
AsyncTask
asyncTask
;
@Autowired
private
MetadataTableDao
metadataTableDao
;
@Autowired
private
MetadataColumnDao
metadataColumnDao
;
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
void
saveMetadataSource
(
MetadataSourceDto
metadataSourceDto
)
{
MetadataSourceEntity
dataSource
=
metadataSourceMapper
.
toEntity
(
metadataSourceDto
);
dataSource
.
setSourceSync
(
Integer
.
valueOf
(
DataConstant
.
TrueOrFalse
.
FALSE
.
getKey
()));
metadataSourceDao
.
insert
(
dataSource
);
}
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
void
updateMetadataSource
(
MetadataSourceDto
metadataSourceDto
)
{
MetadataSourceEntity
dataSource
=
metadataSourceMapper
.
toEntity
(
metadataSourceDto
);
metadataSourceDao
.
updateById
(
dataSource
);
}
@Override
public
MetadataSourceEntity
getMetadataSourceById
(
String
id
)
{
MetadataSourceEntity
metadataSourceEntity
=
super
.
getById
(
id
);
return
metadataSourceEntity
;
}
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
void
deleteMetadataSourceById
(
String
id
)
{
metadataSourceDao
.
deleteById
(
id
);
}
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
void
deleteMetadataSourceBatch
(
List
<
String
>
ids
)
{
metadataSourceDao
.
deleteBatchIds
(
ids
);
}
@Override
public
DbQuery
checkConnection
(
MetadataSourceDto
metadataSourceDto
)
{
MetadataSourceEntity
dataSource
=
metadataSourceMapper
.
toEntity
(
metadataSourceDto
);
DbSchema
dbSchema
=
dataSource
.
getDbSchema
();
DbQueryProperty
dbQueryProperty
=
new
DbQueryProperty
(
dataSource
.
getDbType
(),
dbSchema
.
getHost
(),
dbSchema
.
getUsername
(),
dbSchema
.
getPassword
(),
dbSchema
.
getPort
(),
dbSchema
.
getDbName
(),
dbSchema
.
getSid
());
DbQuery
dbQuery
=
dataSourceFactory
.
createDbQuery
(
dbQueryProperty
);
return
dbQuery
;
}
@Override
public
DbQuery
getDbQuery
(
String
id
)
{
MetadataSourceEntity
dataSource
=
super
.
getById
(
id
);
DbSchema
dbSchema
=
dataSource
.
getDbSchema
();
DbQueryProperty
dbQueryProperty
=
new
DbQueryProperty
(
dataSource
.
getDbType
(),
dbSchema
.
getHost
(),
dbSchema
.
getUsername
(),
dbSchema
.
getPassword
(),
dbSchema
.
getPort
(),
dbSchema
.
getDbName
(),
dbSchema
.
getSid
());
DbQuery
dbQuery
=
dataSourceFactory
.
createDbQuery
(
dbQueryProperty
);
return
dbQuery
;
}
@Override
public
List
<
DbTable
>
getDbTables
(
String
id
)
{
MetadataSourceEntity
dataSource
=
super
.
getById
(
id
);
DbSchema
dbSchema
=
dataSource
.
getDbSchema
();
DbQueryProperty
dbQueryProperty
=
new
DbQueryProperty
(
dataSource
.
getDbType
(),
dbSchema
.
getHost
(),
dbSchema
.
getUsername
(),
dbSchema
.
getPassword
(),
dbSchema
.
getPort
(),
dbSchema
.
getDbName
(),
dbSchema
.
getSid
());
DbQuery
dbQuery
=
dataSourceFactory
.
createDbQuery
(
dbQueryProperty
);
List
<
DbTable
>
tables
=
dbQuery
.
getTables
(
dbSchema
.
getDbName
());
return
tables
;
}
@Override
public
List
<
DbColumn
>
getDbTableColumns
(
String
id
,
String
tableName
)
{
MetadataSourceEntity
dataSource
=
super
.
getById
(
id
);
DbSchema
dbSchema
=
dataSource
.
getDbSchema
();
DbQueryProperty
dbQueryProperty
=
new
DbQueryProperty
(
dataSource
.
getDbType
(),
dbSchema
.
getHost
(),
dbSchema
.
getUsername
(),
dbSchema
.
getPassword
(),
dbSchema
.
getPort
(),
dbSchema
.
getDbName
(),
dbSchema
.
getSid
());
DbQuery
dbQuery
=
dataSourceFactory
.
createDbQuery
(
dbQueryProperty
);
List
<
DbColumn
>
columns
=
dbQuery
.
getTableColumns
(
dbSchema
.
getDbName
(),
tableName
);
return
columns
;
}
@Override
public
void
syncMetadata
(
String
id
)
{
MetadataSourceEntity
metadataSourceEntity
=
super
.
getById
(
id
);
if
(
Integer
.
valueOf
(
DataConstant
.
TrueOrFalse
.
TRUE
.
getKey
()).
equals
(
metadataSourceEntity
.
getSourceSync
()))
{
throw
new
DataException
(
"元数据已同步"
);
}
// 异步执行同步任务
asyncTask
.
doTask
(
metadataSourceEntity
);
}
@Override
public
Document
wordMetadata
(
String
id
)
throws
Exception
{
MetadataSourceEntity
metadataSourceEntity
=
super
.
getById
(
id
);
DbSchema
dbSchema
=
metadataSourceEntity
.
getDbSchema
();
String
dbName
=
dbSchema
.
getDbName
();
if
(
StrUtil
.
isBlank
(
dbName
))
{
dbName
=
dbSchema
.
getUsername
();
}
QueryWrapper
<
MetadataTableEntity
>
tableQueryWrapper
=
new
QueryWrapper
<>();
tableQueryWrapper
.
eq
(
"source_id"
,
id
);
List
<
MetadataTableEntity
>
tableEntityList
=
metadataTableDao
.
selectList
(
tableQueryWrapper
);
// 数据表(主表) TableStart:TableList TableEnd:TableList
DataTable
tableTable
=
new
DataTable
(
"TableList"
);
tableTable
.
getColumns
().
add
(
"id"
);
tableTable
.
getColumns
().
add
(
"tableName"
);
tableTable
.
getColumns
().
add
(
"tableComment"
);
for
(
int
i
=
0
;
i
<
tableEntityList
.
size
();
i
++)
{
DataRow
row
=
tableTable
.
newRow
();
MetadataTableEntity
table
=
tableEntityList
.
get
(
i
);
row
.
set
(
0
,
table
.
getId
());
row
.
set
(
1
,
table
.
getTableName
());
row
.
set
(
2
,
table
.
getTableComment
());
tableTable
.
getRows
().
add
(
row
);
}
QueryWrapper
<
MetadataColumnEntity
>
columnQueryWrapper
=
new
QueryWrapper
<>();
columnQueryWrapper
.
eq
(
"source_id"
,
id
);
columnQueryWrapper
.
orderByAsc
(
"column_position"
);
List
<
MetadataColumnEntity
>
columnEntityList
=
metadataColumnDao
.
selectList
(
columnQueryWrapper
);
// 元数据(子表) TableStart:ColumnList TableEnd:ColumnList
DataTable
columnTable
=
new
DataTable
(
"ColumnList"
);
columnTable
.
getColumns
().
add
(
"id"
);
columnTable
.
getColumns
().
add
(
"tid"
);
columnTable
.
getColumns
().
add
(
"columnPosition"
);
columnTable
.
getColumns
().
add
(
"columnName"
);
columnTable
.
getColumns
().
add
(
"dataType"
);
columnTable
.
getColumns
().
add
(
"dataLength"
);
columnTable
.
getColumns
().
add
(
"dataPrecision"
);
columnTable
.
getColumns
().
add
(
"dataScale"
);
columnTable
.
getColumns
().
add
(
"columnNullable"
);
columnTable
.
getColumns
().
add
(
"columnKey"
);
columnTable
.
getColumns
().
add
(
"dataDefault"
);
columnTable
.
getColumns
().
add
(
"columnComment"
);
for
(
int
i
=
0
;
i
<
columnEntityList
.
size
();
i
++)
{
DataRow
row
=
columnTable
.
newRow
();
MetadataColumnEntity
column
=
columnEntityList
.
get
(
i
);
row
.
set
(
0
,
column
.
getId
());
row
.
set
(
1
,
column
.
getTableId
());
row
.
set
(
2
,
column
.
getColumnPosition
());
row
.
set
(
3
,
column
.
getColumnName
());
row
.
set
(
4
,
column
.
getDataType
());
row
.
set
(
5
,
column
.
getDataLength
());
row
.
set
(
6
,
column
.
getDataPrecision
());
row
.
set
(
7
,
column
.
getDataScale
());
row
.
set
(
8
,
"1"
.
equals
(
column
.
getColumnNullable
())
?
"Y"
:
"N"
);
row
.
set
(
9
,
"1"
.
equals
(
column
.
getColumnKey
())
?
"Y"
:
"N"
);
row
.
set
(
10
,
column
.
getDataDefault
());
row
.
set
(
11
,
column
.
getColumnComment
());
columnTable
.
getRows
().
add
(
row
);
}
// 提供数据源
DataSet
dataSet
=
new
DataSet
();
dataSet
.
getTables
().
add
(
tableTable
);
dataSet
.
getTables
().
add
(
columnTable
);
DataRelation
dataRelation
=
new
DataRelation
(
"TableColumnRelation"
,
tableTable
.
getColumns
().
get
(
"id"
),
columnTable
.
getColumns
().
get
(
"tid"
));
dataSet
.
getRelations
().
add
(
dataRelation
);
// 合并模版
ClassPathResource
classPathResource
=
new
ClassPathResource
(
"templates/metadata_1.0.0.doc"
);
InputStream
inputStream
=
classPathResource
.
getInputStream
();
Document
doc
=
WordUtil
.
getInstance
().
getDocument
(
inputStream
);
// 提供数据源
String
[]
fieldNames
=
new
String
[]
{
"database"
};
Object
[]
fieldValues
=
new
Object
[]
{
dbName
.
toUpperCase
()};
MailMerge
mailMerge
=
doc
.
getMailMerge
();
mailMerge
.
execute
(
fieldNames
,
fieldValues
);
mailMerge
.
executeWithRegions
(
dataSet
);
return
doc
;
}
}
datax-modules/data-metadata-service-parent/data-metadata-service/src/main/java/cn/datax/service/data/metadata/service/impl/
Data
MetadataTableServiceImpl.java
→
datax-modules/data-metadata-service-parent/data-metadata-service/src/main/java/cn/datax/service/data/metadata/service/impl/MetadataTableServiceImpl.java
View file @
9579d532
package
cn
.
datax
.
service
.
data
.
metadata
.
service
.
impl
;
package
cn
.
datax
.
service
.
data
.
metadata
.
service
.
impl
;
import
cn.datax.service.data.metadata.api.entity.
Data
MetadataTableEntity
;
import
cn.datax.service.data.metadata.api.entity.MetadataTableEntity
;
import
cn.datax.service.data.metadata.api.dto.
Data
MetadataTableDto
;
import
cn.datax.service.data.metadata.api.dto.MetadataTableDto
;
import
cn.datax.service.data.metadata.service.
Data
MetadataTableService
;
import
cn.datax.service.data.metadata.service.MetadataTableService
;
import
cn.datax.service.data.metadata.mapstruct.
Data
MetadataTableMapper
;
import
cn.datax.service.data.metadata.mapstruct.MetadataTableMapper
;
import
cn.datax.service.data.metadata.dao.
Data
MetadataTableDao
;
import
cn.datax.service.data.metadata.dao.MetadataTableDao
;
import
cn.datax.common.base.BaseServiceImpl
;
import
cn.datax.common.base.BaseServiceImpl
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
...
@@ -23,45 +23,45 @@ import java.util.List;
...
@@ -23,45 +23,45 @@ import java.util.List;
*/
*/
@Service
@Service
@Transactional
(
propagation
=
Propagation
.
SUPPORTS
,
readOnly
=
true
,
rollbackFor
=
Exception
.
class
)
@Transactional
(
propagation
=
Propagation
.
SUPPORTS
,
readOnly
=
true
,
rollbackFor
=
Exception
.
class
)
public
class
DataMetadataTableServiceImpl
extends
BaseServiceImpl
<
DataMetadataTableDao
,
DataMetadataTableEntity
>
implements
Data
MetadataTableService
{
public
class
MetadataTableServiceImpl
extends
BaseServiceImpl
<
MetadataTableDao
,
MetadataTableEntity
>
implements
MetadataTableService
{
@Autowired
@Autowired
private
DataMetadataTableDao
dataM
etadataTableDao
;
private
MetadataTableDao
m
etadataTableDao
;
@Autowired
@Autowired
private
DataMetadataTableMapper
dataM
etadataTableMapper
;
private
MetadataTableMapper
m
etadataTableMapper
;
@Override
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
DataMetadataTableEntity
saveDataMetadataTable
(
DataMetadataTableDto
dataM
etadataTableDto
)
{
public
MetadataTableEntity
saveMetadataTable
(
MetadataTableDto
m
etadataTableDto
)
{
DataMetadataTableEntity
dataMetadataTable
=
dataMetadataTableMapper
.
toEntity
(
dataM
etadataTableDto
);
MetadataTableEntity
metadataTableEntity
=
metadataTableMapper
.
toEntity
(
m
etadataTableDto
);
dataMetadataTableDao
.
insert
(
dataMetadataTable
);
metadataTableDao
.
insert
(
metadataTableEntity
);
return
dataMetadataTable
;
return
metadataTableEntity
;
}
}
@Override
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
DataMetadataTableEntity
updateDataMetadataTable
(
DataMetadataTableDto
dataM
etadataTableDto
)
{
public
MetadataTableEntity
updateMetadataTable
(
MetadataTableDto
m
etadataTableDto
)
{
DataMetadataTableEntity
dataMetadataTable
=
dataMetadataTableMapper
.
toEntity
(
dataM
etadataTableDto
);
MetadataTableEntity
metadataTableEntity
=
metadataTableMapper
.
toEntity
(
m
etadataTableDto
);
dataMetadataTableDao
.
updateById
(
dataMetadataTable
);
metadataTableDao
.
updateById
(
metadataTableEntity
);
return
dataMetadataTable
;
return
metadataTableEntity
;
}
}
@Override
@Override
public
DataMetadataTableEntity
getData
MetadataTableById
(
String
id
)
{
public
MetadataTableEntity
get
MetadataTableById
(
String
id
)
{
DataMetadataTableEntity
dataM
etadataTableEntity
=
super
.
getById
(
id
);
MetadataTableEntity
m
etadataTableEntity
=
super
.
getById
(
id
);
return
dataM
etadataTableEntity
;
return
m
etadataTableEntity
;
}
}
@Override
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
void
delete
Data
MetadataTableById
(
String
id
)
{
public
void
deleteMetadataTableById
(
String
id
)
{
dataM
etadataTableDao
.
deleteById
(
id
);
m
etadataTableDao
.
deleteById
(
id
);
}
}
@Override
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
void
delete
Data
MetadataTableBatch
(
List
<
String
>
ids
)
{
public
void
deleteMetadataTableBatch
(
List
<
String
>
ids
)
{
dataM
etadataTableDao
.
deleteBatchIds
(
ids
);
m
etadataTableDao
.
deleteBatchIds
(
ids
);
}
}
}
}
datax-modules/data-metadata-service-parent/data-metadata-service/src/main/resources/mapper/
DataMetadataColumnMapper
.xml
→
datax-modules/data-metadata-service-parent/data-metadata-service/src/main/resources/mapper/
MetadataColumnDao
.xml
View file @
9579d532
<?xml version="1.0" encoding="UTF-8"?>
<?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">
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper
namespace=
"cn.datax.service.data.metadata.dao.
Data
MetadataColumnDao"
>
<mapper
namespace=
"cn.datax.service.data.metadata.dao.MetadataColumnDao"
>
<!-- 通用查询映射结果 -->
<!-- 通用查询映射结果 -->
<resultMap
id=
"BaseResultMap"
type=
"cn.datax.service.data.metadata.api.entity.
Data
MetadataColumnEntity"
>
<resultMap
id=
"BaseResultMap"
type=
"cn.datax.service.data.metadata.api.entity.MetadataColumnEntity"
>
<result
column=
"id"
property=
"id"
/>
<result
column=
"id"
property=
"id"
/>
<result
column=
"source_id"
property=
"sourceId"
/>
<result
column=
"source_id"
property=
"sourceId"
/>
<result
column=
"table_id"
property=
"tableId"
/>
<result
column=
"table_id"
property=
"tableId"
/>
...
...
datax-modules/data-
factory-service-parent/data-factory-service/src/main/resources/mapper/D
ataSourceMapper.xml
→
datax-modules/data-
metadata-service-parent/data-metadata-service/src/main/resources/mapper/Metad
ataSourceMapper.xml
View file @
9579d532
<?xml version="1.0" encoding="UTF-8"?>
<?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">
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper
namespace=
"cn.datax.service.data.
factory.dao.D
ataSourceDao"
>
<mapper
namespace=
"cn.datax.service.data.
metadata.dao.Metad
ataSourceDao"
>
<!-- 通用查询映射结果 -->
<!-- 通用查询映射结果 -->
<resultMap
id=
"BaseResultMap"
type=
"cn.datax.service.data.
factory.api.entity.D
ataSourceEntity"
>
<resultMap
id=
"BaseResultMap"
type=
"cn.datax.service.data.
metadata.api.entity.Metad
ataSourceEntity"
>
<result
column=
"id"
property=
"id"
/>
<result
column=
"id"
property=
"id"
/>
<result
column=
"status"
property=
"status"
/>
<result
column=
"status"
property=
"status"
/>
<result
column=
"create_by"
property=
"createBy"
/>
<result
column=
"create_by"
property=
"createBy"
/>
...
@@ -14,7 +14,6 @@
...
@@ -14,7 +14,6 @@
<result
column=
"remark"
property=
"remark"
/>
<result
column=
"remark"
property=
"remark"
/>
<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=
"theme_id"
property=
"themeId"
/>
<result
column=
"source_sync"
property=
"sourceSync"
/>
<result
column=
"source_sync"
property=
"sourceSync"
/>
<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>
...
@@ -29,7 +28,7 @@
...
@@ -29,7 +28,7 @@
update_by,
update_by,
update_time,
update_time,
remark,
remark,
db_type, source_name,
theme_id,
source_sync, db_schema
db_type, source_name, source_sync, db_schema
</sql>
</sql>
</mapper>
</mapper>
datax-modules/data-metadata-service-parent/data-metadata-service/src/main/resources/mapper/
DataMetadataTableMapper
.xml
→
datax-modules/data-metadata-service-parent/data-metadata-service/src/main/resources/mapper/
MetadataTableDao
.xml
View file @
9579d532
<?xml version="1.0" encoding="UTF-8"?>
<?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">
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper
namespace=
"cn.datax.service.data.metadata.dao.
Data
MetadataTableDao"
>
<mapper
namespace=
"cn.datax.service.data.metadata.dao.MetadataTableDao"
>
<!-- 通用查询映射结果 -->
<!-- 通用查询映射结果 -->
<resultMap
id=
"BaseResultMap"
type=
"cn.datax.service.data.metadata.api.entity.
Data
MetadataTableEntity"
>
<resultMap
id=
"BaseResultMap"
type=
"cn.datax.service.data.metadata.api.entity.MetadataTableEntity"
>
<result
column=
"id"
property=
"id"
/>
<result
column=
"id"
property=
"id"
/>
<result
column=
"source_id"
property=
"sourceId"
/>
<result
column=
"source_id"
property=
"sourceId"
/>
<result
column=
"table_name"
property=
"tableName"
/>
<result
column=
"table_name"
property=
"tableName"
/>
...
...
datax-modules/data-metadata-service-parent/pom.xml
View file @
9579d532
...
@@ -16,5 +16,6 @@
...
@@ -16,5 +16,6 @@
<modules>
<modules>
<module>
data-metadata-service
</module>
<module>
data-metadata-service
</module>
<module>
data-metadata-service-api
</module>
<module>
data-metadata-service-api
</module>
<module>
data-metadata-service-console
</module>
</modules>
</modules>
</project>
</project>
\ No newline at end of file
datax-modules/data-
factory-service-parent/data-factory
-service-api/pom.xml
→
datax-modules/data-
visual-service-parent/data-visual
-service-api/pom.xml
View file @
9579d532
...
@@ -3,13 +3,13 @@
...
@@ -3,13 +3,13 @@
xmlns:xsi=
"http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsi=
"http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation=
"http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
>
xsi:schemaLocation=
"http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
>
<parent>
<parent>
<artifactId>
data-
factory
-service-parent
</artifactId>
<artifactId>
data-
visual
-service-parent
</artifactId>
<groupId>
cn.datax
</groupId>
<groupId>
cn.datax
</groupId>
<version>
2.0.0
</version>
<version>
2.0.0
</version>
</parent>
</parent>
<modelVersion>
4.0.0
</modelVersion>
<modelVersion>
4.0.0
</modelVersion>
<version>
2.0.0
</version>
<version>
2.0.0
</version>
<artifactId>
data-
factory
-service-api
</artifactId>
<artifactId>
data-
visual
-service-api
</artifactId>
<dependencies>
<dependencies>
<dependency>
<dependency>
...
...
datax-modules/data-
factory-service-parent/data-factory-service-api/src/main/java/cn/datax/service/data/factory
/api/dto/ColumnParse.java
→
datax-modules/data-
visual-service-parent/data-visual-service-api/src/main/java/cn/datax/service/data/visual
/api/dto/ColumnParse.java
View file @
9579d532
package
cn
.
datax
.
service
.
data
.
factory
.
api
.
dto
;
package
cn
.
datax
.
service
.
data
.
visual
.
api
.
dto
;
import
lombok.Data
;
import
lombok.Data
;
...
...
datax-modules/data-
factory-service-parent/data-factory-service-api/src/main/java/cn/datax/service/data/factory
/api/dto/SchemaConfig.java
→
datax-modules/data-
visual-service-parent/data-visual-service-api/src/main/java/cn/datax/service/data/visual
/api/dto/SchemaConfig.java
View file @
9579d532
package
cn
.
datax
.
service
.
data
.
factory
.
api
.
dto
;
package
cn
.
datax
.
service
.
data
.
visual
.
api
.
dto
;
import
cn.datax.common.validate.ValidationGroups
;
import
cn.datax.common.validate.ValidationGroups
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModel
;
...
...
datax-modules/data-
factory-service-parent/data-factory-service-api/src/main/java/cn/datax/service/data/factory
/api/dto/SqlParseDto.java
→
datax-modules/data-
visual-service-parent/data-visual-service-api/src/main/java/cn/datax/service/data/visual
/api/dto/SqlParseDto.java
View file @
9579d532
package
cn
.
datax
.
service
.
data
.
factory
.
api
.
dto
;
package
cn
.
datax
.
service
.
data
.
visual
.
api
.
dto
;
import
io.swagger.annotations.ApiModelProperty
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
lombok.Data
;
...
...
datax-modules/data-
factory-service-parent/data-factory-service-api/src/main/java/cn/datax/service/data/factory/api/dto/
DataSetDto.java
→
datax-modules/data-
visual-service-parent/data-visual-service-api/src/main/java/cn/datax/service/data/visual/api/dto/Visual
DataSetDto.java
View file @
9579d532
package
cn
.
datax
.
service
.
data
.
factory
.
api
.
dto
;
package
cn
.
datax
.
service
.
data
.
visual
.
api
.
dto
;
import
cn.datax.common.validate.ValidationGroups
;
import
cn.datax.common.validate.ValidationGroups
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModel
;
...
@@ -9,17 +9,18 @@ import javax.validation.Valid;
...
@@ -9,17 +9,18 @@ import javax.validation.Valid;
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
* </p>
* </p>
*
*
* @author yuwei
* @author yuwei
* @since 2020-0
3-20
* @since 2020-0
7-31
*/
*/
@ApiModel
(
value
=
"数据集信息表Model"
)
@ApiModel
(
value
=
"数据集信息表Model"
)
@Data
@Data
public
class
DataSetDto
implements
Serializable
{
public
class
Visual
DataSetDto
implements
Serializable
{
private
static
final
long
serialVersionUID
=
1L
;
private
static
final
long
serialVersionUID
=
1L
;
...
...
datax-modules/data-
factory-service-parent/data-factory-service-api/src/main/java/cn/datax/service/data/factory/api/entity/
DataSetEntity.java
→
datax-modules/data-
visual-service-parent/data-visual-service-api/src/main/java/cn/datax/service/data/visual/api/entity/Visual
DataSetEntity.java
View file @
9579d532
package
cn
.
datax
.
service
.
data
.
factory
.
api
.
entity
;
package
cn
.
datax
.
service
.
data
.
visual
.
api
.
entity
;
import
cn.datax.common.base.DataScopeBaseEntity
;
import
cn.datax.common.base.DataScopeBaseEntity
;
import
cn.datax.service.data.
factory
.api.dto.SchemaConfig
;
import
cn.datax.service.data.
visual
.api.dto.SchemaConfig
;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
cn.datax.common.base.BaseEntity
;
import
com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler
;
import
com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler
;
import
lombok.Data
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
import
lombok.EqualsAndHashCode
;
...
@@ -15,13 +18,13 @@ import lombok.experimental.Accessors;
...
@@ -15,13 +18,13 @@ import lombok.experimental.Accessors;
* </p>
* </p>
*
*
* @author yuwei
* @author yuwei
* @since 2020-0
3-20
* @since 2020-0
7-31
*/
*/
@Data
@Data
@EqualsAndHashCode
(
callSuper
=
true
)
@EqualsAndHashCode
(
callSuper
=
true
)
@Accessors
(
chain
=
true
)
@Accessors
(
chain
=
true
)
@TableName
(
value
=
"
factory
_set"
,
autoResultMap
=
true
)
@TableName
(
value
=
"
visual_data
_set"
,
autoResultMap
=
true
)
public
class
DataSetEntity
extends
DataScopeBaseEntity
{
public
class
Visual
DataSetEntity
extends
DataScopeBaseEntity
{
private
static
final
long
serialVersionUID
=
1L
;
private
static
final
long
serialVersionUID
=
1L
;
...
...
datax-modules/data-
factory-service-parent/data-factory-service-api/src/main/java/cn/datax/service/data/factory/api/query/
DataSetQuery.java
→
datax-modules/data-
visual-service-parent/data-visual-service-api/src/main/java/cn/datax/service/data/visual/api/query/Visual
DataSetQuery.java
View file @
9579d532
package
cn
.
datax
.
service
.
data
.
factory
.
api
.
query
;
package
cn
.
datax
.
service
.
data
.
visual
.
api
.
query
;
import
cn.datax.common.base.BaseQueryParams
;
import
cn.datax.common.base.BaseQueryParams
;
import
lombok.Data
;
import
lombok.Data
;
...
@@ -10,11 +10,11 @@ import lombok.EqualsAndHashCode;
...
@@ -10,11 +10,11 @@ import lombok.EqualsAndHashCode;
* </p>
* </p>
*
*
* @author yuwei
* @author yuwei
* @since 2020-0
3-20
* @since 2020-0
7-31
*/
*/
@Data
@Data
@EqualsAndHashCode
(
callSuper
=
true
)
@EqualsAndHashCode
(
callSuper
=
true
)
public
class
DataSetQuery
extends
BaseQueryParams
{
public
class
Visual
DataSetQuery
extends
BaseQueryParams
{
private
static
final
long
serialVersionUID
=
1L
;
private
static
final
long
serialVersionUID
=
1L
;
...
...
datax-modules/data-
factory-service-parent/data-factory-service-api/src/main/java/cn/datax/service/data/factory/api/vo/
DataSetVo.java
→
datax-modules/data-
visual-service-parent/data-visual-service-api/src/main/java/cn/datax/service/data/visual/api/vo/Visual
DataSetVo.java
View file @
9579d532
package
cn
.
datax
.
service
.
data
.
factory
.
api
.
vo
;
package
cn
.
datax
.
service
.
data
.
visual
.
api
.
vo
;
import
cn.datax.service.data.
factory
.api.dto.SchemaConfig
;
import
cn.datax.service.data.
visual
.api.dto.SchemaConfig
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
lombok.Data
;
import
lombok.Data
;
...
@@ -13,10 +13,10 @@ import java.time.LocalDateTime;
...
@@ -13,10 +13,10 @@ import java.time.LocalDateTime;
* </p>
* </p>
*
*
* @author yuwei
* @author yuwei
* @since 2020-0
3-20
* @since 2020-0
7-31
*/
*/
@Data
@Data
public
class
DataSetVo
implements
Serializable
{
public
class
Visual
DataSetVo
implements
Serializable
{
private
static
final
long
serialVersionUID
=
1L
;
private
static
final
long
serialVersionUID
=
1L
;
...
...
datax-modules/data-visual-service-parent/data-visual-service-api/src/main/resources/META-INF/spring.factories
0 → 100644
View file @
9579d532
org.springframework.boot.autoconfigure.EnableAutoConfiguration=
datax-modules/data-
factory-service-parent/data-factory-service-sql-consol
e/pom.xml
→
datax-modules/data-
visual-service-parent/data-visual-servic
e/pom.xml
View file @
9579d532
...
@@ -3,14 +3,13 @@
...
@@ -3,14 +3,13 @@
xmlns:xsi=
"http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsi=
"http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation=
"http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
>
xsi:schemaLocation=
"http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
>
<parent>
<parent>
<artifactId>
data-
factory
-service-parent
</artifactId>
<artifactId>
data-
visual
-service-parent
</artifactId>
<groupId>
cn.datax
</groupId>
<groupId>
cn.datax
</groupId>
<version>
2.0.0
</version>
<version>
2.0.0
</version>
</parent>
</parent>
<modelVersion>
4.0.0
</modelVersion>
<modelVersion>
4.0.0
</modelVersion>
<version>
2.0.0
</version>
<version>
2.0.0
</version>
<description>
SQL工作台
</description>
<artifactId>
data-visual-service
</artifactId>
<artifactId>
data-factory-service-sql-console
</artifactId>
<dependencies>
<dependencies>
<!--web 模块-->
<!--web 模块-->
...
@@ -72,7 +71,12 @@
...
@@ -72,7 +71,12 @@
</dependency>
</dependency>
<dependency>
<dependency>
<groupId>
cn.datax
</groupId>
<groupId>
cn.datax
</groupId>
<artifactId>
data-factory-service-api
</artifactId>
<artifactId>
datax-common-database
</artifactId>
<version>
2.0.0
</version>
</dependency>
<dependency>
<groupId>
cn.datax
</groupId>
<artifactId>
data-visual-service-api
</artifactId>
<version>
2.0.0
</version>
<version>
2.0.0
</version>
</dependency>
</dependency>
</dependencies>
</dependencies>
...
...
datax-modules/data-
factory-service-parent/data-factory-service/src/main/java/cn/datax/service/data/factory/DataxFactory
Application.java
→
datax-modules/data-
visual-service-parent/data-visual-service/src/main/java/cn/datax/service/data/visual/DataxVisual
Application.java
View file @
9579d532
package
cn
.
datax
.
service
.
data
.
factory
;
package
cn
.
datax
.
service
.
data
.
visual
;
import
org.springframework.boot.SpringApplication
;
import
org.springframework.boot.SpringApplication
;
import
org.springframework.cloud.client.SpringCloudApplication
;
import
org.springframework.cloud.client.SpringCloudApplication
;
import
org.springframework.cloud.openfeign.EnableFeignClients
;
import
org.springframework.cloud.openfeign.EnableFeignClients
;
@EnableFeignClients
(
basePackages
=
{
"cn.datax.service.system.api.feign"
,
"cn.datax.service.data.factory.api.feign"
})
@EnableFeignClients
(
basePackages
=
{
"cn.datax.service.system.api.feign"
})
@SpringCloudApplication
@SpringCloudApplication
public
class
Datax
Factory
Application
{
public
class
Datax
Visual
Application
{
public
static
void
main
(
String
[]
args
)
{
public
static
void
main
(
String
[]
args
)
{
SpringApplication
.
run
(
Datax
Factory
Application
.
class
);
SpringApplication
.
run
(
Datax
Visual
Application
.
class
);
}
}
}
}
datax-modules/data-
factory-service-parent/data-factory-service/src/main/java/cn/datax/service/data/factory
/config/DataResourceServerConfig.java
→
datax-modules/data-
visual-service-parent/data-visual-service/src/main/java/cn/datax/service/data/visual
/config/DataResourceServerConfig.java
View file @
9579d532
package
cn
.
datax
.
service
.
data
.
factory
.
config
;
package
cn
.
datax
.
service
.
data
.
visual
.
config
;
import
cn.datax.common.security.handler.DataAccessDeniedHandler
;
import
cn.datax.common.security.handler.DataAccessDeniedHandler
;
import
cn.datax.common.security.handler.DataAuthExceptionEntryPoint
;
import
cn.datax.common.security.handler.DataAuthExceptionEntryPoint
;
...
...
datax-modules/data-
factory-service-parent/data-factory-service/src/main/java/cn/datax/service/data/factory
/config/StartedUpRunner.java
→
datax-modules/data-
visual-service-parent/data-visual-service/src/main/java/cn/datax/service/data/visual
/config/StartedUpRunner.java
View file @
9579d532
package
cn
.
datax
.
service
.
data
.
factory
.
config
;
package
cn
.
datax
.
service
.
data
.
visual
.
config
;
import
lombok.RequiredArgsConstructor
;
import
lombok.RequiredArgsConstructor
;
import
org.springframework.boot.ApplicationArguments
;
import
org.springframework.boot.ApplicationArguments
;
...
...
datax-modules/data-
factory-service-parent/data-factory-service/src/main/java/cn/datax/service/data/factory
/config/SwaggerConfig.java
→
datax-modules/data-
visual-service-parent/data-visual-service/src/main/java/cn/datax/service/data/visual
/config/SwaggerConfig.java
View file @
9579d532
package
cn
.
datax
.
service
.
data
.
factory
.
config
;
package
cn
.
datax
.
service
.
data
.
visual
.
config
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.boot.autoconfigure.condition.ConditionalOnProperty
;
import
org.springframework.boot.autoconfigure.condition.ConditionalOnProperty
;
...
...
datax-modules/data-
factory-service-parent/data-factory-service/src/main/java/cn/datax/service/data/factory
/config/SwaggerProperties.java
→
datax-modules/data-
visual-service-parent/data-visual-service/src/main/java/cn/datax/service/data/visual
/config/SwaggerProperties.java
View file @
9579d532
package
cn
.
datax
.
service
.
data
.
factory
.
config
;
package
cn
.
datax
.
service
.
data
.
visual
.
config
;
import
org.springframework.boot.context.properties.ConfigurationProperties
;
import
org.springframework.boot.context.properties.ConfigurationProperties
;
...
...
datax-modules/data-
factory-service-parent/data-factory-service/src/main/java/cn/datax/service/data/factory/controller/DataTheme
Controller.java
→
datax-modules/data-
visual-service-parent/data-visual-service/src/main/java/cn/datax/service/data/visual/controller/VisualDataSet
Controller.java
View file @
9579d532
package
cn
.
datax
.
service
.
data
.
factory
.
controller
;
package
cn
.
datax
.
service
.
data
.
visual
.
controller
;
import
cn.datax.common.core.DataConstant
;
import
cn.datax.common.core.DataConstant
;
import
cn.datax.common.core.JsonPage
;
import
cn.datax.common.core.JsonPage
;
import
cn.datax.common.core.R
;
import
cn.datax.common.core.R
;
import
cn.datax.common.validate.ValidationGroups
;
import
cn.datax.common.validate.ValidationGroups
;
import
cn.datax.service.data.factory.api.dto.DataThemeDto
;
import
cn.datax.service.data.visual.api.dto.SqlParseDto
;
import
cn.datax.service.data.factory.api.entity.DataThemeEntity
;
import
cn.datax.service.data.visual.api.dto.VisualDataSetDto
;
import
cn.datax.service.data.factory.api.vo.DataThemeVo
;
import
cn.datax.service.data.visual.api.entity.VisualDataSetEntity
;
import
cn.datax.service.data.factory.api.query.DataThemeQuery
;
import
cn.datax.service.data.visual.api.vo.VisualDataSetVo
;
import
cn.datax.service.data.factory.mapstruct.DataThemeMapper
;
import
cn.datax.service.data.visual.api.query.VisualDataSetQuery
;
import
cn.datax.service.data.factory.service.DataThemeService
;
import
cn.datax.service.data.visual.mapstruct.VisualDataSetMapper
;
import
cn.datax.service.data.visual.service.VisualDataSetService
;
import
cn.hutool.core.util.StrUtil
;
import
cn.hutool.core.util.StrUtil
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
...
@@ -29,22 +30,22 @@ import java.util.stream.Collectors;
...
@@ -29,22 +30,22 @@ import java.util.stream.Collectors;
/**
/**
* <p>
* <p>
* 数据
主题
信息表 前端控制器
* 数据
集
信息表 前端控制器
* </p>
* </p>
*
*
* @author yuwei
* @author yuwei
* @since 2020-07-
26
* @since 2020-07-
31
*/
*/
@Api
(
tags
=
{
"数据
主题
信息表"
})
@Api
(
tags
=
{
"数据
集
信息表"
})
@RestController
@RestController
@RequestMapping
(
"/data
Theme
s"
)
@RequestMapping
(
"/data
Set
s"
)
public
class
DataTheme
Controller
extends
BaseController
{
public
class
VisualDataSet
Controller
extends
BaseController
{
@Autowired
@Autowired
private
DataThemeService
dataTheme
Service
;
private
VisualDataSetService
visualDataSet
Service
;
@Autowired
@Autowired
private
DataThemeMapper
dataTheme
Mapper
;
private
VisualDataSetMapper
visualDataSet
Mapper
;
/**
/**
* 通过ID查询信息
* 通过ID查询信息
...
@@ -55,68 +56,68 @@ public class DataThemeController extends BaseController {
...
@@ -55,68 +56,68 @@ public class DataThemeController extends BaseController {
@ApiOperation
(
value
=
"获取详细信息"
,
notes
=
"根据url的id来获取详细信息"
)
@ApiOperation
(
value
=
"获取详细信息"
,
notes
=
"根据url的id来获取详细信息"
)
@ApiImplicitParam
(
name
=
"id"
,
value
=
"ID"
,
required
=
true
,
dataType
=
"String"
,
paramType
=
"path"
)
@ApiImplicitParam
(
name
=
"id"
,
value
=
"ID"
,
required
=
true
,
dataType
=
"String"
,
paramType
=
"path"
)
@GetMapping
(
"/{id}"
)
@GetMapping
(
"/{id}"
)
public
R
get
DataTheme
ById
(
@PathVariable
String
id
)
{
public
R
get
VisualDataSet
ById
(
@PathVariable
String
id
)
{
DataThemeEntity
dataThemeEntity
=
dataThemeService
.
getDataTheme
ById
(
id
);
VisualDataSetEntity
visualDataSetEntity
=
visualDataSetService
.
getVisualDataSet
ById
(
id
);
return
R
.
ok
().
setData
(
dataThemeMapper
.
toVO
(
dataTheme
Entity
));
return
R
.
ok
().
setData
(
visualDataSetMapper
.
toVO
(
visualDataSet
Entity
));
}
}
@ApiOperation
(
value
=
"获取列表"
,
notes
=
""
)
@ApiOperation
(
value
=
"获取列表"
,
notes
=
""
)
@GetMapping
(
"/list"
)
@GetMapping
(
"/list"
)
public
R
get
DataTheme
List
()
{
public
R
get
VisualDataSet
List
()
{
QueryWrapper
<
DataTheme
Entity
>
queryWrapper
=
new
QueryWrapper
<>();
QueryWrapper
<
VisualDataSet
Entity
>
queryWrapper
=
new
QueryWrapper
<>();
queryWrapper
.
eq
(
"status"
,
DataConstant
.
EnableState
.
ENABLE
.
getKey
());
queryWrapper
.
eq
(
"status"
,
DataConstant
.
EnableState
.
ENABLE
.
getKey
());
List
<
DataThemeEntity
>
list
=
dataTheme
Service
.
list
(
queryWrapper
);
List
<
VisualDataSetEntity
>
list
=
visualDataSet
Service
.
list
(
queryWrapper
);
List
<
DataThemeVo
>
collect
=
list
.
stream
().
map
(
dataTheme
Mapper:
:
toVO
).
collect
(
Collectors
.
toList
());
List
<
VisualDataSetVo
>
collect
=
list
.
stream
().
map
(
visualDataSet
Mapper:
:
toVO
).
collect
(
Collectors
.
toList
());
return
R
.
ok
().
setData
(
collect
);
return
R
.
ok
().
setData
(
collect
);
}
}
/**
/**
* 分页查询信息
* 分页查询信息
*
*
* @param
dataTheme
Query
* @param
visualDataSet
Query
* @return
* @return
*/
*/
@ApiOperation
(
value
=
"分页查询"
,
notes
=
""
)
@ApiOperation
(
value
=
"分页查询"
,
notes
=
""
)
@ApiImplicitParams
({
@ApiImplicitParams
({
@ApiImplicitParam
(
name
=
"
dataThemeQuery"
,
value
=
"查询实体dataThemeQuery"
,
required
=
true
,
dataTypeClass
=
DataTheme
Query
.
class
)
@ApiImplicitParam
(
name
=
"
visualDataSetQuery"
,
value
=
"查询实体visualDataSetQuery"
,
required
=
true
,
dataTypeClass
=
VisualDataSet
Query
.
class
)
})
})
@GetMapping
(
"/page"
)
@GetMapping
(
"/page"
)
public
R
get
DataThemePage
(
DataThemeQuery
dataTheme
Query
)
{
public
R
get
VisualDataSetPage
(
VisualDataSetQuery
visualDataSet
Query
)
{
QueryWrapper
<
DataTheme
Entity
>
queryWrapper
=
new
QueryWrapper
<>();
QueryWrapper
<
VisualDataSet
Entity
>
queryWrapper
=
new
QueryWrapper
<>();
queryWrapper
.
like
(
StrUtil
.
isNotBlank
(
dataThemeQuery
.
getThemeName
()),
"theme_name"
,
dataThemeQuery
.
getTheme
Name
());
queryWrapper
.
like
(
StrUtil
.
isNotBlank
(
visualDataSetQuery
.
getSetName
()),
"set_name"
,
visualDataSetQuery
.
getSet
Name
());
IPage
<
DataThemeEntity
>
page
=
dataThemeService
.
page
(
new
Page
<>(
dataThemeQuery
.
getPageNum
(),
dataTheme
Query
.
getPageSize
()),
queryWrapper
);
IPage
<
VisualDataSetEntity
>
page
=
visualDataSetService
.
page
(
new
Page
<>(
visualDataSetQuery
.
getPageNum
(),
visualDataSet
Query
.
getPageSize
()),
queryWrapper
);
List
<
DataThemeVo
>
collect
=
page
.
getRecords
().
stream
().
map
(
dataTheme
Mapper:
:
toVO
).
collect
(
Collectors
.
toList
());
List
<
VisualDataSetVo
>
collect
=
page
.
getRecords
().
stream
().
map
(
visualDataSet
Mapper:
:
toVO
).
collect
(
Collectors
.
toList
());
JsonPage
<
DataTheme
Vo
>
jsonPage
=
new
JsonPage
<>(
page
.
getCurrent
(),
page
.
getSize
(),
page
.
getTotal
(),
collect
);
JsonPage
<
VisualDataSet
Vo
>
jsonPage
=
new
JsonPage
<>(
page
.
getCurrent
(),
page
.
getSize
(),
page
.
getTotal
(),
collect
);
return
R
.
ok
().
setData
(
jsonPage
);
return
R
.
ok
().
setData
(
jsonPage
);
}
}
/**
/**
* 添加
* 添加
* @param
dataTheme
* @param
visualDataSet
* @return
* @return
*/
*/
@ApiOperation
(
value
=
"添加信息"
,
notes
=
"根据
dataTheme
对象添加信息"
)
@ApiOperation
(
value
=
"添加信息"
,
notes
=
"根据
visualDataSet
对象添加信息"
)
@ApiImplicitParam
(
name
=
"
dataTheme"
,
value
=
"详细实体dataTheme"
,
required
=
true
,
dataType
=
"DataTheme
Dto"
)
@ApiImplicitParam
(
name
=
"
visualDataSet"
,
value
=
"详细实体visualDataSet"
,
required
=
true
,
dataType
=
"VisualDataSet
Dto"
)
@PostMapping
()
@PostMapping
()
public
R
save
DataTheme
(
@RequestBody
@Validated
({
ValidationGroups
.
Insert
.
class
})
DataThemeDto
dataTheme
)
{
public
R
save
VisualDataSet
(
@RequestBody
@Validated
({
ValidationGroups
.
Insert
.
class
})
VisualDataSetDto
visualDataSet
)
{
DataThemeEntity
dataThemeEntity
=
dataThemeService
.
saveDataTheme
(
dataTheme
);
VisualDataSetEntity
visualDataSetEntity
=
visualDataSetService
.
saveVisualDataSet
(
visualDataSet
);
return
R
.
ok
().
setData
(
dataThemeMapper
.
toVO
(
dataTheme
Entity
));
return
R
.
ok
().
setData
(
visualDataSetMapper
.
toVO
(
visualDataSet
Entity
));
}
}
/**
/**
* 修改
* 修改
* @param
dataTheme
* @param
visualDataSet
* @return
* @return
*/
*/
@ApiOperation
(
value
=
"修改信息"
,
notes
=
"根据url的id来指定修改对象,并根据传过来的信息来修改详细信息"
)
@ApiOperation
(
value
=
"修改信息"
,
notes
=
"根据url的id来指定修改对象,并根据传过来的信息来修改详细信息"
)
@ApiImplicitParams
({
@ApiImplicitParams
({
@ApiImplicitParam
(
name
=
"id"
,
value
=
"ID"
,
required
=
true
,
dataType
=
"String"
,
paramType
=
"path"
),
@ApiImplicitParam
(
name
=
"id"
,
value
=
"ID"
,
required
=
true
,
dataType
=
"String"
,
paramType
=
"path"
),
@ApiImplicitParam
(
name
=
"
dataTheme"
,
value
=
"详细实体dataTheme"
,
required
=
true
,
dataType
=
"DataTheme
Dto"
)
@ApiImplicitParam
(
name
=
"
visualDataSet"
,
value
=
"详细实体visualDataSet"
,
required
=
true
,
dataType
=
"VisualDataSet
Dto"
)
})
})
@PutMapping
(
"/{id}"
)
@PutMapping
(
"/{id}"
)
public
R
update
DataTheme
(
@PathVariable
String
id
,
@RequestBody
@Validated
({
ValidationGroups
.
Update
.
class
})
DataThemeDto
dataTheme
)
{
public
R
update
VisualDataSet
(
@PathVariable
String
id
,
@RequestBody
@Validated
({
ValidationGroups
.
Update
.
class
})
VisualDataSetDto
visualDataSet
)
{
DataThemeEntity
dataThemeEntity
=
dataThemeService
.
updateDataTheme
(
dataTheme
);
VisualDataSetEntity
visualDataSetEntity
=
visualDataSetService
.
updateVisualDataSet
(
visualDataSet
);
return
R
.
ok
().
setData
(
dataThemeMapper
.
toVO
(
dataTheme
Entity
));
return
R
.
ok
().
setData
(
visualDataSetMapper
.
toVO
(
visualDataSet
Entity
));
}
}
/**
/**
...
@@ -127,8 +128,8 @@ public class DataThemeController extends BaseController {
...
@@ -127,8 +128,8 @@ public class DataThemeController extends BaseController {
@ApiOperation
(
value
=
"删除"
,
notes
=
"根据url的id来指定删除对象"
)
@ApiOperation
(
value
=
"删除"
,
notes
=
"根据url的id来指定删除对象"
)
@ApiImplicitParam
(
name
=
"id"
,
value
=
"ID"
,
required
=
true
,
dataType
=
"String"
,
paramType
=
"path"
)
@ApiImplicitParam
(
name
=
"id"
,
value
=
"ID"
,
required
=
true
,
dataType
=
"String"
,
paramType
=
"path"
)
@DeleteMapping
(
"/{id}"
)
@DeleteMapping
(
"/{id}"
)
public
R
delete
DataTheme
ById
(
@PathVariable
String
id
)
{
public
R
delete
VisualDataSet
ById
(
@PathVariable
String
id
)
{
dataThemeService
.
deleteDataTheme
ById
(
id
);
visualDataSetService
.
deleteVisualDataSet
ById
(
id
);
return
R
.
ok
();
return
R
.
ok
();
}
}
...
@@ -140,8 +141,21 @@ public class DataThemeController extends BaseController {
...
@@ -140,8 +141,21 @@ public class DataThemeController extends BaseController {
@ApiOperation
(
value
=
"批量删除角色"
,
notes
=
"根据url的ids来批量删除对象"
)
@ApiOperation
(
value
=
"批量删除角色"
,
notes
=
"根据url的ids来批量删除对象"
)
@ApiImplicitParam
(
name
=
"ids"
,
value
=
"ID集合"
,
required
=
true
,
dataType
=
"List"
,
paramType
=
"path"
)
@ApiImplicitParam
(
name
=
"ids"
,
value
=
"ID集合"
,
required
=
true
,
dataType
=
"List"
,
paramType
=
"path"
)
@DeleteMapping
(
"/batch/{ids}"
)
@DeleteMapping
(
"/batch/{ids}"
)
public
R
delete
DataTheme
Batch
(
@PathVariable
List
<
String
>
ids
)
{
public
R
delete
VisualDataSet
Batch
(
@PathVariable
List
<
String
>
ids
)
{
dataThemeService
.
deleteDataTheme
Batch
(
ids
);
visualDataSetService
.
deleteVisualDataSet
Batch
(
ids
);
return
R
.
ok
();
return
R
.
ok
();
}
}
/**
* SQL解析
* @param sqlParseDto
* @return
*/
@ApiOperation
(
value
=
"SQL解析"
)
@ApiImplicitParam
(
name
=
"sqlParseDto"
,
value
=
"SQL解析实体sqlParseDto"
,
required
=
true
,
dataType
=
"SqlParseDto"
)
@PostMapping
(
"/sql/analyse"
)
public
R
sqlAnalyse
(
@RequestBody
@Validated
SqlParseDto
sqlParseDto
)
{
List
<
String
>
list
=
visualDataSetService
.
sqlAnalyse
(
sqlParseDto
);
return
R
.
ok
().
setData
(
list
);
}
}
}
datax-modules/data-
factory-service-parent/data-factory-service/src/main/java/cn/datax/service/data/factory/dao/
DataSetDao.java
→
datax-modules/data-
visual-service-parent/data-visual-service/src/main/java/cn/datax/service/data/visual/dao/Visual
DataSetDao.java
View file @
9579d532
package
cn
.
datax
.
service
.
data
.
factory
.
dao
;
package
cn
.
datax
.
service
.
data
.
visual
.
dao
;
import
cn.datax.common.base.BaseDao
;
import
cn.datax.common.base.BaseDao
;
import
cn.datax.service.data.
factory.api.entity.
DataSetEntity
;
import
cn.datax.service.data.
visual.api.entity.Visual
DataSetEntity
;
import
org.apache.ibatis.annotations.Mapper
;
import
org.apache.ibatis.annotations.Mapper
;
/**
/**
...
@@ -10,9 +10,9 @@ import org.apache.ibatis.annotations.Mapper;
...
@@ -10,9 +10,9 @@ import org.apache.ibatis.annotations.Mapper;
* </p>
* </p>
*
*
* @author yuwei
* @author yuwei
* @since 2020-0
3-20
* @since 2020-0
7-31
*/
*/
@Mapper
@Mapper
public
interface
DataSetDao
extends
BaseDao
<
DataSetEntity
>
{
public
interface
VisualDataSetDao
extends
BaseDao
<
Visual
DataSetEntity
>
{
}
}
datax-modules/data-
factory-service-parent/data-factory-service/src/main/java/cn/datax/service/data/factory/mapstruct/
DataSetMapper.java
→
datax-modules/data-
visual-service-parent/data-visual-service/src/main/java/cn/datax/service/data/visual/mapstruct/Visual
DataSetMapper.java
View file @
9579d532
package
cn
.
datax
.
service
.
data
.
factory
.
mapstruct
;
package
cn
.
datax
.
service
.
data
.
visual
.
mapstruct
;
import
cn.datax.common.mapstruct.EntityMapper
;
import
cn.datax.common.mapstruct.EntityMapper
;
import
cn.datax.service.data.
factory.api.dto.
DataSetDto
;
import
cn.datax.service.data.
visual.api.dto.Visual
DataSetDto
;
import
cn.datax.service.data.
factory.api.entity.
DataSetEntity
;
import
cn.datax.service.data.
visual.api.entity.Visual
DataSetEntity
;
import
cn.datax.service.data.
factory.api.vo.
DataSetVo
;
import
cn.datax.service.data.
visual.api.vo.Visual
DataSetVo
;
import
org.mapstruct.Mapper
;
import
org.mapstruct.Mapper
;
/**
/**
...
@@ -12,9 +12,9 @@ import org.mapstruct.Mapper;
...
@@ -12,9 +12,9 @@ import org.mapstruct.Mapper;
* </p>
* </p>
*
*
* @author yuwei
* @author yuwei
* @since 2020-0
3-20
* @since 2020-0
7-31
*/
*/
@Mapper
(
componentModel
=
"spring"
)
@Mapper
(
componentModel
=
"spring"
)
public
interface
DataSetMapper
extends
EntityMapper
<
DataSetDto
,
DataSetEntity
,
DataSetVo
>
{
public
interface
VisualDataSetMapper
extends
EntityMapper
<
VisualDataSetDto
,
VisualDataSetEntity
,
Visual
DataSetVo
>
{
}
}
datax-modules/data-
factory-service-parent/data-factory-service/src/main/java/cn/datax/service/data/factory/service/
DataSetService.java
→
datax-modules/data-
visual-service-parent/data-visual-service/src/main/java/cn/datax/service/data/visual/service/Visual
DataSetService.java
View file @
9579d532
package
cn
.
datax
.
service
.
data
.
factory
.
service
;
package
cn
.
datax
.
service
.
data
.
visual
.
service
;
import
cn.datax.service.data.
factory
.api.dto.SqlParseDto
;
import
cn.datax.service.data.
visual
.api.dto.SqlParseDto
;
import
cn.datax.service.data.
factory.api.entity.
DataSetEntity
;
import
cn.datax.service.data.
visual.api.entity.Visual
DataSetEntity
;
import
cn.datax.service.data.
factory.api.dto.
DataSetDto
;
import
cn.datax.service.data.
visual.api.dto.Visual
DataSetDto
;
import
cn.datax.common.base.BaseService
;
import
cn.datax.common.base.BaseService
;
import
java.util.List
;
import
java.util.List
;
...
@@ -13,19 +13,19 @@ import java.util.List;
...
@@ -13,19 +13,19 @@ import java.util.List;
* </p>
* </p>
*
*
* @author yuwei
* @author yuwei
* @since 2020-0
3-20
* @since 2020-0
7-31
*/
*/
public
interface
DataSetService
extends
BaseService
<
DataSetEntity
>
{
public
interface
VisualDataSetService
extends
BaseService
<
Visual
DataSetEntity
>
{
void
saveDataSet
(
DataSetDto
d
ataSet
);
VisualDataSetEntity
saveVisualDataSet
(
VisualDataSetDto
visualD
ataSet
);
void
updateDataSet
(
DataSetDto
d
ataSet
);
VisualDataSetEntity
updateVisualDataSet
(
VisualDataSetDto
visualD
ataSet
);
DataSetEntity
get
DataSetById
(
String
id
);
VisualDataSetEntity
getVisual
DataSetById
(
String
id
);
void
deleteDataSetById
(
String
id
);
void
delete
Visual
DataSetById
(
String
id
);
void
deleteDataSetBatch
(
List
<
String
>
ids
);
void
delete
Visual
DataSetBatch
(
List
<
String
>
ids
);
List
<
String
>
sqlAnalyse
(
SqlParseDto
sqlParseDto
);
List
<
String
>
sqlAnalyse
(
SqlParseDto
sqlParseDto
);
}
}
datax-modules/data-
factory-service-parent/data-factory-service/src/main/java/cn/datax/service/data/factory/service/impl/
DataSetServiceImpl.java
→
datax-modules/data-
visual-service-parent/data-visual-service/src/main/java/cn/datax/service/data/visual/service/impl/Visual
DataSetServiceImpl.java
View file @
9579d532
package
cn
.
datax
.
service
.
data
.
factory
.
service
.
impl
;
package
cn
.
datax
.
service
.
data
.
visual
.
service
.
impl
;
import
cn.datax.common.exception.DataException
;
import
cn.datax.common.exception.DataException
;
import
cn.datax.common.utils.ThrowableUtil
;
import
cn.datax.common.utils.ThrowableUtil
;
import
cn.datax.service.data.
factory.api.dto.DataSet
Dto
;
import
cn.datax.service.data.
visual.api.dto.SqlParse
Dto
;
import
cn.datax.service.data.
factory.api.dto.SqlParseDto
;
import
cn.datax.service.data.
visual.api.entity.VisualDataSetEntity
;
import
cn.datax.service.data.
factory.api.entity.DataSetEntity
;
import
cn.datax.service.data.
visual.api.dto.VisualDataSetDto
;
import
cn.datax.service.data.
factory.service.
DataSetService
;
import
cn.datax.service.data.
visual.service.Visual
DataSetService
;
import
cn.datax.service.data.
factory.mapstruct.
DataSetMapper
;
import
cn.datax.service.data.
visual.mapstruct.Visual
DataSetMapper
;
import
cn.datax.service.data.
factory.dao.
DataSetDao
;
import
cn.datax.service.data.
visual.dao.Visual
DataSetDao
;
import
cn.datax.common.base.BaseServiceImpl
;
import
cn.datax.common.base.BaseServiceImpl
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
import
net.sf.jsqlparser.JSQLParserException
;
import
net.sf.jsqlparser.JSQLParserException
;
...
@@ -32,49 +32,51 @@ import java.util.List;
...
@@ -32,49 +32,51 @@ import java.util.List;
* </p>
* </p>
*
*
* @author yuwei
* @author yuwei
* @since 2020-0
3-20
* @since 2020-0
7-31
*/
*/
@Slf4j
@Slf4j
@Service
@Service
@Transactional
(
propagation
=
Propagation
.
SUPPORTS
,
readOnly
=
true
,
rollbackFor
=
Exception
.
class
)
@Transactional
(
propagation
=
Propagation
.
SUPPORTS
,
readOnly
=
true
,
rollbackFor
=
Exception
.
class
)
public
class
DataSetServiceImpl
extends
BaseServiceImpl
<
DataSetDao
,
DataSetEntity
>
implements
DataSetService
{
public
class
VisualDataSetServiceImpl
extends
BaseServiceImpl
<
VisualDataSetDao
,
VisualDataSetEntity
>
implements
Visual
DataSetService
{
@Autowired
@Autowired
private
DataSetDao
d
ataSetDao
;
private
VisualDataSetDao
visualD
ataSetDao
;
@Autowired
@Autowired
private
DataSetMapper
d
ataSetMapper
;
private
VisualDataSetMapper
visualD
ataSetMapper
;
@Override
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
void
saveDataSet
(
DataSetDto
dataSetDto
)
{
public
VisualDataSetEntity
saveVisualDataSet
(
VisualDataSetDto
visualDataSetDto
)
{
DataSetEntity
dataSet
=
dataSetMapper
.
toEntity
(
dataSetDto
);
VisualDataSetEntity
visualDataSet
=
visualDataSetMapper
.
toEntity
(
visualDataSetDto
);
dataSetDao
.
insert
(
dataSet
);
visualDataSetDao
.
insert
(
visualDataSet
);
return
visualDataSet
;
}
}
@Override
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
void
updateDataSet
(
DataSetDto
dataSetDto
)
{
public
VisualDataSetEntity
updateVisualDataSet
(
VisualDataSetDto
visualDataSetDto
)
{
DataSetEntity
dataSet
=
dataSetMapper
.
toEntity
(
dataSetDto
);
VisualDataSetEntity
visualDataSet
=
visualDataSetMapper
.
toEntity
(
visualDataSetDto
);
dataSetDao
.
updateById
(
dataSet
);
visualDataSetDao
.
updateById
(
visualDataSet
);
return
visualDataSet
;
}
}
@Override
@Override
public
DataSetEntity
get
DataSetById
(
String
id
)
{
public
VisualDataSetEntity
getVisual
DataSetById
(
String
id
)
{
DataSetEntity
d
ataSetEntity
=
super
.
getById
(
id
);
VisualDataSetEntity
visualD
ataSetEntity
=
super
.
getById
(
id
);
return
d
ataSetEntity
;
return
visualD
ataSetEntity
;
}
}
@Override
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
void
deleteDataSetById
(
String
id
)
{
public
void
delete
Visual
DataSetById
(
String
id
)
{
d
ataSetDao
.
deleteById
(
id
);
visualD
ataSetDao
.
deleteById
(
id
);
}
}
@Override
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
void
deleteDataSetBatch
(
List
<
String
>
ids
)
{
public
void
delete
Visual
DataSetBatch
(
List
<
String
>
ids
)
{
d
ataSetDao
.
deleteBatchIds
(
ids
);
visualD
ataSetDao
.
deleteBatchIds
(
ids
);
}
}
@Override
@Override
...
...
datax-modules/data-
factory-service-parent/data-factory
-service/src/main/resources/bootstrap.yml
→
datax-modules/data-
visual-service-parent/data-visual
-service/src/main/resources/bootstrap.yml
View file @
9579d532
server
:
server
:
port
:
88
16
port
:
88
24
spring
:
spring
:
application
:
application
:
name
:
datax-service-data-
factory
name
:
datax-service-data-
visual
profiles
:
profiles
:
active
:
dev
active
:
dev
cloud
:
cloud
:
...
...
datax-modules/data-
factory-service-parent/data-factory
-service/src/main/resources/logback-spring.xml
→
datax-modules/data-
visual-service-parent/data-visual
-service/src/main/resources/logback-spring.xml
View file @
9579d532
<?xml version="1.0" encoding="UTF-8"?>
<?xml version="1.0" encoding="UTF-8"?>
<configuration
scan=
"true"
scanPeriod=
"60 seconds"
debug=
"false"
>
<configuration
scan=
"true"
scanPeriod=
"60 seconds"
debug=
"false"
>
<springProperty
scope=
"context"
name=
"springAppName"
source=
"spring.application.name"
/>
<springProperty
scope=
"context"
name=
"springAppName"
source=
"spring.application.name"
/>
<property
name=
"log.path"
value=
"logs/datax-service-data-
factory
"
/>
<property
name=
"log.path"
value=
"logs/datax-service-data-
visual
"
/>
<property
name=
"log.maxHistory"
value=
"15"
/>
<property
name=
"log.maxHistory"
value=
"15"
/>
<property
name=
"log.totalSizeCap"
value=
"500MB"
/>
<property
name=
"log.totalSizeCap"
value=
"500MB"
/>
<property
name=
"log.maxFileSize"
value=
"10MB"
/>
<property
name=
"log.maxFileSize"
value=
"10MB"
/>
...
...
datax-modules/data-
factory-service-parent/data-factory-service/src/main/resources/mapper/
DataSetMapper.xml
→
datax-modules/data-
visual-service-parent/data-visual-service/src/main/resources/mapper/Visual
DataSetMapper.xml
View file @
9579d532
<?xml version="1.0" encoding="UTF-8"?>
<?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">
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper
namespace=
"cn.datax.service.data.
factory.dao.
DataSetDao"
>
<mapper
namespace=
"cn.datax.service.data.
visual.dao.Visual
DataSetDao"
>
<!-- 通用查询映射结果 -->
<!-- 通用查询映射结果 -->
<resultMap
id=
"BaseResultMap"
type=
"cn.datax.service.data.
factory.api.entity.
DataSetEntity"
>
<resultMap
id=
"BaseResultMap"
type=
"cn.datax.service.data.
visual.api.entity.Visual
DataSetEntity"
>
<result
column=
"id"
property=
"id"
/>
<result
column=
"id"
property=
"id"
/>
<result
column=
"status"
property=
"status"
/>
<result
column=
"status"
property=
"status"
/>
<result
column=
"create_by"
property=
"createBy"
/>
<result
column=
"create_by"
property=
"createBy"
/>
...
@@ -16,7 +16,6 @@
...
@@ -16,7 +16,6 @@
<result
column=
"set_name"
property=
"setName"
/>
<result
column=
"set_name"
property=
"setName"
/>
<result
column=
"set_sql"
property=
"setSql"
/>
<result
column=
"set_sql"
property=
"setSql"
/>
<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>
<!-- 通用查询结果列 -->
<!-- 通用查询结果列 -->
...
...
datax-modules/data-
factory-service-parent/data-factory
-service/src/main/resources/spy.properties
→
datax-modules/data-
visual-service-parent/data-visual
-service/src/main/resources/spy.properties
View file @
9579d532
File moved
datax-modules/data-
factory
-service-parent/pom.xml
→
datax-modules/data-
visual
-service-parent/pom.xml
View file @
9579d532
...
@@ -10,12 +10,11 @@
...
@@ -10,12 +10,11 @@
<packaging>
pom
</packaging>
<packaging>
pom
</packaging>
<modelVersion>
4.0.0
</modelVersion>
<modelVersion>
4.0.0
</modelVersion>
<version>
2.0.0
</version>
<version>
2.0.0
</version>
<description>
数据
工厂
</description>
<description>
数据
可视化
</description>
<artifactId>
data-
factory
-service-parent
</artifactId>
<artifactId>
data-
visual
-service-parent
</artifactId>
<modules>
<modules>
<module>
data-factory-service
</module>
<module>
data-visual-service-api
</module>
<module>
data-factory-service-api
</module>
<module>
data-visual-service
</module>
<module>
data-factory-service-sql-console
</module>
</modules>
</modules>
</project>
</project>
\ No newline at end of file
datax-modules/pom.xml
View file @
9579d532
...
@@ -16,10 +16,10 @@
...
@@ -16,10 +16,10 @@
<module>
system-service-parent
</module>
<module>
system-service-parent
</module>
<module>
file-service-parent
</module>
<module>
file-service-parent
</module>
<module>
email-service-parent
</module>
<module>
email-service-parent
</module>
<module>
data-factory-service-parent
</module>
<module>
data-market-service-parent
</module>
<module>
quartz-service-parent
</module>
<module>
quartz-service-parent
</module>
<module>
codegen-service-parent
</module>
<module>
codegen-service-parent
</module>
<module>
data-metadata-service-parent
</module>
<module>
data-metadata-service-parent
</module>
<module>
data-market-service-parent
</module>
<module>
data-visual-service-parent
</module>
</modules>
</modules>
</project>
</project>
\ No newline at end of file
datax-ui/src/api/market/dataapi.js
View file @
9579d532
...
@@ -82,6 +82,14 @@ export function cancelDataApi (id) {
...
@@ -82,6 +82,14 @@ export function cancelDataApi (id) {
})
})
}
}
export
function
word
(
id
)
{
return
request
({
url
:
'/data/market/dataApis/word/'
+
id
,
method
:
'post'
,
responseType
:
'blob'
})
}
export
function
getApiHeader
(
id
)
{
export
function
getApiHeader
(
id
)
{
return
request
({
return
request
({
url
:
'/data/api/apis/'
+
id
+
'/header'
,
url
:
'/data/api/apis/'
+
id
+
'/header'
,
...
...
datax-ui/src/api/visual/dataset.js
0 → 100644
View file @
9579d532
import
request
from
'@/utils/request'
export
function
listDataSet
(
data
)
{
return
request
({
url
:
'/data/visual/dataSets/list'
,
method
:
'get'
,
params
:
data
})
}
export
function
pageDataSet
(
data
)
{
return
request
({
url
:
'/data/visual/dataSets/page'
,
method
:
'get'
,
params
:
data
})
}
export
function
getDataSet
(
id
)
{
return
request
({
url
:
'/data/visual/dataSets/'
+
id
,
method
:
'get'
})
}
export
function
delDataSet
(
id
)
{
return
request
({
url
:
'/data/visual/dataSets/'
+
id
,
method
:
'delete'
})
}
export
function
delDataSets
(
ids
)
{
return
request
({
url
:
'/data/visual/dataSets/batch/'
+
ids
,
method
:
'delete'
})
}
export
function
addDataSet
(
data
)
{
return
request
({
url
:
'/data/visual/dataSets'
,
method
:
'post'
,
data
:
data
})
}
export
function
updateDataSet
(
data
)
{
return
request
({
url
:
'/data/visual/dataSets/'
+
data
.
id
,
method
:
'put'
,
data
:
data
})
}
export
function
sqlAnalyse
(
data
)
{
return
request
({
url
:
'/data/visual/dataSets/sql/analyse'
,
method
:
'post'
,
data
:
data
})
}
datax-ui/src/views/factory/datasource/DataSourceDetail.vue
View file @
9579d532
...
@@ -4,8 +4,8 @@
...
@@ -4,8 +4,8 @@
<div
slot=
"header"
class=
"clearfix"
>
<div
slot=
"header"
class=
"clearfix"
>
<span>
{{
title
}}
</span>
<span>
{{
title
}}
</span>
<el-button-group
style=
"float: right;"
>
<el-button-group
style=
"float: right;"
>
<el-button
size=
"mini"
icon=
"el-icon-coin"
type=
"primary"
round
@
click=
"handleSync
Metadata
"
>
元数据同步
</el-button>
<el-button
size=
"mini"
icon=
"el-icon-coin"
type=
"primary"
round
@
click=
"handleSync"
>
元数据同步
</el-button>
<el-button
size=
"mini"
icon=
"el-icon-coin"
type=
"primary"
round
@
click=
"handleWord
Metadata
"
>
数据库文档
</el-button>
<el-button
size=
"mini"
icon=
"el-icon-coin"
type=
"primary"
round
@
click=
"handleWord"
>
数据库文档
</el-button>
<el-button
size=
"mini"
icon=
"el-icon-coin"
type=
"primary"
round
@
click=
"handleCheckConnection"
v-if=
"active == 2"
>
连通性检测
</el-button>
<el-button
size=
"mini"
icon=
"el-icon-coin"
type=
"primary"
round
@
click=
"handleCheckConnection"
v-if=
"active == 2"
>
连通性检测
</el-button>
<el-button
size=
"mini"
icon=
"el-icon-back"
round
@
click=
"showCard"
>
返回
</el-button>
<el-button
size=
"mini"
icon=
"el-icon-back"
round
@
click=
"showCard"
>
返回
</el-button>
</el-button-group>
</el-button-group>
...
@@ -180,7 +180,7 @@ export default {
...
@@ -180,7 +180,7 @@ export default {
})
})
},
},
/** 元数据同步 */
/** 元数据同步 */
handleSync
Metadata
()
{
handleSync
()
{
sync
(
this
.
data
.
id
).
then
(
response
=>
{
sync
(
this
.
data
.
id
).
then
(
response
=>
{
if
(
response
.
success
)
{
if
(
response
.
success
)
{
this
.
$message
.
success
(
'元数据正在后台同步中,请到元数据管理中查看结果'
)
this
.
$message
.
success
(
'元数据正在后台同步中,请到元数据管理中查看结果'
)
...
@@ -188,7 +188,7 @@ export default {
...
@@ -188,7 +188,7 @@ export default {
})
})
},
},
/** 数据库文档 */
/** 数据库文档 */
handleWord
Metadata
()
{
handleWord
()
{
word
(
this
.
data
.
id
).
then
(
response
=>
{
word
(
this
.
data
.
id
).
then
(
response
=>
{
const
blob
=
new
Blob
([
response
])
const
blob
=
new
Blob
([
response
])
const
fileName
=
'数据库设计文档.doc'
const
fileName
=
'数据库设计文档.doc'
...
...
datax-ui/src/views/market/dataapi/DataApiDetail.vue
View file @
9579d532
...
@@ -4,6 +4,7 @@
...
@@ -4,6 +4,7 @@
<div
slot=
"header"
class=
"clearfix"
>
<div
slot=
"header"
class=
"clearfix"
>
<span>
{{
title
}}
</span>
<span>
{{
title
}}
</span>
<el-button-group
style=
"float: right;"
>
<el-button-group
style=
"float: right;"
>
<el-button
size=
"mini"
icon=
"el-icon-coin"
type=
"primary"
round
@
click=
"handleWord"
>
接口文档
</el-button>
<el-button
size=
"mini"
icon=
"el-icon-s-data"
round
@
click=
"apiCall"
>
接口调用
</el-button>
<el-button
size=
"mini"
icon=
"el-icon-s-data"
round
@
click=
"apiCall"
>
接口调用
</el-button>
<el-button
size=
"mini"
icon=
"el-icon-back"
round
@
click=
"showCard"
>
返回
</el-button>
<el-button
size=
"mini"
icon=
"el-icon-back"
round
@
click=
"showCard"
>
返回
</el-button>
</el-button-group>
</el-button-group>
...
@@ -237,7 +238,7 @@
...
@@ -237,7 +238,7 @@
</template>
</template>
<
script
>
<
script
>
import
{
getDataApi
}
from
'@/api/market/dataapi'
import
{
getDataApi
,
word
}
from
'@/api/market/dataapi'
import
{
listDataSource
,
getDbTables
,
getDbTableColumns
}
from
'@/api/factory/datasource'
import
{
listDataSource
,
getDbTables
,
getDbTableColumns
}
from
'@/api/factory/datasource'
import
SqlEditor
from
'@/components/SqlEditor'
import
SqlEditor
from
'@/components/SqlEditor'
...
@@ -433,6 +434,28 @@ export default {
...
@@ -433,6 +434,28 @@ export default {
this
.
showOptions
.
showDetail
=
false
this
.
showOptions
.
showDetail
=
false
this
.
showOptions
.
showCall
=
true
this
.
showOptions
.
showCall
=
true
this
.
$emit
(
'showCard'
,
this
.
showOptions
)
this
.
$emit
(
'showCard'
,
this
.
showOptions
)
},
/** 接口文档 */
handleWord
()
{
word
(
this
.
data
.
id
).
then
(
response
=>
{
const
blob
=
new
Blob
([
response
])
const
fileName
=
'接口文档.docx'
if
(
'download'
in
document
.
createElement
(
'a'
))
{
// 非IE下载
const
elink
=
document
.
createElement
(
'a'
)
elink
.
download
=
fileName
elink
.
style
.
display
=
'none'
elink
.
href
=
URL
.
createObjectURL
(
blob
)
document
.
body
.
appendChild
(
elink
)
elink
.
click
()
URL
.
revokeObjectURL
(
elink
.
href
)
// 释放URL 对象
document
.
body
.
removeChild
(
elink
)
}
else
{
// IE10+下载
navigator
.
msSaveBlob
(
blob
,
fileName
)
}
})
}
}
}
}
}
}
...
...
datax-ui/src/views/visual/dataset/DataSetAdd.vue
0 → 100644
View file @
9579d532
<
template
>
<div>
<el-card
class=
"box-card"
shadow=
"always"
>
<div
slot=
"header"
class=
"clearfix"
>
<span>
{{
title
}}
</span>
<el-button-group
style=
"float: right;"
>
<el-button
size=
"mini"
icon=
"el-icon-plus"
round
@
click=
"submitForm"
:loading=
"loadingOptions.loading"
:disabled=
"loadingOptions.isDisabled"
>
{{
loadingOptions
.
loadingText
}}
</el-button>
<el-button
size=
"mini"
icon=
"el-icon-back"
round
@
click=
"showCard"
>
返回
</el-button>
</el-button-group>
</div>
<div
:style=
"classCardbody"
>
<el-form
ref=
"form"
:model=
"form"
:rules=
"rules"
label-width=
"80px"
>
<el-form-item
label=
"数据源"
prop=
"sourceId"
>
<el-select
v-model=
"form.sourceId"
placeholder=
"请选择数据源"
>
<el-option
v-for=
"source in sourceOptions"
:key=
"source.id"
:label=
"source.sourceName"
:value=
"source.id"
:disabled=
"source.status === '0'"
></el-option>
</el-select>
</el-form-item>
<el-form-item
label=
"数据集名称"
prop=
"setName"
>
<el-input
v-model=
"form.setName"
placeholder=
"请输入数据集名称"
/>
</el-form-item>
<el-divider
content-position=
"left"
>
数据集
</el-divider>
<el-row>
<el-col
:span=
"24"
style=
"padding: 0 20px;"
>
<sql-editor
ref=
"sqleditor"
:value=
"form.setSql"
@
changeTextarea=
"changeTextarea($event)"
style=
"height: 300px;"
></sql-editor>
</el-col>
</el-row>
<el-form-item>
<el-button
size=
"mini"
type=
"primary"
@
click=
"formaterSql"
>
Sql格式化
</el-button>
<el-button
size=
"mini"
type=
"primary"
@
click=
"analyseSql"
>
Sql解析
</el-button>
<el-button
size=
"mini"
type=
"primary"
@
click=
"dataPreview"
>
数据预览
</el-button>
</el-form-item>
<el-divider
content-position=
"left"
>
数据模型定义
</el-divider>
<el-row
style=
"height: 300px;padding: 0 20px;"
>
<el-col
:span=
"12"
style=
"border: 1px dashed #999;height: 100%;"
>
<div
class=
"tag-group"
>
<draggable
v-model=
"columnList"
:options=
"
{sort: false, group: {name: 'col', pull:'clone', put: false}}">
<el-tag
v-for=
"(item, index) in columnList"
:key=
"index"
class=
"draggable-tag"
>
{{
item
.
col
}}
</el-tag>
</draggable>
</div>
</el-col>
<el-col
:span=
"12"
style=
"box-shadow: 0 0 1px 1px #ccc;height: 100%;"
>
<el-row>
<el-divider
content-position=
"left"
>
维度列
</el-divider>
<el-col>
<div
style=
"height: 90px; border: 1px dashed #999; margin: 0 10px;"
>
<draggable
group=
"col"
:list=
"dimensionList"
>
<div
v-for=
"(item, index) in dimensionList"
:key=
"index"
class=
"draggable-item"
>
<el-tag>
{{
item
.
alias
?
item
.
alias
+
'('
+
item
.
col
+
')'
:
item
.
col
}}
</el-tag>
<span
class=
"draggable-item-handle"
v-if=
"item.input"
>
<el-input
size=
"mini"
placeholder=
"请输入内容"
v-model=
"item.alias"
@
blur=
"handleDelTagLabel(index, item)"
>
</el-input>
</span>
<span
class=
"draggable-item-handle"
v-else
@
click=
"handleTagLabel(index, item)"
><i
class=
"el-icon-edit-outline"
></i></span>
<span
class=
"draggable-item-handle"
@
click=
"handleDimensionTagClose(index, item)"
><i
class=
"el-icon-delete"
></i></span>
</div>
</draggable>
</div>
</el-col>
</el-row>
<el-row>
<el-divider
content-position=
"left"
>
指标列
</el-divider>
<el-col>
<div
style=
"height: 90px; border: 1px dashed #999; margin: 0 10px;"
>
<draggable
group=
"col"
:list=
"measureList"
>
<div
v-for=
"(item, index) in measureList"
:key=
"index"
class=
"draggable-item"
>
<el-tag>
{{
item
.
alias
?
item
.
alias
+
'('
+
item
.
col
+
')'
:
item
.
col
}}
</el-tag>
<span
class=
"draggable-item-handle"
v-if=
"item.input"
>
<el-input
size=
"mini"
placeholder=
"请输入内容"
v-model=
"item.alias"
@
blur=
"handleDelTagLabel(index, item)"
>
</el-input>
</span>
<span
class=
"draggable-item-handle"
v-else
@
click=
"handleTagLabel(index, item)"
><i
class=
"el-icon-edit-outline"
></i></span>
<span
class=
"draggable-item-handle"
@
click=
"handleMeasureTagClose(index, item)"
><i
class=
"el-icon-delete"
></i></span>
</div>
</draggable>
</div>
</el-col>
</el-row>
</el-col>
</el-row>
<el-form-item
label=
"状态"
prop=
"status"
>
<el-radio-group
v-model=
"form.status"
>
<el-radio
v-for=
"dict in statusOptions"
:key=
"dict.id"
:label=
"dict.itemText"
>
{{
dict
.
itemValue
}}
</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item
label=
"备注"
prop=
"remark"
>
<el-input
v-model=
"form.remark"
type=
"textarea"
placeholder=
"请输入内容"
/>
</el-form-item>
</el-form>
</div>
<el-drawer
:visible
.
sync=
"drawer"
direction=
"btt"
:with-header=
"false"
>
<el-table
:data=
"previewData.dataList"
stripe
border
:max-height=
"200"
style=
"width: 100%; margin: 15px 0;"
>
<el-table-column
label=
"序号"
width=
"55"
align=
"center"
>
<template
slot-scope=
"scope"
>
<span>
{{
scope
.
$index
+
1
}}
</span>
</
template
>
</el-table-column>
<
template
v-for=
"(column, index) in previewData.columnList"
>
<el-table-column
:prop=
"column"
:label=
"column"
:key=
"index"
align=
"center"
show-overflow-tooltip
/>
</
template
>
</el-table>
<el-pagination
:page-sizes=
"[10, 20, 50, 100]"
layout=
"total, sizes, prev, pager, next, jumper"
@
size-change=
"handleSizeChange"
@
current-change=
"handleCurrentChange"
:current-page
.
sync=
"previewData.pageNum"
:page-size
.
sync=
"previewData.pageSize"
:total=
"previewData.dataTotal"
></el-pagination>
</el-drawer>
</el-card>
</div>
</template>
<
script
>
import
{
addDataSet
,
sqlAnalyse
}
from
'@/api/visual/dataset'
import
{
listDataSource
,
queryByPage
}
from
'@/api/factory/datasource'
import
sqlFormatter
from
'sql-formatter'
import
SqlEditor
from
'@/components/SqlEditor'
import
draggable
from
'vuedraggable'
export
default
{
name
:
'DataSetAdd'
,
components
:
{
SqlEditor
,
draggable
},
props
:
{
data
:
{
type
:
Object
,
default
:
function
()
{
return
{}
}
}
},
data
()
{
return
{
classCardbody
:
{
overflow
:
'auto'
,
height
:
document
.
body
.
offsetHeight
-
240
+
'px'
},
title
:
'数据集新增'
,
// 展示切换
showOptions
:
{
data
:
{},
showList
:
true
,
showAdd
:
false
,
showEdit
:
false
,
showDetail
:
false
},
// 保存按钮
loadingOptions
:
{
loading
:
false
,
loadingText
:
'保存'
,
isDisabled
:
false
},
// 表单参数
form
:
{
id
:
undefined
,
sourceId
:
undefined
,
setSql
:
undefined
,
status
:
'1'
,
remark
:
undefined
},
// 表单校验
rules
:
{
sourceId
:
[
{
required
:
true
,
message
:
'数据源不能为空'
,
trigger
:
'change'
}
],
setName
:
[
{
required
:
true
,
message
:
'数据集名称不能为空'
,
trigger
:
'blur'
}
]
},
// 状态数据字典
statusOptions
:
[],
// 数据源数据字典
sourceOptions
:
[],
// 解析字段
columns
:
[],
columnList
:
[],
dimensionList
:
[],
measureList
:
[],
drawer
:
false
,
previewData
:
{
dataList
:
[],
columnList
:
[],
pageNum
:
1
,
pageSize
:
20
,
dataTotal
:
0
}
}
},
created
()
{
this
.
getDicts
(
'sys_common_status'
).
then
(
response
=>
{
if
(
response
.
success
)
{
this
.
statusOptions
=
response
.
data
}
})
this
.
getDataSourceList
()
},
methods
:
{
showCard
()
{
this
.
$emit
(
'showCard'
,
this
.
showOptions
)
},
getDataSourceList
()
{
listDataSource
().
then
(
response
=>
{
if
(
response
.
success
)
{
this
.
sourceOptions
=
response
.
data
}
})
},
// 绑定编辑器value值的变化
changeTextarea
(
val
)
{
this
.
$set
(
this
.
form
,
'setSql'
,
val
)
},
formaterSql
()
{
if
(
!
this
.
form
.
setSql
)
{
return
}
this
.
$refs
.
sqleditor
.
editor
.
setValue
(
sqlFormatter
.
format
(
this
.
$refs
.
sqleditor
.
editor
.
getValue
()))
},
analyseSql
()
{
if
(
!
this
.
form
.
setSql
)
{
return
}
let
data
=
{}
data
.
sqlText
=
this
.
form
.
setSql
sqlAnalyse
(
data
).
then
(
response
=>
{
if
(
response
.
success
)
{
this
.
columns
=
response
.
data
this
.
columnList
=
this
.
columns
.
map
(
function
(
item
)
{
let
json
=
{}
json
.
col
=
item
json
.
alias
=
''
return
json
})
this
.
dimensionList
=
[]
this
.
measureList
=
[]
}
})
},
handleDimensionTagClose
(
index
,
tag
)
{
this
.
dimensionList
.
splice
(
index
,
1
)
tag
.
alias
=
''
this
.
columnList
.
push
(
tag
)
},
handleMeasureTagClose
(
index
,
tag
)
{
this
.
measureList
.
splice
(
index
,
1
)
tag
.
alias
=
''
this
.
columnList
.
push
(
tag
)
},
handleTagLabel
(
index
,
tag
)
{
this
.
$set
(
tag
,
'input'
,
true
)
},
handleDelTagLabel
(
index
,
tag
)
{
this
.
$delete
(
tag
,
'input'
)
},
dataPreview
()
{
if
(
!
this
.
form
.
sourceId
)
{
return
}
if
(
!
this
.
form
.
setSql
)
{
return
}
let
data
=
{}
data
.
dataSourceId
=
this
.
form
.
sourceId
data
.
sql
=
this
.
form
.
setSql
data
.
pageNum
=
this
.
previewData
.
pageNum
data
.
pageSize
=
this
.
previewData
.
pageSize
queryByPage
(
data
).
then
(
response
=>
{
if
(
response
.
success
)
{
const
{
data
}
=
response
let
dataList
=
data
.
data
||
[]
let
columnList
=
[]
if
(
dataList
.
length
>
0
)
{
columnList
=
Object
.
keys
(
dataList
[
0
])
}
this
.
previewData
.
dataList
=
dataList
this
.
previewData
.
columnList
=
columnList
this
.
previewData
.
dataTotal
=
data
.
total
this
.
drawer
=
true
}
})
},
handleSizeChange
(
val
)
{
this
.
previewData
.
pageNum
=
1
this
.
previewData
.
pageSize
=
val
this
.
dataPreview
()
},
handleCurrentChange
(
val
)
{
this
.
previewData
.
pageNum
=
val
this
.
dataPreview
()
},
/** 提交按钮 */
submitForm
:
function
()
{
this
.
$refs
[
'form'
].
validate
(
valid
=>
{
if
(
valid
)
{
let
schema
=
{}
schema
.
columns
=
this
.
columns
||
[]
schema
.
dimensions
=
this
.
dimensionList
||
[]
schema
.
measures
=
this
.
measureList
||
[]
this
.
form
.
schemaConfig
=
schema
this
.
loadingOptions
.
loading
=
true
this
.
loadingOptions
.
loadingText
=
'保存中...'
this
.
loadingOptions
.
isDisabled
=
true
addDataSet
(
this
.
form
).
then
(
response
=>
{
if
(
response
.
success
)
{
this
.
$message
.
success
(
'保存成功'
)
setTimeout
(()
=>
{
// 2秒后跳转列表页
this
.
$emit
(
'showCard'
,
this
.
showOptions
)
},
2000
)
}
else
{
this
.
$message
.
error
(
'保存失败'
)
this
.
loadingOptions
.
loading
=
false
this
.
loadingOptions
.
loadingText
=
'保存'
this
.
loadingOptions
.
isDisabled
=
false
}
}).
catch
(
error
=>
{
this
.
$message
.
error
(
error
.
data
.
msg
||
'保存失败'
)
this
.
loadingOptions
.
loading
=
false
this
.
loadingOptions
.
loadingText
=
'保存'
this
.
loadingOptions
.
isDisabled
=
false
})
}
})
}
}
}
</
script
>
<
style
lang=
"scss"
scoped
>
.draggable-tag
{
margin
:
10px
;
cursor
:
move
;
}
.draggable-item
{
cursor
:
move
;
margin
:
5px
5px
;
display
:
inline-block
;
border
:
1px
solid
#ebecef
;
height
:
32px
;
line-height
:
30px
;
border-radius
:
4px
;
.draggable-item-handle
{
background-color
:
#ecf5ff
;
border-color
:
#d9ecff
;
display
:
inline-block
;
height
:
32px
;
padding
:
0
10px
;
line-height
:
30px
;
font-size
:
12px
;
color
:
#409EFF
;
border-width
:
1px
;
border-style
:
solid
;
box-sizing
:
border-box
;
white-space
:
nowrap
;
cursor
:
pointer
;
margin-left
:
-5px
;
}
}
</
style
>
datax-ui/src/views/visual/dataset/DataSetDetail.vue
0 → 100644
View file @
9579d532
<
template
>
<div>
<el-card
class=
"box-card"
shadow=
"always"
>
<div
slot=
"header"
class=
"clearfix"
>
<span>
{{
title
}}
</span>
<el-button-group
style=
"float: right;"
>
<el-button
size=
"mini"
icon=
"el-icon-s-data"
round
@
click=
"dataPreview"
>
数据预览
</el-button>
<el-button
size=
"mini"
icon=
"el-icon-back"
round
@
click=
"showCard"
>
返回
</el-button>
</el-button-group>
</div>
<div
:style=
"classCardbody"
>
<el-form
ref=
"form"
:model=
"form"
label-width=
"80px"
disabled
>
<el-form-item
label=
"数据源"
prop=
"sourceId"
>
<el-select
v-model=
"form.sourceId"
placeholder=
"请选择数据源"
>
<el-option
v-for=
"source in sourceOptions"
:key=
"source.id"
:label=
"source.sourceName"
:value=
"source.id"
:disabled=
"source.status === '0'"
></el-option>
</el-select>
</el-form-item>
<el-form-item
label=
"数据集名称"
prop=
"setName"
>
<el-input
v-model=
"form.setName"
placeholder=
"请输入数据集名称"
/>
</el-form-item>
<el-divider
content-position=
"left"
>
数据集
</el-divider>
<el-row>
<el-col
:span=
"24"
style=
"padding: 0 20px;"
>
<sql-editor
ref=
"sqleditor"
:value=
"form.setSql"
:readOnly=
"true"
style=
"height: 300px;"
></sql-editor>
</el-col>
</el-row>
<el-divider
content-position=
"left"
>
数据模型定义
</el-divider>
<el-row
style=
"height: 300px;padding: 0 20px;"
>
<el-col
:span=
"12"
style=
"border: 1px dashed #999;height: 100%;"
>
<div
class=
"tag-group"
>
<el-tag
v-for=
"(item, index) in columnList"
:key=
"index"
class=
"draggable-tag"
>
{{
item
.
col
}}
</el-tag>
</div>
</el-col>
<el-col
:span=
"12"
style=
"box-shadow: 0 0 1px 1px #ccc;height: 100%;"
>
<el-row>
<el-divider
content-position=
"left"
>
维度列
</el-divider>
<el-col>
<div
style=
"height: 90px; border: 1px dashed #999; margin: 0 10px;"
>
<el-tag
v-for=
"(item, index) in dimensionList"
:key=
"index"
class=
"draggable-item"
>
{{
item
.
alias
?
item
.
alias
+
'('
+
item
.
col
+
')'
:
item
.
col
}}
</el-tag>
</div>
</el-col>
</el-row>
<el-row>
<el-divider
content-position=
"left"
>
指标列
</el-divider>
<el-col>
<div
style=
"height: 90px; border: 1px dashed #999; margin: 0 10px;"
>
<el-tag
v-for=
"(item, index) in measureList"
:key=
"index"
class=
"draggable-item"
>
{{
item
.
alias
?
item
.
alias
+
'('
+
item
.
col
+
')'
:
item
.
col
}}
</el-tag>
</div>
</el-col>
</el-row>
</el-col>
</el-row>
<el-form-item
label=
"状态"
prop=
"status"
>
<el-radio-group
v-model=
"form.status"
>
<el-radio
v-for=
"dict in statusOptions"
:key=
"dict.id"
:label=
"dict.itemText"
>
{{
dict
.
itemValue
}}
</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item
label=
"备注"
prop=
"remark"
>
<el-input
v-model=
"form.remark"
type=
"textarea"
placeholder=
"请输入内容"
/>
</el-form-item>
</el-form>
<el-drawer
:visible
.
sync=
"drawer"
direction=
"btt"
:with-header=
"false"
>
<el-table
:data=
"previewData.dataList"
stripe
border
:max-height=
"200"
style=
"width: 100%; margin: 15px 0;"
>
<el-table-column
label=
"序号"
width=
"55"
align=
"center"
>
<template
slot-scope=
"scope"
>
<span>
{{
scope
.
$index
+
1
}}
</span>
</
template
>
</el-table-column>
<
template
v-for=
"(column, index) in previewData.columnList"
>
<el-table-column
:prop=
"column"
:label=
"column"
:key=
"index"
align=
"center"
show-overflow-tooltip
/>
</
template
>
</el-table>
<el-pagination
:page-sizes=
"[10, 20, 50, 100]"
layout=
"total, sizes, prev, pager, next, jumper"
@
size-change=
"handleSizeChange"
@
current-change=
"handleCurrentChange"
:current-page
.
sync=
"previewData.pageNum"
:page-size
.
sync=
"previewData.pageSize"
:total=
"previewData.dataTotal"
></el-pagination>
</el-drawer>
</div>
</el-card>
</div>
</template>
<
script
>
import
{
getDataSet
}
from
'@/api/visual/dataset'
import
{
listDataSource
,
queryByPage
}
from
'@/api/factory/datasource'
import
SqlEditor
from
'@/components/SqlEditor'
export
default
{
name
:
'DataSetDetail'
,
components
:
{
SqlEditor
},
props
:
{
data
:
{
type
:
Object
,
default
:
function
()
{
return
{}
}
}
},
data
()
{
return
{
classCardbody
:
{
overflow
:
'auto'
,
height
:
document
.
body
.
offsetHeight
-
240
+
'px'
},
title
:
'数据集详情'
,
// 展示切换
showOptions
:
{
data
:
{},
showList
:
true
,
showAdd
:
false
,
showEdit
:
false
,
showDetail
:
false
},
// 表单参数
form
:
{},
// 状态数据字典
statusOptions
:
[],
// 数据源数据字典
sourceOptions
:
[],
// 解析字段
columns
:
[],
columnList
:
[],
dimensionList
:
[],
measureList
:
[],
drawer
:
false
,
previewData
:
{
dataList
:
[],
columnList
:
[],
pageNum
:
1
,
pageSize
:
20
,
dataTotal
:
0
}
}
},
created
()
{
console
.
log
(
'id:'
+
this
.
data
.
id
)
this
.
getDicts
(
'sys_common_status'
).
then
(
response
=>
{
if
(
response
.
success
)
{
this
.
statusOptions
=
response
.
data
}
})
this
.
getDataSourceList
()
},
mounted
()
{
this
.
getDataSet
(
this
.
data
.
id
)
},
methods
:
{
showCard
()
{
this
.
$emit
(
'showCard'
,
this
.
showOptions
)
},
getDataSourceList
()
{
listDataSource
().
then
(
response
=>
{
if
(
response
.
success
)
{
this
.
sourceOptions
=
response
.
data
}
})
},
/** 获取详情 */
getDataSet
:
function
(
id
)
{
getDataSet
(
id
).
then
(
response
=>
{
if
(
response
.
success
)
{
this
.
form
=
response
.
data
this
.
columns
=
this
.
form
.
schemaConfig
.
columns
||
[]
if
(
this
.
columns
&&
this
.
columns
.
length
>
0
)
{
this
.
dimensionList
=
this
.
form
.
schemaConfig
.
dimensions
||
[]
this
.
measureList
=
this
.
form
.
schemaConfig
.
measures
||
[]
this
.
columnList
=
this
.
columns
.
filter
(
x
=>
[...
this
.
dimensionList
,
...
this
.
measureList
].
every
(
y
=>
y
.
col
!==
x
)).
map
(
function
(
item
)
{
let
json
=
{}
json
.
col
=
item
json
.
alias
=
''
return
json
})
}
this
.
$refs
.
sqleditor
.
editor
.
setValue
(
this
.
form
.
setSql
)
}
})
},
dataPreview
()
{
if
(
!
this
.
form
.
sourceId
)
{
return
}
if
(
!
this
.
form
.
setSql
)
{
return
}
let
data
=
{}
data
.
dataSourceId
=
this
.
form
.
sourceId
data
.
sql
=
this
.
form
.
setSql
data
.
pageNum
=
this
.
previewData
.
pageNum
data
.
pageSize
=
this
.
previewData
.
pageSize
queryByPage
(
data
).
then
(
response
=>
{
if
(
response
.
success
)
{
const
{
data
}
=
response
let
dataList
=
data
.
data
||
[]
let
columnList
=
[]
if
(
dataList
.
length
>
0
)
{
columnList
=
Object
.
keys
(
dataList
[
0
])
}
this
.
previewData
.
dataList
=
dataList
this
.
previewData
.
columnList
=
columnList
this
.
previewData
.
dataTotal
=
data
.
total
this
.
drawer
=
true
}
})
},
handleSizeChange
(
val
)
{
this
.
previewData
.
pageNum
=
1
this
.
previewData
.
pageSize
=
val
this
.
dataPreview
()
},
handleCurrentChange
(
val
)
{
this
.
previewData
.
pageNum
=
val
this
.
dataPreview
()
}
}
}
</
script
>
<
style
lang=
"scss"
scoped
>
.draggable-tag
{
margin
:
10px
;
cursor
:
move
;
}
.draggable-item
{
cursor
:
move
;
margin
:
5px
5px
;
display
:
inline-block
;
border
:
1px
solid
#ebecef
;
height
:
32px
;
line-height
:
30px
;
border-radius
:
4px
;
.draggable-item-handle
{
background-color
:
#ecf5ff
;
border-color
:
#d9ecff
;
display
:
inline-block
;
height
:
32px
;
padding
:
0
10px
;
line-height
:
30px
;
font-size
:
12px
;
color
:
#409EFF
;
border-width
:
1px
;
border-style
:
solid
;
box-sizing
:
border-box
;
white-space
:
nowrap
;
cursor
:
pointer
;
margin-left
:
-5px
;
}
}
</
style
>
datax-ui/src/views/visual/dataset/DataSetEdit.vue
0 → 100644
View file @
9579d532
<
template
>
<div>
<el-card
class=
"box-card"
shadow=
"always"
>
<div
slot=
"header"
class=
"clearfix"
>
<span>
{{
title
}}
</span>
<el-button-group
style=
"float: right;"
>
<el-button
size=
"mini"
icon=
"el-icon-plus"
round
@
click=
"submitForm"
:loading=
"loadingOptions.loading"
:disabled=
"loadingOptions.isDisabled"
>
{{
loadingOptions
.
loadingText
}}
</el-button>
<el-button
size=
"mini"
icon=
"el-icon-back"
round
@
click=
"showCard"
>
返回
</el-button>
</el-button-group>
</div>
<div
:style=
"classCardbody"
>
<el-form
ref=
"form"
:model=
"form"
:rules=
"rules"
label-width=
"80px"
>
<el-form-item
label=
"数据源"
prop=
"sourceId"
>
<el-select
v-model=
"form.sourceId"
placeholder=
"请选择数据源"
>
<el-option
v-for=
"source in sourceOptions"
:key=
"source.id"
:label=
"source.sourceName"
:value=
"source.id"
:disabled=
"source.status === '0'"
></el-option>
</el-select>
</el-form-item>
<el-form-item
label=
"数据集名称"
prop=
"setName"
>
<el-input
v-model=
"form.setName"
placeholder=
"请输入数据集名称"
/>
</el-form-item>
<el-divider
content-position=
"left"
>
数据集
</el-divider>
<el-row
style=
"padding: 0 20px;"
>
<el-col
:span=
"24"
>
<sql-editor
ref=
"sqleditor"
:value=
"form.setSql"
@
changeTextarea=
"changeTextarea($event)"
style=
"height: 300px;"
></sql-editor>
</el-col>
</el-row>
<el-form-item>
<el-button
size=
"mini"
type=
"primary"
@
click=
"formaterSql"
>
Sql格式化
</el-button>
<el-button
size=
"mini"
type=
"primary"
@
click=
"analyseSql"
>
Sql解析
</el-button>
<el-button
size=
"mini"
type=
"primary"
@
click=
"dataPreview"
>
数据预览
</el-button>
</el-form-item>
<el-divider
content-position=
"left"
>
数据模型定义
</el-divider>
<el-row
style=
"height: 300px;padding: 0 20px;"
>
<el-col
:span=
"12"
style=
"border: 1px dashed #999;height: 100%;"
>
<div
class=
"tag-group"
>
<draggable
v-model=
"columnList"
:options=
"
{sort: false, group: {name: 'col', pull: true, put: false}}">
<el-tag
v-for=
"(item, index) in columnList"
:key=
"index"
class=
"draggable-tag"
>
{{
item
.
col
}}
</el-tag>
</draggable>
</div>
</el-col>
<el-col
:span=
"12"
style=
"box-shadow: 0 0 1px 1px #ccc;height: 100%;"
>
<el-row>
<el-divider
content-position=
"left"
>
维度列
</el-divider>
<el-col>
<div
style=
"height: 90px; border: 1px dashed #999; margin: 0 10px;"
>
<draggable
group=
"col"
:list=
"dimensionList"
>
<div
v-for=
"(item, index) in dimensionList"
:key=
"index"
class=
"draggable-item"
>
<el-tag>
{{
item
.
alias
?
item
.
alias
+
'('
+
item
.
col
+
')'
:
item
.
col
}}
</el-tag>
<span
class=
"draggable-item-handle"
v-if=
"item.input"
>
<el-input
size=
"mini"
placeholder=
"请输入内容"
v-model=
"item.alias"
@
blur=
"handleDelTagLabel(index, item)"
>
</el-input>
</span>
<span
class=
"draggable-item-handle"
v-else
@
click=
"handleTagLabel(index, item)"
><i
class=
"el-icon-edit-outline"
></i></span>
<span
class=
"draggable-item-handle"
@
click=
"handleDimensionTagClose(index, item)"
><i
class=
"el-icon-delete"
></i></span>
</div>
</draggable>
</div>
</el-col>
</el-row>
<el-row>
<el-divider
content-position=
"left"
>
指标列
</el-divider>
<el-col>
<div
style=
"height: 90px; border: 1px dashed #999; margin: 0 10px;"
>
<draggable
group=
"col"
:list=
"measureList"
>
<div
v-for=
"(item, index) in measureList"
:key=
"index"
class=
"draggable-item"
>
<el-tag>
{{
item
.
alias
?
item
.
alias
+
'('
+
item
.
col
+
')'
:
item
.
col
}}
</el-tag>
<span
class=
"draggable-item-handle"
v-if=
"item.input"
>
<el-input
size=
"mini"
placeholder=
"请输入内容"
v-model=
"item.alias"
@
blur=
"handleDelTagLabel(index, item)"
>
</el-input>
</span>
<span
class=
"draggable-item-handle"
v-else
@
click=
"handleTagLabel(index, item)"
><i
class=
"el-icon-edit-outline"
></i></span>
<span
class=
"draggable-item-handle"
@
click=
"handleMeasureTagClose(index, item)"
><i
class=
"el-icon-delete"
></i></span>
</div>
</draggable>
</div>
</el-col>
</el-row>
</el-col>
</el-row>
<el-form-item
label=
"状态"
prop=
"status"
>
<el-radio-group
v-model=
"form.status"
>
<el-radio
v-for=
"dict in statusOptions"
:key=
"dict.id"
:label=
"dict.itemText"
>
{{
dict
.
itemValue
}}
</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item
label=
"备注"
prop=
"remark"
>
<el-input
v-model=
"form.remark"
type=
"textarea"
placeholder=
"请输入内容"
/>
</el-form-item>
</el-form>
<el-drawer
:visible
.
sync=
"drawer"
direction=
"btt"
:with-header=
"false"
>
<el-table
:data=
"previewData.dataList"
stripe
border
:max-height=
"200"
style=
"width: 100%; margin: 15px 0;"
>
<el-table-column
label=
"序号"
width=
"55"
align=
"center"
>
<template
slot-scope=
"scope"
>
<span>
{{
scope
.
$index
+
1
}}
</span>
</
template
>
</el-table-column>
<
template
v-for=
"(column, index) in previewData.columnList"
>
<el-table-column
:prop=
"column"
:label=
"column"
:key=
"index"
align=
"center"
show-overflow-tooltip
/>
</
template
>
</el-table>
<el-pagination
:page-sizes=
"[10, 20, 50, 100]"
layout=
"total, sizes, prev, pager, next, jumper"
@
size-change=
"handleSizeChange"
@
current-change=
"handleCurrentChange"
:current-page
.
sync=
"previewData.pageNum"
:page-size
.
sync=
"previewData.pageSize"
:total=
"previewData.dataTotal"
></el-pagination>
</el-drawer>
</div>
</el-card>
</div>
</template>
<
script
>
import
{
getDataSet
,
updateDataSet
,
sqlAnalyse
}
from
'@/api/factory/dataset'
import
{
listDataSource
,
queryByPage
}
from
'@/api/factory/datasource'
import
sqlFormatter
from
'sql-formatter'
import
SqlEditor
from
'@/components/SqlEditor'
import
draggable
from
'vuedraggable'
export
default
{
name
:
'DataSetEdit'
,
components
:
{
SqlEditor
,
draggable
},
props
:
{
data
:
{
type
:
Object
,
default
:
function
()
{
return
{}
}
}
},
data
()
{
return
{
classCardbody
:
{
overflow
:
'auto'
,
height
:
document
.
body
.
offsetHeight
-
240
+
'px'
},
title
:
'数据集编辑'
,
// 展示切换
showOptions
:
{
data
:
{},
showList
:
true
,
showAdd
:
false
,
showEdit
:
false
,
showDetail
:
false
},
// 保存按钮
loadingOptions
:
{
loading
:
false
,
loadingText
:
'保存'
,
isDisabled
:
false
},
// 表单参数
form
:
{},
// 表单校验
rules
:
{
sourceId
:
[
{
required
:
true
,
message
:
'数据源不能为空'
,
trigger
:
'change'
}
],
setName
:
[
{
required
:
true
,
message
:
'数据集名称不能为空'
,
trigger
:
'blur'
}
]
},
// 状态数据字典
statusOptions
:
[],
// 数据源数据字典
sourceOptions
:
[],
// 解析字段
columns
:
[],
columnList
:
[],
dimensionList
:
[],
measureList
:
[],
drawer
:
false
,
previewData
:
{
dataList
:
[],
columnList
:
[],
pageNum
:
1
,
pageSize
:
20
,
dataTotal
:
0
}
}
},
created
()
{
console
.
log
(
'id:'
+
this
.
data
.
id
)
this
.
getDicts
(
'sys_common_status'
).
then
(
response
=>
{
if
(
response
.
success
)
{
this
.
statusOptions
=
response
.
data
}
})
this
.
getDataSourceList
()
},
mounted
()
{
this
.
getDataSet
(
this
.
data
.
id
)
},
methods
:
{
showCard
()
{
this
.
$emit
(
'showCard'
,
this
.
showOptions
)
},
getDataSourceList
()
{
listDataSource
().
then
(
response
=>
{
if
(
response
.
success
)
{
this
.
sourceOptions
=
response
.
data
}
})
},
/** 获取详情 */
getDataSet
:
function
(
id
)
{
getDataSet
(
id
).
then
(
response
=>
{
if
(
response
.
success
)
{
this
.
form
=
response
.
data
this
.
columns
=
this
.
form
.
schemaConfig
.
columns
||
[]
if
(
this
.
columns
&&
this
.
columns
.
length
>
0
)
{
this
.
dimensionList
=
this
.
form
.
schemaConfig
.
dimensions
||
[]
this
.
measureList
=
this
.
form
.
schemaConfig
.
measures
||
[]
this
.
columnList
=
this
.
columns
.
filter
(
x
=>
[...
this
.
dimensionList
,
...
this
.
measureList
].
every
(
y
=>
y
.
col
!==
x
)).
map
(
function
(
item
)
{
let
json
=
{}
json
.
col
=
item
json
.
alias
=
''
return
json
})
}
this
.
$refs
.
sqleditor
.
editor
.
setValue
(
this
.
form
.
setSql
)
}
})
},
// 绑定编辑器value值的变化
changeTextarea
(
val
)
{
this
.
$set
(
this
.
form
,
'setSql'
,
val
)
},
formaterSql
()
{
this
.
$refs
.
sqleditor
.
editor
.
setValue
(
sqlFormatter
.
format
(
this
.
$refs
.
sqleditor
.
editor
.
getValue
()))
},
analyseSql
()
{
if
(
!
this
.
form
.
setSql
)
{
return
}
let
data
=
{}
data
.
sqlText
=
this
.
form
.
setSql
sqlAnalyse
(
data
).
then
(
response
=>
{
if
(
response
.
success
)
{
this
.
columns
=
response
.
data
this
.
columnList
=
this
.
columns
.
map
(
function
(
item
)
{
let
json
=
{}
json
.
col
=
item
json
.
alias
=
''
return
json
})
this
.
dimensionList
=
[]
this
.
measureList
=
[]
}
})
},
handleDimensionTagClose
(
index
,
tag
)
{
this
.
dimensionList
.
splice
(
index
,
1
)
tag
.
alias
=
''
this
.
columnList
.
push
(
tag
)
},
handleMeasureTagClose
(
index
,
tag
)
{
this
.
measureList
.
splice
(
index
,
1
)
tag
.
alias
=
''
this
.
columnList
.
push
(
tag
)
},
handleTagLabel
(
index
,
tag
)
{
this
.
$set
(
tag
,
'input'
,
true
)
},
handleDelTagLabel
(
index
,
tag
)
{
this
.
$delete
(
tag
,
'input'
)
},
dataPreview
()
{
if
(
!
this
.
form
.
sourceId
)
{
return
}
if
(
!
this
.
form
.
setSql
)
{
return
}
let
data
=
{}
data
.
dataSourceId
=
this
.
form
.
sourceId
data
.
sql
=
this
.
form
.
setSql
data
.
pageNum
=
this
.
previewData
.
pageNum
data
.
pageSize
=
this
.
previewData
.
pageSize
queryByPage
(
data
).
then
(
response
=>
{
if
(
response
.
success
)
{
const
{
data
}
=
response
let
dataList
=
data
.
data
||
[]
let
columnList
=
[]
if
(
dataList
.
length
>
0
)
{
columnList
=
Object
.
keys
(
dataList
[
0
])
}
this
.
previewData
.
dataList
=
dataList
this
.
previewData
.
columnList
=
columnList
this
.
previewData
.
dataTotal
=
data
.
total
this
.
drawer
=
true
}
})
},
handleSizeChange
(
val
)
{
this
.
previewData
.
pageNum
=
1
this
.
previewData
.
pageSize
=
val
this
.
dataPreview
()
},
handleCurrentChange
(
val
)
{
this
.
previewData
.
pageNum
=
val
this
.
dataPreview
()
},
/** 提交按钮 */
submitForm
:
function
()
{
this
.
$refs
[
'form'
].
validate
(
valid
=>
{
if
(
valid
)
{
let
schema
=
{}
schema
.
columns
=
this
.
columns
||
[]
schema
.
dimensions
=
this
.
dimensionList
||
[]
schema
.
measures
=
this
.
measureList
||
[]
this
.
form
.
schemaConfig
=
schema
this
.
loadingOptions
.
loading
=
true
this
.
loadingOptions
.
loadingText
=
'保存中...'
this
.
loadingOptions
.
isDisabled
=
true
updateDataSet
(
this
.
form
).
then
(
response
=>
{
if
(
response
.
success
)
{
this
.
$message
.
success
(
'保存成功'
)
setTimeout
(()
=>
{
// 2秒后跳转列表页
this
.
$emit
(
'showCard'
,
this
.
showOptions
)
},
2000
)
}
else
{
this
.
$message
.
error
(
'保存失败'
)
this
.
loadingOptions
.
loading
=
false
this
.
loadingOptions
.
loadingText
=
'保存'
this
.
loadingOptions
.
isDisabled
=
false
}
}).
catch
(
error
=>
{
this
.
$message
.
error
(
error
.
data
.
msg
||
'保存失败'
)
this
.
loadingOptions
.
loading
=
false
this
.
loadingOptions
.
loadingText
=
'保存'
this
.
loadingOptions
.
isDisabled
=
false
})
}
})
}
}
}
</
script
>
<
style
lang=
"scss"
scoped
>
.draggable-tag
{
margin
:
10px
;
cursor
:
move
;
}
.draggable-item
{
cursor
:
move
;
margin
:
5px
5px
;
display
:
inline-block
;
border
:
1px
solid
#ebecef
;
height
:
32px
;
line-height
:
30px
;
border-radius
:
4px
;
.draggable-item-handle
{
background-color
:
#ecf5ff
;
border-color
:
#d9ecff
;
display
:
inline-block
;
height
:
32px
;
padding
:
0
10px
;
line-height
:
30px
;
font-size
:
12px
;
color
:
#409EFF
;
border-width
:
1px
;
border-style
:
solid
;
box-sizing
:
border-box
;
white-space
:
nowrap
;
cursor
:
pointer
;
margin-left
:
-5px
;
}
}
</
style
>
datax-ui/src/views/visual/dataset/DataSetList.vue
0 → 100644
View file @
9579d532
<
template
>
<div>
<el-card
class=
"box-card"
shadow=
"always"
>
<el-form
:model=
"queryParams"
ref=
"queryForm"
:inline=
"true"
>
<el-form-item
label=
"数据集名称"
prop=
"setName"
>
<el-input
v-model=
"queryParams.setName"
placeholder=
"请输入数据集名称"
clearable
size=
"small"
@
keyup
.
enter
.
native=
"handleQuery"
/>
</el-form-item>
<el-form-item>
<el-button
type=
"primary"
icon=
"el-icon-search"
size=
"mini"
@
click=
"handleQuery"
>
搜索
</el-button>
<el-button
icon=
"el-icon-refresh"
size=
"mini"
@
click=
"resetQuery"
>
重置
</el-button>
</el-form-item>
</el-form>
<el-row
type=
"flex"
justify=
"space-between"
>
<el-col
:span=
"12"
>
<el-button-group>
<el-button
type=
"primary"
icon=
"el-icon-plus"
size=
"mini"
@
click=
"handleAdd"
v-hasPerm=
"['factory:dataset:add']"
>
新增
</el-button>
<el-button
type=
"success"
icon=
"el-icon-edit-outline"
size=
"mini"
:disabled=
"single"
@
click=
"handleEdit"
v-hasPerm=
"['factory:dataset:edit']"
>
修改
</el-button>
<el-button
type=
"info"
icon=
"el-icon-view"
size=
"mini"
:disabled=
"single"
@
click=
"handleDetail"
v-hasPerm=
"['factory:dataset:detail']"
>
详情
</el-button>
<el-button
type=
"danger"
icon=
"el-icon-delete"
size=
"mini"
:disabled=
"multiple"
@
click=
"handleBatchDelete"
v-hasPerm=
"['factory:dataset:remove']"
>
删除
</el-button>
</el-button-group>
</el-col>
<el-col
:span=
"12"
>
<div
class=
"right-toolbar"
>
<el-tooltip
content=
"密度"
effect=
"dark"
placement=
"top"
>
<el-dropdown
trigger=
"click"
@
command=
"handleCommand"
>
<el-button
circle
size=
"mini"
>
<svg-icon
class-name=
"size-icon"
icon-class=
"colum-height"
/>
</el-button>
<el-dropdown-menu
slot=
"dropdown"
>
<el-dropdown-item
command=
"medium"
>
正常
</el-dropdown-item>
<el-dropdown-item
command=
"small"
>
中等
</el-dropdown-item>
<el-dropdown-item
command=
"mini"
>
紧凑
</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
</el-tooltip>
<el-tooltip
content=
"刷新"
effect=
"dark"
placement=
"top"
>
<el-button
circle
size=
"mini"
@
click=
"handleRefresh"
>
<svg-icon
class-name=
"size-icon"
icon-class=
"shuaxin"
/>
</el-button>
</el-tooltip>
<el-tooltip
content=
"列设置"
effect=
"dark"
placement=
"top"
>
<el-popover
placement=
"bottom"
width=
"100"
trigger=
"click"
>
<el-checkbox-group
v-model=
"checkedTableColumns"
@
change=
"handleCheckedColsChange"
>
<el-checkbox
v-for=
"(item, index) in tableColumns"
:key=
"index"
:label=
"item.prop"
>
{{
item
.
label
}}
</el-checkbox>
</el-checkbox-group>
<span
slot=
"reference"
>
<el-button
circle
size=
"mini"
>
<svg-icon
class-name=
"size-icon"
icon-class=
"shezhi"
/>
</el-button>
</span>
</el-popover>
</el-tooltip>
</div>
</el-col>
</el-row>
<el-table
v-loading=
"loading"
:data=
"dataSetList"
@
selection-change=
"handleSelectionChange"
border
tooltip-effect=
"dark"
:size=
"tableSize"
:height=
"tableHeight"
style=
"width: 100%;margin: 15px 0;"
>
<el-table-column
type=
"selection"
width=
"55"
align=
"center"
/>
<el-table-column
label=
"序号"
width=
"55"
align=
"center"
>
<template
slot-scope=
"scope"
>
<span>
{{
scope
.
$index
+
1
}}
</span>
</
template
>
</el-table-column>
<
template
v-for=
"(item, index) in tableColumns"
>
<el-table-column
v-if=
"item.show"
:prop=
"item.prop"
:label=
"item.label"
:key=
"index"
:formatter=
"item.formatter"
align=
"center"
show-overflow-tooltip
/>
</
template
>
<el-table-column
label=
"操作"
align=
"center"
class-name=
"small-padding fixed-width"
>
<
template
slot-scope=
"scope"
>
<el-popover
placement=
"left"
trigger=
"click"
>
<el-button
size=
"mini"
type=
"text"
icon=
"el-icon-edit-outline"
@
click=
"handleEdit(scope.row)"
v-hasPerm=
"['factory:dataset:edit']"
>
修改
</el-button>
<el-button
size=
"mini"
type=
"text"
icon=
"el-icon-view"
@
click=
"handleDetail(scope.row)"
v-hasPerm=
"['factory:dataset:detail']"
>
详情
</el-button>
<el-button
size=
"mini"
type=
"text"
icon=
"el-icon-delete"
@
click=
"handleDelete(scope.row)"
v-hasPerm=
"['factory:dataset:remove']"
>
删除
</el-button>
<el-button
slot=
"reference"
>
操作
</el-button>
</el-popover>
</
template
>
</el-table-column>
</el-table>
<el-pagination
:page-sizes=
"[10, 20, 50, 100]"
layout=
"total, sizes, prev, pager, next, jumper"
@
size-change=
"handleSizeChange"
@
current-change=
"handleCurrentChange"
:current-page
.
sync=
"queryParams.pageNum"
:page-size
.
sync=
"queryParams.pageSize"
:total=
"total"
></el-pagination>
</el-card>
</div>
</template>
<
script
>
import
{
pageDataSet
,
delDataSet
,
delDataSets
}
from
'@/api/visual/dataset'
export
default
{
name
:
'DataSetList'
,
data
()
{
return
{
tableHeight
:
document
.
body
.
offsetHeight
-
340
+
'px'
,
// 展示切换
showOptions
:
{
data
:
{},
showList
:
true
,
showAdd
:
false
,
showEdit
:
false
,
showDetail
:
false
},
// 遮罩层
loading
:
true
,
// 选中数组
ids
:
[],
// 非单个禁用
single
:
true
,
// 非多个禁用
multiple
:
true
,
// 表格头
tableColumns
:
[
{
prop
:
'setName'
,
label
:
'数据集名称'
,
show
:
true
},
{
prop
:
'status'
,
label
:
'状态'
,
show
:
true
,
formatter
:
this
.
statusFormatter
},
{
prop
:
'createTime'
,
label
:
'创建时间'
,
show
:
true
}
],
// 默认选择中表格头
checkedTableColumns
:
[],
tableSize
:
'medium'
,
// 状态数据字典
statusOptions
:
[],
// 数据集表格数据
dataSetList
:
[],
// 总数据条数
total
:
0
,
// 查询参数
queryParams
:
{
pageNum
:
1
,
pageSize
:
20
,
setName
:
''
}
}
},
created
()
{
this
.
getDicts
(
'sys_common_status'
).
then
(
response
=>
{
if
(
response
.
success
)
{
this
.
statusOptions
=
response
.
data
}
})
this
.
getList
()
},
mounted
()
{
this
.
initCols
()
},
methods
:
{
/** 查询数据集列表 */
getList
()
{
this
.
loading
=
true
pageDataSet
(
this
.
queryParams
).
then
(
response
=>
{
this
.
loading
=
false
if
(
response
.
success
)
{
const
{
data
}
=
response
this
.
dataSetList
=
data
.
data
this
.
total
=
data
.
total
}
})
},
initCols
()
{
this
.
checkedTableColumns
=
this
.
tableColumns
.
map
(
col
=>
col
.
prop
)
},
handleCheckedColsChange
(
val
)
{
this
.
tableColumns
.
forEach
(
col
=>
{
if
(
!
this
.
checkedTableColumns
.
includes
(
col
.
prop
))
{
col
.
show
=
false
}
else
{
col
.
show
=
true
}
})
},
handleCommand
(
command
)
{
this
.
tableSize
=
command
},
/** 搜索按钮操作 */
handleQuery
()
{
this
.
queryParams
.
pageNum
=
1
this
.
getList
()
},
/** 重置按钮操作 */
resetQuery
()
{
this
.
$refs
[
'queryForm'
].
resetFields
()
this
.
handleQuery
()
},
/** 刷新列表 */
handleRefresh
()
{
this
.
getList
()
},
/** 多选框选中数据 */
handleSelectionChange
(
selection
)
{
this
.
ids
=
selection
.
map
(
item
=>
item
.
id
)
this
.
single
=
selection
.
length
!==
1
this
.
multiple
=
!
selection
.
length
},
/** 新增按钮操作 */
handleAdd
()
{
this
.
showOptions
.
data
=
{}
this
.
showOptions
.
showList
=
false
this
.
showOptions
.
showAdd
=
true
this
.
showOptions
.
showEdit
=
false
this
.
showOptions
.
showDetail
=
false
this
.
$emit
(
'showCard'
,
this
.
showOptions
)
},
/** 修改按钮操作 */
handleEdit
(
row
)
{
this
.
showOptions
.
data
.
id
=
row
.
id
||
this
.
ids
[
0
]
this
.
showOptions
.
showList
=
false
this
.
showOptions
.
showAdd
=
false
this
.
showOptions
.
showEdit
=
true
this
.
showOptions
.
showDetail
=
false
this
.
$emit
(
'showCard'
,
this
.
showOptions
)
},
/** 详情按钮操作 */
handleDetail
(
row
)
{
this
.
showOptions
.
data
.
id
=
row
.
id
||
this
.
ids
[
0
]
this
.
showOptions
.
showList
=
false
this
.
showOptions
.
showAdd
=
false
this
.
showOptions
.
showEdit
=
false
this
.
showOptions
.
showDetail
=
true
this
.
$emit
(
'showCard'
,
this
.
showOptions
)
},
/** 删除按钮操作 */
handleDelete
(
row
)
{
this
.
$confirm
(
'选中数据将被永久删除, 是否继续?'
,
'提示'
,
{
confirmButtonText
:
'确定'
,
cancelButtonText
:
'取消'
,
type
:
'warning'
}).
then
(()
=>
{
delDataSet
(
row
.
id
)
}).
then
(()
=>
{
this
.
$message
.
success
(
'删除成功'
)
this
.
getList
()
}).
catch
(()
=>
{
})
},
/** 批量删除按钮操作 */
handleBatchDelete
()
{
if
(
!
this
.
ids
.
length
)
{
this
.
$message
({
message
:
'请先选择需要操作的数据'
,
type
:
'warning'
})
}
this
.
$message
.
warning
(
'不支持批量删除'
)
},
handleSizeChange
(
val
)
{
console
.
log
(
`每页
${
val
}
条`
)
this
.
queryParams
.
pageNum
=
1
this
.
queryParams
.
pageSize
=
val
this
.
getList
()
},
handleCurrentChange
(
val
)
{
console
.
log
(
`当前页:
${
val
}
`
)
this
.
queryParams
.
pageNum
=
val
this
.
getList
()
},
statusFormatter
(
row
,
column
,
cellValue
,
index
)
{
let
dictLabel
=
this
.
selectDictLabel
(
this
.
statusOptions
,
cellValue
)
if
(
cellValue
===
'1'
)
{
return
<
el
-
tag
type
=
"success"
>
{
dictLabel
}
<
/el-tag
>
}
else
{
return
<
el
-
tag
type
=
"warning"
>
{
dictLabel
}
<
/el-tag
>
}
}
}
}
</
script
>
<
style
lang=
"scss"
scoped
>
.right-toolbar
{
float
:
right
;
}
</
style
>
datax-ui/src/views/visual/dataset/index.vue
0 → 100644
View file @
9579d532
<
template
>
<div
class=
"app-container"
>
<transition
name=
"el-zoom-in-center"
>
<data-set-list
v-if=
"options.showList"
@
showCard=
"showCard"
></data-set-list>
</transition>
<transition
name=
"el-zoom-in-top"
>
<data-set-add
v-if=
"options.showAdd"
:data=
"options.data"
@
showCard=
"showCard"
></data-set-add>
</transition>
<transition
name=
"el-zoom-in-top"
>
<data-set-edit
v-if=
"options.showEdit"
:data=
"options.data"
@
showCard=
"showCard"
></data-set-edit>
</transition>
<transition
name=
"el-zoom-in-bottom"
>
<data-set-detail
v-if=
"options.showDetail"
:data=
"options.data"
@
showCard=
"showCard"
></data-set-detail>
</transition>
</div>
</
template
>
<
script
>
import
DataSetList
from
'./DataSetList'
import
DataSetAdd
from
'./DataSetAdd'
import
DataSetEdit
from
'./DataSetEdit'
import
DataSetDetail
from
'./DataSetDetail'
export
default
{
name
:
'DataSet'
,
components
:
{
DataSetList
,
DataSetAdd
,
DataSetEdit
,
DataSetDetail
},
data
()
{
return
{
options
:
{
data
:
{},
showList
:
true
,
showAdd
:
false
,
showEdit
:
false
,
showDetail
:
false
}
}
},
methods
:
{
showCard
(
data
)
{
Object
.
assign
(
this
.
options
,
data
)
}
}
}
</
script
>
<
style
lang=
"scss"
scoped
>
</
style
>
pom.xml
View file @
9579d532
...
@@ -57,7 +57,6 @@
...
@@ -57,7 +57,6 @@
<jasperreports.version>
6.12.2
</jasperreports.version>
<jasperreports.version>
6.12.2
</jasperreports.version>
<mybatis-spring.version>
2.1.2
</mybatis-spring.version>
<mybatis-spring.version>
2.1.2
</mybatis-spring.version>
<bitwalker.version>
1.21
</bitwalker.version>
<bitwalker.version>
1.21
</bitwalker.version>
<xstream.vsersion>
1.4.12
</xstream.vsersion>
</properties>
</properties>
<modules>
<modules>
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment