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
cc3a7120
Commit
cc3a7120
authored
Mar 17, 2020
by
yuwei
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
项目初始化
parent
9dfaf2b4
Hide whitespace changes
Inline
Side-by-side
Showing
74 changed files
with
589 additions
and
310 deletions
+589
-310
RestTemplateConfig.java
.../main/java/cn/datax/common/config/RestTemplateConfig.java
+1
-1
SpringContextHolder.java
.../main/java/cn/datax/common/utils/SpringContextHolder.java
+13
-0
ValidateGroupForUpdate.java
...java/cn/datax/common/validate/ValidateGroupForUpdate.java
+0
-4
ValidationGroups.java
.../main/java/cn/datax/common/validate/ValidationGroups.java
+5
-1
spring.factories
...-common-core/src/main/resources/META-INF/spring.factories
+5
-0
DbDialect.java
...ase/src/main/java/cn/datax/common/database/DbDialect.java
+1
-23
DbQuery.java
...abase/src/main/java/cn/datax/common/database/DbQuery.java
+0
-22
DbType.java
.../main/java/cn/datax/common/database/constants/DbType.java
+2
-18
AbstractDataSourceFactory.java
...common/database/datasource/AbstractDataSourceFactory.java
+4
-0
CacheDataSourceFactoryBean.java
...ommon/database/datasource/CacheDataSourceFactoryBean.java
+36
-3
AbstractDbDialect.java
...a/cn/datax/common/database/dialect/AbstractDbDialect.java
+6
-21
DialectRegistry.java
...ava/cn/datax/common/database/dialect/DialectRegistry.java
+7
-0
MariaDBDialect.java
...java/cn/datax/common/database/dialect/MariaDBDialect.java
+10
-0
MySqlDialect.java
...n/java/cn/datax/common/database/dialect/MySqlDialect.java
+1
-1
Oracle12cDialect.java
...va/cn/datax/common/database/dialect/Oracle12cDialect.java
+17
-0
OracleDialect.java
.../java/cn/datax/common/database/dialect/OracleDialect.java
+45
-0
PostgreDialect.java
...java/cn/datax/common/database/dialect/PostgreDialect.java
+59
-0
SQLServer2005Dialect.java
...n/datax/common/database/dialect/SQLServer2005Dialect.java
+80
-0
SQLServerDialect.java
...va/cn/datax/common/database/dialect/SQLServerDialect.java
+17
-0
UnknownDialect.java
...java/cn/datax/common/database/dialect/UnknownDialect.java
+39
-0
AbstractDbQuery.java
.../java/cn/datax/common/database/query/AbstractDbQuery.java
+1
-20
MariaDBQuery.java
...ain/java/cn/datax/common/database/query/MariaDBQuery.java
+4
-0
Oracle12cQuery.java
...n/java/cn/datax/common/database/query/Oracle12cQuery.java
+4
-0
OracleQuery.java
...main/java/cn/datax/common/database/query/OracleQuery.java
+4
-0
PostgreQuery.java
...ain/java/cn/datax/common/database/query/PostgreQuery.java
+4
-0
QueryRegistry.java
...in/java/cn/datax/common/database/query/QueryRegistry.java
+7
-0
SQLServer2005Query.java
...va/cn/datax/common/database/query/SQLServer2005Query.java
+4
-0
SQLServerQuery.java
...n/java/cn/datax/common/database/query/SQLServerQuery.java
+4
-0
UnknownQuery.java
...ain/java/cn/datax/common/database/query/UnknownQuery.java
+4
-0
LogAspect.java
.../src/main/java/cn/datax/common/log/aspectj/LogAspect.java
+5
-7
AutoConfiguration.java
...in/java/cn/datax/common/log/config/AutoConfiguration.java
+4
-1
LogAsyncConfig.java
.../main/java/cn/datax/common/log/config/LogAsyncConfig.java
+0
-33
LogEvent.java
...log/src/main/java/cn/datax/common/log/event/LogEvent.java
+17
-0
LogListener.java
.../src/main/java/cn/datax/common/log/event/LogListener.java
+16
-14
SelectListDataScope.java
.../common/mybatis/injector/methods/SelectListDataScope.java
+1
-1
SelectPageDataScope.java
.../common/mybatis/injector/methods/SelectPageDataScope.java
+1
-1
DataInner.java
...n/java/cn/datax/common/security/annotation/DataInner.java
+3
-0
EnableDataFeignClients.java
...ax/common/security/annotation/EnableDataFeignClients.java
+22
-0
DataAuthExceptionConfiguration.java
...ommon/security/config/DataAuthExceptionConfiguration.java
+1
-0
DataOAuth2FeignConfiguration.java
.../common/security/config/DataOAuth2FeignConfiguration.java
+1
-0
DataSecurityInnerAspect.java
...datax/common/security/config/DataSecurityInnerAspect.java
+3
-0
DataServerProtectConfiguration.java
...ommon/security/config/DataServerProtectConfiguration.java
+1
-0
DataFeignRequestInterceptor.java
...ax/common/security/feign/DataFeignRequestInterceptor.java
+8
-3
DataAccessDeniedHandler.java
...atax/common/security/handler/DataAccessDeniedHandler.java
+1
-1
DataAuthExceptionEntryPoint.java
.../common/security/handler/DataAuthExceptionEntryPoint.java
+1
-1
DataServerProtectInterceptor.java
...on/security/interceptor/DataServerProtectInterceptor.java
+1
-1
DataUserAuthenticationConverter.java
...ommon/security/utils/DataUserAuthenticationConverter.java
+3
-0
DataSourceDto.java
.../cn/datax/service/data/factory/api/dto/DataSourceDto.java
+5
-6
DbSchemaDto.java
...va/cn/datax/service/data/factory/api/dto/DbSchemaDto.java
+4
-5
pom.xml
.../data-factory-service-parent/data-factory-service/pom.xml
+5
-5
DataFactoryApplication.java
...cn/datax/service/data/factory/DataFactoryApplication.java
+4
-6
DataSourceController.java
...service/data/factory/controller/DataSourceController.java
+6
-6
DataSourceService.java
...datax/service/data/factory/service/DataSourceService.java
+2
-2
DataSourceServiceImpl.java
...vice/data/factory/service/impl/DataSourceServiceImpl.java
+9
-2
FileController.java
...java/cn/datax/service/file/controller/FileController.java
+0
-3
DeptDto.java
...rc/main/java/cn/datax/service/system/api/dto/DeptDto.java
+5
-6
MenuDto.java
...rc/main/java/cn/datax/service/system/api/dto/MenuDto.java
+6
-7
PostDto.java
...rc/main/java/cn/datax/service/system/api/dto/PostDto.java
+3
-4
RoleDto.java
...rc/main/java/cn/datax/service/system/api/dto/RoleDto.java
+6
-7
UserDto.java
...rc/main/java/cn/datax/service/system/api/dto/UserDto.java
+11
-12
LogServiceFeignFallbackFactory.java
...tem/api/feign/factory/LogServiceFeignFallbackFactory.java
+3
-1
UserServiceFeignFallbackFactory.java
...em/api/feign/factory/UserServiceFeignFallbackFactory.java
+3
-1
LogServiceFeignFallbackImpl.java
...ystem/api/feign/fallback/LogServiceFeignFallbackImpl.java
+6
-4
UserServiceFeignFallbackImpl.java
...stem/api/feign/fallback/UserServiceFeignFallbackImpl.java
+6
-4
spring.factories
...-service-api/src/main/resources/META-INF/spring.factories
+5
-0
DataxSystemApplication.java
.../java/cn/datax/service/system/DataxSystemApplication.java
+2
-4
DeptController.java
...va/cn/datax/service/system/controller/DeptController.java
+3
-4
MenuController.java
...va/cn/datax/service/system/controller/MenuController.java
+3
-4
PostController.java
...va/cn/datax/service/system/controller/PostController.java
+3
-4
RoleController.java
...va/cn/datax/service/system/controller/RoleController.java
+3
-4
UserController.java
...va/cn/datax/service/system/controller/UserController.java
+3
-4
controller.java.vm
...l-codegen/src/main/resources/templates/controller.java.vm
+3
-13
dto.java.vm
...tax-tool-codegen/src/main/resources/templates/dto.java.vm
+2
-3
pom.xml
pom.xml
+5
-12
No files found.
datax-common/datax-common-
security/src/main/java/cn/datax/common/security/feign
/RestTemplateConfig.java
→
datax-common/datax-common-
core/src/main/java/cn/datax/common/config
/RestTemplateConfig.java
View file @
cc3a7120
package
cn
.
datax
.
common
.
security
.
feign
;
package
cn
.
datax
.
common
.
config
;
import
org.springframework.context.annotation.Bean
;
import
org.springframework.context.annotation.Bean
;
import
org.springframework.context.annotation.Configuration
;
import
org.springframework.context.annotation.Configuration
;
...
...
datax-common/datax-common-core/src/main/java/cn/datax/common/utils/SpringContextHolder.java
View file @
cc3a7120
...
@@ -5,6 +5,7 @@ import org.slf4j.LoggerFactory;
...
@@ -5,6 +5,7 @@ import org.slf4j.LoggerFactory;
import
org.springframework.beans.factory.DisposableBean
;
import
org.springframework.beans.factory.DisposableBean
;
import
org.springframework.context.ApplicationContext
;
import
org.springframework.context.ApplicationContext
;
import
org.springframework.context.ApplicationContextAware
;
import
org.springframework.context.ApplicationContextAware
;
import
org.springframework.context.ApplicationEvent
;
import
org.springframework.context.annotation.Lazy
;
import
org.springframework.context.annotation.Lazy
;
import
org.springframework.stereotype.Component
;
import
org.springframework.stereotype.Component
;
...
@@ -57,6 +58,18 @@ public class SpringContextHolder implements ApplicationContextAware, DisposableB
...
@@ -57,6 +58,18 @@ public class SpringContextHolder implements ApplicationContextAware, DisposableB
}
}
/**
/**
* 发布事件
*
* @param event
*/
public
static
void
publishEvent
(
ApplicationEvent
event
)
{
if
(
applicationContext
==
null
)
{
return
;
}
applicationContext
.
publishEvent
(
event
);
}
/**
* 实现DisposableBean接口, 在Context关闭时清理静态变量.
* 实现DisposableBean接口, 在Context关闭时清理静态变量.
*/
*/
@Override
@Override
...
...
datax-common/datax-common-core/src/main/java/cn/datax/common/validate/ValidateGroupForUpdate.java
deleted
100644 → 0
View file @
9dfaf2b4
package
cn
.
datax
.
common
.
validate
;
public
interface
ValidateGroupForUpdate
{
}
datax-common/datax-common-core/src/main/java/cn/datax/common/validate/Validat
eGroupForSave
.java
→
datax-common/datax-common-core/src/main/java/cn/datax/common/validate/Validat
ionGroups
.java
View file @
cc3a7120
package
cn
.
datax
.
common
.
validate
;
package
cn
.
datax
.
common
.
validate
;
public
interface
ValidateGroupForSave
{
public
class
ValidationGroups
{
public
interface
Insert
{};
public
interface
Update
{};
}
}
datax-common/datax-common-core/src/main/resources/META-INF/spring.factories
0 → 100644
View file @
cc3a7120
org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
cn.datax.common.config.JacksonConfig,\
cn.datax.common.config.RestTemplateConfig,\
cn.datax.common.exception.GlobalExceptionHandler,\
cn.datax.common.utils.SpringContextHolder
datax-common/datax-common-database/src/main/java/cn/datax/common/database/DbDialect.java
View file @
cc3a7120
...
@@ -14,20 +14,12 @@ public interface DbDialect {
...
@@ -14,20 +14,12 @@ public interface DbDialect {
RowMapper
<
DbColumn
>
rowMapper
();
RowMapper
<
DbColumn
>
rowMapper
();
/**
/**
* 使用数据库
*
* @param dbName
* @return
*/
String
useDatabase
(
String
dbName
);
/**
* 获取指定表的所有列
* 获取指定表的所有列
*
*
* @param tableName
* @param tableName
* @return
* @return
*/
*/
String
columns
(
String
dbName
,
String
tableName
);
String
columns
(
String
tableName
);
/**
/**
* 获取数据库下的 所有表
* 获取数据库下的 所有表
...
@@ -38,20 +30,6 @@ public interface DbDialect {
...
@@ -38,20 +30,6 @@ public interface DbDialect {
String
tables
(
String
dbName
);
String
tables
(
String
dbName
);
/**
/**
* 获取数据库版本
*
* @return
*/
String
version
();
/**
* 获取指定数据源具有的数据库
*
* @return
*/
String
database
();
/**
* 构建 分页 sql
* 构建 分页 sql
*
*
* @param sql
* @param sql
...
...
datax-common/datax-common-database/src/main/java/cn/datax/common/database/DbQuery.java
View file @
cc3a7120
...
@@ -21,26 +21,11 @@ public interface DbQuery {
...
@@ -21,26 +21,11 @@ public interface DbQuery {
boolean
valid
()
throws
SQLException
;
boolean
valid
()
throws
SQLException
;
/**
/**
* 使用其他数据库
*
* @param dbName
* @return
*/
void
useDatabase
(
String
dbName
);
/**
* 关闭数据源
* 关闭数据源
*/
*/
void
close
();
void
close
();
/**
/**
* 获取版本
*
* @return
*/
String
getVersion
();
/**
* 获取指定表 具有的所有字段列表
* 获取指定表 具有的所有字段列表
* @param dbName
* @param dbName
* @param tableName
* @param tableName
...
@@ -57,13 +42,6 @@ public interface DbQuery {
...
@@ -57,13 +42,6 @@ public interface DbQuery {
List
<
String
>
getTables
(
String
dbName
);
List
<
String
>
getTables
(
String
dbName
);
/**
/**
* 获取数据库列表
*
* @return
*/
List
<
String
>
getDatabases
();
/**
* 获取总数
* 获取总数
*
*
* @param sql
* @param sql
...
...
datax-common/datax-common-database/src/main/java/cn/datax/common/database/constants/DbType.java
View file @
cc3a7120
...
@@ -19,28 +19,12 @@ public enum DbType {
...
@@ -19,28 +19,12 @@ public enum DbType {
/**
/**
* ORACLE
* ORACLE
*/
*/
ORACLE
(
"oracle"
,
"Oracle11g及以下数据库
(高版本推荐使用ORACLE_NEW)
"
),
ORACLE
(
"oracle"
,
"Oracle11g及以下数据库"
),
/**
/**
* oracle12c new pagination
* oracle12c new pagination
*/
*/
ORACLE_12C
(
"oracle12c"
,
"Oracle12c+数据库"
),
ORACLE_12C
(
"oracle12c"
,
"Oracle12c+数据库"
),
/**
/**
* DB2
*/
DB2
(
"db2"
,
"DB2数据库"
),
/**
* H2
*/
H2
(
"h2"
,
"H2数据库"
),
/**
* HSQL
*/
HSQL
(
"hsql"
,
"HSQL数据库"
),
/**
* SQLITE
*/
SQLITE
(
"sqlite"
,
"SQLite数据库"
),
/**
* POSTGRE
* POSTGRE
*/
*/
POSTGRE_SQL
(
"postgresql"
,
"Postgre数据库"
),
POSTGRE_SQL
(
"postgresql"
,
"Postgre数据库"
),
...
@@ -51,7 +35,7 @@ public enum DbType {
...
@@ -51,7 +35,7 @@ public enum DbType {
/**
/**
* SQLSERVER
* SQLSERVER
*/
*/
SQL_SERVER
(
"sqlserver"
,
"SQLServer数据库"
),
SQL_SERVER
(
"sqlserver"
,
"SQLServer
2012+
数据库"
),
/**
/**
* UNKONWN DB
* UNKONWN DB
*/
*/
...
...
datax-common/datax-common-database/src/main/java/cn/datax/common/database/datasource/AbstractDataSourceFactory.java
View file @
cc3a7120
...
@@ -3,6 +3,7 @@ package cn.datax.common.database.datasource;
...
@@ -3,6 +3,7 @@ package cn.datax.common.database.datasource;
import
cn.datax.common.database.*
;
import
cn.datax.common.database.*
;
import
cn.datax.common.database.constants.DbQueryProperty
;
import
cn.datax.common.database.constants.DbQueryProperty
;
import
cn.datax.common.database.constants.DbType
;
import
cn.datax.common.database.constants.DbType
;
import
cn.datax.common.database.exception.DataQueryException
;
import
cn.datax.common.database.query.AbstractDbQuery
;
import
cn.datax.common.database.query.AbstractDbQuery
;
import
com.zaxxer.hikari.HikariDataSource
;
import
com.zaxxer.hikari.HikariDataSource
;
import
org.springframework.jdbc.core.JdbcTemplate
;
import
org.springframework.jdbc.core.JdbcTemplate
;
...
@@ -23,6 +24,9 @@ public abstract class AbstractDataSourceFactory implements DataSourceFactory {
...
@@ -23,6 +24,9 @@ public abstract class AbstractDataSourceFactory implements DataSourceFactory {
public
DbQuery
createDbQueryTemplate
(
DataSource
dataSource
,
DbType
dbType
)
{
public
DbQuery
createDbQueryTemplate
(
DataSource
dataSource
,
DbType
dbType
)
{
DbDialect
dbDialect
=
DialectFactory
.
getDialect
(
dbType
);
DbDialect
dbDialect
=
DialectFactory
.
getDialect
(
dbType
);
AbstractDbQuery
dbQuery
=
(
AbstractDbQuery
)
QueryFactory
.
getQuery
(
dbType
);
AbstractDbQuery
dbQuery
=
(
AbstractDbQuery
)
QueryFactory
.
getQuery
(
dbType
);
if
(
dbQuery
==
null
){
throw
new
DataQueryException
(
"该数据库类型正在开发中"
);
}
dbQuery
.
setDataSource
(
dataSource
);
dbQuery
.
setDataSource
(
dataSource
);
dbQuery
.
setJdbcTemplate
(
new
JdbcTemplate
(
dataSource
));
dbQuery
.
setJdbcTemplate
(
new
JdbcTemplate
(
dataSource
));
dbQuery
.
setDbDialect
(
dbDialect
);
dbQuery
.
setDbDialect
(
dbDialect
);
...
...
datax-common/datax-common-database/src/main/java/cn/datax/common/database/datasource/CacheDataSourceFactoryBean.java
View file @
cc3a7120
...
@@ -3,6 +3,8 @@ package cn.datax.common.database.datasource;
...
@@ -3,6 +3,8 @@ package cn.datax.common.database.datasource;
import
cn.datax.common.database.constants.DbQueryProperty
;
import
cn.datax.common.database.constants.DbQueryProperty
;
import
javax.sql.DataSource
;
import
javax.sql.DataSource
;
import
java.security.MessageDigest
;
import
java.security.NoSuchAlgorithmException
;
import
java.util.Map
;
import
java.util.Map
;
import
java.util.concurrent.ConcurrentHashMap
;
import
java.util.concurrent.ConcurrentHashMap
;
...
@@ -15,16 +17,47 @@ public class CacheDataSourceFactoryBean extends AbstractDataSourceFactory {
...
@@ -15,16 +17,47 @@ public class CacheDataSourceFactoryBean extends AbstractDataSourceFactory {
@Override
@Override
public
DataSource
createDataSource
(
DbQueryProperty
property
)
{
public
DataSource
createDataSource
(
DbQueryProperty
property
)
{
String
key
=
property
.
getJdbcUrl
();
String
key
=
property
.
getJdbcUrl
()
+
":"
+
property
.
getUsername
();
DataSource
dataSource
=
dataSourceMap
.
get
(
key
);
String
s
=
compress
(
key
);
DataSource
dataSource
=
dataSourceMap
.
get
(
s
);
if
(
null
==
dataSource
)
{
if
(
null
==
dataSource
)
{
synchronized
(
CacheDataSourceFactoryBean
.
class
)
{
synchronized
(
CacheDataSourceFactoryBean
.
class
)
{
if
(
null
==
dataSource
)
{
if
(
null
==
dataSource
)
{
dataSource
=
super
.
createDataSource
(
property
);
dataSource
=
super
.
createDataSource
(
property
);
dataSourceMap
.
put
(
key
,
dataSource
);
dataSourceMap
.
put
(
s
,
dataSource
);
}
}
}
}
}
}
return
dataSource
;
return
dataSource
;
}
}
// 压缩
public
static
String
compress
(
String
str
)
{
if
(
str
==
null
||
str
.
length
()
==
0
)
{
return
str
;
}
MessageDigest
md
=
null
;
try
{
md
=
MessageDigest
.
getInstance
(
"MD5"
);
}
catch
(
NoSuchAlgorithmException
e
)
{
e
.
printStackTrace
();
}
md
.
update
(
str
.
getBytes
());
byte
b
[]
=
md
.
digest
();
int
i
;
StringBuffer
buf
=
new
StringBuffer
(
""
);
for
(
int
offset
=
0
;
offset
<
b
.
length
;
offset
++)
{
i
=
b
[
offset
];
if
(
i
<
0
)
i
+=
256
;
if
(
i
<
16
)
buf
.
append
(
"0"
);
buf
.
append
(
Integer
.
toHexString
(
i
));
}
// System.out.println("MD5(" + str + ",32小写) = " + buf.toString());
// System.out.println("MD5(" + str + ",32大写) = " + buf.toString().toUpperCase());
// System.out.println("MD5(" + str + ",16小写) = " + buf.toString().substring(8, 24));
// System.out.println("MD5(" + str + ",16大写) = " + buf.toString().substring(8, 24).toUpperCase());
return
buf
.
toString
().
substring
(
8
,
24
).
toUpperCase
();
}
}
}
datax-common/datax-common-database/src/main/java/cn/datax/common/database/dialect/AbstractDbDialect.java
View file @
cc3a7120
...
@@ -3,7 +3,7 @@ package cn.datax.common.database.dialect;
...
@@ -3,7 +3,7 @@ package cn.datax.common.database.dialect;
import
cn.datax.common.database.DbDialect
;
import
cn.datax.common.database.DbDialect
;
/**
/**
*
表数据查询
抽象类
*
方言
抽象类
*
*
* @author yuwei
* @author yuwei
* @since 2020-03-14
* @since 2020-03-14
...
@@ -11,12 +11,7 @@ import cn.datax.common.database.DbDialect;
...
@@ -11,12 +11,7 @@ import cn.datax.common.database.DbDialect;
public
abstract
class
AbstractDbDialect
implements
DbDialect
{
public
abstract
class
AbstractDbDialect
implements
DbDialect
{
@Override
@Override
public
String
useDatabase
(
String
dbName
)
{
public
String
columns
(
String
tableName
)
{
return
"use `"
+
dbName
+
"`"
;
}
@Override
public
String
columns
(
String
dbName
,
String
tableName
)
{
return
"show columns from `"
+
tableName
+
"`;"
;
return
"show columns from `"
+
tableName
+
"`;"
;
}
}
...
@@ -26,21 +21,11 @@ public abstract class AbstractDbDialect implements DbDialect {
...
@@ -26,21 +21,11 @@ public abstract class AbstractDbDialect implements DbDialect {
}
}
@Override
@Override
public
String
version
()
{
public
String
buildPaginationSql
(
String
originalSql
,
long
offset
,
long
count
)
{
return
"SELECT VERSION()"
;
}
@Override
public
String
database
()
{
return
"show databases"
;
}
@Override
public
String
buildPaginationSql
(
String
sql
,
long
offset
,
long
count
)
{
// 获取 分页实际条数
// 获取 分页实际条数
StringBuilder
builder
=
new
StringBuilder
(
s
ql
);
StringBuilder
sqlBuilder
=
new
StringBuilder
(
originalS
ql
);
b
uilder
.
append
(
" LIMIT "
).
append
(
offset
).
append
(
" , "
).
append
(
count
);
sqlB
uilder
.
append
(
" LIMIT "
).
append
(
offset
).
append
(
" , "
).
append
(
count
);
return
b
uilder
.
toString
();
return
sqlB
uilder
.
toString
();
}
}
@Override
@Override
...
...
datax-common/datax-common-database/src/main/java/cn/datax/common/database/dialect/DialectRegistry.java
View file @
cc3a7120
...
@@ -11,7 +11,14 @@ public class DialectRegistry {
...
@@ -11,7 +11,14 @@ public class DialectRegistry {
private
final
Map
<
DbType
,
DbDialect
>
dialect_enum_map
=
new
EnumMap
<>(
DbType
.
class
);
private
final
Map
<
DbType
,
DbDialect
>
dialect_enum_map
=
new
EnumMap
<>(
DbType
.
class
);
public
DialectRegistry
()
{
public
DialectRegistry
()
{
dialect_enum_map
.
put
(
DbType
.
MARIADB
,
new
MariaDBDialect
());
dialect_enum_map
.
put
(
DbType
.
MYSQL
,
new
MySqlDialect
());
dialect_enum_map
.
put
(
DbType
.
MYSQL
,
new
MySqlDialect
());
dialect_enum_map
.
put
(
DbType
.
ORACLE_12C
,
new
Oracle12cDialect
());
dialect_enum_map
.
put
(
DbType
.
ORACLE
,
new
OracleDialect
());
dialect_enum_map
.
put
(
DbType
.
POSTGRE_SQL
,
new
PostgreDialect
());
dialect_enum_map
.
put
(
DbType
.
SQL_SERVER2005
,
new
SQLServer2005Dialect
());
dialect_enum_map
.
put
(
DbType
.
SQL_SERVER
,
new
SQLServerDialect
());
dialect_enum_map
.
put
(
DbType
.
OTHER
,
new
UnknownDialect
());
}
}
public
DbDialect
getDialect
(
DbType
dbType
)
{
public
DbDialect
getDialect
(
DbType
dbType
)
{
...
...
datax-common/datax-common-database/src/main/java/cn/datax/common/database/dialect/MariaDBDialect.java
0 → 100644
View file @
cc3a7120
package
cn
.
datax
.
common
.
database
.
dialect
;
/**
* MariaDB 数据库方言
*
* @author yuwei
* @since 2020-03-14
*/
public
class
MariaDBDialect
extends
MySqlDialect
{
}
datax-common/datax-common-database/src/main/java/cn/datax/common/database/dialect/MySqlDialect.java
View file @
cc3a7120
...
@@ -6,7 +6,7 @@ import org.springframework.jdbc.core.RowMapper;
...
@@ -6,7 +6,7 @@ import org.springframework.jdbc.core.RowMapper;
import
java.sql.ResultSet
;
import
java.sql.ResultSet
;
/**
/**
* MySql
表数据查询
* MySql
数据库方言
*
*
* @author yuwei
* @author yuwei
* @since 2020-03-14
* @since 2020-03-14
...
...
datax-common/datax-common-database/src/main/java/cn/datax/common/database/dialect/Oracle12cDialect.java
0 → 100644
View file @
cc3a7120
package
cn
.
datax
.
common
.
database
.
dialect
;
/**
* ORACLE Oracle12c+数据库方言
*
* @author yuwei
* @since 2020-03-14
*/
public
class
Oracle12cDialect
extends
OracleDialect
{
@Override
public
String
buildPaginationSql
(
String
originalSql
,
long
offset
,
long
count
)
{
StringBuilder
sqlBuilder
=
new
StringBuilder
(
originalSql
);
sqlBuilder
.
append
(
" OFFSET "
).
append
(
offset
).
append
(
" ROWS FETCH NEXT "
).
append
(
count
).
append
(
" ROWS ONLY "
);
return
sqlBuilder
.
toString
();
}
}
datax-common/datax-common-database/src/main/java/cn/datax/common/database/dialect/OracleDialect.java
0 → 100644
View file @
cc3a7120
package
cn
.
datax
.
common
.
database
.
dialect
;
import
cn.datax.common.database.core.DbColumn
;
import
org.springframework.jdbc.core.RowMapper
;
import
java.sql.ResultSet
;
/**
* Oracle Oracle11g及以下数据库方言
*
* @author yuwei
* @since 2020-03-14
*/
public
class
OracleDialect
extends
AbstractDbDialect
{
@Override
public
String
columns
(
String
tableName
)
{
return
"select * from user_tab_columns where table_name = '"
+
tableName
+
"' "
;
}
@Override
public
String
tables
(
String
dbName
)
{
return
"SELECT u.TABLE_NAME FROM user_tables u"
;
}
@Override
public
String
buildPaginationSql
(
String
originalSql
,
long
offset
,
long
count
)
{
StringBuilder
sqlBuilder
=
new
StringBuilder
();
sqlBuilder
.
append
(
"SELECT * FROM ( SELECT TMP.*, ROWNUM ROW_ID FROM ( "
);
sqlBuilder
.
append
(
originalSql
).
append
(
" ) TMP WHERE ROWNUM <="
).
append
((
offset
>=
1
)
?
(
offset
+
count
)
:
count
);
sqlBuilder
.
append
(
") WHERE ROW_ID > "
).
append
(
offset
);
return
sqlBuilder
.
toString
();
}
@Override
public
RowMapper
<
DbColumn
>
rowMapper
()
{
return
(
ResultSet
rs
,
int
rowNum
)
->
{
DbColumn
entity
=
new
DbColumn
();
entity
.
setName
(
rs
.
getString
(
"COLUMN_NAME"
));
entity
.
setType
(
rs
.
getString
(
"DATA_TYPE"
));
entity
.
setNullable
(
rs
.
getString
(
"NULLABLE"
));
return
entity
;
};
}
}
datax-common/datax-common-database/src/main/java/cn/datax/common/database/dialect/PostgreDialect.java
0 → 100644
View file @
cc3a7120
package
cn
.
datax
.
common
.
database
.
dialect
;
import
cn.datax.common.database.core.DbColumn
;
import
org.springframework.jdbc.core.RowMapper
;
import
java.sql.ResultSet
;
/**
* Postgre 数据库方言
*
* @author yuwei
* @since 2020-03-14
*/
public
class
PostgreDialect
extends
AbstractDbDialect
{
@Override
public
String
columns
(
String
tableName
)
{
String
sql
=
"SELECT a.attnum,\n"
+
"a.attname AS field,\n"
+
"t.typname AS type,\n"
+
"a.attlen AS length,\n"
+
"a.atttypmod AS lengthvar,\n"
+
"a.attnotnull AS notnull,\n"
+
"b.description AS comment\n"
+
"FROM pg_class c,\n"
+
"pg_attribute a\n"
+
"LEFT OUTER JOIN pg_description b ON a.attrelid=b.objoid AND a.attnum = b.objsubid,\n"
+
"pg_type t\n"
+
"WHERE c.relname = 'teble_a'\n"
+
"and a.attnum > 0\n"
+
"and a.attrelid = c.oid\n"
+
"and a.atttypid = t.oid\n"
+
"ORDER BY a.attnum;"
;
return
sql
;
}
@Override
public
String
tables
(
String
dbName
)
{
return
"select tablename from pg_tables WHERE schemaname = 'public' AND tableowner = '"
+
dbName
+
"'"
;
}
@Override
public
String
buildPaginationSql
(
String
originalSql
,
long
offset
,
long
count
)
{
StringBuilder
sqlBuilder
=
new
StringBuilder
(
originalSql
);
sqlBuilder
.
append
(
" LIMIT "
).
append
(
offset
).
append
(
" offset "
).
append
(
count
);
return
sqlBuilder
.
toString
();
}
@Override
public
RowMapper
<
DbColumn
>
rowMapper
()
{
return
(
ResultSet
rs
,
int
rowNum
)
->
{
DbColumn
entity
=
new
DbColumn
();
entity
.
setName
(
rs
.
getString
(
"field"
));
entity
.
setType
(
rs
.
getString
(
"type"
));
entity
.
setNullable
(
rs
.
getString
(
"notnull"
));
return
entity
;
};
}
}
datax-common/datax-common-database/src/main/java/cn/datax/common/database/dialect/SQLServer2005Dialect.java
0 → 100644
View file @
cc3a7120
package
cn
.
datax
.
common
.
database
.
dialect
;
import
cn.datax.common.database.core.DbColumn
;
import
org.springframework.jdbc.core.RowMapper
;
import
org.springframework.util.StringUtils
;
import
java.sql.ResultSet
;
/**
* SQLServer 2005 数据库方言
*
* @author yuwei
* @since 2020-03-14
*/
public
class
SQLServer2005Dialect
extends
AbstractDbDialect
{
@Override
public
String
columns
(
String
tableName
)
{
return
"sp_columns "
+
tableName
+
";"
;
}
@Override
public
String
tables
(
String
dbName
)
{
return
"SELECT Name FROM "
+
dbName
+
"..SysObjects Where XType='U' "
;
}
private
static
String
getOrderByPart
(
String
sql
)
{
String
loweredString
=
sql
.
toLowerCase
();
int
orderByIndex
=
loweredString
.
indexOf
(
"order by"
);
if
(
orderByIndex
!=
-
1
)
{
return
sql
.
substring
(
orderByIndex
);
}
else
{
return
""
;
}
}
@Override
public
String
buildPaginationSql
(
String
originalSql
,
long
offset
,
long
count
)
{
StringBuilder
pagingBuilder
=
new
StringBuilder
();
String
orderby
=
getOrderByPart
(
originalSql
);
String
distinctStr
=
""
;
String
loweredString
=
originalSql
.
toLowerCase
();
String
sqlPartString
=
originalSql
;
if
(
loweredString
.
trim
().
startsWith
(
"select"
))
{
int
index
=
6
;
if
(
loweredString
.
startsWith
(
"select distinct"
))
{
distinctStr
=
"DISTINCT "
;
index
=
15
;
}
sqlPartString
=
sqlPartString
.
substring
(
index
);
}
pagingBuilder
.
append
(
sqlPartString
);
// if no ORDER BY is specified use fake ORDER BY field to avoid errors
if
(
StringUtils
.
isEmpty
(
orderby
))
{
orderby
=
"ORDER BY CURRENT_TIMESTAMP"
;
}
StringBuilder
sql
=
new
StringBuilder
();
sql
.
append
(
"WITH selectTemp AS (SELECT "
).
append
(
distinctStr
).
append
(
"TOP 100 PERCENT "
)
.
append
(
" ROW_NUMBER() OVER ("
).
append
(
orderby
).
append
(
") as __row_number__, "
).
append
(
pagingBuilder
)
.
append
(
") SELECT * FROM selectTemp WHERE __row_number__ BETWEEN "
)
//FIX#299:原因:mysql中limit 10(offset,size) 是从第10开始(不包含10),;而这里用的BETWEEN是两边都包含,所以改为offset+1
.
append
(
offset
+
1
)
.
append
(
" AND "
)
.
append
(
offset
+
count
).
append
(
" ORDER BY __row_number__"
);
return
sql
.
toString
();
}
@Override
public
RowMapper
<
DbColumn
>
rowMapper
()
{
return
(
ResultSet
rs
,
int
rowNum
)
->
{
DbColumn
entity
=
new
DbColumn
();
entity
.
setName
(
rs
.
getString
(
"COLUMN_NAME"
));
entity
.
setType
(
rs
.
getString
(
"TYPE_NAME"
));
entity
.
setNullable
(
rs
.
getString
(
"IS_NULLABLE"
));
return
entity
;
};
}
}
datax-common/datax-common-database/src/main/java/cn/datax/common/database/dialect/SQLServerDialect.java
0 → 100644
View file @
cc3a7120
package
cn
.
datax
.
common
.
database
.
dialect
;
/**
* SQLServer 数据库方言
*
* @author yuwei
* @since 2020-03-14
*/
public
class
SQLServerDialect
extends
SQLServer2005Dialect
{
@Override
public
String
buildPaginationSql
(
String
originalSql
,
long
offset
,
long
count
)
{
StringBuilder
sqlBuilder
=
new
StringBuilder
(
originalSql
);
sqlBuilder
.
append
(
" OFFSET "
).
append
(
offset
).
append
(
" ROWS FETCH NEXT "
).
append
(
count
).
append
(
" ROWS ONLY "
);
return
sqlBuilder
.
toString
();
}
}
datax-common/datax-common-database/src/main/java/cn/datax/common/database/dialect/UnknownDialect.java
0 → 100644
View file @
cc3a7120
package
cn
.
datax
.
common
.
database
.
dialect
;
import
cn.datax.common.database.core.DbColumn
;
import
cn.datax.common.database.exception.DataQueryException
;
import
org.springframework.jdbc.core.RowMapper
;
/**
* 未知 数据库方言
*
* @author yuwei
* @since 2020-03-14
*/
public
class
UnknownDialect
extends
AbstractDbDialect
{
@Override
public
String
columns
(
String
tableName
)
{
throw
new
DataQueryException
(
"不支持的数据库类型"
);
}
@Override
public
String
tables
(
String
dbName
)
{
throw
new
DataQueryException
(
"不支持的数据库类型"
);
}
@Override
public
String
buildPaginationSql
(
String
sql
,
long
offset
,
long
count
)
{
throw
new
DataQueryException
(
"不支持的数据库类型"
);
}
@Override
public
String
count
(
String
sql
)
{
throw
new
DataQueryException
(
"不支持的数据库类型"
);
}
@Override
public
RowMapper
<
DbColumn
>
rowMapper
()
{
throw
new
DataQueryException
(
"不支持的数据库类型"
);
}
}
datax-common/datax-common-database/src/main/java/cn/datax/common/database/query/AbstractDbQuery.java
View file @
cc3a7120
...
@@ -35,12 +35,6 @@ public abstract class AbstractDbQuery implements DbQuery {
...
@@ -35,12 +35,6 @@ public abstract class AbstractDbQuery implements DbQuery {
}
}
@Override
@Override
public
void
useDatabase
(
String
dbName
)
{
String
sql
=
dbDialect
.
useDatabase
(
dbName
);
jdbcTemplate
.
execute
(
sql
);
}
@Override
public
void
close
()
{
public
void
close
()
{
if
(
dataSource
instanceof
HikariDataSource
)
{
if
(
dataSource
instanceof
HikariDataSource
)
{
((
HikariDataSource
)
dataSource
).
close
();
((
HikariDataSource
)
dataSource
).
close
();
...
@@ -50,28 +44,17 @@ public abstract class AbstractDbQuery implements DbQuery {
...
@@ -50,28 +44,17 @@ public abstract class AbstractDbQuery implements DbQuery {
}
}
@Override
@Override
public
String
getVersion
()
{
return
jdbcTemplate
.
queryForObject
(
dbDialect
.
version
(),
String
.
class
);
}
@Override
public
List
<
DbColumn
>
getTableColumns
(
String
dbName
,
String
tableName
)
{
public
List
<
DbColumn
>
getTableColumns
(
String
dbName
,
String
tableName
)
{
String
sql
=
dbDialect
.
columns
(
dbName
,
tableName
);
String
sql
=
dbDialect
.
columns
(
tableName
);
return
jdbcTemplate
.
query
(
sql
,
dbDialect
.
rowMapper
());
return
jdbcTemplate
.
query
(
sql
,
dbDialect
.
rowMapper
());
}
}
@Override
@Override
public
List
<
String
>
getTables
(
String
dbName
)
{
public
List
<
String
>
getTables
(
String
dbName
)
{
useDatabase
(
dbName
);
return
jdbcTemplate
.
queryForList
(
dbDialect
.
tables
(
dbName
),
String
.
class
);
return
jdbcTemplate
.
queryForList
(
dbDialect
.
tables
(
dbName
),
String
.
class
);
}
}
@Override
@Override
public
List
<
String
>
getDatabases
()
{
return
jdbcTemplate
.
queryForList
(
dbDialect
.
database
(),
String
.
class
);
}
@Override
public
int
count
(
String
sql
)
{
public
int
count
(
String
sql
)
{
return
jdbcTemplate
.
queryForObject
(
dbDialect
.
count
(
sql
),
Integer
.
class
);
return
jdbcTemplate
.
queryForObject
(
dbDialect
.
count
(
sql
),
Integer
.
class
);
}
}
...
@@ -84,10 +67,8 @@ public abstract class AbstractDbQuery implements DbQuery {
...
@@ -84,10 +67,8 @@ public abstract class AbstractDbQuery implements DbQuery {
@Override
@Override
public
PageResult
<
Map
<
String
,
Object
>>
queryByPage
(
String
sql
,
long
offset
,
long
size
)
{
public
PageResult
<
Map
<
String
,
Object
>>
queryByPage
(
String
sql
,
long
offset
,
long
size
)
{
int
total
=
count
(
sql
);
int
total
=
count
(
sql
);
String
pageSql
=
dbDialect
.
buildPaginationSql
(
sql
,
offset
,
size
);
String
pageSql
=
dbDialect
.
buildPaginationSql
(
sql
,
offset
,
size
);
List
<
Map
<
String
,
Object
>>
records
=
jdbcTemplate
.
queryForList
(
pageSql
);
List
<
Map
<
String
,
Object
>>
records
=
jdbcTemplate
.
queryForList
(
pageSql
);
return
new
PageResult
<>(
offset
,
size
,
total
,
records
);
return
new
PageResult
<>(
offset
,
size
,
total
,
records
);
}
}
}
}
datax-common/datax-common-database/src/main/java/cn/datax/common/database/query/MariaDBQuery.java
0 → 100644
View file @
cc3a7120
package
cn
.
datax
.
common
.
database
.
query
;
public
class
MariaDBQuery
extends
AbstractDbQuery
{
}
datax-common/datax-common-database/src/main/java/cn/datax/common/database/query/Oracle12cQuery.java
0 → 100644
View file @
cc3a7120
package
cn
.
datax
.
common
.
database
.
query
;
public
class
Oracle12cQuery
extends
AbstractDbQuery
{
}
datax-common/datax-common-database/src/main/java/cn/datax/common/database/query/OracleQuery.java
0 → 100644
View file @
cc3a7120
package
cn
.
datax
.
common
.
database
.
query
;
public
class
OracleQuery
extends
AbstractDbQuery
{
}
datax-common/datax-common-database/src/main/java/cn/datax/common/database/query/PostgreQuery.java
0 → 100644
View file @
cc3a7120
package
cn
.
datax
.
common
.
database
.
query
;
public
class
PostgreQuery
extends
AbstractDbQuery
{
}
datax-common/datax-common-database/src/main/java/cn/datax/common/database/query/QueryRegistry.java
View file @
cc3a7120
...
@@ -11,7 +11,14 @@ public class QueryRegistry {
...
@@ -11,7 +11,14 @@ public class QueryRegistry {
private
final
Map
<
DbType
,
DbQuery
>
query_enum_map
=
new
EnumMap
<>(
DbType
.
class
);
private
final
Map
<
DbType
,
DbQuery
>
query_enum_map
=
new
EnumMap
<>(
DbType
.
class
);
public
QueryRegistry
()
{
public
QueryRegistry
()
{
query_enum_map
.
put
(
DbType
.
MARIADB
,
new
MariaDBQuery
());
query_enum_map
.
put
(
DbType
.
MYSQL
,
new
MySqlQuery
());
query_enum_map
.
put
(
DbType
.
MYSQL
,
new
MySqlQuery
());
query_enum_map
.
put
(
DbType
.
ORACLE_12C
,
new
Oracle12cQuery
());
query_enum_map
.
put
(
DbType
.
ORACLE
,
new
OracleQuery
());
query_enum_map
.
put
(
DbType
.
POSTGRE_SQL
,
new
PostgreQuery
());
query_enum_map
.
put
(
DbType
.
SQL_SERVER2005
,
new
SQLServer2005Query
());
query_enum_map
.
put
(
DbType
.
SQL_SERVER
,
new
SQLServerQuery
());
query_enum_map
.
put
(
DbType
.
OTHER
,
new
UnknownQuery
());
}
}
public
DbQuery
getQuery
(
DbType
dbType
)
{
public
DbQuery
getQuery
(
DbType
dbType
)
{
...
...
datax-common/datax-common-database/src/main/java/cn/datax/common/database/query/SQLServer2005Query.java
0 → 100644
View file @
cc3a7120
package
cn
.
datax
.
common
.
database
.
query
;
public
class
SQLServer2005Query
extends
AbstractDbQuery
{
}
datax-common/datax-common-database/src/main/java/cn/datax/common/database/query/SQLServerQuery.java
0 → 100644
View file @
cc3a7120
package
cn
.
datax
.
common
.
database
.
query
;
public
class
SQLServerQuery
extends
AbstractDbQuery
{
}
datax-common/datax-common-database/src/main/java/cn/datax/common/database/query/UnknownQuery.java
0 → 100644
View file @
cc3a7120
package
cn
.
datax
.
common
.
database
.
query
;
public
class
UnknownQuery
extends
AbstractDbQuery
{
}
datax-common/datax-common-log/src/main/java/cn/datax/common/log/aspectj/LogAspect.java
View file @
cc3a7120
...
@@ -3,9 +3,10 @@ package cn.datax.common.log.aspectj;
...
@@ -3,9 +3,10 @@ package cn.datax.common.log.aspectj;
import
java.lang.reflect.Method
;
import
java.lang.reflect.Method
;
import
cn.datax.common.log.annotation.LogAop
;
import
cn.datax.common.log.annotation.LogAop
;
import
cn.datax.common.log.
async.AsyncTask
;
import
cn.datax.common.log.
event.LogEvent
;
import
cn.datax.common.utils.RequestHolder
;
import
cn.datax.common.utils.RequestHolder
;
import
cn.datax.common.utils.SecurityUtil
;
import
cn.datax.common.utils.SecurityUtil
;
import
cn.datax.common.utils.SpringContextHolder
;
import
cn.datax.service.system.api.dto.LogDto
;
import
cn.datax.service.system.api.dto.LogDto
;
import
cn.hutool.core.util.URLUtil
;
import
cn.hutool.core.util.URLUtil
;
import
cn.hutool.extra.servlet.ServletUtil
;
import
cn.hutool.extra.servlet.ServletUtil
;
...
@@ -19,7 +20,6 @@ import org.aspectj.lang.annotation.*;
...
@@ -19,7 +20,6 @@ import org.aspectj.lang.annotation.*;
import
org.aspectj.lang.reflect.MethodSignature
;
import
org.aspectj.lang.reflect.MethodSignature
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
javax.servlet.http.HttpServletRequest
;
import
javax.servlet.http.HttpServletRequest
;
...
@@ -27,9 +27,6 @@ import javax.servlet.http.HttpServletRequest;
...
@@ -27,9 +27,6 @@ import javax.servlet.http.HttpServletRequest;
@Aspect
@Aspect
public
class
LogAspect
{
public
class
LogAspect
{
@Autowired
private
AsyncTask
asyncTask
;
// 配置织入点
// 配置织入点
@Pointcut
(
"@annotation(cn.datax.common.log.annotation.LogAop)"
)
@Pointcut
(
"@annotation(cn.datax.common.log.annotation.LogAop)"
)
public
void
logPointCut
()
{}
public
void
logPointCut
()
{}
...
@@ -88,8 +85,9 @@ public class LogAspect {
...
@@ -88,8 +85,9 @@ public class LogAspect {
String
methodName
=
joinPoint
.
getSignature
().
getName
();
String
methodName
=
joinPoint
.
getSignature
().
getName
();
logDto
.
setModule
(
logAop
.
module
()).
setTitle
(
logAop
.
value
())
logDto
.
setModule
(
logAop
.
module
()).
setTitle
(
logAop
.
value
())
.
setClassName
(
className
).
setMethodName
(
methodName
);
.
setClassName
(
className
).
setMethodName
(
methodName
);
// 异步保存数据库
asyncTask
.
doTask
(
logDto
);
// 异步保存会造成DataFeignRequestInterceptor报错,后期采用kafka
SpringContextHolder
.
publishEvent
(
new
LogEvent
(
logDto
));
}
}
/**
/**
...
...
datax-common/datax-common-log/src/main/java/cn/datax/common/log/config/AutoConfiguration.java
View file @
cc3a7120
package
cn
.
datax
.
common
.
log
.
config
;
package
cn
.
datax
.
common
.
log
.
config
;
import
cn.datax.common.log.aspectj.LogAspect
;
import
cn.datax.common.log.aspectj.LogAspect
;
import
cn.datax.common.log.event.LogListener
;
import
org.springframework.context.annotation.ComponentScan
;
import
org.springframework.context.annotation.ComponentScan
;
import
org.springframework.context.annotation.Import
;
import
org.springframework.context.annotation.Import
;
/**
/**
* 扫描注入bean
* 扫描注入bean
*
* @author yuwei
* @author yuwei
* @since 2019/10/30
* @since 2019/10/30
*/
*/
@ComponentScan
({
"cn.datax.common.log"
})
@ComponentScan
({
"cn.datax.common.log"
})
@Import
({
LogAspect
.
class
,
Log
AsyncConfig
.
class
})
@Import
({
LogAspect
.
class
,
Log
Listener
.
class
})
public
class
AutoConfiguration
{
public
class
AutoConfiguration
{
}
}
datax-common/datax-common-log/src/main/java/cn/datax/common/log/config/LogAsyncConfig.java
deleted
100644 → 0
View file @
9dfaf2b4
package
cn
.
datax
.
common
.
log
.
config
;
import
java.util.concurrent.Executor
;
import
java.util.concurrent.ThreadPoolExecutor
;
import
org.springframework.context.annotation.Bean
;
import
org.springframework.scheduling.annotation.EnableAsync
;
import
org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor
;
@EnableAsync
public
class
LogAsyncConfig
{
private
static
int
corePoolSize
=
10
;
private
static
int
maxPoolSize
=
50
;
private
static
int
queueCapacity
=
100
;
@Bean
(
"dataLogExecutor"
)
public
Executor
dataLogExecutor
()
{
ThreadPoolTaskExecutor
executor
=
new
ThreadPoolTaskExecutor
();
executor
.
setCorePoolSize
(
corePoolSize
);
executor
.
setMaxPoolSize
(
maxPoolSize
);
executor
.
setQueueCapacity
(
queueCapacity
);
executor
.
setKeepAliveSeconds
(
60
);
executor
.
setThreadNamePrefix
(
"dataLogExecutor-"
);
executor
.
setWaitForTasksToCompleteOnShutdown
(
true
);
executor
.
setAwaitTerminationSeconds
(
60
);
executor
.
setRejectedExecutionHandler
(
new
ThreadPoolExecutor
.
CallerRunsPolicy
());
executor
.
initialize
();
return
executor
;
}
}
\ No newline at end of file
datax-common/datax-common-log/src/main/java/cn/datax/common/log/event/LogEvent.java
0 → 100644
View file @
cc3a7120
package
cn
.
datax
.
common
.
log
.
event
;
import
cn.datax.service.system.api.dto.LogDto
;
import
org.springframework.context.ApplicationEvent
;
/**
* 系统日志事件
*
* @author yuwei
* @since 2019/10/30
*/
public
class
LogEvent
extends
ApplicationEvent
{
public
LogEvent
(
LogDto
logDto
)
{
super
(
logDto
);
}
}
datax-common/datax-common-log/src/main/java/cn/datax/common/log/
async/AsyncTask
.java
→
datax-common/datax-common-log/src/main/java/cn/datax/common/log/
event/LogListener
.java
View file @
cc3a7120
package
cn
.
datax
.
common
.
log
.
async
;
package
cn
.
datax
.
common
.
log
.
event
;
import
cn.datax.service.system.api.dto.LogDto
;
import
cn.datax.service.system.api.dto.LogDto
;
import
cn.datax.service.system.api.feign.LogServiceFeign
;
import
cn.datax.service.system.api.feign.LogServiceFeign
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.scheduling.annotation.Async
;
import
org.springframework.stereotype.Component
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.context.event.EventListener
;
/**
* 异步监听日志事件
*
* @author yuwei
* @since 2019/10/30
*/
@Slf4j
@Slf4j
@Component
public
class
LogListener
{
public
class
AsyncTask
{
@Autowired
@Autowired
private
LogServiceFeign
logServiceFeign
;
private
LogServiceFeign
logServiceFeign
;
@Async
(
"dataLogExecutor"
)
@EventListener
(
LogEvent
.
class
)
public
void
doTask
(
LogDto
logDto
)
{
public
void
saveSysLog
(
LogEvent
event
)
{
log
.
info
(
"日志{}"
,
logDto
);
LogDto
logDto
=
(
LogDto
)
event
.
getSource
();
log
.
info
(
"日志{}"
,
logDto
);
logServiceFeign
.
saveLog
(
logDto
);
logServiceFeign
.
saveLog
(
logDto
);
}
}
}
}
\ No newline at end of file
datax-common/datax-common-mybatis/src/main/java/cn/datax/common/mybatis/injector/methods/SelectListDataScope.java
View file @
cc3a7120
...
@@ -14,7 +14,7 @@ public class SelectListDataScope extends AbstractMethod {
...
@@ -14,7 +14,7 @@ public class SelectListDataScope extends AbstractMethod {
@Override
@Override
public
MappedStatement
injectMappedStatement
(
Class
<?>
mapperClass
,
Class
<?>
modelClass
,
TableInfo
tableInfo
)
{
public
MappedStatement
injectMappedStatement
(
Class
<?>
mapperClass
,
Class
<?>
modelClass
,
TableInfo
tableInfo
)
{
SqlMethod
sqlMethod
=
SqlMethod
.
SELECT_LIST
;
SqlMethod
sqlMethod
=
SqlMethod
.
SELECT_LIST
;
String
sql
=
String
.
format
(
sqlMethod
.
getSql
(),
this
.
sqlSelectColumns
(
tableInfo
,
true
),
tableInfo
.
getTableName
(),
this
.
sqlWhereEntityWrapper
(
true
,
tableInfo
),
this
.
sqlComment
());
String
sql
=
String
.
format
(
sqlMethod
.
getSql
(),
this
.
sql
First
(),
this
.
sql
SelectColumns
(
tableInfo
,
true
),
tableInfo
.
getTableName
(),
this
.
sqlWhereEntityWrapper
(
true
,
tableInfo
),
this
.
sqlComment
());
SqlSource
sqlSource
=
this
.
languageDriver
.
createSqlSource
(
this
.
configuration
,
sql
,
modelClass
);
SqlSource
sqlSource
=
this
.
languageDriver
.
createSqlSource
(
this
.
configuration
,
sql
,
modelClass
);
return
this
.
addSelectMappedStatementForTable
(
mapperClass
,
"selectListDataScope"
,
sqlSource
,
tableInfo
);
return
this
.
addSelectMappedStatementForTable
(
mapperClass
,
"selectListDataScope"
,
sqlSource
,
tableInfo
);
}
}
...
...
datax-common/datax-common-mybatis/src/main/java/cn/datax/common/mybatis/injector/methods/SelectPageDataScope.java
View file @
cc3a7120
...
@@ -14,7 +14,7 @@ public class SelectPageDataScope extends AbstractMethod {
...
@@ -14,7 +14,7 @@ public class SelectPageDataScope extends AbstractMethod {
@Override
@Override
public
MappedStatement
injectMappedStatement
(
Class
<?>
mapperClass
,
Class
<?>
modelClass
,
TableInfo
tableInfo
)
{
public
MappedStatement
injectMappedStatement
(
Class
<?>
mapperClass
,
Class
<?>
modelClass
,
TableInfo
tableInfo
)
{
SqlMethod
sqlMethod
=
SqlMethod
.
SELECT_PAGE
;
SqlMethod
sqlMethod
=
SqlMethod
.
SELECT_PAGE
;
String
sql
=
String
.
format
(
sqlMethod
.
getSql
(),
this
.
sqlSelectColumns
(
tableInfo
,
true
),
tableInfo
.
getTableName
(),
this
.
sqlWhereEntityWrapper
(
true
,
tableInfo
),
this
.
sqlComment
());
String
sql
=
String
.
format
(
sqlMethod
.
getSql
(),
this
.
sql
First
(),
this
.
sql
SelectColumns
(
tableInfo
,
true
),
tableInfo
.
getTableName
(),
this
.
sqlWhereEntityWrapper
(
true
,
tableInfo
),
this
.
sqlComment
());
SqlSource
sqlSource
=
this
.
languageDriver
.
createSqlSource
(
this
.
configuration
,
sql
,
modelClass
);
SqlSource
sqlSource
=
this
.
languageDriver
.
createSqlSource
(
this
.
configuration
,
sql
,
modelClass
);
return
this
.
addSelectMappedStatementForTable
(
mapperClass
,
"selectPageDataScope"
,
sqlSource
,
tableInfo
);
return
this
.
addSelectMappedStatementForTable
(
mapperClass
,
"selectPageDataScope"
,
sqlSource
,
tableInfo
);
}
}
...
...
datax-common/datax-common-security/src/main/java/cn/datax/common/security/annotation/DataInner.java
View file @
cc3a7120
...
@@ -4,6 +4,9 @@ import java.lang.annotation.*;
...
@@ -4,6 +4,9 @@ import java.lang.annotation.*;
/**
/**
* 服务调用不鉴权注解
* 服务调用不鉴权注解
*
* @author yuwei
* @since 2019/10/30
*/
*/
@Target
({
ElementType
.
PARAMETER
,
ElementType
.
METHOD
})
@Target
({
ElementType
.
PARAMETER
,
ElementType
.
METHOD
})
@Retention
(
RetentionPolicy
.
RUNTIME
)
@Retention
(
RetentionPolicy
.
RUNTIME
)
...
...
datax-common/datax-common-security/src/main/java/cn/datax/common/security/annotation/EnableDataFeignClients.java
0 → 100644
View file @
cc3a7120
package
cn
.
datax
.
common
.
security
.
annotation
;
import
org.springframework.cloud.openfeign.EnableFeignClients
;
import
java.lang.annotation.*
;
@Target
(
ElementType
.
TYPE
)
@Retention
(
RetentionPolicy
.
RUNTIME
)
@Documented
@EnableFeignClients
public
@interface
EnableDataFeignClients
{
String
[]
value
()
default
{};
String
[]
basePackages
()
default
{
"cn.datax.service"
};
Class
<?>[]
basePackageClasses
()
default
{};
Class
<?>[]
defaultConfiguration
()
default
{};
Class
<?>[]
clients
()
default
{};
}
datax-common/datax-common-security/src/main/java/cn/datax/common/security/config/DataAuthExceptionConfiguration.java
View file @
cc3a7120
...
@@ -10,6 +10,7 @@ import org.springframework.context.annotation.ComponentScan;
...
@@ -10,6 +10,7 @@ import org.springframework.context.annotation.ComponentScan;
* 异常翻译配置
* 异常翻译配置
*
*
* @author yuwei
* @author yuwei
* @since 2019/10/30
*/
*/
@ComponentScan
({
"cn.datax.common.security.handler"
})
@ComponentScan
({
"cn.datax.common.security.handler"
})
public
class
DataAuthExceptionConfiguration
{
public
class
DataAuthExceptionConfiguration
{
...
...
datax-common/datax-common-security/src/main/java/cn/datax/common/security/config/DataOAuth2FeignConfiguration.java
View file @
cc3a7120
...
@@ -6,6 +6,7 @@ import org.springframework.context.annotation.ComponentScan;
...
@@ -6,6 +6,7 @@ import org.springframework.context.annotation.ComponentScan;
* OAuth2 Feign配置
* OAuth2 Feign配置
*
*
* @author yuwei
* @author yuwei
* @since 2019/10/30
*/
*/
@ComponentScan
({
"cn.datax.common.security.feign"
})
@ComponentScan
({
"cn.datax.common.security.feign"
})
public
class
DataOAuth2FeignConfiguration
{
public
class
DataOAuth2FeignConfiguration
{
...
...
datax-common/datax-common-security/src/main/java/cn/datax/common/security/config/DataSecurityInnerAspect.java
View file @
cc3a7120
...
@@ -10,6 +10,9 @@ import org.springframework.stereotype.Component;
...
@@ -10,6 +10,9 @@ import org.springframework.stereotype.Component;
/**
/**
* 服务间接口不鉴权处理逻辑
* 服务间接口不鉴权处理逻辑
*
* @author yuwei
* @since 2019/10/30
*/
*/
@Slf4j
@Slf4j
@Aspect
@Aspect
...
...
datax-common/datax-common-security/src/main/java/cn/datax/common/security/config/DataServerProtectConfiguration.java
View file @
cc3a7120
...
@@ -15,6 +15,7 @@ import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
...
@@ -15,6 +15,7 @@ import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
* 微服务防护配置
* 微服务防护配置
*
*
* @author yuwei
* @author yuwei
* @since 2019/10/30
*/
*/
@ComponentScan
({
"cn.datax.common.security.interceptor"
})
@ComponentScan
({
"cn.datax.common.security.interceptor"
})
@Import
({
DataServerProtectInterceptor
.
class
})
@Import
({
DataServerProtectInterceptor
.
class
})
...
...
datax-common/datax-common-security/src/main/java/cn/datax/common/security/feign/DataFeignRequestInterceptor.java
View file @
cc3a7120
package
cn
.
datax
.
common
.
security
.
feign
;
package
cn
.
datax
.
common
.
security
.
feign
;
import
cn.datax.common.core.DataConstant
;
import
cn.datax.common.core.DataConstant
;
import
com.google.common.net.HttpHeaders
;
import
feign.RequestInterceptor
;
import
feign.RequestInterceptor
;
import
org.springframework.context.annotation.Bean
;
import
org.springframework.context.annotation.Bean
;
import
org.springframework.context.annotation.Configuration
;
import
org.springframework.context.annotation.Configuration
;
...
@@ -9,6 +8,12 @@ import org.springframework.security.core.context.SecurityContextHolder;
...
@@ -9,6 +8,12 @@ import org.springframework.security.core.context.SecurityContextHolder;
import
org.springframework.security.oauth2.provider.authentication.OAuth2AuthenticationDetails
;
import
org.springframework.security.oauth2.provider.authentication.OAuth2AuthenticationDetails
;
import
org.springframework.util.Base64Utils
;
import
org.springframework.util.Base64Utils
;
/**
* 解决服务之间调用传递token问题
*
* @author yuwei
* @since 2019/10/30
*/
@Configuration
@Configuration
public
class
DataFeignRequestInterceptor
{
public
class
DataFeignRequestInterceptor
{
...
@@ -16,8 +21,8 @@ public class DataFeignRequestInterceptor {
...
@@ -16,8 +21,8 @@ public class DataFeignRequestInterceptor {
public
RequestInterceptor
oauth2FeignRequestInterceptor
()
{
public
RequestInterceptor
oauth2FeignRequestInterceptor
()
{
return
requestTemplate
->
{
return
requestTemplate
->
{
// 请求头中添加 Gateway Token
// 请求头中添加 Gateway Token
String
zuul
Token
=
new
String
(
Base64Utils
.
encode
(
DataConstant
.
Security
.
TOKENVALUE
.
getVal
().
getBytes
()));
String
gateway
Token
=
new
String
(
Base64Utils
.
encode
(
DataConstant
.
Security
.
TOKENVALUE
.
getVal
().
getBytes
()));
requestTemplate
.
header
(
DataConstant
.
Security
.
TOKENHEADER
.
getVal
(),
zuul
Token
);
requestTemplate
.
header
(
DataConstant
.
Security
.
TOKENHEADER
.
getVal
(),
gateway
Token
);
// 请求头中添加原请求头中的 Token
// 请求头中添加原请求头中的 Token
Object
details
=
SecurityContextHolder
.
getContext
().
getAuthentication
().
getDetails
();
Object
details
=
SecurityContextHolder
.
getContext
().
getAuthentication
().
getDetails
();
if
(
details
instanceof
OAuth2AuthenticationDetails
)
{
if
(
details
instanceof
OAuth2AuthenticationDetails
)
{
...
...
datax-common/datax-common-security/src/main/java/cn/datax/common/security/handler/DataAccessDeniedHandler.java
View file @
cc3a7120
...
@@ -15,7 +15,7 @@ public class DataAccessDeniedHandler implements AccessDeniedHandler {
...
@@ -15,7 +15,7 @@ public class DataAccessDeniedHandler implements AccessDeniedHandler {
@Override
@Override
public
void
handle
(
HttpServletRequest
request
,
HttpServletResponse
response
,
AccessDeniedException
accessDeniedException
)
throws
IOException
{
public
void
handle
(
HttpServletRequest
request
,
HttpServletResponse
response
,
AccessDeniedException
accessDeniedException
)
throws
IOException
{
ResponseUtil
.
makeResponse
(
ResponseUtil
.
makeResponse
(
response
,
MediaType
.
APPLICATION_JSON_
UTF8_
VALUE
,
response
,
MediaType
.
APPLICATION_JSON_VALUE
,
HttpServletResponse
.
SC_FORBIDDEN
,
R
.
error
(
"没有权限访问该资源"
));
HttpServletResponse
.
SC_FORBIDDEN
,
R
.
error
(
"没有权限访问该资源"
));
}
}
}
}
datax-common/datax-common-security/src/main/java/cn/datax/common/security/handler/DataAuthExceptionEntryPoint.java
View file @
cc3a7120
...
@@ -15,7 +15,7 @@ public class DataAuthExceptionEntryPoint implements AuthenticationEntryPoint {
...
@@ -15,7 +15,7 @@ public class DataAuthExceptionEntryPoint implements AuthenticationEntryPoint {
@Override
@Override
public
void
commence
(
HttpServletRequest
request
,
HttpServletResponse
response
,
AuthenticationException
authException
)
throws
IOException
{
public
void
commence
(
HttpServletRequest
request
,
HttpServletResponse
response
,
AuthenticationException
authException
)
throws
IOException
{
ResponseUtil
.
makeResponse
(
ResponseUtil
.
makeResponse
(
response
,
MediaType
.
APPLICATION_JSON_
UTF8_
VALUE
,
response
,
MediaType
.
APPLICATION_JSON_VALUE
,
HttpServletResponse
.
SC_UNAUTHORIZED
,
R
.
error
(
"无效的Token"
));
HttpServletResponse
.
SC_UNAUTHORIZED
,
R
.
error
(
"无效的Token"
));
}
}
}
}
datax-common/datax-common-security/src/main/java/cn/datax/common/security/interceptor/DataServerProtectInterceptor.java
View file @
cc3a7120
...
@@ -24,7 +24,7 @@ public class DataServerProtectInterceptor implements HandlerInterceptor {
...
@@ -24,7 +24,7 @@ public class DataServerProtectInterceptor implements HandlerInterceptor {
return
true
;
return
true
;
}
else
{
}
else
{
ResponseUtil
.
makeResponse
(
ResponseUtil
.
makeResponse
(
response
,
MediaType
.
APPLICATION_JSON_
UTF8_
VALUE
,
response
,
MediaType
.
APPLICATION_JSON_VALUE
,
HttpServletResponse
.
SC_FORBIDDEN
,
R
.
error
(
"请通过网关获取资源"
));
HttpServletResponse
.
SC_FORBIDDEN
,
R
.
error
(
"请通过网关获取资源"
));
return
false
;
return
false
;
}
}
...
...
datax-common/datax-common-security/src/main/java/cn/datax/common/security/utils/DataUserAuthenticationConverter.java
View file @
cc3a7120
...
@@ -18,6 +18,9 @@ import java.util.Map;
...
@@ -18,6 +18,9 @@ import java.util.Map;
/**
/**
* 根据checktoken的结果转化用户信息
* 根据checktoken的结果转化用户信息
*
* @author yuwei
* @since 2019/10/30
*/
*/
public
class
DataUserAuthenticationConverter
implements
UserAuthenticationConverter
{
public
class
DataUserAuthenticationConverter
implements
UserAuthenticationConverter
{
...
...
datax-modules/data-factory-service-parent/data-factory-service-api/src/main/java/cn/datax/service/data/factory/api/dto/DataSourceDto.java
View file @
cc3a7120
package
cn
.
datax
.
service
.
data
.
factory
.
api
.
dto
;
package
cn
.
datax
.
service
.
data
.
factory
.
api
.
dto
;
import
cn.datax.common.validate.ValidateGroupForSave
;
import
cn.datax.common.validate.ValidationGroups
;
import
cn.datax.common.validate.ValidateGroupForUpdate
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
lombok.Data
;
...
@@ -24,16 +23,16 @@ public class DataSourceDto implements Serializable {
...
@@ -24,16 +23,16 @@ public class DataSourceDto implements Serializable {
private
static
final
long
serialVersionUID
=
1L
;
private
static
final
long
serialVersionUID
=
1L
;
@ApiModelProperty
(
value
=
"主键ID"
)
@ApiModelProperty
(
value
=
"主键ID"
)
@NotBlank
(
message
=
"主键ID不能为空"
,
groups
=
{
Validat
eGroupFor
Update
.
class
})
@NotBlank
(
message
=
"主键ID不能为空"
,
groups
=
{
Validat
ionGroups
.
Update
.
class
})
private
String
id
;
private
String
id
;
@ApiModelProperty
(
value
=
"数据源类型"
)
@ApiModelProperty
(
value
=
"数据源类型"
)
@NotBlank
(
message
=
"数据源类型不能为空"
,
groups
=
{
Validat
eGroupForSave
.
class
,
ValidateGroupFor
Update
.
class
})
@NotBlank
(
message
=
"数据源类型不能为空"
,
groups
=
{
Validat
ionGroups
.
Insert
.
class
,
ValidationGroups
.
Update
.
class
})
private
String
dbType
;
private
String
dbType
;
@ApiModelProperty
(
value
=
"数据源名称"
)
@ApiModelProperty
(
value
=
"数据源名称"
)
@NotBlank
(
message
=
"数据源名称不能为空"
,
groups
=
{
Validat
eGroupForSave
.
class
,
ValidateGroupFor
Update
.
class
})
@NotBlank
(
message
=
"数据源名称不能为空"
,
groups
=
{
Validat
ionGroups
.
Insert
.
class
,
ValidationGroups
.
Update
.
class
})
private
String
sourceName
;
private
String
sourceName
;
@ApiModelProperty
(
value
=
"数据源描述"
)
@ApiModelProperty
(
value
=
"数据源描述"
)
@NotBlank
(
message
=
"数据源描述不能为空"
,
groups
=
{
Validat
eGroupForSave
.
class
,
ValidateGroupFor
Update
.
class
})
@NotBlank
(
message
=
"数据源描述不能为空"
,
groups
=
{
Validat
ionGroups
.
Insert
.
class
,
ValidationGroups
.
Update
.
class
})
private
String
sourceDesc
;
private
String
sourceDesc
;
@ApiModelProperty
(
value
=
"数据源连接信息"
)
@ApiModelProperty
(
value
=
"数据源连接信息"
)
@Valid
@Valid
...
...
datax-modules/data-factory-service-parent/data-factory-service-api/src/main/java/cn/datax/service/data/factory/api/dto/DbSchemaDto.java
View file @
cc3a7120
package
cn
.
datax
.
service
.
data
.
factory
.
api
.
dto
;
package
cn
.
datax
.
service
.
data
.
factory
.
api
.
dto
;
import
cn.datax.common.validate.ValidateGroupForSave
;
import
cn.datax.common.validate.ValidationGroups
;
import
cn.datax.common.validate.ValidateGroupForUpdate
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
lombok.Data
;
...
@@ -16,12 +15,12 @@ public class DbSchemaDto implements Serializable {
...
@@ -16,12 +15,12 @@ public class DbSchemaDto implements Serializable {
private
static
final
long
serialVersionUID
=
1L
;
private
static
final
long
serialVersionUID
=
1L
;
@ApiModelProperty
(
value
=
"JDBC URL"
)
@ApiModelProperty
(
value
=
"JDBC URL"
)
@NotBlank
(
message
=
"JDBC URL不能为空"
,
groups
=
{
Validat
eGroupForSave
.
class
,
ValidateGroupFor
Update
.
class
})
@NotBlank
(
message
=
"JDBC URL不能为空"
,
groups
=
{
Validat
ionGroups
.
Insert
.
class
,
ValidationGroups
.
Update
.
class
})
private
String
jdbcUrl
;
private
String
jdbcUrl
;
@ApiModelProperty
(
value
=
"用户名"
)
@ApiModelProperty
(
value
=
"用户名"
)
@NotBlank
(
message
=
"用户名不能为空"
,
groups
=
{
Validat
eGroupForSave
.
class
,
ValidateGroupFor
Update
.
class
})
@NotBlank
(
message
=
"用户名不能为空"
,
groups
=
{
Validat
ionGroups
.
Insert
.
class
,
ValidationGroups
.
Update
.
class
})
private
String
username
;
private
String
username
;
@ApiModelProperty
(
value
=
"密码"
)
@ApiModelProperty
(
value
=
"密码"
)
@NotBlank
(
message
=
"密码不能为空"
,
groups
=
{
Validat
eGroupForSave
.
class
,
ValidateGroupFor
Update
.
class
})
@NotBlank
(
message
=
"密码不能为空"
,
groups
=
{
Validat
ionGroups
.
Insert
.
class
,
ValidationGroups
.
Update
.
class
})
private
String
password
;
private
String
password
;
}
}
datax-modules/data-factory-service-parent/data-factory-service/pom.xml
View file @
cc3a7120
...
@@ -64,11 +64,11 @@
...
@@ -64,11 +64,11 @@
<artifactId>
datax-common-database
</artifactId>
<artifactId>
datax-common-database
</artifactId>
<version>
${app.version}
</version>
<version>
${app.version}
</version>
</dependency>
</dependency>
<!-- <dependency>--
>
<dependency
>
<!-- <groupId>cn.datax</groupId>--
>
<groupId>
cn.datax
</groupId
>
<!-- <artifactId>datax-common-log</artifactId>--
>
<artifactId>
datax-common-log
</artifactId
>
<!-- <version>${app.version}</version>--
>
<version>
${app.version}
</version
>
<!-- </dependency>--
>
</dependency
>
<dependency>
<dependency>
<groupId>
cn.datax
</groupId>
<groupId>
cn.datax
</groupId>
<artifactId>
data-factory-service-api
</artifactId>
<artifactId>
data-factory-service-api
</artifactId>
...
...
datax-modules/data-factory-service-parent/data-factory-service/src/main/java/cn/datax/service/data/factory/DataFactoryApplication.java
View file @
cc3a7120
package
cn
.
datax
.
service
.
data
.
factory
;
package
cn
.
datax
.
service
.
data
.
factory
;
//
import cn.datax.common.log.annotation.EnableDataLog;
import
cn.datax.common.log.annotation.EnableDataLog
;
import
cn.datax.common.mybatis.annotation.EnableDataMybatis
;
import
cn.datax.common.mybatis.annotation.EnableDataMybatis
;
import
cn.datax.common.redis.annotation.EnableDataRedis
;
import
cn.datax.common.redis.annotation.EnableDataRedis
;
import
cn.datax.common.security.annotation.EnableDataFeignClients
;
import
cn.datax.common.security.annotation.EnableDataSecurity
;
import
cn.datax.common.security.annotation.EnableDataSecurity
;
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.context.annotation.ComponentScan
;
@EnableDataSecurity
@EnableDataSecurity
@EnableDataMybatis
@EnableDataMybatis
@EnableDataRedis
@EnableDataRedis
//@EnableDataLog
@EnableDataLog
@EnableFeignClients
@EnableDataFeignClients
@ComponentScan
(
basePackages
=
{
"cn.datax"
})
@SpringCloudApplication
@SpringCloudApplication
public
class
DataFactoryApplication
{
public
class
DataFactoryApplication
{
...
...
datax-modules/data-factory-service-parent/data-factory-service/src/main/java/cn/datax/service/data/factory/controller/DataSourceController.java
View file @
cc3a7120
...
@@ -2,8 +2,7 @@ package cn.datax.service.data.factory.controller;
...
@@ -2,8 +2,7 @@ package cn.datax.service.data.factory.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.ValidateGroupForSave
;
import
cn.datax.common.validate.ValidationGroups
;
import
cn.datax.common.validate.ValidateGroupForUpdate
;
import
cn.datax.service.data.factory.api.dto.DataSourceDto
;
import
cn.datax.service.data.factory.api.dto.DataSourceDto
;
import
cn.datax.service.data.factory.api.entity.DataSourceEntity
;
import
cn.datax.service.data.factory.api.entity.DataSourceEntity
;
import
cn.datax.service.data.factory.api.query.DataSourceQuery
;
import
cn.datax.service.data.factory.api.query.DataSourceQuery
;
...
@@ -24,6 +23,7 @@ import org.springframework.web.bind.annotation.*;
...
@@ -24,6 +23,7 @@ import org.springframework.web.bind.annotation.*;
import
cn.datax.common.base.BaseController
;
import
cn.datax.common.base.BaseController
;
import
java.util.List
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.stream.Collectors
;
import
java.util.stream.Collectors
;
/**
/**
...
@@ -86,7 +86,7 @@ public class DataSourceController extends BaseController {
...
@@ -86,7 +86,7 @@ public class DataSourceController extends BaseController {
@ApiOperation
(
value
=
"添加信息"
,
notes
=
"根据dataSource对象添加信息"
)
@ApiOperation
(
value
=
"添加信息"
,
notes
=
"根据dataSource对象添加信息"
)
@ApiImplicitParam
(
name
=
"dataSource"
,
value
=
"详细实体dataSource"
,
required
=
true
,
dataType
=
"DataSourceDto"
)
@ApiImplicitParam
(
name
=
"dataSource"
,
value
=
"详细实体dataSource"
,
required
=
true
,
dataType
=
"DataSourceDto"
)
@PostMapping
()
@PostMapping
()
public
R
saveDataSource
(
@RequestBody
@Validated
({
Validat
eGroupForSave
.
class
})
DataSourceDto
dataSource
)
{
public
R
saveDataSource
(
@RequestBody
@Validated
({
Validat
ionGroups
.
Insert
.
class
})
DataSourceDto
dataSource
)
{
dataSourceService
.
saveDataSource
(
dataSource
);
dataSourceService
.
saveDataSource
(
dataSource
);
return
R
.
ok
();
return
R
.
ok
();
}
}
...
@@ -102,7 +102,7 @@ public class DataSourceController extends BaseController {
...
@@ -102,7 +102,7 @@ public class DataSourceController extends BaseController {
@ApiImplicitParam
(
name
=
"dataSource"
,
value
=
"详细实体dataSource"
,
required
=
true
,
dataType
=
"DataSourceDto"
)
@ApiImplicitParam
(
name
=
"dataSource"
,
value
=
"详细实体dataSource"
,
required
=
true
,
dataType
=
"DataSourceDto"
)
})
})
@PutMapping
(
"/{id}"
)
@PutMapping
(
"/{id}"
)
public
R
updateDataSource
(
@PathVariable
String
id
,
@RequestBody
@Validated
({
Validat
eGroupFor
Update
.
class
})
DataSourceDto
dataSource
)
{
public
R
updateDataSource
(
@PathVariable
String
id
,
@RequestBody
@Validated
({
Validat
ionGroups
.
Update
.
class
})
DataSourceDto
dataSource
)
{
dataSourceService
.
updateDataSource
(
dataSource
);
dataSourceService
.
updateDataSource
(
dataSource
);
return
R
.
ok
();
return
R
.
ok
();
}
}
...
@@ -127,7 +127,7 @@ public class DataSourceController extends BaseController {
...
@@ -127,7 +127,7 @@ public class DataSourceController extends BaseController {
@ApiOperation
(
value
=
"数据库类型"
,
notes
=
"获取数据库类型"
)
@ApiOperation
(
value
=
"数据库类型"
,
notes
=
"获取数据库类型"
)
@GetMapping
(
"/dbTypes"
)
@GetMapping
(
"/dbTypes"
)
public
R
getDbTypes
()
{
public
R
getDbTypes
()
{
List
<
String
>
dbTypes
=
dataSourceService
.
getDbTypes
();
List
<
Map
<
String
,
Object
>
>
dbTypes
=
dataSourceService
.
getDbTypes
();
return
R
.
ok
().
setData
(
dbTypes
);
return
R
.
ok
().
setData
(
dbTypes
);
}
}
...
@@ -139,7 +139,7 @@ public class DataSourceController extends BaseController {
...
@@ -139,7 +139,7 @@ public class DataSourceController extends BaseController {
@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
({
Validat
eGroupForSave
.
class
})
DataSourceDto
dataSource
)
{
public
R
checkConnection
(
@RequestBody
@Validated
({
Validat
ionGroups
.
Insert
.
class
})
DataSourceDto
dataSource
)
{
Boolean
valid
=
dataSourceService
.
checkConnection
(
dataSource
);
Boolean
valid
=
dataSourceService
.
checkConnection
(
dataSource
);
return
valid
?
R
.
ok
()
:
R
.
error
(
"数据库连接有误,请检查数据库配置是否正确"
);
return
valid
?
R
.
ok
()
:
R
.
error
(
"数据库连接有误,请检查数据库配置是否正确"
);
}
}
...
...
datax-modules/data-factory-service-parent/data-factory-service/src/main/java/cn/datax/service/data/factory/service/DataSourceService.java
View file @
cc3a7120
package
cn
.
datax
.
service
.
data
.
factory
.
service
;
package
cn
.
datax
.
service
.
data
.
factory
.
service
;
import
cn.datax.common.core.R
;
import
cn.datax.service.data.factory.api.dto.DataSourceDto
;
import
cn.datax.service.data.factory.api.dto.DataSourceDto
;
import
cn.datax.service.data.factory.api.entity.DataSourceEntity
;
import
cn.datax.service.data.factory.api.entity.DataSourceEntity
;
import
cn.datax.common.base.BaseService
;
import
cn.datax.common.base.BaseService
;
import
java.util.List
;
import
java.util.List
;
import
java.util.Map
;
/**
/**
* <p>
* <p>
...
@@ -25,5 +25,5 @@ public interface DataSourceService extends BaseService<DataSourceEntity> {
...
@@ -25,5 +25,5 @@ public interface DataSourceService extends BaseService<DataSourceEntity> {
Boolean
checkConnection
(
DataSourceDto
dataSource
);
Boolean
checkConnection
(
DataSourceDto
dataSource
);
List
<
String
>
getDbTypes
();
List
<
Map
<
String
,
Object
>
>
getDbTypes
();
}
}
datax-modules/data-factory-service-parent/data-factory-service/src/main/java/cn/datax/service/data/factory/service/impl/DataSourceServiceImpl.java
View file @
cc3a7120
...
@@ -19,7 +19,9 @@ import org.springframework.transaction.annotation.Transactional;
...
@@ -19,7 +19,9 @@ import org.springframework.transaction.annotation.Transactional;
import
java.sql.SQLException
;
import
java.sql.SQLException
;
import
java.util.Arrays
;
import
java.util.Arrays
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.stream.Collectors
;
import
java.util.stream.Collectors
;
/**
/**
...
@@ -77,7 +79,12 @@ public class DataSourceServiceImpl extends BaseServiceImpl<DataSourceDao, DataSo
...
@@ -77,7 +79,12 @@ public class DataSourceServiceImpl extends BaseServiceImpl<DataSourceDao, DataSo
}
}
@Override
@Override
public
List
<
String
>
getDbTypes
()
{
public
List
<
Map
<
String
,
Object
>>
getDbTypes
()
{
return
Arrays
.
stream
(
DbType
.
values
()).
map
(
s
->
s
.
getDb
()).
collect
(
Collectors
.
toList
());
return
Arrays
.
stream
(
DbType
.
values
()).
map
(
s
->
{
Map
<
String
,
Object
>
map
=
new
HashMap
<>();
map
.
put
(
"type"
,
s
.
getDb
());
map
.
put
(
"name"
,
s
.
getDesc
());
return
map
;
}).
collect
(
Collectors
.
toList
());
}
}
}
}
datax-modules/file-service-parent/file-service/src/main/java/cn/datax/service/file/controller/FileController.java
View file @
cc3a7120
package
cn
.
datax
.
service
.
file
.
controller
;
package
cn
.
datax
.
service
.
file
.
controller
;
import
cn.datax.common.core.R
;
import
cn.datax.common.core.R
;
import
cn.datax.common.validate.ValidateGroupForSave
;
import
cn.datax.common.validate.ValidateGroupForUpdate
;
import
cn.datax.service.file.api.entity.FileEntity
;
import
cn.datax.service.file.api.entity.FileEntity
;
import
cn.datax.service.file.service.FileService
;
import
cn.datax.service.file.service.FileService
;
import
com.baomidou.mybatisplus.core.toolkit.Wrappers
;
import
com.baomidou.mybatisplus.core.toolkit.Wrappers
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
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
cn.datax.common.base.BaseController
;
...
...
datax-modules/system-service-parent/system-service-api/src/main/java/cn/datax/service/system/api/dto/DeptDto.java
View file @
cc3a7120
package
cn
.
datax
.
service
.
system
.
api
.
dto
;
package
cn
.
datax
.
service
.
system
.
api
.
dto
;
import
cn.datax.common.validate.ValidateGroupForSave
;
import
cn.datax.common.validate.ValidationGroups
;
import
cn.datax.common.validate.ValidateGroupForUpdate
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
lombok.Data
;
...
@@ -16,18 +15,18 @@ public class DeptDto implements Serializable {
...
@@ -16,18 +15,18 @@ public class DeptDto implements Serializable {
private
static
final
long
serialVersionUID
=
1L
;
private
static
final
long
serialVersionUID
=
1L
;
@ApiModelProperty
(
value
=
"主键ID"
)
@ApiModelProperty
(
value
=
"主键ID"
)
@NotBlank
(
message
=
"主键ID不能为空"
,
groups
=
{
Validat
eGroupFor
Update
.
class
})
@NotBlank
(
message
=
"主键ID不能为空"
,
groups
=
{
Validat
ionGroups
.
Update
.
class
})
private
String
id
;
private
String
id
;
@ApiModelProperty
(
value
=
"父部门ID"
)
@ApiModelProperty
(
value
=
"父部门ID"
)
@NotBlank
(
message
=
"父部门ID不能为空"
,
groups
=
{
Validat
eGroupForSave
.
class
,
ValidateGroupFor
Update
.
class
})
@NotBlank
(
message
=
"父部门ID不能为空"
,
groups
=
{
Validat
ionGroups
.
Insert
.
class
,
ValidationGroups
.
Update
.
class
})
private
String
parentId
;
private
String
parentId
;
@ApiModelProperty
(
value
=
"部门名称"
)
@ApiModelProperty
(
value
=
"部门名称"
)
@NotBlank
(
message
=
"部门名称不能为空"
,
groups
=
{
Validat
eGroupForSave
.
class
,
ValidateGroupFor
Update
.
class
})
@NotBlank
(
message
=
"部门名称不能为空"
,
groups
=
{
Validat
ionGroups
.
Insert
.
class
,
ValidationGroups
.
Update
.
class
})
private
String
deptName
;
private
String
deptName
;
@ApiModelProperty
(
value
=
"部门编码"
)
@ApiModelProperty
(
value
=
"部门编码"
)
@NotBlank
(
message
=
"部门编码不能为空"
,
groups
=
{
Validat
eGroupForSave
.
class
,
ValidateGroupFor
Update
.
class
})
@NotBlank
(
message
=
"部门编码不能为空"
,
groups
=
{
Validat
ionGroups
.
Insert
.
class
,
ValidationGroups
.
Update
.
class
})
private
String
deptNo
;
private
String
deptNo
;
}
}
datax-modules/system-service-parent/system-service-api/src/main/java/cn/datax/service/system/api/dto/MenuDto.java
View file @
cc3a7120
package
cn
.
datax
.
service
.
system
.
api
.
dto
;
package
cn
.
datax
.
service
.
system
.
api
.
dto
;
import
cn.datax.common.validate.ValidateGroupForSave
;
import
cn.datax.common.validate.ValidationGroups
;
import
cn.datax.common.validate.ValidateGroupForUpdate
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
lombok.Data
;
...
@@ -17,15 +16,15 @@ public class MenuDto implements Serializable {
...
@@ -17,15 +16,15 @@ public class MenuDto implements Serializable {
private
static
final
long
serialVersionUID
=
1L
;
private
static
final
long
serialVersionUID
=
1L
;
@ApiModelProperty
(
value
=
"主键ID"
)
@ApiModelProperty
(
value
=
"主键ID"
)
@NotBlank
(
message
=
"主键ID不能为空"
,
groups
=
{
Validat
eGroupFor
Update
.
class
})
@NotBlank
(
message
=
"主键ID不能为空"
,
groups
=
{
Validat
ionGroups
.
Update
.
class
})
private
String
id
;
private
String
id
;
@ApiModelProperty
(
value
=
"父资源ID"
)
@ApiModelProperty
(
value
=
"父资源ID"
)
@NotBlank
(
message
=
"父资源ID不能为空"
,
groups
=
{
Validat
eGroupForSave
.
class
,
ValidateGroupFor
Update
.
class
})
@NotBlank
(
message
=
"父资源ID不能为空"
,
groups
=
{
Validat
ionGroups
.
Insert
.
class
,
ValidationGroups
.
Update
.
class
})
private
String
parentId
;
private
String
parentId
;
@ApiModelProperty
(
value
=
"资源名称"
)
@ApiModelProperty
(
value
=
"资源名称"
)
@NotBlank
(
message
=
"资源名称不能为空"
,
groups
=
{
Validat
eGroupForSave
.
class
,
ValidateGroupFor
Update
.
class
})
@NotBlank
(
message
=
"资源名称不能为空"
,
groups
=
{
Validat
ionGroups
.
Insert
.
class
,
ValidationGroups
.
Update
.
class
})
private
String
menuName
;
private
String
menuName
;
@ApiModelProperty
(
value
=
"对应路由path"
)
@ApiModelProperty
(
value
=
"对应路由path"
)
...
@@ -44,10 +43,10 @@ public class MenuDto implements Serializable {
...
@@ -44,10 +43,10 @@ public class MenuDto implements Serializable {
private
String
menuIcon
;
private
String
menuIcon
;
@ApiModelProperty
(
value
=
"类型"
)
@ApiModelProperty
(
value
=
"类型"
)
@NotNull
(
message
=
"类型不能为空"
,
groups
=
{
Validat
eGroupForSave
.
class
,
ValidateGroupFor
Update
.
class
})
@NotNull
(
message
=
"类型不能为空"
,
groups
=
{
Validat
ionGroups
.
Insert
.
class
,
ValidationGroups
.
Update
.
class
})
private
Integer
menuType
;
private
Integer
menuType
;
@ApiModelProperty
(
value
=
"排序"
)
@ApiModelProperty
(
value
=
"排序"
)
@NotNull
(
message
=
"排序不能为空"
,
groups
=
{
Validat
eGroupForSave
.
class
,
ValidateGroupFor
Update
.
class
})
@NotNull
(
message
=
"排序不能为空"
,
groups
=
{
Validat
ionGroups
.
Insert
.
class
,
ValidationGroups
.
Update
.
class
})
private
Integer
menuSort
;
private
Integer
menuSort
;
}
}
datax-modules/system-service-parent/system-service-api/src/main/java/cn/datax/service/system/api/dto/PostDto.java
View file @
cc3a7120
package
cn
.
datax
.
service
.
system
.
api
.
dto
;
package
cn
.
datax
.
service
.
system
.
api
.
dto
;
import
cn.datax.common.validate.ValidateGroupForSave
;
import
cn.datax.common.validate.ValidationGroups
;
import
cn.datax.common.validate.ValidateGroupForUpdate
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
lombok.Data
;
...
@@ -16,11 +15,11 @@ public class PostDto implements Serializable {
...
@@ -16,11 +15,11 @@ public class PostDto implements Serializable {
private
static
final
long
serialVersionUID
=
1L
;
private
static
final
long
serialVersionUID
=
1L
;
@ApiModelProperty
(
value
=
"主键ID"
)
@ApiModelProperty
(
value
=
"主键ID"
)
@NotBlank
(
message
=
"主键ID不能为空"
,
groups
=
{
Validat
eGroupFor
Update
.
class
})
@NotBlank
(
message
=
"主键ID不能为空"
,
groups
=
{
Validat
ionGroups
.
Update
.
class
})
private
String
id
;
private
String
id
;
@ApiModelProperty
(
value
=
"岗位名称"
)
@ApiModelProperty
(
value
=
"岗位名称"
)
@NotBlank
(
message
=
"岗位名称不能为空"
,
groups
=
{
Validat
eGroupForSave
.
class
,
ValidateGroupFor
Update
.
class
})
@NotBlank
(
message
=
"岗位名称不能为空"
,
groups
=
{
Validat
ionGroups
.
Insert
.
class
,
ValidationGroups
.
Update
.
class
})
private
String
postName
;
private
String
postName
;
}
}
datax-modules/system-service-parent/system-service-api/src/main/java/cn/datax/service/system/api/dto/RoleDto.java
View file @
cc3a7120
package
cn
.
datax
.
service
.
system
.
api
.
dto
;
package
cn
.
datax
.
service
.
system
.
api
.
dto
;
import
cn.datax.common.validate.ValidateGroupForSave
;
import
cn.datax.common.validate.ValidationGroups
;
import
cn.datax.common.validate.ValidateGroupForUpdate
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
lombok.Data
;
...
@@ -19,23 +18,23 @@ public class RoleDto implements Serializable {
...
@@ -19,23 +18,23 @@ public class RoleDto implements Serializable {
private
static
final
long
serialVersionUID
=
1L
;
private
static
final
long
serialVersionUID
=
1L
;
@ApiModelProperty
(
value
=
"主键ID"
)
@ApiModelProperty
(
value
=
"主键ID"
)
@NotBlank
(
message
=
"主键ID不能为空"
,
groups
=
{
Validat
eGroupFor
Update
.
class
})
@NotBlank
(
message
=
"主键ID不能为空"
,
groups
=
{
Validat
ionGroups
.
Update
.
class
})
private
String
id
;
private
String
id
;
@ApiModelProperty
(
value
=
"角色名称"
)
@ApiModelProperty
(
value
=
"角色名称"
)
@NotBlank
(
message
=
"角色名称不能为空"
,
groups
=
{
Validat
eGroupForSave
.
class
,
ValidateGroupFor
Update
.
class
})
@NotBlank
(
message
=
"角色名称不能为空"
,
groups
=
{
Validat
ionGroups
.
Insert
.
class
,
ValidationGroups
.
Update
.
class
})
private
String
roleName
;
private
String
roleName
;
@ApiModelProperty
(
value
=
"角色编码"
)
@ApiModelProperty
(
value
=
"角色编码"
)
@NotBlank
(
message
=
"角色编码不能为空"
,
groups
=
{
Validat
eGroupForSave
.
class
,
ValidateGroupFor
Update
.
class
})
@NotBlank
(
message
=
"角色编码不能为空"
,
groups
=
{
Validat
ionGroups
.
Insert
.
class
,
ValidationGroups
.
Update
.
class
})
private
String
roleCode
;
private
String
roleCode
;
@ApiModelProperty
(
value
=
"数据范围"
)
@ApiModelProperty
(
value
=
"数据范围"
)
@NotNull
(
message
=
"数据范围不能为空"
,
groups
=
{
Validat
eGroupForSave
.
class
,
ValidateGroupFor
Update
.
class
})
@NotNull
(
message
=
"数据范围不能为空"
,
groups
=
{
Validat
ionGroups
.
Insert
.
class
,
ValidationGroups
.
Update
.
class
})
private
Integer
dataScope
;
private
Integer
dataScope
;
@ApiModelProperty
(
value
=
"资源"
)
@ApiModelProperty
(
value
=
"资源"
)
@NotEmpty
(
message
=
"资源不能为空"
,
groups
=
{
Validat
eGroupForSave
.
class
,
ValidateGroupFor
Update
.
class
})
@NotEmpty
(
message
=
"资源不能为空"
,
groups
=
{
Validat
ionGroups
.
Insert
.
class
,
ValidationGroups
.
Update
.
class
})
private
List
<
String
>
menuList
;
private
List
<
String
>
menuList
;
@ApiModelProperty
(
value
=
"数据范围为2时自定义数据权限"
)
@ApiModelProperty
(
value
=
"数据范围为2时自定义数据权限"
)
...
...
datax-modules/system-service-parent/system-service-api/src/main/java/cn/datax/service/system/api/dto/UserDto.java
View file @
cc3a7120
package
cn
.
datax
.
service
.
system
.
api
.
dto
;
package
cn
.
datax
.
service
.
system
.
api
.
dto
;
import
cn.datax.common.validate.ValidateGroupForSave
;
import
cn.datax.common.validate.ValidationGroups
;
import
cn.datax.common.validate.ValidateGroupForUpdate
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
lombok.Data
;
...
@@ -20,48 +19,48 @@ public class UserDto implements Serializable {
...
@@ -20,48 +19,48 @@ public class UserDto implements Serializable {
private
static
final
long
serialVersionUID
=
1L
;
private
static
final
long
serialVersionUID
=
1L
;
@ApiModelProperty
(
value
=
"主键ID"
)
@ApiModelProperty
(
value
=
"主键ID"
)
@NotBlank
(
message
=
"主键ID不能为空"
,
groups
=
{
Validat
eGroupFor
Update
.
class
})
@NotBlank
(
message
=
"主键ID不能为空"
,
groups
=
{
Validat
ionGroups
.
Update
.
class
})
private
String
id
;
private
String
id
;
@ApiModelProperty
(
value
=
"用户名"
)
@ApiModelProperty
(
value
=
"用户名"
)
@NotBlank
(
message
=
"用户名不能为空"
,
groups
=
{
Validat
eGroupForSave
.
class
,
ValidateGroupFor
Update
.
class
})
@NotBlank
(
message
=
"用户名不能为空"
,
groups
=
{
Validat
ionGroups
.
Insert
.
class
,
ValidationGroups
.
Update
.
class
})
@Length
(
min
=
3
,
max
=
12
,
message
=
"用户名长度必须位于{min}-{max}之间"
)
@Length
(
min
=
3
,
max
=
12
,
message
=
"用户名长度必须位于{min}-{max}之间"
)
private
String
username
;
private
String
username
;
@ApiModelProperty
(
value
=
"昵称"
)
@ApiModelProperty
(
value
=
"昵称"
)
@NotBlank
(
message
=
"昵称不能为空"
,
groups
=
{
Validat
eGroupForSave
.
class
,
ValidateGroupFor
Update
.
class
})
@NotBlank
(
message
=
"昵称不能为空"
,
groups
=
{
Validat
ionGroups
.
Insert
.
class
,
ValidationGroups
.
Update
.
class
})
private
String
nickname
;
private
String
nickname
;
@ApiModelProperty
(
value
=
"密码"
)
@ApiModelProperty
(
value
=
"密码"
)
@NotBlank
(
message
=
"密码不能为空"
,
groups
=
{
Validat
eGroupForSave
.
class
,
ValidateGroupFor
Update
.
class
})
@NotBlank
(
message
=
"密码不能为空"
,
groups
=
{
Validat
ionGroups
.
Insert
.
class
,
ValidationGroups
.
Update
.
class
})
private
String
password
;
private
String
password
;
@ApiModelProperty
(
value
=
"电子邮箱"
)
@ApiModelProperty
(
value
=
"电子邮箱"
)
@NotBlank
(
message
=
"电子邮箱不能为空"
,
groups
=
{
Validat
eGroupForSave
.
class
,
ValidateGroupFor
Update
.
class
})
@NotBlank
(
message
=
"电子邮箱不能为空"
,
groups
=
{
Validat
ionGroups
.
Insert
.
class
,
ValidationGroups
.
Update
.
class
})
@Email
(
message
=
"请输入正确的邮箱"
)
@Email
(
message
=
"请输入正确的邮箱"
)
private
String
email
;
private
String
email
;
@ApiModelProperty
(
value
=
"手机号码"
)
@ApiModelProperty
(
value
=
"手机号码"
)
@NotBlank
(
message
=
"手机号码不能为空"
,
groups
=
{
Validat
eGroupForSave
.
class
,
ValidateGroupFor
Update
.
class
})
@NotBlank
(
message
=
"手机号码不能为空"
,
groups
=
{
Validat
ionGroups
.
Insert
.
class
,
ValidationGroups
.
Update
.
class
})
private
String
phone
;
private
String
phone
;
@ApiModelProperty
(
value
=
"出生日期"
,
example
=
"2019-09-09"
)
@ApiModelProperty
(
value
=
"出生日期"
,
example
=
"2019-09-09"
)
@NotNull
(
message
=
"出生日期不能为空"
,
groups
=
{
Validat
eGroupForSave
.
class
,
ValidateGroupFor
Update
.
class
})
@NotNull
(
message
=
"出生日期不能为空"
,
groups
=
{
Validat
ionGroups
.
Insert
.
class
,
ValidationGroups
.
Update
.
class
})
@DateTimeFormat
(
pattern
=
"yyyy-MM-dd"
)
@DateTimeFormat
(
pattern
=
"yyyy-MM-dd"
)
private
LocalDate
birthday
;
private
LocalDate
birthday
;
@ApiModelProperty
(
value
=
"部门"
)
@ApiModelProperty
(
value
=
"部门"
)
@NotEmpty
(
message
=
"部门不能为空"
,
groups
=
{
Validat
eGroupForSave
.
class
,
ValidateGroupFor
Update
.
class
})
@NotEmpty
(
message
=
"部门不能为空"
,
groups
=
{
Validat
ionGroups
.
Insert
.
class
,
ValidationGroups
.
Update
.
class
})
@Size
(
min
=
1
,
max
=
1
,
message
=
"部门长度必须位于{min}-{max}之间"
)
@Size
(
min
=
1
,
max
=
1
,
message
=
"部门长度必须位于{min}-{max}之间"
)
private
List
<
String
>
deptList
;
private
List
<
String
>
deptList
;
@ApiModelProperty
(
value
=
"角色"
)
@ApiModelProperty
(
value
=
"角色"
)
@NotEmpty
(
message
=
"角色不能为空"
,
groups
=
{
Validat
eGroupForSave
.
class
,
ValidateGroupFor
Update
.
class
})
@NotEmpty
(
message
=
"角色不能为空"
,
groups
=
{
Validat
ionGroups
.
Insert
.
class
,
ValidationGroups
.
Update
.
class
})
@Size
(
min
=
1
,
max
=
5
,
message
=
"角色长度必须位于{min}-{max}之间"
)
@Size
(
min
=
1
,
max
=
5
,
message
=
"角色长度必须位于{min}-{max}之间"
)
private
List
<
String
>
roleList
;
private
List
<
String
>
roleList
;
@ApiModelProperty
(
value
=
"岗位"
)
@ApiModelProperty
(
value
=
"岗位"
)
@NotEmpty
(
message
=
"岗位不能为空"
,
groups
=
{
Validat
eGroupForSave
.
class
,
ValidateGroupFor
Update
.
class
})
@NotEmpty
(
message
=
"岗位不能为空"
,
groups
=
{
Validat
ionGroups
.
Insert
.
class
,
ValidationGroups
.
Update
.
class
})
@Size
(
min
=
1
,
max
=
1
,
message
=
"岗位长度必须位于{min}-{max}之间"
)
@Size
(
min
=
1
,
max
=
1
,
message
=
"岗位长度必须位于{min}-{max}之间"
)
private
List
<
String
>
postList
;
private
List
<
String
>
postList
;
}
}
datax-modules/system-service-parent/system-service-api/src/main/java/cn/datax/service/system/api/feign/factory/LogServiceFeignFallbackFactory.java
View file @
cc3a7120
...
@@ -10,6 +10,8 @@ public class LogServiceFeignFallbackFactory implements FallbackFactory<LogServic
...
@@ -10,6 +10,8 @@ public class LogServiceFeignFallbackFactory implements FallbackFactory<LogServic
@Override
@Override
public
LogServiceFeign
create
(
Throwable
throwable
)
{
public
LogServiceFeign
create
(
Throwable
throwable
)
{
return
new
LogServiceFeignFallbackImpl
(
throwable
);
LogServiceFeignFallbackImpl
logServiceFeignFallback
=
new
LogServiceFeignFallbackImpl
();
logServiceFeignFallback
.
setCause
(
throwable
);
return
logServiceFeignFallback
;
}
}
}
}
datax-modules/system-service-parent/system-service-api/src/main/java/cn/datax/service/system/api/feign/factory/UserServiceFeignFallbackFactory.java
View file @
cc3a7120
...
@@ -10,6 +10,8 @@ public class UserServiceFeignFallbackFactory implements FallbackFactory<UserServ
...
@@ -10,6 +10,8 @@ public class UserServiceFeignFallbackFactory implements FallbackFactory<UserServ
@Override
@Override
public
UserServiceFeign
create
(
Throwable
throwable
)
{
public
UserServiceFeign
create
(
Throwable
throwable
)
{
return
new
UserServiceFeignFallbackImpl
(
throwable
);
UserServiceFeignFallbackImpl
userServiceFeignFallback
=
new
UserServiceFeignFallbackImpl
();
userServiceFeignFallback
.
setCause
(
throwable
);
return
userServiceFeignFallback
;
}
}
}
}
datax-modules/system-service-parent/system-service-api/src/main/java/cn/datax/service/system/api/feign/fallback/LogServiceFeignFallbackImpl.java
View file @
cc3a7120
...
@@ -3,18 +3,20 @@ package cn.datax.service.system.api.feign.fallback;
...
@@ -3,18 +3,20 @@ package cn.datax.service.system.api.feign.fallback;
import
cn.datax.common.core.R
;
import
cn.datax.common.core.R
;
import
cn.datax.service.system.api.dto.LogDto
;
import
cn.datax.service.system.api.dto.LogDto
;
import
cn.datax.service.system.api.feign.LogServiceFeign
;
import
cn.datax.service.system.api.feign.LogServiceFeign
;
import
lombok.
AllArgsConstructo
r
;
import
lombok.
Sette
r
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.stereotype.Component
;
@Slf4j
@Slf4j
@
AllArgsConstructor
@
Component
public
class
LogServiceFeignFallbackImpl
implements
LogServiceFeign
{
public
class
LogServiceFeignFallbackImpl
implements
LogServiceFeign
{
private
final
Throwable
cause
;
@Setter
private
Throwable
cause
;
@Override
@Override
public
R
saveLog
(
LogDto
logDto
)
{
public
R
saveLog
(
LogDto
logDto
)
{
log
.
error
(
"feign 调用出错
,信息:{}"
,
cause
.
getLocalizedMessage
()
);
log
.
error
(
"feign 调用出错
"
,
cause
);
return
null
;
return
null
;
}
}
}
}
datax-modules/system-service-parent/system-service-api/src/main/java/cn/datax/service/system/api/feign/fallback/UserServiceFeignFallbackImpl.java
View file @
cc3a7120
...
@@ -2,18 +2,20 @@ package cn.datax.service.system.api.feign.fallback;
...
@@ -2,18 +2,20 @@ package cn.datax.service.system.api.feign.fallback;
import
cn.datax.common.core.R
;
import
cn.datax.common.core.R
;
import
cn.datax.service.system.api.feign.UserServiceFeign
;
import
cn.datax.service.system.api.feign.UserServiceFeign
;
import
lombok.
AllArgsConstructo
r
;
import
lombok.
Sette
r
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.stereotype.Component
;
@Slf4j
@Slf4j
@
AllArgsConstructor
@
Component
public
class
UserServiceFeignFallbackImpl
implements
UserServiceFeign
{
public
class
UserServiceFeignFallbackImpl
implements
UserServiceFeign
{
private
final
Throwable
cause
;
@Setter
private
Throwable
cause
;
@Override
@Override
public
R
loginByUsername
(
String
username
)
{
public
R
loginByUsername
(
String
username
)
{
log
.
error
(
"feign 调用用户{}出错
,信息:{}"
,
username
,
cause
.
getLocalizedMessage
()
);
log
.
error
(
"feign 调用用户{}出错
"
,
username
,
cause
);
return
null
;
return
null
;
}
}
}
}
datax-modules/system-service-parent/system-service-api/src/main/resources/META-INF/spring.factories
0 → 100644
View file @
cc3a7120
org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
cn.datax.service.system.api.feign.factory.LogServiceFeignFallbackFactory,\
cn.datax.service.system.api.feign.factory.UserServiceFeignFallbackFactory,\
cn.datax.service.system.api.feign.fallback.LogServiceFeignFallbackImpl,\
cn.datax.service.system.api.feign.fallback.UserServiceFeignFallbackImpl
datax-modules/system-service-parent/system-service/src/main/java/cn/datax/service/system/DataxSystemApplication.java
View file @
cc3a7120
...
@@ -3,18 +3,16 @@ package cn.datax.service.system;
...
@@ -3,18 +3,16 @@ package cn.datax.service.system;
import
cn.datax.common.log.annotation.EnableDataLog
;
import
cn.datax.common.log.annotation.EnableDataLog
;
import
cn.datax.common.mybatis.annotation.EnableDataMybatis
;
import
cn.datax.common.mybatis.annotation.EnableDataMybatis
;
import
cn.datax.common.redis.annotation.EnableDataRedis
;
import
cn.datax.common.redis.annotation.EnableDataRedis
;
import
cn.datax.common.security.annotation.EnableDataFeignClients
;
import
cn.datax.common.security.annotation.EnableDataSecurity
;
import
cn.datax.common.security.annotation.EnableDataSecurity
;
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.context.annotation.ComponentScan
;
@EnableDataSecurity
@EnableDataSecurity
@EnableDataMybatis
@EnableDataMybatis
@EnableDataRedis
@EnableDataRedis
@EnableDataLog
@EnableDataLog
@EnableFeignClients
@EnableDataFeignClients
@ComponentScan
(
basePackages
=
{
"cn.datax"
})
@SpringCloudApplication
@SpringCloudApplication
public
class
DataxSystemApplication
{
public
class
DataxSystemApplication
{
...
...
datax-modules/system-service-parent/system-service/src/main/java/cn/datax/service/system/controller/DeptController.java
View file @
cc3a7120
package
cn
.
datax
.
service
.
system
.
controller
;
package
cn
.
datax
.
service
.
system
.
controller
;
import
cn.datax.common.core.R
;
import
cn.datax.common.core.R
;
import
cn.datax.common.validate.ValidateGroupForSave
;
import
cn.datax.common.validate.ValidationGroups
;
import
cn.datax.common.validate.ValidateGroupForUpdate
;
import
cn.datax.service.system.api.dto.DeptDto
;
import
cn.datax.service.system.api.dto.DeptDto
;
import
cn.datax.service.system.api.entity.DeptEntity
;
import
cn.datax.service.system.api.entity.DeptEntity
;
import
cn.datax.service.system.api.vo.DeptVo
;
import
cn.datax.service.system.api.vo.DeptVo
;
...
@@ -60,7 +59,7 @@ public class DeptController extends BaseController {
...
@@ -60,7 +59,7 @@ public class DeptController extends BaseController {
@ApiOperation
(
value
=
"创建部门"
,
notes
=
"根据dept对象创建部门"
)
@ApiOperation
(
value
=
"创建部门"
,
notes
=
"根据dept对象创建部门"
)
@ApiImplicitParam
(
name
=
"dept"
,
value
=
"部门详细实体dept"
,
required
=
true
,
dataType
=
"DeptDto"
)
@ApiImplicitParam
(
name
=
"dept"
,
value
=
"部门详细实体dept"
,
required
=
true
,
dataType
=
"DeptDto"
)
@PostMapping
()
@PostMapping
()
public
R
saveDept
(
@RequestBody
@Validated
({
Validat
eGroupForSave
.
class
})
DeptDto
dept
)
{
public
R
saveDept
(
@RequestBody
@Validated
({
Validat
ionGroups
.
Insert
.
class
})
DeptDto
dept
)
{
deptService
.
saveDept
(
dept
);
deptService
.
saveDept
(
dept
);
return
R
.
ok
();
return
R
.
ok
();
}
}
...
@@ -71,7 +70,7 @@ public class DeptController extends BaseController {
...
@@ -71,7 +70,7 @@ public class DeptController extends BaseController {
@ApiImplicitParam
(
name
=
"dept"
,
value
=
"部门详细实体dept"
,
required
=
true
,
dataType
=
"DeptDto"
)
@ApiImplicitParam
(
name
=
"dept"
,
value
=
"部门详细实体dept"
,
required
=
true
,
dataType
=
"DeptDto"
)
})
})
@PutMapping
(
"/{id}"
)
@PutMapping
(
"/{id}"
)
public
R
updateDept
(
@PathVariable
String
id
,
@RequestBody
@Validated
({
Validat
eGroupFor
Update
.
class
})
DeptDto
dept
)
{
public
R
updateDept
(
@PathVariable
String
id
,
@RequestBody
@Validated
({
Validat
ionGroups
.
Update
.
class
})
DeptDto
dept
)
{
deptService
.
updateDept
(
dept
);
deptService
.
updateDept
(
dept
);
return
R
.
ok
();
return
R
.
ok
();
}
}
...
...
datax-modules/system-service-parent/system-service/src/main/java/cn/datax/service/system/controller/MenuController.java
View file @
cc3a7120
package
cn
.
datax
.
service
.
system
.
controller
;
package
cn
.
datax
.
service
.
system
.
controller
;
import
cn.datax.common.core.R
;
import
cn.datax.common.core.R
;
import
cn.datax.common.validate.ValidateGroupForSave
;
import
cn.datax.common.validate.ValidationGroups
;
import
cn.datax.common.validate.ValidateGroupForUpdate
;
import
cn.datax.service.system.api.dto.MenuDto
;
import
cn.datax.service.system.api.dto.MenuDto
;
import
cn.datax.service.system.api.entity.MenuEntity
;
import
cn.datax.service.system.api.entity.MenuEntity
;
import
cn.datax.service.system.api.vo.MenuVo
;
import
cn.datax.service.system.api.vo.MenuVo
;
...
@@ -60,7 +59,7 @@ public class MenuController extends BaseController {
...
@@ -60,7 +59,7 @@ public class MenuController extends BaseController {
@ApiOperation
(
value
=
"创建资源"
,
notes
=
"根据menu对象创建资源"
)
@ApiOperation
(
value
=
"创建资源"
,
notes
=
"根据menu对象创建资源"
)
@ApiImplicitParam
(
name
=
"menu"
,
value
=
"资源详细实体menu"
,
required
=
true
,
dataType
=
"MenuDto"
)
@ApiImplicitParam
(
name
=
"menu"
,
value
=
"资源详细实体menu"
,
required
=
true
,
dataType
=
"MenuDto"
)
@PostMapping
()
@PostMapping
()
public
R
saveMenu
(
@RequestBody
@Validated
({
Validat
eGroupForSave
.
class
})
MenuDto
menu
)
{
public
R
saveMenu
(
@RequestBody
@Validated
({
Validat
ionGroups
.
Insert
.
class
})
MenuDto
menu
)
{
menuService
.
saveMenu
(
menu
);
menuService
.
saveMenu
(
menu
);
return
R
.
ok
();
return
R
.
ok
();
}
}
...
@@ -71,7 +70,7 @@ public class MenuController extends BaseController {
...
@@ -71,7 +70,7 @@ public class MenuController extends BaseController {
@ApiImplicitParam
(
name
=
"menu"
,
value
=
"资源详细实体menu"
,
required
=
true
,
dataType
=
"MenuDto"
)
@ApiImplicitParam
(
name
=
"menu"
,
value
=
"资源详细实体menu"
,
required
=
true
,
dataType
=
"MenuDto"
)
})
})
@PutMapping
(
"/{id}"
)
@PutMapping
(
"/{id}"
)
public
R
updateMenu
(
@PathVariable
String
id
,
@RequestBody
@Validated
({
Validat
eGroupFor
Update
.
class
})
MenuDto
menu
)
{
public
R
updateMenu
(
@PathVariable
String
id
,
@RequestBody
@Validated
({
Validat
ionGroups
.
Update
.
class
})
MenuDto
menu
)
{
menuService
.
updateMenu
(
menu
);
menuService
.
updateMenu
(
menu
);
return
R
.
ok
();
return
R
.
ok
();
}
}
...
...
datax-modules/system-service-parent/system-service/src/main/java/cn/datax/service/system/controller/PostController.java
View file @
cc3a7120
...
@@ -2,8 +2,7 @@ package cn.datax.service.system.controller;
...
@@ -2,8 +2,7 @@ package cn.datax.service.system.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.ValidateGroupForSave
;
import
cn.datax.common.validate.ValidationGroups
;
import
cn.datax.common.validate.ValidateGroupForUpdate
;
import
cn.datax.service.system.api.dto.PostDto
;
import
cn.datax.service.system.api.dto.PostDto
;
import
cn.datax.service.system.api.entity.PostEntity
;
import
cn.datax.service.system.api.entity.PostEntity
;
import
cn.datax.service.system.api.query.PostQuery
;
import
cn.datax.service.system.api.query.PostQuery
;
...
@@ -71,7 +70,7 @@ public class PostController extends BaseController {
...
@@ -71,7 +70,7 @@ public class PostController extends BaseController {
@ApiOperation
(
value
=
"创建岗位"
,
notes
=
"根据post对象创建岗位"
)
@ApiOperation
(
value
=
"创建岗位"
,
notes
=
"根据post对象创建岗位"
)
@ApiImplicitParam
(
name
=
"post"
,
value
=
"岗位详细实体post"
,
required
=
true
,
dataType
=
"PostDto"
)
@ApiImplicitParam
(
name
=
"post"
,
value
=
"岗位详细实体post"
,
required
=
true
,
dataType
=
"PostDto"
)
@PostMapping
()
@PostMapping
()
public
R
savePost
(
@RequestBody
@Validated
({
Validat
eGroupForSave
.
class
})
PostDto
post
)
{
public
R
savePost
(
@RequestBody
@Validated
({
Validat
ionGroups
.
Insert
.
class
})
PostDto
post
)
{
postService
.
savePost
(
post
);
postService
.
savePost
(
post
);
return
R
.
ok
();
return
R
.
ok
();
}
}
...
@@ -82,7 +81,7 @@ public class PostController extends BaseController {
...
@@ -82,7 +81,7 @@ public class PostController extends BaseController {
@ApiImplicitParam
(
name
=
"post"
,
value
=
"岗位详细实体post"
,
required
=
true
,
dataType
=
"PostDto"
)
@ApiImplicitParam
(
name
=
"post"
,
value
=
"岗位详细实体post"
,
required
=
true
,
dataType
=
"PostDto"
)
})
})
@PutMapping
(
"/{id}"
)
@PutMapping
(
"/{id}"
)
public
R
updatePost
(
@PathVariable
String
id
,
@RequestBody
@Validated
({
Validat
eGroupFor
Update
.
class
})
PostDto
post
)
{
public
R
updatePost
(
@PathVariable
String
id
,
@RequestBody
@Validated
({
Validat
ionGroups
.
Update
.
class
})
PostDto
post
)
{
postService
.
updatePost
(
post
);
postService
.
updatePost
(
post
);
return
R
.
ok
();
return
R
.
ok
();
}
}
...
...
datax-modules/system-service-parent/system-service/src/main/java/cn/datax/service/system/controller/RoleController.java
View file @
cc3a7120
...
@@ -2,8 +2,7 @@ package cn.datax.service.system.controller;
...
@@ -2,8 +2,7 @@ package cn.datax.service.system.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.ValidateGroupForSave
;
import
cn.datax.common.validate.ValidationGroups
;
import
cn.datax.common.validate.ValidateGroupForUpdate
;
import
cn.datax.service.system.api.dto.RoleDto
;
import
cn.datax.service.system.api.dto.RoleDto
;
import
cn.datax.service.system.api.entity.RoleEntity
;
import
cn.datax.service.system.api.entity.RoleEntity
;
import
cn.datax.service.system.api.query.RoleQuery
;
import
cn.datax.service.system.api.query.RoleQuery
;
...
@@ -71,7 +70,7 @@ public class RoleController extends BaseController {
...
@@ -71,7 +70,7 @@ public class RoleController extends BaseController {
@ApiOperation
(
value
=
"创建角色"
,
notes
=
"根据role对象创建角色"
)
@ApiOperation
(
value
=
"创建角色"
,
notes
=
"根据role对象创建角色"
)
@ApiImplicitParam
(
name
=
"role"
,
value
=
"角色详细实体role"
,
required
=
true
,
dataType
=
"RoleDto"
)
@ApiImplicitParam
(
name
=
"role"
,
value
=
"角色详细实体role"
,
required
=
true
,
dataType
=
"RoleDto"
)
@PostMapping
()
@PostMapping
()
public
R
saveRole
(
@RequestBody
@Validated
({
Validat
eGroupForSave
.
class
})
RoleDto
role
)
{
public
R
saveRole
(
@RequestBody
@Validated
({
Validat
ionGroups
.
Insert
.
class
})
RoleDto
role
)
{
roleService
.
saveRole
(
role
);
roleService
.
saveRole
(
role
);
return
R
.
ok
();
return
R
.
ok
();
}
}
...
@@ -82,7 +81,7 @@ public class RoleController extends BaseController {
...
@@ -82,7 +81,7 @@ public class RoleController extends BaseController {
@ApiImplicitParam
(
name
=
"role"
,
value
=
"角色详细实体role"
,
required
=
true
,
dataType
=
"RoleDto"
)
@ApiImplicitParam
(
name
=
"role"
,
value
=
"角色详细实体role"
,
required
=
true
,
dataType
=
"RoleDto"
)
})
})
@PutMapping
(
"/{id}"
)
@PutMapping
(
"/{id}"
)
public
R
updateRole
(
@PathVariable
String
id
,
@RequestBody
@Validated
({
Validat
eGroupFor
Update
.
class
})
RoleDto
role
)
{
public
R
updateRole
(
@PathVariable
String
id
,
@RequestBody
@Validated
({
Validat
ionGroups
.
Update
.
class
})
RoleDto
role
)
{
roleService
.
updateRole
(
role
);
roleService
.
updateRole
(
role
);
return
R
.
ok
();
return
R
.
ok
();
}
}
...
...
datax-modules/system-service-parent/system-service/src/main/java/cn/datax/service/system/controller/UserController.java
View file @
cc3a7120
...
@@ -3,8 +3,7 @@ package cn.datax.service.system.controller;
...
@@ -3,8 +3,7 @@ package cn.datax.service.system.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.log.annotation.LogAop
;
import
cn.datax.common.log.annotation.LogAop
;
import
cn.datax.common.validate.ValidateGroupForSave
;
import
cn.datax.common.validate.ValidationGroups
;
import
cn.datax.common.validate.ValidateGroupForUpdate
;
import
cn.datax.service.system.api.dto.UserDto
;
import
cn.datax.service.system.api.dto.UserDto
;
import
cn.datax.service.system.api.dto.UserPasswordDto
;
import
cn.datax.service.system.api.dto.UserPasswordDto
;
import
cn.datax.service.system.api.entity.UserEntity
;
import
cn.datax.service.system.api.entity.UserEntity
;
...
@@ -86,7 +85,7 @@ public class UserController extends BaseController {
...
@@ -86,7 +85,7 @@ public class UserController extends BaseController {
@ApiOperation
(
value
=
"创建用户"
,
notes
=
"根据user对象创建用户"
)
@ApiOperation
(
value
=
"创建用户"
,
notes
=
"根据user对象创建用户"
)
@ApiImplicitParam
(
name
=
"user"
,
value
=
"用户详细实体user"
,
required
=
true
,
dataTypeClass
=
UserDto
.
class
)
@ApiImplicitParam
(
name
=
"user"
,
value
=
"用户详细实体user"
,
required
=
true
,
dataTypeClass
=
UserDto
.
class
)
@PostMapping
()
@PostMapping
()
public
R
saveUser
(
@RequestBody
@Validated
({
Validat
eGroupForSave
.
class
})
UserDto
user
)
{
public
R
saveUser
(
@RequestBody
@Validated
({
Validat
ionGroups
.
Insert
.
class
})
UserDto
user
)
{
userService
.
saveUser
(
user
);
userService
.
saveUser
(
user
);
return
R
.
ok
();
return
R
.
ok
();
}
}
...
@@ -97,7 +96,7 @@ public class UserController extends BaseController {
...
@@ -97,7 +96,7 @@ public class UserController extends BaseController {
@ApiImplicitParam
(
name
=
"user"
,
value
=
"用户详细实体user"
,
required
=
true
,
dataTypeClass
=
UserDto
.
class
)
@ApiImplicitParam
(
name
=
"user"
,
value
=
"用户详细实体user"
,
required
=
true
,
dataTypeClass
=
UserDto
.
class
)
})
})
@PutMapping
(
"/{id}"
)
@PutMapping
(
"/{id}"
)
public
R
updateUser
(
@PathVariable
String
id
,
@RequestBody
@Validated
({
Validat
eGroupFor
Update
.
class
})
UserDto
user
)
{
public
R
updateUser
(
@PathVariable
String
id
,
@RequestBody
@Validated
({
Validat
ionGroups
.
Update
.
class
})
UserDto
user
)
{
userService
.
updateUser
(
user
);
userService
.
updateUser
(
user
);
return
R
.
ok
();
return
R
.
ok
();
}
}
...
...
datax-tools/datax-tool-codegen/src/main/resources/templates/controller.java.vm
View file @
cc3a7120
package
${
package
.
Controller
};
package
${
package
.
Controller
};
import
cn
.
datax
.
common
.
core
.
JsonPage
;
import
cn
.
datax
.
common
.
validate
.
ValidationGroups
;
import
cn
.
datax
.
common
.
core
.
R
;
import
cn
.
datax
.
common
.
validate
.
ValidateGroupForSave
;
import
cn
.
datax
.
common
.
validate
.
ValidateGroupForUpdate
;
import
${
cfg
.
PackageParent
}#
if
(${
package
.
ModuleName
}).${
package
.
ModuleName
}#
end
.
api
.
dto
.${
className
}
Dto
;
import
${
cfg
.
PackageParent
}#
if
(${
package
.
ModuleName
}).${
package
.
ModuleName
}#
end
.
api
.
dto
.${
className
}
Dto
;
import
${
cfg
.
PackageParent
}#
if
(${
package
.
ModuleName
}).${
package
.
ModuleName
}#
end
.
api
.
entity
.${
entity
};
import
${
cfg
.
PackageParent
}#
if
(${
package
.
ModuleName
}).${
package
.
ModuleName
}#
end
.
api
.
entity
.${
entity
};
import
${
cfg
.
PackageParent
}#
if
(${
package
.
ModuleName
}).${
package
.
ModuleName
}#
end
.
api
.
query
.${
className
}
Query
;
import
${
cfg
.
PackageParent
}#
if
(${
package
.
ModuleName
}).${
package
.
ModuleName
}#
end
.
api
.
query
.${
className
}
Query
;
import
${
cfg
.
PackageParent
}#
if
(${
package
.
ModuleName
}).${
package
.
ModuleName
}#
end
.
mapstruct
.${
className
}
Mapper
;
import
${
cfg
.
PackageParent
}#
if
(${
package
.
ModuleName
}).${
package
.
ModuleName
}#
end
.
mapstruct
.${
className
}
Mapper
;
import
${
package
.
Service
}.${
table
.
serviceName
};
import
${
package
.
Service
}.${
table
.
serviceName
};
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
.
Api
;
import
io
.
swagger
.
annotations
.
ApiImplicitParam
;
import
io
.
swagger
.
annotations
.
ApiImplicitParam
;
import
io
.
swagger
.
annotations
.
ApiImplicitParams
;
import
io
.
swagger
.
annotations
.
ApiImplicitParams
;
...
@@ -25,9 +18,6 @@ import org.springframework.web.bind.annotation.*;
...
@@ -25,9 +18,6 @@ import org.springframework.web.bind.annotation.*;
import
${
superControllerClassPackage
};
import
${
superControllerClassPackage
};
#
end
#
end
import
java
.
util
.
List
;
import
java
.
util
.
stream
.
Collectors
;
/**
/**
*
<
p
>
*
<
p
>
*
$
!{table.comment} 前端控制器
*
$
!{table.comment} 前端控制器
...
@@ -96,7 +86,7 @@ public class ${table.controllerName} {
...
@@ -96,7 +86,7 @@ public class ${table.controllerName} {
@
ApiOperation
(
value
=
"添加信息"
,
notes
=
"根据${classNameLower}对象添加信息"
)
@
ApiOperation
(
value
=
"添加信息"
,
notes
=
"根据${classNameLower}对象添加信息"
)
@
ApiImplicitParam
(
name
=
"${classNameLower}"
,
value
=
"详细实体${classNameLower}"
,
required
=
true
,
dataType
=
"${className}Dto"
)
@
ApiImplicitParam
(
name
=
"${classNameLower}"
,
value
=
"详细实体${classNameLower}"
,
required
=
true
,
dataType
=
"${className}Dto"
)
@
PostMapping
()
@
PostMapping
()
public
R
save
${
className
}(@
RequestBody
@
Validated
({
Validat
eGroupForSave
.
class
})
${
className
}
Dto
${
classNameLower
})
{
public
R
save
${
className
}(@
RequestBody
@
Validated
({
Validat
ionGroups
.
Insert
.
class
})
${
className
}
Dto
${
classNameLower
})
{
${
classNameLower
}
Service
.
save
${
className
}(${
classNameLower
});
${
classNameLower
}
Service
.
save
${
className
}(${
classNameLower
});
return
R
.
ok
();
return
R
.
ok
();
}
}
...
@@ -112,7 +102,7 @@ public class ${table.controllerName} {
...
@@ -112,7 +102,7 @@ public class ${table.controllerName} {
@
ApiImplicitParam
(
name
=
"${classNameLower}"
,
value
=
"详细实体${classNameLower}"
,
required
=
true
,
dataType
=
"${className}Dto"
)
@
ApiImplicitParam
(
name
=
"${classNameLower}"
,
value
=
"详细实体${classNameLower}"
,
required
=
true
,
dataType
=
"${className}Dto"
)
})
})
@
PutMapping
(
"/{id}"
)
@
PutMapping
(
"/{id}"
)
public
R
update
${
className
}(@
PathVariable
String
id
,
@
RequestBody
@
Validated
({
Validat
eGroupFor
Update
.
class
})
${
className
}
Dto
${
classNameLower
})
{
public
R
update
${
className
}(@
PathVariable
String
id
,
@
RequestBody
@
Validated
({
Validat
ionGroups
.
Update
.
class
})
${
className
}
Dto
${
classNameLower
})
{
${
classNameLower
}
Service
.
update
${
className
}(${
classNameLower
});
${
classNameLower
}
Service
.
update
${
className
}(${
classNameLower
});
return
R
.
ok
();
return
R
.
ok
();
}
}
...
...
datax-tools/datax-tool-codegen/src/main/resources/templates/dto.java.vm
View file @
cc3a7120
package
${
cfg
.
PackageParent
}#
if
(${
package
.
ModuleName
}).${
package
.
ModuleName
}#
end
.
api
.
dto
;
package
${
cfg
.
PackageParent
}#
if
(${
package
.
ModuleName
}).${
package
.
ModuleName
}#
end
.
api
.
dto
;
import
cn
.
datax
.
common
.
validate
.
ValidateGroupForSave
;
import
cn
.
datax
.
common
.
validate
.
ValidationGroups
;
import
cn
.
datax
.
common
.
validate
.
ValidateGroupForUpdate
;
import
io
.
swagger
.
annotations
.
ApiModel
;
import
io
.
swagger
.
annotations
.
ApiModel
;
import
io
.
swagger
.
annotations
.
ApiModelProperty
;
import
io
.
swagger
.
annotations
.
ApiModelProperty
;
import
lombok
.
Data
;
import
lombok
.
Data
;
...
@@ -23,7 +22,7 @@ public class ${className}Dto implements Serializable {
...
@@ -23,7 +22,7 @@ public class ${className}Dto implements Serializable {
private
static
final
long
serialVersionUID
=
1L
;
private
static
final
long
serialVersionUID
=
1L
;
@
ApiModelProperty
(
value
=
"主键ID"
)
@
ApiModelProperty
(
value
=
"主键ID"
)
@
NotBlank
(
message
=
"主键ID不能为空"
,
groups
=
{
Validat
eGroupFor
Update
.
class
})
@
NotBlank
(
message
=
"主键ID不能为空"
,
groups
=
{
Validat
ionGroups
.
Update
.
class
})
private
String
id
;
private
String
id
;
##
----------
BEGIN
字段循环遍历
----------
##
----------
BEGIN
字段循环遍历
----------
...
...
pom.xml
View file @
cc3a7120
...
@@ -20,13 +20,13 @@
...
@@ -20,13 +20,13 @@
<java.version>
1.8
</java.version>
<java.version>
1.8
</java.version>
<app.version>
1.0.0
</app.version>
<app.version>
1.0.0
</app.version>
<spring-boot.version>
2.2.
4
.RELEASE
</spring-boot.version>
<spring-boot.version>
2.2.
5
.RELEASE
</spring-boot.version>
<spring-cloud.version>
Hoxton.SR
1
</spring-cloud.version>
<spring-cloud.version>
Hoxton.SR
3
</spring-cloud.version>
<spring-boot-admin.version>
2.2.1
</spring-boot-admin.version>
<spring-boot-admin.version>
2.2.1
</spring-boot-admin.version>
<fastjson.version>
1.2.6
2
</fastjson.version>
<fastjson.version>
1.2.6
6
</fastjson.version>
<hutool.version>
5.
1.1
</hutool.version>
<hutool.version>
5.
2.3
</hutool.version>
<mybatis-plus.version>
3.3.
0
</mybatis-plus.version>
<mybatis-plus.version>
3.3.
1
</mybatis-plus.version>
<dynamic-datasource.version>
2.5.7
</dynamic-datasource.version>
<dynamic-datasource.version>
2.5.7
</dynamic-datasource.version>
<p6spy.version>
3.8.7
</p6spy.version>
<p6spy.version>
3.8.7
</p6spy.version>
<velocity.version>
2.1
</velocity.version>
<velocity.version>
2.1
</velocity.version>
...
@@ -131,13 +131,6 @@
...
@@ -131,13 +131,6 @@
<configuration>
<configuration>
<finalName>
${project.build.finalName}
</finalName>
<finalName>
${project.build.finalName}
</finalName>
</configuration>
</configuration>
<executions>
<execution>
<goals>
<goal>
repackage
</goal>
</goals>
</execution>
</executions>
</plugin>
</plugin>
</plugins>
</plugins>
</pluginManagement>
</pluginManagement>
...
...
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