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
23336f6e
Commit
23336f6e
authored
Jul 28, 2020
by
yuwei
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
项目初始化
parent
12d3492e
Show whitespace changes
Inline
Side-by-side
Showing
45 changed files
with
357 additions
and
262 deletions
+357
-262
DataUserDetailService.java
...ain/java/cn/datax/auth/service/DataUserDetailService.java
+3
-16
LogAspect.java
.../src/main/java/cn/datax/common/log/aspectj/LogAspect.java
+1
-2
DataSecurityProtectConfig.java
...tax/common/security/config/DataSecurityProtectConfig.java
+2
-0
DataSetServiceFeign.java
...x/service/data/factory/api/feign/DataSetServiceFeign.java
+14
-0
DataSourceServiceFeign.java
...ervice/data/factory/api/feign/DataSourceServiceFeign.java
+3
-3
DataSetServiceFeignFallbackFactory.java
...api/feign/factory/DataSetServiceFeignFallbackFactory.java
+17
-0
DataSetServiceFeignFallbackImpl.java
...y/api/feign/fallback/DataSetServiceFeignFallbackImpl.java
+21
-0
DataSourceServiceFeignFallbackImpl.java
...pi/feign/fallback/DataSourceServiceFeignFallbackImpl.java
+2
-2
spring.factories
...-service-api/src/main/resources/META-INF/spring.factories
+3
-1
SqlConsoleServiceImpl.java
...ctory/sql/console/service/impl/SqlConsoleServiceImpl.java
+2
-14
DataThemeController.java
.../service/data/factory/controller/DataThemeController.java
+0
-2
InnerController.java
...atax/service/data/factory/controller/InnerController.java
+24
-0
ApiMappingConfig.java
...vice/data/market/api/mapping/config/ApiMappingConfig.java
+3
-0
DataResourceServerConfig.java
...a/market/api/mapping/config/DataResourceServerConfig.java
+3
-1
RabbitMqListenerConfig.java
...ata/market/api/mapping/config/RabbitMqListenerConfig.java
+7
-17
ApiExecuteController.java
...a/market/api/mapping/controller/ApiExecuteController.java
+6
-3
InnerController.java
...e/data/market/api/mapping/controller/InnerController.java
+0
-1
MappingHandlerMapping.java
...ata/market/api/mapping/handler/MappingHandlerMapping.java
+10
-3
RequestHandler.java
...rvice/data/market/api/mapping/handler/RequestHandler.java
+1
-1
RequestInterceptor.java
...e/data/market/api/mapping/handler/RequestInterceptor.java
+1
-1
ApiExecuteService.java
...ce/data/market/api/mapping/service/ApiExecuteService.java
+1
-1
QueueHandlerService.java
.../data/market/api/mapping/service/QueueHandlerService.java
+8
-0
ApiExecuteServiceImpl.java
...arket/api/mapping/service/impl/ApiExecuteServiceImpl.java
+9
-4
ApiMappingEngine.java
...ata/market/api/mapping/service/impl/ApiMappingEngine.java
+6
-24
QueueHandlerServiceImpl.java
...ket/api/mapping/service/impl/QueueHandlerServiceImpl.java
+36
-0
ApiMaskServiceFeign.java
...ax/service/data/market/api/feign/ApiMaskServiceFeign.java
+3
-3
ApiMaskServiceFeignFallbackImpl.java
...t/api/feign/fallback/ApiMaskServiceFeignFallbackImpl.java
+2
-2
InnerController.java
...datax/service/data/market/controller/InnerController.java
+11
-3
EmailServiceFeign.java
...a/cn/datax/service/email/api/feign/EmailServiceFeign.java
+0
-17
EmailServiceFeignFallbackFactory.java
...l/api/feign/factory/EmailServiceFeignFallbackFactory.java
+0
-16
EmailServiceFeignFallbackImpl.java
...ail/api/feign/fallback/EmailServiceFeignFallbackImpl.java
+0
-20
InnerController.java
...va/cn/datax/service/email/controller/InnerController.java
+0
-26
logback-spring.xml
...arent/email-service/src/main/resources/logback-spring.xml
+79
-0
EmailMapper.xml
...t/email-service/src/main/resources/mapper/EmailMapper.xml
+33
-0
LogServiceFeign.java
...va/cn/datax/service/system/api/feign/LogServiceFeign.java
+1
-2
UserServiceFeign.java
...a/cn/datax/service/system/api/feign/UserServiceFeign.java
+2
-2
LogServiceFeignFallbackImpl.java
...ystem/api/feign/fallback/LogServiceFeignFallbackImpl.java
+1
-3
UserServiceFeignFallbackImpl.java
...stem/api/feign/fallback/UserServiceFeignFallbackImpl.java
+2
-2
InnerController.java
...a/cn/datax/service/system/controller/InnerController.java
+1
-3
LoginController.java
...a/cn/datax/service/system/controller/LoginController.java
+2
-39
MenuMapper.xml
...t/system-service/src/main/resources/mapper/MenuMapper.xml
+2
-0
dataapi.js
datax-ui/src/api/market/dataapi.js
+3
-17
DataApiAdd.vue
datax-ui/src/views/market/dataapi/DataApiAdd.vue
+1
-1
DataApiCall.vue
datax-ui/src/views/market/dataapi/DataApiCall.vue
+30
-9
DataApiEdit.vue
datax-ui/src/views/market/dataapi/DataApiEdit.vue
+1
-1
No files found.
datax-auth/src/main/java/cn/datax/auth/service/DataUserDetailService.java
View file @
23336f6e
...
@@ -3,15 +3,11 @@ package cn.datax.auth.service;
...
@@ -3,15 +3,11 @@ package cn.datax.auth.service;
import
cn.datax.common.core.DataConstant
;
import
cn.datax.common.core.DataConstant
;
import
cn.datax.common.core.DataRole
;
import
cn.datax.common.core.DataRole
;
import
cn.datax.common.core.DataUser
;
import
cn.datax.common.core.DataUser
;
import
cn.datax.common.core.R
;
import
cn.datax.service.system.api.feign.UserServiceFeign
;
import
cn.datax.service.system.api.feign.UserServiceFeign
;
import
cn.datax.service.system.api.vo.*
;
import
cn.datax.service.system.api.vo.*
;
import
cn.hutool.core.collection.CollUtil
;
import
cn.hutool.core.collection.CollUtil
;
import
cn.hutool.core.util.ArrayUtil
;
import
cn.hutool.core.util.ArrayUtil
;
import
cn.hutool.core.util.ObjectUtil
;
import
cn.hutool.core.util.StrUtil
;
import
cn.hutool.core.util.StrUtil
;
import
com.fasterxml.jackson.core.JsonProcessingException
;
import
com.fasterxml.jackson.databind.ObjectMapper
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.security.core.GrantedAuthority
;
import
org.springframework.security.core.GrantedAuthority
;
...
@@ -31,22 +27,13 @@ public class DataUserDetailService implements UserDetailsService {
...
@@ -31,22 +27,13 @@ public class DataUserDetailService implements UserDetailsService {
@Autowired
@Autowired
private
UserServiceFeign
userServiceFeign
;
private
UserServiceFeign
userServiceFeign
;
@Autowired
private
ObjectMapper
objectMapper
;
@Override
@Override
public
UserDetails
loadUserByUsername
(
String
s
)
throws
UsernameNotFoundException
{
public
UserDetails
loadUserByUsername
(
String
s
)
throws
UsernameNotFoundException
{
//远程获取用户
//
远程获取用户
R
result
=
userServiceFeign
.
loginByUsername
(
s
);
UserInfo
userInfo
=
userServiceFeign
.
loginByUsername
(
s
);
if
(
result
==
null
||
!
result
.
isSuccess
()
||
ObjectUtil
.
isEmpty
(
result
.
getData
())
){
if
(
userInfo
==
null
){
throw
new
UsernameNotFoundException
(
StrUtil
.
format
(
"{}用户不存在"
,
s
));
throw
new
UsernameNotFoundException
(
StrUtil
.
format
(
"{}用户不存在"
,
s
));
}
}
UserInfo
userInfo
;
try
{
userInfo
=
objectMapper
.
readValue
(
objectMapper
.
writeValueAsString
(
result
.
getData
()),
UserInfo
.
class
);
}
catch
(
JsonProcessingException
e
)
{
throw
new
UsernameNotFoundException
(
StrUtil
.
format
(
"{}用户解析出错"
,
s
));
}
// 可用性 :true:可用 false:不可用
// 可用性 :true:可用 false:不可用
boolean
enabled
=
true
;
boolean
enabled
=
true
;
// 过期性 :true:没过期 false:过期
// 过期性 :true:没过期 false:过期
...
...
datax-common/datax-common-log/src/main/java/cn/datax/common/log/aspectj/LogAspect.java
View file @
23336f6e
...
@@ -96,8 +96,7 @@ public class LogAspect {
...
@@ -96,8 +96,7 @@ public class LogAspect {
.
setClassName
(
className
).
setMethodName
(
methodName
);
.
setClassName
(
className
).
setMethodName
(
methodName
);
try
{
try
{
logDto
.
setParams
(
objectMapper
.
writeValueAsString
(
getRequestParams
(
joinPoint
)));
logDto
.
setParams
(
objectMapper
.
writeValueAsString
(
getRequestParams
(
joinPoint
)));
}
catch
(
JsonProcessingException
e
)
{
}
catch
(
JsonProcessingException
e
)
{}
}
// 保存数据库
// 保存数据库
logServiceFeign
.
saveLog
(
logDto
);
logServiceFeign
.
saveLog
(
logDto
);
}
}
...
...
datax-common/datax-common-security/src/main/java/cn/datax/common/security/config/DataSecurityProtectConfig.java
View file @
23336f6e
...
@@ -51,11 +51,13 @@ public class DataSecurityProtectConfig {
...
@@ -51,11 +51,13 @@ public class DataSecurityProtectConfig {
requestTemplate
.
header
(
DataConstant
.
Security
.
TOKENHEADER
.
getVal
(),
gatewayToken
);
requestTemplate
.
header
(
DataConstant
.
Security
.
TOKENHEADER
.
getVal
(),
gatewayToken
);
// 请求头中添加原请求头中的 Token
// 请求头中添加原请求头中的 Token
Authentication
authentication
=
SecurityContextHolder
.
getContext
().
getAuthentication
();
Authentication
authentication
=
SecurityContextHolder
.
getContext
().
getAuthentication
();
if
(
authentication
!=
null
)
{
Object
details
=
authentication
.
getDetails
();
Object
details
=
authentication
.
getDetails
();
if
(
details
instanceof
OAuth2AuthenticationDetails
)
{
if
(
details
instanceof
OAuth2AuthenticationDetails
)
{
String
authorizationToken
=
((
OAuth2AuthenticationDetails
)
details
).
getTokenValue
();
String
authorizationToken
=
((
OAuth2AuthenticationDetails
)
details
).
getTokenValue
();
requestTemplate
.
header
(
DataConstant
.
Security
.
AUTHORIZATION
.
getVal
(),
DataConstant
.
Security
.
TOKENTYPE
.
getVal
()
+
authorizationToken
);
requestTemplate
.
header
(
DataConstant
.
Security
.
AUTHORIZATION
.
getVal
(),
DataConstant
.
Security
.
TOKENTYPE
.
getVal
()
+
authorizationToken
);
}
}
}
};
};
}
}
}
}
datax-modules/data-factory-service-parent/data-factory-service-api/src/main/java/cn/datax/service/data/factory/api/feign/DataSetServiceFeign.java
0 → 100644
View file @
23336f6e
package
cn
.
datax
.
service
.
data
.
factory
.
api
.
feign
;
import
cn.datax.service.data.factory.api.entity.DataSetEntity
;
import
cn.datax.service.data.factory.api.feign.factory.DataSetServiceFeignFallbackFactory
;
import
org.springframework.cloud.openfeign.FeignClient
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.PathVariable
;
@FeignClient
(
contextId
=
"dataSetServiceFeign"
,
value
=
"datax-service-data-factory"
,
fallbackFactory
=
DataSetServiceFeignFallbackFactory
.
class
)
public
interface
DataSetServiceFeign
{
@GetMapping
(
"/inner/sets/{id}"
)
DataSetEntity
getDataSetById
(
@PathVariable
(
"id"
)
String
id
);
}
datax-modules/data-factory-service-parent/data-factory-service-api/src/main/java/cn/datax/service/data/factory/api/feign/DataSourceServiceFeign.java
View file @
23336f6e
package
cn
.
datax
.
service
.
data
.
factory
.
api
.
feign
;
package
cn
.
datax
.
service
.
data
.
factory
.
api
.
feign
;
import
cn.datax.
common.core.R
;
import
cn.datax.
service.data.factory.api.entity.DataSourceEntity
;
import
cn.datax.service.data.factory.api.feign.factory.DataSourceServiceFeignFallbackFactory
;
import
cn.datax.service.data.factory.api.feign.factory.DataSourceServiceFeignFallbackFactory
;
import
org.springframework.cloud.openfeign.FeignClient
;
import
org.springframework.cloud.openfeign.FeignClient
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.GetMapping
;
...
@@ -9,6 +9,6 @@ import org.springframework.web.bind.annotation.PathVariable;
...
@@ -9,6 +9,6 @@ import org.springframework.web.bind.annotation.PathVariable;
@FeignClient
(
contextId
=
"dataSourceServiceFeign"
,
value
=
"datax-service-data-factory"
,
fallbackFactory
=
DataSourceServiceFeignFallbackFactory
.
class
)
@FeignClient
(
contextId
=
"dataSourceServiceFeign"
,
value
=
"datax-service-data-factory"
,
fallbackFactory
=
DataSourceServiceFeignFallbackFactory
.
class
)
public
interface
DataSourceServiceFeign
{
public
interface
DataSourceServiceFeign
{
@GetMapping
(
"/
dataS
ources/{id}"
)
@GetMapping
(
"/
inner/s
ources/{id}"
)
R
getDataSourceById
(
@PathVariable
(
"id"
)
String
id
);
DataSourceEntity
getDataSourceById
(
@PathVariable
(
"id"
)
String
id
);
}
}
datax-modules/data-factory-service-parent/data-factory-service-api/src/main/java/cn/datax/service/data/factory/api/feign/factory/DataSetServiceFeignFallbackFactory.java
0 → 100644
View file @
23336f6e
package
cn
.
datax
.
service
.
data
.
factory
.
api
.
feign
.
factory
;
import
cn.datax.service.data.factory.api.feign.DataSetServiceFeign
;
import
cn.datax.service.data.factory.api.feign.fallback.DataSetServiceFeignFallbackImpl
;
import
feign.hystrix.FallbackFactory
;
import
org.springframework.stereotype.Component
;
@Component
public
class
DataSetServiceFeignFallbackFactory
implements
FallbackFactory
<
DataSetServiceFeign
>
{
@Override
public
DataSetServiceFeign
create
(
Throwable
throwable
)
{
DataSetServiceFeignFallbackImpl
dataSetServiceFeignFallback
=
new
DataSetServiceFeignFallbackImpl
();
dataSetServiceFeignFallback
.
setCause
(
throwable
);
return
dataSetServiceFeignFallback
;
}
}
datax-modules/data-factory-service-parent/data-factory-service-api/src/main/java/cn/datax/service/data/factory/api/feign/fallback/DataSetServiceFeignFallbackImpl.java
0 → 100644
View file @
23336f6e
package
cn
.
datax
.
service
.
data
.
factory
.
api
.
feign
.
fallback
;
import
cn.datax.service.data.factory.api.entity.DataSetEntity
;
import
cn.datax.service.data.factory.api.feign.DataSetServiceFeign
;
import
lombok.Setter
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.stereotype.Component
;
@Slf4j
@Component
public
class
DataSetServiceFeignFallbackImpl
implements
DataSetServiceFeign
{
@Setter
private
Throwable
cause
;
@Override
public
DataSetEntity
getDataSetById
(
String
id
)
{
log
.
error
(
"feign 调用{}出错"
,
id
,
cause
);
return
null
;
}
}
datax-modules/data-factory-service-parent/data-factory-service-api/src/main/java/cn/datax/service/data/factory/api/feign/fallback/DataSourceServiceFeignFallbackImpl.java
View file @
23336f6e
package
cn
.
datax
.
service
.
data
.
factory
.
api
.
feign
.
fallback
;
package
cn
.
datax
.
service
.
data
.
factory
.
api
.
feign
.
fallback
;
import
cn.datax.
common.core.R
;
import
cn.datax.
service.data.factory.api.entity.DataSourceEntity
;
import
cn.datax.service.data.factory.api.feign.DataSourceServiceFeign
;
import
cn.datax.service.data.factory.api.feign.DataSourceServiceFeign
;
import
lombok.Setter
;
import
lombok.Setter
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
...
@@ -14,7 +14,7 @@ public class DataSourceServiceFeignFallbackImpl implements DataSourceServiceFeig
...
@@ -14,7 +14,7 @@ public class DataSourceServiceFeignFallbackImpl implements DataSourceServiceFeig
private
Throwable
cause
;
private
Throwable
cause
;
@Override
@Override
public
R
getDataSourceById
(
String
id
)
{
public
DataSourceEntity
getDataSourceById
(
String
id
)
{
log
.
error
(
"feign 调用{}出错"
,
id
,
cause
);
log
.
error
(
"feign 调用{}出错"
,
id
,
cause
);
return
null
;
return
null
;
}
}
...
...
datax-modules/data-factory-service-parent/data-factory-service-api/src/main/resources/META-INF/spring.factories
View file @
23336f6e
org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
cn.datax.service.data.factory.api.feign.factory.DataSourceServiceFeignFallbackFactory,\
cn.datax.service.data.factory.api.feign.factory.DataSourceServiceFeignFallbackFactory,\
cn.datax.service.data.factory.api.feign.fallback.DataSourceServiceFeignFallbackImpl
cn.datax.service.data.factory.api.feign.fallback.DataSourceServiceFeignFallbackImpl,\
cn.datax.service.data.factory.api.feign.factory.DataSetServiceFeignFallbackFactory,\
cn.datax.service.data.factory.api.feign.fallback.DataSetServiceFeignFallbackImpl
datax-modules/data-factory-service-parent/data-factory-service-sql-console/src/main/java/cn/datax/service/data/factory/sql/console/service/impl/SqlConsoleServiceImpl.java
View file @
23336f6e
package
cn
.
datax
.
service
.
data
.
factory
.
sql
.
console
.
service
.
impl
;
package
cn
.
datax
.
service
.
data
.
factory
.
sql
.
console
.
service
.
impl
;
import
cn.datax.common.core.R
;
import
cn.datax.common.database.DataSourceFactory
;
import
cn.datax.common.database.DataSourceFactory
;
import
cn.datax.common.database.DbQuery
;
import
cn.datax.common.database.DbQuery
;
import
cn.datax.common.database.constants.DbQueryProperty
;
import
cn.datax.common.database.constants.DbQueryProperty
;
...
@@ -15,9 +14,6 @@ import cn.datax.service.data.factory.sql.console.concurrent.CallableTemplate;
...
@@ -15,9 +14,6 @@ import cn.datax.service.data.factory.sql.console.concurrent.CallableTemplate;
import
cn.datax.service.data.factory.sql.console.concurrent.DateHander
;
import
cn.datax.service.data.factory.sql.console.concurrent.DateHander
;
import
cn.datax.service.data.factory.sql.console.service.SqlConsoleService
;
import
cn.datax.service.data.factory.sql.console.service.SqlConsoleService
;
import
cn.hutool.core.collection.CollUtil
;
import
cn.hutool.core.collection.CollUtil
;
import
cn.hutool.core.util.ObjectUtil
;
import
com.fasterxml.jackson.core.JsonProcessingException
;
import
com.fasterxml.jackson.databind.ObjectMapper
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
import
net.sf.jsqlparser.JSQLParserException
;
import
net.sf.jsqlparser.JSQLParserException
;
import
net.sf.jsqlparser.parser.CCJSqlParserUtil
;
import
net.sf.jsqlparser.parser.CCJSqlParserUtil
;
...
@@ -43,9 +39,6 @@ public class SqlConsoleServiceImpl implements SqlConsoleService {
...
@@ -43,9 +39,6 @@ public class SqlConsoleServiceImpl implements SqlConsoleService {
@Autowired
@Autowired
private
DataSourceServiceFeign
dataSourceServiceFeign
;
private
DataSourceServiceFeign
dataSourceServiceFeign
;
@Autowired
private
ObjectMapper
objectMapper
;
private
static
Map
<
String
,
List
<
Connection
>>
connectionMap
=
new
ConcurrentHashMap
<>();
private
static
Map
<
String
,
List
<
Connection
>>
connectionMap
=
new
ConcurrentHashMap
<>();
@Override
@Override
...
@@ -62,15 +55,10 @@ public class SqlConsoleServiceImpl implements SqlConsoleService {
...
@@ -62,15 +55,10 @@ public class SqlConsoleServiceImpl implements SqlConsoleService {
if
(
CollUtil
.
isEmpty
(
sqls
))
{
if
(
CollUtil
.
isEmpty
(
sqls
))
{
throw
new
DataException
(
"未解析到SQL语句"
);
throw
new
DataException
(
"未解析到SQL语句"
);
}
}
R
sourceResult
=
dataSourceServiceFeign
.
getDataSourceById
(
sqlConsoleDto
.
getSourceId
());
DataSourceEntity
dataSource
=
dataSourceServiceFeign
.
getDataSourceById
(
sqlConsoleDto
.
getSourceId
());
if
(
sourceResult
==
null
||
!
sourceResult
.
isSuccess
()
||
ObjectUtil
.
isEmpty
(
sourceResult
.
getData
())
){
if
(
dataSource
==
null
){
throw
new
DataException
(
"SQL工作台查询数据源出错"
);
throw
new
DataException
(
"SQL工作台查询数据源出错"
);
}
}
DataSourceEntity
dataSource
=
null
;
try
{
dataSource
=
objectMapper
.
readValue
(
objectMapper
.
writeValueAsString
(
sourceResult
.
getData
()),
DataSourceEntity
.
class
);
}
catch
(
JsonProcessingException
e
)
{
}
DbSchema
dbSchema
=
dataSource
.
getDbSchema
();
DbSchema
dbSchema
=
dataSource
.
getDbSchema
();
DbQueryProperty
dbQueryProperty
=
new
DbQueryProperty
(
dataSource
.
getDbType
(),
dbSchema
.
getHost
(),
DbQueryProperty
dbQueryProperty
=
new
DbQueryProperty
(
dataSource
.
getDbType
(),
dbSchema
.
getHost
(),
dbSchema
.
getUsername
(),
dbSchema
.
getPassword
(),
dbSchema
.
getPort
(),
dbSchema
.
getDbName
(),
dbSchema
.
getSid
());
dbSchema
.
getUsername
(),
dbSchema
.
getPassword
(),
dbSchema
.
getPort
(),
dbSchema
.
getDbName
(),
dbSchema
.
getSid
());
...
...
datax-modules/data-factory-service-parent/data-factory-service/src/main/java/cn/datax/service/data/factory/controller/DataThemeController.java
View file @
23336f6e
...
@@ -5,9 +5,7 @@ import cn.datax.common.core.JsonPage;
...
@@ -5,9 +5,7 @@ import cn.datax.common.core.JsonPage;
import
cn.datax.common.core.R
;
import
cn.datax.common.core.R
;
import
cn.datax.common.validate.ValidationGroups
;
import
cn.datax.common.validate.ValidationGroups
;
import
cn.datax.service.data.factory.api.dto.DataThemeDto
;
import
cn.datax.service.data.factory.api.dto.DataThemeDto
;
import
cn.datax.service.data.factory.api.entity.DataSourceEntity
;
import
cn.datax.service.data.factory.api.entity.DataThemeEntity
;
import
cn.datax.service.data.factory.api.entity.DataThemeEntity
;
import
cn.datax.service.data.factory.api.vo.DataSourceVo
;
import
cn.datax.service.data.factory.api.vo.DataThemeVo
;
import
cn.datax.service.data.factory.api.vo.DataThemeVo
;
import
cn.datax.service.data.factory.api.query.DataThemeQuery
;
import
cn.datax.service.data.factory.api.query.DataThemeQuery
;
import
cn.datax.service.data.factory.mapstruct.DataThemeMapper
;
import
cn.datax.service.data.factory.mapstruct.DataThemeMapper
;
...
...
datax-modules/data-factory-service-parent/data-factory-service/src/main/java/cn/datax/service/data/factory/controller/InnerController.java
View file @
23336f6e
package
cn
.
datax
.
service
.
data
.
factory
.
controller
;
package
cn
.
datax
.
service
.
data
.
factory
.
controller
;
import
cn.datax.common.base.BaseController
;
import
cn.datax.common.base.BaseController
;
import
cn.datax.service.data.factory.api.entity.DataSetEntity
;
import
cn.datax.service.data.factory.api.entity.DataSourceEntity
;
import
cn.datax.service.data.factory.service.DataSetService
;
import
cn.datax.service.data.factory.service.DataSourceService
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.PathVariable
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
import
org.springframework.web.bind.annotation.RestController
;
...
@@ -8,4 +15,21 @@ import org.springframework.web.bind.annotation.RestController;
...
@@ -8,4 +15,21 @@ import org.springframework.web.bind.annotation.RestController;
@RequestMapping
(
"/inner"
)
@RequestMapping
(
"/inner"
)
public
class
InnerController
extends
BaseController
{
public
class
InnerController
extends
BaseController
{
@Autowired
private
DataSourceService
dataSourceService
;
@Autowired
private
DataSetService
dataSetService
;
@GetMapping
(
"/sources/{id}"
)
public
DataSourceEntity
getDataSourceById
(
@PathVariable
(
"id"
)
String
id
)
{
DataSourceEntity
dataSourceEntity
=
dataSourceService
.
getDataSourceById
(
id
);
return
dataSourceEntity
;
}
@GetMapping
(
"/sets/{id}"
)
public
DataSetEntity
getDataSetById
(
@PathVariable
(
"id"
)
String
id
)
{
DataSetEntity
dataSetEntity
=
dataSetService
.
getDataSetById
(
id
);
return
dataSetEntity
;
}
}
}
datax-modules/data-market-service-parent/data-market-service-api-mapping/src/main/java/cn/datax/service/data/market/api/mapping/config/ApiMappingConfig.java
View file @
23336f6e
package
cn
.
datax
.
service
.
data
.
market
.
api
.
mapping
.
config
;
package
cn
.
datax
.
service
.
data
.
market
.
api
.
mapping
.
config
;
import
cn.datax.service.data.market.api.mapping.handler.MappingHandlerMapping
;
import
cn.datax.service.data.market.api.mapping.handler.RequestHandler
;
import
cn.datax.service.data.market.api.mapping.handler.RequestInterceptor
;
import
cn.datax.service.data.market.api.mapping.service.ApiLogService
;
import
cn.datax.service.data.market.api.mapping.service.ApiLogService
;
import
cn.datax.service.data.market.api.mapping.service.impl.ApiMappingEngine
;
import
cn.datax.service.data.market.api.mapping.service.impl.ApiMappingEngine
;
import
com.fasterxml.jackson.databind.ObjectMapper
;
import
com.fasterxml.jackson.databind.ObjectMapper
;
...
...
datax-modules/data-market-service-parent/data-market-service-api-mapping/src/main/java/cn/datax/service/data/market/api/mapping/config/DataResourceServerConfig.java
View file @
23336f6e
...
@@ -59,7 +59,9 @@ public class DataResourceServerConfig extends ResourceServerConfigurerAdapter {
...
@@ -59,7 +59,9 @@ public class DataResourceServerConfig extends ResourceServerConfigurerAdapter {
"/swagger-resources/**"
,
"/swagger-resources/**"
,
"/webjars/**"
,
"/webjars/**"
,
// feign 内部调用不用授权
// feign 内部调用不用授权
"/inner/**"
"/inner/**"
,
// 注册接口 不用授权
"/services/**"
).
permitAll
()
).
permitAll
()
.
anyRequest
().
authenticated
()
.
anyRequest
().
authenticated
()
.
and
().
csrf
().
disable
();
.
and
().
csrf
().
disable
();
...
...
datax-modules/data-market-service-parent/data-market-service-api-mapping/src/main/java/cn/datax/service/data/market/api/mapping/config/RabbitMqListenerConfig.java
View file @
23336f6e
...
@@ -2,9 +2,7 @@ package cn.datax.service.data.market.api.mapping.config;
...
@@ -2,9 +2,7 @@ package cn.datax.service.data.market.api.mapping.config;
import
cn.datax.common.rabbitmq.config.RabbitMqConstant
;
import
cn.datax.common.rabbitmq.config.RabbitMqConstant
;
import
cn.datax.common.utils.ThrowableUtil
;
import
cn.datax.common.utils.ThrowableUtil
;
import
cn.datax.service.data.market.api.entity.DataApiEntity
;
import
cn.datax.service.data.market.api.mapping.service.QueueHandlerService
;
import
cn.datax.service.data.market.api.feign.DataApiServiceFeign
;
import
com.fasterxml.jackson.databind.ObjectMapper
;
import
com.rabbitmq.client.Channel
;
import
com.rabbitmq.client.Channel
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.amqp.core.Message
;
import
org.springframework.amqp.core.Message
;
...
@@ -15,18 +13,12 @@ import org.springframework.amqp.rabbit.annotation.RabbitListener;
...
@@ -15,18 +13,12 @@ import org.springframework.amqp.rabbit.annotation.RabbitListener;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Component
;
import
org.springframework.stereotype.Component
;
@Component
@Slf4j
@Slf4j
@Component
public
class
RabbitMqListenerConfig
{
public
class
RabbitMqListenerConfig
{
@Autowired
@Autowired
private
DataApiServiceFeign
dataApiServiceFeign
;
private
QueueHandlerService
queueHandlerService
;
@Autowired
private
MappingHandlerMapping
mappingHandlerMapping
;
@Autowired
private
ObjectMapper
objectMapper
;
/**
/**
* Fanout 交换机
* Fanout 交换机
...
@@ -36,11 +28,8 @@ public class RabbitMqListenerConfig {
...
@@ -36,11 +28,8 @@ public class RabbitMqListenerConfig {
value
=
@Queue
(
value
=
RabbitMqConstant
.
FANOUT_EXCHANGE_QUEUE_TOPIC_API_RELEASE1
,
durable
=
"true"
,
exclusive
=
"false"
,
autoDelete
=
"false"
)))
value
=
@Queue
(
value
=
RabbitMqConstant
.
FANOUT_EXCHANGE_QUEUE_TOPIC_API_RELEASE1
,
durable
=
"true"
,
exclusive
=
"false"
,
autoDelete
=
"false"
)))
public
void
fanoutQueueRelease
(
String
id
,
Channel
channel
,
Message
message
)
throws
Exception
{
public
void
fanoutQueueRelease
(
String
id
,
Channel
channel
,
Message
message
)
throws
Exception
{
try
{
try
{
System
.
out
.
println
(
"fanoutQueueRelease接收到了:"
+
id
);
log
.
info
(
"fanoutQueueRelease接收到了:{}"
,
id
);
DataApiEntity
dataApiEntity
=
dataApiServiceFeign
.
getDataApiById
(
id
);
queueHandlerService
.
handlerRelease
(
id
);
if
(
dataApiEntity
!=
null
){
log
.
info
(
"api={}"
,
dataApiEntity
);
}
}
catch
(
Exception
e
){
}
catch
(
Exception
e
){
log
.
error
(
"全局异常信息ex={}, StackTrace={}"
,
e
.
getMessage
(),
ThrowableUtil
.
getStackTrace
(
e
));
log
.
error
(
"全局异常信息ex={}, StackTrace={}"
,
e
.
getMessage
(),
ThrowableUtil
.
getStackTrace
(
e
));
}
}
...
@@ -54,7 +43,8 @@ public class RabbitMqListenerConfig {
...
@@ -54,7 +43,8 @@ public class RabbitMqListenerConfig {
value
=
@Queue
(
value
=
RabbitMqConstant
.
FANOUT_EXCHANGE_QUEUE_TOPIC_API_CANCEL1
,
durable
=
"true"
,
exclusive
=
"false"
,
autoDelete
=
"false"
)))
value
=
@Queue
(
value
=
RabbitMqConstant
.
FANOUT_EXCHANGE_QUEUE_TOPIC_API_CANCEL1
,
durable
=
"true"
,
exclusive
=
"false"
,
autoDelete
=
"false"
)))
public
void
fanoutQueueCancel
(
String
id
,
Channel
channel
,
Message
message
)
throws
Exception
{
public
void
fanoutQueueCancel
(
String
id
,
Channel
channel
,
Message
message
)
throws
Exception
{
try
{
try
{
System
.
out
.
println
(
"fanoutQueueCancel接收到了:"
+
id
);
log
.
info
(
"fanoutQueueCancel接收到了:{}"
,
id
);
queueHandlerService
.
handlerCancel
(
id
);
}
catch
(
Exception
e
){
}
catch
(
Exception
e
){
log
.
error
(
"全局异常信息ex={}, StackTrace={}"
,
e
.
getMessage
(),
ThrowableUtil
.
getStackTrace
(
e
));
log
.
error
(
"全局异常信息ex={}, StackTrace={}"
,
e
.
getMessage
(),
ThrowableUtil
.
getStackTrace
(
e
));
}
}
...
...
datax-modules/data-market-service-parent/data-market-service
/src/main/java/cn/datax/service/data/market
/controller/ApiExecuteController.java
→
datax-modules/data-market-service-parent/data-market-service
-api-mapping/src/main/java/cn/datax/service/data/market/api/mapping
/controller/ApiExecuteController.java
View file @
23336f6e
package
cn
.
datax
.
service
.
data
.
market
.
controller
;
package
cn
.
datax
.
service
.
data
.
market
.
api
.
mapping
.
controller
;
import
cn.datax.common.base.BaseController
;
import
cn.datax.common.base.BaseController
;
import
cn.datax.common.core.R
;
import
cn.datax.common.core.R
;
import
cn.datax.service.data.market.api.mapping.service.ApiExecuteService
;
import
cn.datax.service.data.market.api.vo.ApiHeader
;
import
cn.datax.service.data.market.api.vo.ApiHeader
;
import
cn.datax.service.data.market.service.ApiExecuteService
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.*
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.PathVariable
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
@RestController
@RestController
@RequestMapping
(
"/apis"
)
@RequestMapping
(
"/apis"
)
...
...
datax-modules/data-market-service-parent/data-market-service-api-mapping/src/main/java/cn/datax/service/data/market/api/mapping/controller/InnerController.java
View file @
23336f6e
...
@@ -4,7 +4,6 @@ import cn.datax.common.base.BaseController;
...
@@ -4,7 +4,6 @@ import cn.datax.common.base.BaseController;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
import
org.springframework.web.bind.annotation.RestController
;
@RestController
@RestController
@RequestMapping
(
"/inner"
)
@RequestMapping
(
"/inner"
)
public
class
InnerController
extends
BaseController
{
public
class
InnerController
extends
BaseController
{
...
...
datax-modules/data-market-service-parent/data-market-service-api-mapping/src/main/java/cn/datax/service/data/market/api/mapping/
config
/MappingHandlerMapping.java
→
datax-modules/data-market-service-parent/data-market-service-api-mapping/src/main/java/cn/datax/service/data/market/api/mapping/
handler
/MappingHandlerMapping.java
View file @
23336f6e
package
cn
.
datax
.
service
.
data
.
market
.
api
.
mapping
.
config
;
package
cn
.
datax
.
service
.
data
.
market
.
api
.
mapping
.
handler
;
import
cn.datax.service.data.market.api.entity.DataApiEntity
;
import
cn.datax.service.data.market.api.entity.DataApiEntity
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
...
@@ -31,7 +31,8 @@ public class MappingHandlerMapping {
...
@@ -31,7 +31,8 @@ public class MappingHandlerMapping {
}
}
}
}
private
String
prefix
=
"v1"
;
private
String
ignore
=
"services"
;
private
String
prefix
=
"v1.0.0"
;
private
String
separator
=
"/"
;
private
String
separator
=
"/"
;
public
MappingHandlerMapping
()
{}
public
MappingHandlerMapping
()
{}
...
@@ -99,10 +100,16 @@ public class MappingHandlerMapping {
...
@@ -99,10 +100,16 @@ public class MappingHandlerMapping {
return
RequestMappingInfo
.
paths
(
getRequestPath
(
api
.
getApiVersion
(),
api
.
getApiUrl
())).
methods
(
RequestMethod
.
valueOf
(
api
.
getReqMethod
().
toUpperCase
())).
build
();
return
RequestMappingInfo
.
paths
(
getRequestPath
(
api
.
getApiVersion
(),
api
.
getApiUrl
())).
methods
(
RequestMethod
.
valueOf
(
api
.
getReqMethod
().
toUpperCase
())).
build
();
}
}
/**
* 调用接口 /services/v1.0.0/user/1
* @param version
* @param path
* @return
*/
private
String
getRequestPath
(
String
version
,
String
path
)
{
private
String
getRequestPath
(
String
version
,
String
path
)
{
if
(
version
!=
null
)
{
if
(
version
!=
null
)
{
prefix
=
version
;
prefix
=
version
;
}
}
return
separator
+
prefix
+
(
path
.
startsWith
(
separator
)
?
path
:
(
separator
+
path
));
return
separator
+
ignore
+
separator
+
prefix
+
(
path
.
startsWith
(
separator
)
?
path
:
(
separator
+
path
));
}
}
}
}
datax-modules/data-market-service-parent/data-market-service-api-mapping/src/main/java/cn/datax/service/data/market/api/mapping/
config
/RequestHandler.java
→
datax-modules/data-market-service-parent/data-market-service-api-mapping/src/main/java/cn/datax/service/data/market/api/mapping/
handler
/RequestHandler.java
View file @
23336f6e
package
cn
.
datax
.
service
.
data
.
market
.
api
.
mapping
.
config
;
package
cn
.
datax
.
service
.
data
.
market
.
api
.
mapping
.
handler
;
import
cn.datax.common.core.DataConstant
;
import
cn.datax.common.core.DataConstant
;
import
cn.datax.common.core.R
;
import
cn.datax.common.core.R
;
...
...
datax-modules/data-market-service-parent/data-market-service-api-mapping/src/main/java/cn/datax/service/data/market/api/mapping/
config
/RequestInterceptor.java
→
datax-modules/data-market-service-parent/data-market-service-api-mapping/src/main/java/cn/datax/service/data/market/api/mapping/
handler
/RequestInterceptor.java
View file @
23336f6e
package
cn
.
datax
.
service
.
data
.
market
.
api
.
mapping
.
config
;
package
cn
.
datax
.
service
.
data
.
market
.
api
.
mapping
.
handler
;
import
cn.datax.common.core.DataConstant
;
import
cn.datax.common.core.DataConstant
;
import
cn.datax.common.core.R
;
import
cn.datax.common.core.R
;
...
...
datax-modules/data-market-service-parent/data-market-service
/src/main/java/cn/datax/service/data/market
/service/ApiExecuteService.java
→
datax-modules/data-market-service-parent/data-market-service
-api-mapping/src/main/java/cn/datax/service/data/market/api/mapping
/service/ApiExecuteService.java
View file @
23336f6e
package
cn
.
datax
.
service
.
data
.
market
.
service
;
package
cn
.
datax
.
service
.
data
.
market
.
api
.
mapping
.
service
;
import
cn.datax.service.data.market.api.vo.ApiHeader
;
import
cn.datax.service.data.market.api.vo.ApiHeader
;
...
...
datax-modules/data-market-service-parent/data-market-service-api-mapping/src/main/java/cn/datax/service/data/market/api/mapping/service/QueueHandlerService.java
0 → 100644
View file @
23336f6e
package
cn
.
datax
.
service
.
data
.
market
.
api
.
mapping
.
service
;
public
interface
QueueHandlerService
{
void
handlerRelease
(
String
id
);
void
handlerCancel
(
String
id
);
}
datax-modules/data-market-service-parent/data-market-service
/src/main/java/cn/datax/service/data/market
/service/impl/ApiExecuteServiceImpl.java
→
datax-modules/data-market-service-parent/data-market-service
-api-mapping/src/main/java/cn/datax/service/data/market/api/mapping
/service/impl/ApiExecuteServiceImpl.java
View file @
23336f6e
package
cn
.
datax
.
service
.
data
.
market
.
service
.
impl
;
package
cn
.
datax
.
service
.
data
.
market
.
api
.
mapping
.
service
.
impl
;
import
cn.datax.common.utils.MD5Util
;
import
cn.datax.common.utils.MD5Util
;
import
cn.datax.common.utils.SecurityUtil
;
import
cn.datax.common.utils.SecurityUtil
;
import
cn.datax.common.utils.ThrowableUtil
;
import
cn.datax.service.data.market.api.mapping.service.ApiExecuteService
;
import
cn.datax.service.data.market.api.vo.ApiHeader
;
import
cn.datax.service.data.market.api.vo.ApiHeader
;
import
cn.datax.service.data.market.service.ApiExecuteService
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Propagation
;
import
org.springframework.transaction.annotation.Propagation
;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.transaction.annotation.Transactional
;
@Slf4j
@Service
@Service
@Transactional
(
propagation
=
Propagation
.
SUPPORTS
,
readOnly
=
true
,
rollbackFor
=
Exception
.
class
)
@Transactional
(
propagation
=
Propagation
.
SUPPORTS
,
readOnly
=
true
,
rollbackFor
=
Exception
.
class
)
public
class
ApiExecuteServiceImpl
implements
ApiExecuteService
{
public
class
ApiExecuteServiceImpl
implements
ApiExecuteService
{
@Override
@Override
public
ApiHeader
getApiHeader
(
String
id
)
{
public
ApiHeader
getApiHeader
(
String
id
)
{
ApiHeader
apiHeader
=
new
ApiHeader
();
try
{
try
{
ApiHeader
apiHeader
=
new
ApiHeader
();
MD5Util
mt
=
MD5Util
.
getInstance
();
MD5Util
mt
=
MD5Util
.
getInstance
();
apiHeader
.
setApiKey
(
mt
.
encode
(
id
));
apiHeader
.
setApiKey
(
mt
.
encode
(
id
));
apiHeader
.
setSecretKey
(
mt
.
encode
(
SecurityUtil
.
getUserId
()));
apiHeader
.
setSecretKey
(
mt
.
encode
(
SecurityUtil
.
getUserId
()));
return
apiHeader
;
}
catch
(
Exception
e
)
{
}
catch
(
Exception
e
)
{
log
.
error
(
"全局异常信息ex={}, StackTrace={}"
,
e
.
getMessage
(),
ThrowableUtil
.
getStackTrace
(
e
));
return
null
;
}
}
return
apiHeader
;
}
}
}
}
datax-modules/data-market-service-parent/data-market-service-api-mapping/src/main/java/cn/datax/service/data/market/api/mapping/service/impl/ApiMappingEngine.java
View file @
23336f6e
package
cn
.
datax
.
service
.
data
.
market
.
api
.
mapping
.
service
.
impl
;
package
cn
.
datax
.
service
.
data
.
market
.
api
.
mapping
.
service
.
impl
;
import
cn.datax.common.core.R
;
import
cn.datax.common.database.DataSourceFactory
;
import
cn.datax.common.database.DataSourceFactory
;
import
cn.datax.common.database.DbQuery
;
import
cn.datax.common.database.DbQuery
;
import
cn.datax.common.database.constants.DbQueryProperty
;
import
cn.datax.common.database.constants.DbQueryProperty
;
...
@@ -20,9 +19,6 @@ import cn.datax.service.data.market.api.mapping.factory.FactoryProducer;
...
@@ -20,9 +19,6 @@ import cn.datax.service.data.market.api.mapping.factory.FactoryProducer;
import
cn.datax.service.data.market.api.mapping.factory.crypto.Crypto
;
import
cn.datax.service.data.market.api.mapping.factory.crypto.Crypto
;
import
cn.datax.service.data.market.api.mapping.utils.SqlBuilderUtil
;
import
cn.datax.service.data.market.api.mapping.utils.SqlBuilderUtil
;
import
cn.hutool.core.collection.CollUtil
;
import
cn.hutool.core.collection.CollUtil
;
import
cn.hutool.core.util.ObjectUtil
;
import
com.fasterxml.jackson.core.JsonProcessingException
;
import
com.fasterxml.jackson.databind.ObjectMapper
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
...
@@ -44,19 +40,11 @@ public class ApiMappingEngine {
...
@@ -44,19 +40,11 @@ public class ApiMappingEngine {
@Autowired
@Autowired
private
ApiMaskServiceFeign
apiMaskServiceFeign
;
private
ApiMaskServiceFeign
apiMaskServiceFeign
;
@Autowired
private
ObjectMapper
objectMapper
;
public
PageResult
<
Map
<
String
,
Object
>>
execute
(
DataApiEntity
dataApi
,
Map
<
String
,
Object
>
params
)
{
public
PageResult
<
Map
<
String
,
Object
>>
execute
(
DataApiEntity
dataApi
,
Map
<
String
,
Object
>
params
)
{
R
sourceResult
=
dataSourceServiceFeign
.
getDataSourceById
(
dataApi
.
getExecuteConfig
().
getSourceId
());
DataSourceEntity
dataSource
=
dataSourceServiceFeign
.
getDataSourceById
(
dataApi
.
getExecuteConfig
().
getSourceId
());
if
(
sourceResult
==
null
||
!
sourceResult
.
isSuccess
()
||
ObjectUtil
.
isEmpty
(
sourceResult
.
getData
()))
{
if
(
dataSource
==
null
)
{
throw
new
DataException
(
"API调用查询数据源出错"
);
throw
new
DataException
(
"API调用查询数据源出错"
);
}
}
DataSourceEntity
dataSource
=
null
;
try
{
dataSource
=
objectMapper
.
readValue
(
objectMapper
.
writeValueAsString
(
sourceResult
.
getData
()),
DataSourceEntity
.
class
);
}
catch
(
JsonProcessingException
e
)
{
}
DbSchema
dbSchema
=
dataSource
.
getDbSchema
();
DbSchema
dbSchema
=
dataSource
.
getDbSchema
();
DbQueryProperty
dbQueryProperty
=
new
DbQueryProperty
(
dataSource
.
getDbType
(),
dbSchema
.
getHost
(),
DbQueryProperty
dbQueryProperty
=
new
DbQueryProperty
(
dataSource
.
getDbType
(),
dbSchema
.
getHost
(),
dbSchema
.
getUsername
(),
dbSchema
.
getPassword
(),
dbSchema
.
getPort
(),
dbSchema
.
getDbName
(),
dbSchema
.
getSid
());
dbSchema
.
getUsername
(),
dbSchema
.
getPassword
(),
dbSchema
.
getPort
(),
dbSchema
.
getDbName
(),
dbSchema
.
getSid
());
...
@@ -75,17 +63,11 @@ public class ApiMappingEngine {
...
@@ -75,17 +63,11 @@ public class ApiMappingEngine {
}
}
Map
<
String
,
Object
>
acceptedFilters
=
sqlFilterResult
.
getAcceptedFilters
();
Map
<
String
,
Object
>
acceptedFilters
=
sqlFilterResult
.
getAcceptedFilters
();
// 数据脱敏
// 数据脱敏
List
<
FieldRule
>
rules
=
null
;
List
<
FieldRule
>
rules
;
R
apiMaskResult
=
apiMaskServiceFeign
.
getApiMaskByApiId
(
dataApi
.
getId
());
ApiMaskEntity
apiMaskEntity
=
apiMaskServiceFeign
.
getApiMaskByApiId
(
dataApi
.
getId
());
if
(
apiMaskResult
==
null
||
!
apiMaskResult
.
isSuccess
()
||
ObjectUtil
.
isEmpty
(
apiMaskResult
.
getData
()))
{
if
(
apiMaskEntity
==
null
)
{
throw
new
DataException
(
"API调用查询数据脱敏出错"
);
throw
new
DataException
(
"API调用查询数据脱敏出错"
);
}
}
else
{
ApiMaskEntity
apiMaskEntity
=
null
;
try
{
apiMaskEntity
=
objectMapper
.
readValue
(
objectMapper
.
writeValueAsString
(
apiMaskResult
.
getData
()),
ApiMaskEntity
.
class
);
}
catch
(
JsonProcessingException
e
)
{
}
if
(
apiMaskEntity
!=
null
)
{
rules
=
apiMaskEntity
.
getRules
();
rules
=
apiMaskEntity
.
getRules
();
}
}
PageResult
<
Map
<
String
,
Object
>>
pageResult
;
PageResult
<
Map
<
String
,
Object
>>
pageResult
;
...
...
datax-modules/data-market-service-parent/data-market-service-api-mapping/src/main/java/cn/datax/service/data/market/api/mapping/service/impl/QueueHandlerServiceImpl.java
0 → 100644
View file @
23336f6e
package
cn
.
datax
.
service
.
data
.
market
.
api
.
mapping
.
service
.
impl
;
import
cn.datax.service.data.market.api.entity.DataApiEntity
;
import
cn.datax.service.data.market.api.feign.DataApiServiceFeign
;
import
cn.datax.service.data.market.api.mapping.handler.MappingHandlerMapping
;
import
cn.datax.service.data.market.api.mapping.service.QueueHandlerService
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
@Slf4j
@Service
public
class
QueueHandlerServiceImpl
implements
QueueHandlerService
{
@Autowired
private
DataApiServiceFeign
dataApiServiceFeign
;
@Autowired
private
MappingHandlerMapping
mappingHandlerMapping
;
@Override
public
void
handlerRelease
(
String
id
)
{
DataApiEntity
dataApiEntity
=
dataApiServiceFeign
.
getDataApiById
(
id
);
if
(
dataApiEntity
!=
null
)
{
mappingHandlerMapping
.
registerMapping
(
dataApiEntity
);
}
}
@Override
public
void
handlerCancel
(
String
id
)
{
DataApiEntity
dataApiEntity
=
dataApiServiceFeign
.
getDataApiById
(
id
);
if
(
dataApiEntity
!=
null
)
{
mappingHandlerMapping
.
unregisterMapping
(
dataApiEntity
);
}
}
}
datax-modules/data-market-service-parent/data-market-service-api/src/main/java/cn/datax/service/data/market/api/feign/ApiMaskServiceFeign.java
View file @
23336f6e
package
cn
.
datax
.
service
.
data
.
market
.
api
.
feign
;
package
cn
.
datax
.
service
.
data
.
market
.
api
.
feign
;
import
cn.datax.
common.core.R
;
import
cn.datax.
service.data.market.api.entity.ApiMaskEntity
;
import
cn.datax.service.data.market.api.feign.factory.ApiMaskServiceFeignFallbackFactory
;
import
cn.datax.service.data.market.api.feign.factory.ApiMaskServiceFeignFallbackFactory
;
import
org.springframework.cloud.openfeign.FeignClient
;
import
org.springframework.cloud.openfeign.FeignClient
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.GetMapping
;
...
@@ -9,6 +9,6 @@ import org.springframework.web.bind.annotation.PathVariable;
...
@@ -9,6 +9,6 @@ import org.springframework.web.bind.annotation.PathVariable;
@FeignClient
(
contextId
=
"apiMaskServiceFeign"
,
value
=
"datax-service-data-market"
,
fallbackFactory
=
ApiMaskServiceFeignFallbackFactory
.
class
)
@FeignClient
(
contextId
=
"apiMaskServiceFeign"
,
value
=
"datax-service-data-market"
,
fallbackFactory
=
ApiMaskServiceFeignFallbackFactory
.
class
)
public
interface
ApiMaskServiceFeign
{
public
interface
ApiMaskServiceFeign
{
@GetMapping
(
"/
apiMasks/api/{apiI
d}"
)
@GetMapping
(
"/
inner/apiMasks/api/{i
d}"
)
R
getApiMaskByApiId
(
@PathVariable
(
"apiId"
)
String
apiI
d
);
ApiMaskEntity
getApiMaskByApiId
(
@PathVariable
(
"id"
)
String
i
d
);
}
}
datax-modules/data-market-service-parent/data-market-service-api/src/main/java/cn/datax/service/data/market/api/feign/fallback/ApiMaskServiceFeignFallbackImpl.java
View file @
23336f6e
package
cn
.
datax
.
service
.
data
.
market
.
api
.
feign
.
fallback
;
package
cn
.
datax
.
service
.
data
.
market
.
api
.
feign
.
fallback
;
import
cn.datax.
common.core.R
;
import
cn.datax.
service.data.market.api.entity.ApiMaskEntity
;
import
cn.datax.service.data.market.api.feign.ApiMaskServiceFeign
;
import
cn.datax.service.data.market.api.feign.ApiMaskServiceFeign
;
import
lombok.Setter
;
import
lombok.Setter
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
...
@@ -14,7 +14,7 @@ public class ApiMaskServiceFeignFallbackImpl implements ApiMaskServiceFeign {
...
@@ -14,7 +14,7 @@ public class ApiMaskServiceFeignFallbackImpl implements ApiMaskServiceFeign {
private
Throwable
cause
;
private
Throwable
cause
;
@Override
@Override
public
R
getApiMaskByApiId
(
String
id
)
{
public
ApiMaskEntity
getApiMaskByApiId
(
String
id
)
{
log
.
error
(
"feign 调用{}出错"
,
id
,
cause
);
log
.
error
(
"feign 调用{}出错"
,
id
,
cause
);
return
null
;
return
null
;
}
}
...
...
datax-modules/data-market-service-parent/data-market-service/src/main/java/cn/datax/service/data/market/controller/InnerController.java
View file @
23336f6e
package
cn
.
datax
.
service
.
data
.
market
.
controller
;
package
cn
.
datax
.
service
.
data
.
market
.
controller
;
import
cn.datax.common.base.BaseController
;
import
cn.datax.common.base.BaseController
;
import
cn.datax.common.core.R
;
import
cn.datax.common.security.annotation.DataInner
;
import
cn.datax.common.security.annotation.DataInner
;
import
cn.datax.service.data.market.api.entity.ApiMaskEntity
;
import
cn.datax.service.data.market.api.entity.DataApiEntity
;
import
cn.datax.service.data.market.api.entity.DataApiEntity
;
import
cn.datax.service.data.market.
mapstruct.DataApiMapper
;
import
cn.datax.service.data.market.
service.ApiMaskService
;
import
cn.datax.service.data.market.service.DataApiService
;
import
cn.datax.service.data.market.service.DataApiService
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.GetMapping
;
...
@@ -19,11 +19,19 @@ public class InnerController extends BaseController {
...
@@ -19,11 +19,19 @@ public class InnerController extends BaseController {
@Autowired
@Autowired
private
DataApiService
dataApiService
;
private
DataApiService
dataApiService
;
@Autowired
private
ApiMaskService
apiMaskService
;
@DataInner
@DataInner
@GetMapping
(
"/apis/{id}"
)
@GetMapping
(
"/apis/{id}"
)
public
DataApiEntity
getDataApiById
(
@PathVariable
String
id
)
{
public
DataApiEntity
getDataApiById
(
@PathVariable
(
"id"
)
String
id
)
{
DataApiEntity
dataApiEntity
=
dataApiService
.
getDataApiById
(
id
);
DataApiEntity
dataApiEntity
=
dataApiService
.
getDataApiById
(
id
);
return
dataApiEntity
;
return
dataApiEntity
;
}
}
@GetMapping
(
"/apiMasks/api/{id}"
)
public
ApiMaskEntity
getApiMaskByApiId
(
@PathVariable
(
"id"
)
String
id
)
{
ApiMaskEntity
apiMaskEntity
=
apiMaskService
.
getApiMaskByApiId
(
id
);
return
apiMaskEntity
;
}
}
}
datax-modules/email-service-parent/email-service-api/src/main/java/cn/datax/service/email/api/feign/EmailServiceFeign.java
deleted
100644 → 0
View file @
12d3492e
package
cn
.
datax
.
service
.
email
.
api
.
feign
;
import
cn.datax.common.core.R
;
import
cn.datax.service.email.api.dto.EmailDto
;
import
cn.datax.service.email.api.entity.EmailEntity
;
import
cn.datax.service.email.api.feign.factory.EmailServiceFeignFallbackFactory
;
import
org.springframework.cloud.openfeign.FeignClient
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.RequestBody
;
@FeignClient
(
contextId
=
"emailServiceFeign"
,
value
=
"datax-service-email"
,
fallbackFactory
=
EmailServiceFeignFallbackFactory
.
class
)
public
interface
EmailServiceFeign
{
@PostMapping
(
"/inner/sendMail"
)
R
sendMail
(
@RequestBody
EmailDto
mail
);
}
datax-modules/email-service-parent/email-service-api/src/main/java/cn/datax/service/email/api/feign/factory/EmailServiceFeignFallbackFactory.java
deleted
100644 → 0
View file @
12d3492e
package
cn
.
datax
.
service
.
email
.
api
.
feign
.
factory
;
import
cn.datax.service.email.api.feign.EmailServiceFeign
;
import
cn.datax.service.email.api.feign.fallback.EmailServiceFeignFallbackImpl
;
import
feign.hystrix.FallbackFactory
;
import
org.springframework.stereotype.Component
;
@Component
public
class
EmailServiceFeignFallbackFactory
implements
FallbackFactory
<
EmailServiceFeign
>
{
@Override
public
EmailServiceFeign
create
(
Throwable
throwable
)
{
return
new
EmailServiceFeignFallbackImpl
(
throwable
);
}
}
datax-modules/email-service-parent/email-service-api/src/main/java/cn/datax/service/email/api/feign/fallback/EmailServiceFeignFallbackImpl.java
deleted
100644 → 0
View file @
12d3492e
package
cn
.
datax
.
service
.
email
.
api
.
feign
.
fallback
;
import
cn.datax.common.core.R
;
import
cn.datax.service.email.api.dto.EmailDto
;
import
cn.datax.service.email.api.feign.EmailServiceFeign
;
import
lombok.AllArgsConstructor
;
import
lombok.extern.slf4j.Slf4j
;
@Slf4j
@AllArgsConstructor
public
class
EmailServiceFeignFallbackImpl
implements
EmailServiceFeign
{
private
final
Throwable
cause
;
@Override
public
R
sendMail
(
EmailDto
mail
)
{
log
.
error
(
"feign 调用邮件出错,信息:{}"
,
cause
.
getLocalizedMessage
());
return
null
;
}
}
datax-modules/email-service-parent/email-service/src/main/java/cn/datax/service/email/controller/InnerController.java
View file @
23336f6e
package
cn
.
datax
.
service
.
email
.
controller
;
package
cn
.
datax
.
service
.
email
.
controller
;
import
cn.datax.common.base.BaseController
;
import
cn.datax.common.base.BaseController
;
import
cn.datax.common.core.R
;
import
cn.datax.common.utils.ThrowableUtil
;
import
cn.datax.service.email.api.dto.EmailDto
;
import
cn.datax.service.email.api.entity.EmailEntity
;
import
cn.datax.service.email.mapstruct.EmailMapper
;
import
cn.datax.service.email.utils.EmailUtil
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
import
org.springframework.web.bind.annotation.RestController
;
...
@@ -19,21 +10,4 @@ import org.springframework.web.bind.annotation.RestController;
...
@@ -19,21 +10,4 @@ import org.springframework.web.bind.annotation.RestController;
@RequestMapping
(
"/inner"
)
@RequestMapping
(
"/inner"
)
public
class
InnerController
extends
BaseController
{
public
class
InnerController
extends
BaseController
{
@Autowired
private
EmailMapper
emailMapper
;
@Autowired
private
EmailUtil
emailUtil
;
@PostMapping
(
"/sendMail"
)
public
R
sendMail
(
@RequestBody
EmailDto
mail
)
{
EmailEntity
emailEntity
=
emailMapper
.
toEntity
(
mail
);
try
{
emailUtil
.
sendEmail
(
emailEntity
);
return
R
.
ok
();
}
catch
(
Exception
e
)
{
log
.
error
(
"全局异常信息ex={}, StackTrace={}"
,
e
.
getMessage
(),
ThrowableUtil
.
getStackTrace
(
e
));
return
R
.
error
(
e
.
getMessage
());
}
}
}
}
datax-modules/email-service-parent/email-service/src/main/resources/logback-spring.xml
0 → 100644
View file @
23336f6e
<?xml version="1.0" encoding="UTF-8"?>
<configuration
scan=
"true"
scanPeriod=
"60 seconds"
debug=
"false"
>
<springProperty
scope=
"context"
name=
"springAppName"
source=
"spring.application.name"
/>
<property
name=
"log.path"
value=
"logs/datax-service-email"
/>
<property
name=
"log.maxHistory"
value=
"15"
/>
<property
name=
"log.totalSizeCap"
value=
"500MB"
/>
<property
name=
"log.maxFileSize"
value=
"10MB"
/>
<property
name=
"log.colorPattern"
value=
"%magenta(%d{yyyy-MM-dd HH:mm:ss}) %highlight(%-5level) %boldCyan(${springAppName:-}) %yellow(%thread) %green(%logger) %msg%n"
/>
<property
name=
"log.pattern"
value=
"%d{yyyy-MM-dd HH:mm:ss} %-5level ${springAppName:-} %thread %logger %msg%n"
/>
<!--输出到控制台-->
<appender
name=
"console"
class=
"ch.qos.logback.core.ConsoleAppender"
>
<encoder>
<pattern>
${log.colorPattern}
</pattern>
</encoder>
</appender>
<!--输出到文件-->
<!-- RollingFileAppender:滚动记录文件,先将日志记录到指定文件,当符合某个条件时,将日志记录到其他文件 -->
<!-- 以下的大概意思是:1.先按日期存日志,日期变了,将前一天的日志文件名重命名为XXX%日期%索引,新的日志仍然是project_info.log -->
<!-- 2.如果日期没有发生变化,但是当前日志的文件大小超过10MB时,对当前日志进行分割 重命名-->
<appender
name=
"file_info"
class=
"ch.qos.logback.core.rolling.RollingFileAppender"
>
<!--日志文件路径和名称-->
<File>
${log.path}/info/info.log
</File>
<!--是否追加到文件末尾,默认为true-->
<append>
true
</append>
<rollingPolicy
class=
"ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy"
>
<!-- 日志文件的名字会根据fileNamePattern的值,每隔一段时间改变一次 -->
<!-- 文件名:logs/project_info.2017-12-05.0.log -->
<!-- 注意:SizeAndTimeBasedRollingPolicy中 %i和%d令牌都是强制性的,必须存在,要不会报错 -->
<fileNamePattern>
${log.path}/info/info.%d.%i.log
</fileNamePattern>
<!-- 每产生一个日志文件,该日志文件的保存期限为30天, ps:maxHistory的单位是根据fileNamePattern中的翻转策略自动推算出来的,例如上面选用了yyyy-MM-dd,则单位为天
如果上面选用了yyyy-MM,则单位为月,另外上面的单位默认为yyyy-MM-dd-->
<MaxHistory>
${log.maxHistory}
</MaxHistory>
<!-- 每个日志文件到2mb的时候开始切分,最多保留30天,但最大到500MB,哪怕没到30天也要删除多余的日志 -->
<totalSizeCap>
${log.totalSizeCap}
</totalSizeCap>
<!-- maxFileSize:这是活动文件的大小,默认值是10MB,测试时可改成5KB看效果 -->
<maxFileSize>
${log.maxFileSize}
</maxFileSize>
</rollingPolicy>
<encoder>
<pattern>
${log.pattern}
</pattern>
</encoder>
<filter
class=
"ch.qos.logback.classic.filter.LevelFilter"
>
<level>
INFO
</level>
<onMatch>
ACCEPT
</onMatch>
<onMismatch>
DENY
</onMismatch>
</filter>
</appender>
<appender
name=
"file_error"
class=
"ch.qos.logback.core.rolling.RollingFileAppender"
>
<File>
${log.path}/error/error.log
</File>
<append>
true
</append>
<rollingPolicy
class=
"ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy"
>
<fileNamePattern>
${log.path}/error/error.%d.%i.log
</fileNamePattern>
<MaxHistory>
${log.maxHistory}
</MaxHistory>
<totalSizeCap>
${log.totalSizeCap}
</totalSizeCap>
<maxFileSize>
${log.maxFileSize}
</maxFileSize>
</rollingPolicy>
<encoder>
<pattern>
${log.pattern}
</pattern>
</encoder>
<filter
class=
"ch.qos.logback.classic.filter.LevelFilter"
>
<level>
ERROR
</level>
<onMatch>
ACCEPT
</onMatch>
<onMismatch>
DENY
</onMismatch>
</filter>
</appender>
<root
level=
"debug"
>
<appender-ref
ref=
"console"
/>
</root>
<root
level=
"info"
>
<appender-ref
ref=
"file_info"
/>
<appender-ref
ref=
"file_error"
/>
</root>
</configuration>
\ No newline at end of file
datax-modules/email-service-parent/email-service/src/main/resources/mapper/EmailMapper.xml
0 → 100644
View file @
23336f6e
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper
namespace=
"cn.datax.service.email.dao.EmailDao"
>
<!-- 通用查询映射结果 -->
<resultMap
id=
"BaseResultMap"
type=
"cn.datax.service.email.api.entity.EmailEntity"
>
<result
column=
"id"
property=
"id"
/>
<result
column=
"status"
property=
"status"
/>
<result
column=
"create_by"
property=
"createBy"
/>
<result
column=
"create_time"
property=
"createTime"
/>
<result
column=
"update_by"
property=
"updateBy"
/>
<result
column=
"update_time"
property=
"updateTime"
/>
<result
column=
"remark"
property=
"remark"
/>
<result
column=
"subject"
property=
"subject"
/>
<result
column=
"text"
property=
"text"
/>
<result
column=
"tos"
property=
"tos"
typeHandler=
"com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler"
/>
<result
column=
"ccs"
property=
"ccs"
typeHandler=
"com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler"
/>
<result
column=
"bccs"
property=
"bccs"
typeHandler=
"com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler"
/>
</resultMap>
<!-- 通用查询结果列 -->
<sql
id=
"Base_Column_List"
>
id,
status,
create_by,
create_time,
update_by,
update_time,
remark,
subject, text, tos, ccs, bccs
</sql>
</mapper>
datax-modules/system-service-parent/system-service-api/src/main/java/cn/datax/service/system/api/feign/LogServiceFeign.java
View file @
23336f6e
package
cn
.
datax
.
service
.
system
.
api
.
feign
;
package
cn
.
datax
.
service
.
system
.
api
.
feign
;
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.factory.LogServiceFeignFallbackFactory
;
import
cn.datax.service.system.api.feign.factory.LogServiceFeignFallbackFactory
;
import
org.springframework.cloud.openfeign.FeignClient
;
import
org.springframework.cloud.openfeign.FeignClient
;
...
@@ -11,5 +10,5 @@ import org.springframework.web.bind.annotation.RequestBody;
...
@@ -11,5 +10,5 @@ import org.springframework.web.bind.annotation.RequestBody;
public
interface
LogServiceFeign
{
public
interface
LogServiceFeign
{
@PostMapping
(
"/inner/logs"
)
@PostMapping
(
"/inner/logs"
)
R
saveLog
(
@RequestBody
LogDto
logDto
);
void
saveLog
(
@RequestBody
LogDto
logDto
);
}
}
datax-modules/system-service-parent/system-service-api/src/main/java/cn/datax/service/system/api/feign/UserServiceFeign.java
View file @
23336f6e
package
cn
.
datax
.
service
.
system
.
api
.
feign
;
package
cn
.
datax
.
service
.
system
.
api
.
feign
;
import
cn.datax.common.core.R
;
import
cn.datax.service.system.api.feign.factory.UserServiceFeignFallbackFactory
;
import
cn.datax.service.system.api.feign.factory.UserServiceFeignFallbackFactory
;
import
cn.datax.service.system.api.vo.UserInfo
;
import
org.springframework.cloud.openfeign.FeignClient
;
import
org.springframework.cloud.openfeign.FeignClient
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.PathVariable
;
import
org.springframework.web.bind.annotation.PathVariable
;
...
@@ -10,5 +10,5 @@ import org.springframework.web.bind.annotation.PathVariable;
...
@@ -10,5 +10,5 @@ import org.springframework.web.bind.annotation.PathVariable;
public
interface
UserServiceFeign
{
public
interface
UserServiceFeign
{
@GetMapping
(
"/login/username/{username}"
)
@GetMapping
(
"/login/username/{username}"
)
R
loginByUsername
(
@PathVariable
(
"username"
)
String
username
);
UserInfo
loginByUsername
(
@PathVariable
(
"username"
)
String
username
);
}
}
datax-modules/system-service-parent/system-service-api/src/main/java/cn/datax/service/system/api/feign/fallback/LogServiceFeignFallbackImpl.java
View file @
23336f6e
package
cn
.
datax
.
service
.
system
.
api
.
feign
.
fallback
;
package
cn
.
datax
.
service
.
system
.
api
.
feign
.
fallback
;
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.Setter
;
import
lombok.Setter
;
...
@@ -15,8 +14,7 @@ public class LogServiceFeignFallbackImpl implements LogServiceFeign {
...
@@ -15,8 +14,7 @@ public class LogServiceFeignFallbackImpl implements LogServiceFeign {
private
Throwable
cause
;
private
Throwable
cause
;
@Override
@Override
public
R
saveLog
(
LogDto
logDto
)
{
public
void
saveLog
(
LogDto
logDto
)
{
log
.
error
(
"feign 调用出错"
,
cause
);
log
.
error
(
"feign 调用出错"
,
cause
);
return
null
;
}
}
}
}
datax-modules/system-service-parent/system-service-api/src/main/java/cn/datax/service/system/api/feign/fallback/UserServiceFeignFallbackImpl.java
View file @
23336f6e
package
cn
.
datax
.
service
.
system
.
api
.
feign
.
fallback
;
package
cn
.
datax
.
service
.
system
.
api
.
feign
.
fallback
;
import
cn.datax.common.core.R
;
import
cn.datax.service.system.api.feign.UserServiceFeign
;
import
cn.datax.service.system.api.feign.UserServiceFeign
;
import
cn.datax.service.system.api.vo.UserInfo
;
import
lombok.Setter
;
import
lombok.Setter
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.stereotype.Component
;
import
org.springframework.stereotype.Component
;
...
@@ -14,7 +14,7 @@ public class UserServiceFeignFallbackImpl implements UserServiceFeign {
...
@@ -14,7 +14,7 @@ public class UserServiceFeignFallbackImpl implements UserServiceFeign {
private
Throwable
cause
;
private
Throwable
cause
;
@Override
@Override
public
R
loginByUsername
(
String
username
)
{
public
UserInfo
loginByUsername
(
String
username
)
{
log
.
error
(
"feign 调用{}出错"
,
username
,
cause
);
log
.
error
(
"feign 调用{}出错"
,
username
,
cause
);
return
null
;
return
null
;
}
}
...
...
datax-modules/system-service-parent/system-service/src/main/java/cn/datax/service/system/controller/InnerController.java
View file @
23336f6e
package
cn
.
datax
.
service
.
system
.
controller
;
package
cn
.
datax
.
service
.
system
.
controller
;
import
cn.datax.common.base.BaseController
;
import
cn.datax.common.base.BaseController
;
import
cn.datax.common.core.R
;
import
cn.datax.common.security.annotation.DataInner
;
import
cn.datax.common.security.annotation.DataInner
;
import
cn.datax.service.system.api.dto.LogDto
;
import
cn.datax.service.system.api.dto.LogDto
;
import
cn.datax.service.system.async.AsyncTask
;
import
cn.datax.service.system.async.AsyncTask
;
...
@@ -17,8 +16,7 @@ public class InnerController extends BaseController {
...
@@ -17,8 +16,7 @@ public class InnerController extends BaseController {
@DataInner
@DataInner
@PostMapping
(
"/logs"
)
@PostMapping
(
"/logs"
)
public
R
saveLog
(
@RequestBody
LogDto
log
)
{
public
void
saveLog
(
@RequestBody
LogDto
log
)
{
asyncTask
.
doTask
(
log
);
asyncTask
.
doTask
(
log
);
return
R
.
ok
();
}
}
}
}
datax-modules/system-service-parent/system-service/src/main/java/cn/datax/service/system/controller/LoginController.java
View file @
23336f6e
...
@@ -8,18 +8,10 @@ import cn.datax.service.system.service.UserService;
...
@@ -8,18 +8,10 @@ import cn.datax.service.system.service.UserService;
import
cn.hutool.core.util.StrUtil
;
import
cn.hutool.core.util.StrUtil
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.http.HttpEntity
;
import
org.springframework.http.ResponseEntity
;
import
org.springframework.security.oauth2.common.OAuth2AccessToken
;
import
org.springframework.security.oauth2.common.OAuth2AccessToken
;
import
org.springframework.security.oauth2.common.OAuth2RefreshToken
;
import
org.springframework.security.oauth2.common.OAuth2RefreshToken
;
import
org.springframework.security.oauth2.provider.token.TokenStore
;
import
org.springframework.security.oauth2.provider.token.TokenStore
;
import
org.springframework.util.LinkedMultiValueMap
;
import
org.springframework.util.MultiValueMap
;
import
org.springframework.web.bind.annotation.*
;
import
org.springframework.web.bind.annotation.*
;
import
org.springframework.web.client.RestTemplate
;
import
java.util.Map
;
@Slf4j
@Slf4j
@RestController
@RestController
...
@@ -31,40 +23,11 @@ public class LoginController extends BaseController {
...
@@ -31,40 +23,11 @@ public class LoginController extends BaseController {
@Autowired
@Autowired
private
TokenStore
tokenStore
;
private
TokenStore
tokenStore
;
@Autowired
private
RestTemplate
restTemplate
;
@Value
(
"${security.oauth2.client.access-token-uri}"
)
private
String
accessTokenUri
;
@Value
(
"${security.oauth2.client.client-id}"
)
private
String
clientId
;
@Value
(
"${security.oauth2.client.client-secret}"
)
private
String
clientSecret
;
@Value
(
"${security.oauth2.client.scope}"
)
private
String
scope
;
@DataInner
@DataInner
@GetMapping
(
"/login/username/{username}"
)
@GetMapping
(
"/login/username/{username}"
)
public
R
loginByUsername
(
@PathVariable
String
username
)
{
public
UserInfo
loginByUsername
(
@PathVariable
String
username
)
{
UserInfo
userInfo
=
userService
.
getUserByUsername
(
username
);
UserInfo
userInfo
=
userService
.
getUserByUsername
(
username
);
return
R
.
ok
().
setData
(
userInfo
);
return
userInfo
;
}
@PostMapping
(
"/login"
)
public
R
login
(
String
username
,
String
password
)
{
MultiValueMap
<
String
,
String
>
paramsMap
=
new
LinkedMultiValueMap
<>();
paramsMap
.
set
(
"username"
,
username
);
paramsMap
.
set
(
"password"
,
password
);
paramsMap
.
set
(
"grant_type"
,
"password"
);
paramsMap
.
set
(
"scope"
,
scope
);
paramsMap
.
set
(
"client_id"
,
clientId
);
paramsMap
.
set
(
"client_secret"
,
clientSecret
);
HttpEntity
<
MultiValueMap
<
String
,
String
>>
request
=
new
HttpEntity
(
paramsMap
,
null
);
Object
object
=
restTemplate
.
postForObject
(
accessTokenUri
,
request
,
Object
.
class
);
if
(
null
!=
object
){
return
R
.
ok
().
setData
(
object
);
}
return
R
.
error
();
}
}
@DeleteMapping
(
"/logout/{token}"
)
@DeleteMapping
(
"/logout/{token}"
)
...
...
datax-modules/system-service-parent/system-service/src/main/resources/mapper/MenuMapper.xml
View file @
23336f6e
...
@@ -53,6 +53,7 @@
...
@@ -53,6 +53,7 @@
<foreach
collection=
"roleIds"
index=
"index"
item=
"item"
open=
"("
separator=
","
close=
")"
>
<foreach
collection=
"roleIds"
index=
"index"
item=
"item"
open=
"("
separator=
","
close=
")"
>
#{item}
#{item}
</foreach>
</foreach>
ORDER BY m.menu_sort ASC
</select>
</select>
<select
id=
"selectMenuByUserId"
parameterType=
"java.lang.String"
resultMap=
"BaseResultMap"
>
<select
id=
"selectMenuByUserId"
parameterType=
"java.lang.String"
resultMap=
"BaseResultMap"
>
...
@@ -63,6 +64,7 @@
...
@@ -63,6 +64,7 @@
LEFT JOIN sys_role_menu rm ON m.id = rm.menu_id
LEFT JOIN sys_role_menu rm ON m.id = rm.menu_id
LEFT JOIN sys_user_role ur ON rm.role_id = ur.role_id
LEFT JOIN sys_user_role ur ON rm.role_id = ur.role_id
WHERE m.status = 1 AND ur.user_id = #{userId}
WHERE m.status = 1 AND ur.user_id = #{userId}
ORDER BY m.menu_sort ASC
</select>
</select>
</mapper>
</mapper>
datax-ui/src/api/market/dataapi.js
View file @
23336f6e
...
@@ -84,28 +84,14 @@ export function cancelDataApi (id) {
...
@@ -84,28 +84,14 @@ export function cancelDataApi (id) {
export
function
getApiHeader
(
id
)
{
export
function
getApiHeader
(
id
)
{
return
request
({
return
request
({
url
:
'/data/
market
/apis/'
+
id
+
'/header'
,
url
:
'/data/
api
/apis/'
+
id
+
'/header'
,
method
:
'get'
method
:
'get'
})
})
}
}
export
function
apiRegister
(
id
)
{
return
request
({
url
:
'/data/market/apis/'
+
id
+
'/register'
,
method
:
'post'
})
}
export
function
apiUnRegister
(
id
)
{
return
request
({
url
:
'/data/market/apis/'
+
id
+
'/unregister'
,
method
:
'post'
})
}
export
function
getApiCall
(
url
,
header
,
data
)
{
export
function
getApiCall
(
url
,
header
,
data
)
{
return
request
({
return
request
({
url
:
'/data/
market
/'
+
url
,
url
:
'/data/
api
/'
+
url
,
method
:
'get'
,
method
:
'get'
,
headers
:
header
,
headers
:
header
,
params
:
data
params
:
data
...
@@ -114,7 +100,7 @@ export function getApiCall (url, header, data) {
...
@@ -114,7 +100,7 @@ export function getApiCall (url, header, data) {
export
function
postApiCall
(
url
,
header
,
data
)
{
export
function
postApiCall
(
url
,
header
,
data
)
{
return
request
({
return
request
({
url
:
'/data/
market
/'
+
url
,
url
:
'/data/
api
/'
+
url
,
method
:
'post'
,
method
:
'post'
,
headers
:
header
,
headers
:
header
,
data
:
data
data
:
data
...
...
datax-ui/src/views/market/dataapi/DataApiAdd.vue
View file @
23336f6e
...
@@ -19,7 +19,7 @@
...
@@ -19,7 +19,7 @@
<el-input
v-model=
"form1.apiName"
placeholder=
"请输入API名称"
/>
<el-input
v-model=
"form1.apiName"
placeholder=
"请输入API名称"
/>
</el-form-item>
</el-form-item>
<el-form-item
label=
"API版本"
prop=
"apiVersion"
>
<el-form-item
label=
"API版本"
prop=
"apiVersion"
>
<el-input
v-model=
"form1.apiVersion"
placeholder=
"请输入API版本"
/>
<el-input
v-model=
"form1.apiVersion"
placeholder=
"请输入API版本
,如v1.0.0
"
/>
</el-form-item>
</el-form-item>
<el-form-item
label=
"API路径"
prop=
"apiUrl"
>
<el-form-item
label=
"API路径"
prop=
"apiUrl"
>
<el-input
v-model=
"form1.apiUrl"
placeholder=
"请输入API路径"
/>
<el-input
v-model=
"form1.apiUrl"
placeholder=
"请输入API路径"
/>
...
...
datax-ui/src/views/market/dataapi/DataApiCall.vue
View file @
23336f6e
...
@@ -9,15 +9,39 @@
...
@@ -9,15 +9,39 @@
</el-button-group>
</el-button-group>
</div>
</div>
<div
:style=
"classCardbody"
>
<div
:style=
"classCardbody"
>
<el-form
ref=
"form1"
:model=
"form"
label-width=
"80px"
:disabled=
"true"
>
<el-row>
<el-row>
<el-col
:span=
"8"
>
API名称:
{{
form
.
apiName
}}
</el-col>
<el-col
:span=
"8"
>
<el-col
:span=
"8"
>
API版本:
{{
form
.
apiVersion
}}
</el-col>
<el-form-item
label=
"API名称"
>
<el-input
v-model=
"form.apiName"
/>
</el-form-item>
</el-col>
<el-col
:span=
"8"
>
<el-form-item
label=
"API版本"
>
<el-input
v-model=
"form.apiVersion"
/>
</el-form-item>
</el-col>
</el-row>
</el-row>
<el-row>
<el-row>
<el-col
:span=
"8"
>
API路径:
{{
form
.
apiUrl
}}
</el-col>
<el-col
:span=
"8"
>
<el-col
:span=
"8"
>
请求类型:
{{
form
.
reqMethod
}}
</el-col>
<el-form-item
label=
"请求类型"
>
<el-col
:span=
"8"
>
返回格式:
{{
form
.
resType
}}
</el-col>
<el-input
v-model=
"form.reqMethod"
/>
</el-form-item>
</el-col>
<el-col
:span=
"8"
>
<el-form-item
label=
"返回格式"
>
<el-input
v-model=
"form.resType"
/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col
:span=
"16"
>
<el-form-item
label=
"调用路径"
>
<el-input
v-model=
"'/services/' + form.apiVersion + form.apiUrl"
/>
</el-form-item>
</el-col>
</el-row>
</el-row>
</el-form>
<el-divider
content-position=
"left"
>
请求数据
</el-divider>
<el-divider
content-position=
"left"
>
请求数据
</el-divider>
<el-row>
<el-row>
<el-col
:span=
"24"
>
<el-col
:span=
"24"
>
...
@@ -130,7 +154,6 @@
...
@@ -130,7 +154,6 @@
<
script
>
<
script
>
import
{
getDataApi
,
getApiHeader
,
getApiCall
,
postApiCall
}
from
'@/api/market/dataapi'
import
{
getDataApi
,
getApiHeader
,
getApiCall
,
postApiCall
}
from
'@/api/market/dataapi'
import
storage
from
'@/utils/storage'
export
default
{
export
default
{
name
:
'DataApiCall'
,
name
:
'DataApiCall'
,
...
@@ -209,8 +232,6 @@ export default {
...
@@ -209,8 +232,6 @@ export default {
if
(
response
.
success
)
{
if
(
response
.
success
)
{
let
data
=
response
.
data
let
data
=
response
.
data
this
.
apiHeader
=
data
this
.
apiHeader
=
data
let
token
=
storage
.
ss
.
get
(
'vue_template_token'
)
this
.
apiHeaderList
.
push
({
'KEY'
:
'Authorization'
,
'VALUE'
:
'Bearer '
+
token
,
'DESCRIPTION'
:
''
})
this
.
apiHeaderList
.
push
({
'KEY'
:
'api_key'
,
'VALUE'
:
this
.
apiHeader
.
apiKey
,
'DESCRIPTION'
:
''
})
this
.
apiHeaderList
.
push
({
'KEY'
:
'api_key'
,
'VALUE'
:
this
.
apiHeader
.
apiKey
,
'DESCRIPTION'
:
''
})
this
.
apiHeaderList
.
push
({
'KEY'
:
'secret_key'
,
'VALUE'
:
this
.
apiHeader
.
secretKey
,
'DESCRIPTION'
:
''
})
this
.
apiHeaderList
.
push
({
'KEY'
:
'secret_key'
,
'VALUE'
:
this
.
apiHeader
.
secretKey
,
'DESCRIPTION'
:
''
})
}
}
...
@@ -226,7 +247,7 @@ export default {
...
@@ -226,7 +247,7 @@ export default {
this
.
apiDataCall
()
this
.
apiDataCall
()
},
},
apiDataCall
()
{
apiDataCall
()
{
let
url
=
this
.
form
.
apiVersion
+
this
.
form
.
apiUrl
let
url
=
'services/'
+
this
.
form
.
apiVersion
+
this
.
form
.
apiUrl
let
header
=
{
api_key
:
this
.
apiHeader
.
apiKey
,
secret_key
:
this
.
apiHeader
.
secretKey
}
let
header
=
{
api_key
:
this
.
apiHeader
.
apiKey
,
secret_key
:
this
.
apiHeader
.
secretKey
}
let
data
=
{}
let
data
=
{}
data
.
pageNum
=
this
.
callData
.
pageNum
data
.
pageNum
=
this
.
callData
.
pageNum
...
...
datax-ui/src/views/market/dataapi/DataApiEdit.vue
View file @
23336f6e
...
@@ -19,7 +19,7 @@
...
@@ -19,7 +19,7 @@
<el-input
v-model=
"form1.apiName"
placeholder=
"请输入API名称"
/>
<el-input
v-model=
"form1.apiName"
placeholder=
"请输入API名称"
/>
</el-form-item>
</el-form-item>
<el-form-item
label=
"API版本"
prop=
"apiVersion"
>
<el-form-item
label=
"API版本"
prop=
"apiVersion"
>
<el-input
v-model=
"form1.apiVersion"
placeholder=
"请输入API版本"
/>
<el-input
v-model=
"form1.apiVersion"
placeholder=
"请输入API版本
,如v1.0.0
"
/>
</el-form-item>
</el-form-item>
<el-form-item
label=
"API路径"
prop=
"apiUrl"
>
<el-form-item
label=
"API路径"
prop=
"apiUrl"
>
<el-input
v-model=
"form1.apiUrl"
placeholder=
"请输入API路径"
/>
<el-input
v-model=
"form1.apiUrl"
placeholder=
"请输入API路径"
/>
...
...
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