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
6330de54
Commit
6330de54
authored
Jun 29, 2020
by
yuwei
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
2.0.0项目初始化
parent
4aba1a96
Show whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
67 additions
and
58 deletions
+67
-58
HttpUtil.java
...on-core/src/main/java/cn/datax/common/utils/HttpUtil.java
+24
-1
LogAspect.java
.../src/main/java/cn/datax/common/log/aspectj/LogAspect.java
+34
-3
ApiInterceptor.java
...x/service/data/market/api/call/config/ApiInterceptor.java
+2
-0
ApiMaskDetail.vue
datax-ui/src/views/market/apimask/ApiMaskDetail.vue
+5
-3
DataApiAdd.vue
datax-ui/src/views/market/dataapi/DataApiAdd.vue
+1
-25
DataApiDetail.vue
datax-ui/src/views/market/dataapi/DataApiDetail.vue
+0
-1
DataApiEdit.vue
datax-ui/src/views/market/dataapi/DataApiEdit.vue
+1
-25
DictList.vue
datax-ui/src/views/system/dict/DictList.vue
+0
-0
No files found.
datax-common/datax-common-core/src/main/java/cn/datax/common/utils/HttpUtil.java
View file @
6330de54
...
...
@@ -6,11 +6,30 @@ import javax.servlet.http.HttpServletRequest;
import
java.io.BufferedReader
;
import
java.io.InputStream
;
import
java.io.InputStreamReader
;
import
java.util.HashMap
;
import
java.util.Map
;
@Slf4j
public
class
HttpUtil
{
public
static
final
String
METHOD_POST
=
"POST"
;
public
static
final
String
METHOD_GET
=
"GET"
;
public
static
String
getBodyString
(
HttpServletRequest
request
)
{
String
method
=
request
.
getMethod
();
String
bodyString
;
if
(
METHOD_GET
.
equals
(
method
))
{
bodyString
=
doGet
(
request
);
}
else
if
(
METHOD_POST
.
equals
(
method
))
{
bodyString
=
doPost
(
request
);
}
else
{
// 其他请求方式暂不处理
return
null
;
}
return
bodyString
;
}
private
static
String
doPost
(
HttpServletRequest
request
)
{
StringBuffer
sb
=
new
StringBuffer
();
InputStream
inputStream
;
BufferedReader
bufferedReader
;
...
...
@@ -19,7 +38,7 @@ public class HttpUtil {
inputStream
=
request
.
getInputStream
();
//将字节数组当做输出的目的地
//字节流转换为字符流(处理流)
bufferedReader
=
new
BufferedReader
(
new
InputStreamReader
(
inputStream
));
bufferedReader
=
new
BufferedReader
(
new
InputStreamReader
(
inputStream
,
"UTF-8"
));
String
line
=
""
;
while
((
line
=
bufferedReader
.
readLine
())
!=
null
)
{
sb
.
append
(
line
);
...
...
@@ -29,4 +48,8 @@ public class HttpUtil {
}
return
sb
.
toString
();
}
private
static
String
doGet
(
HttpServletRequest
request
)
{
return
null
;
}
}
datax-common/datax-common-log/src/main/java/cn/datax/common/log/aspectj/LogAspect.java
View file @
6330de54
package
cn
.
datax
.
common
.
log
.
aspectj
;
import
java.lang.reflect.Method
;
import
java.util.HashMap
;
import
java.util.Map
;
import
cn.datax.common.log.annotation.LogAop
;
import
cn.datax.common.utils.RequestHolder
;
...
...
@@ -9,9 +11,10 @@ import cn.datax.service.system.api.dto.LogDto;
import
cn.datax.service.system.api.feign.LogServiceFeign
;
import
cn.hutool.core.util.URLUtil
;
import
cn.hutool.extra.servlet.ServletUtil
;
import
cn.hutool.http.HttpUtil
;
import
cn.hutool.http.useragent.UserAgent
;
import
cn.hutool.http.useragent.UserAgentUtil
;
import
com.fasterxml.jackson.core.JsonProcessingException
;
import
com.fasterxml.jackson.databind.ObjectMapper
;
import
org.aspectj.lang.JoinPoint
;
import
org.aspectj.lang.ProceedingJoinPoint
;
import
org.aspectj.lang.Signature
;
...
...
@@ -20,6 +23,7 @@ import org.aspectj.lang.reflect.MethodSignature;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.multipart.MultipartFile
;
import
javax.servlet.http.HttpServletRequest
;
...
...
@@ -30,6 +34,9 @@ public class LogAspect {
@Autowired
private
LogServiceFeign
logServiceFeign
;
@Autowired
private
ObjectMapper
objectMapper
;
// 配置织入点
@Pointcut
(
"@annotation(cn.datax.common.log.annotation.LogAop)"
)
public
void
logPointCut
()
{}
...
...
@@ -73,7 +80,6 @@ public class LogAspect {
UserAgent
ua
=
UserAgentUtil
.
parse
(
request
.
getHeader
(
"User-Agent"
));
log
.
setBrowser
(
ua
.
getBrowser
().
toString
());
log
.
setOs
(
ua
.
getOs
().
toString
());
log
.
setParams
(
HttpUtil
.
toParams
(
request
.
getParameterMap
()));
return
log
;
}
...
...
@@ -88,7 +94,10 @@ public class LogAspect {
String
methodName
=
joinPoint
.
getSignature
().
getName
();
logDto
.
setModule
(
logAop
.
module
()).
setTitle
(
logAop
.
value
())
.
setClassName
(
className
).
setMethodName
(
methodName
);
try
{
logDto
.
setParams
(
objectMapper
.
writeValueAsString
(
getRequestParams
(
joinPoint
)));
}
catch
(
JsonProcessingException
e
)
{
}
// 保存数据库
logServiceFeign
.
saveLog
(
logDto
);
}
...
...
@@ -105,5 +114,27 @@ public class LogAspect {
}
return
null
;
}
/**
* 获取入参
* */
private
Map
<
String
,
Object
>
getRequestParams
(
JoinPoint
joinPoint
)
{
Map
<
String
,
Object
>
requestParams
=
new
HashMap
<>();
// 参数名
String
[]
paramNames
=
((
MethodSignature
)
joinPoint
.
getSignature
()).
getParameterNames
();
// 参数值
Object
[]
paramValues
=
joinPoint
.
getArgs
();
for
(
int
i
=
0
;
i
<
paramNames
.
length
;
i
++)
{
Object
value
=
paramValues
[
i
];
// 如果是文件对象
if
(
value
instanceof
MultipartFile
)
{
MultipartFile
file
=
(
MultipartFile
)
value
;
// 获取文件名
value
=
file
.
getOriginalFilename
();
}
requestParams
.
put
(
paramNames
[
i
],
value
);
}
return
requestParams
;
}
}
datax-modules/data-market-service-parent/data-market-service-api-call/src/main/java/cn/datax/service/data/market/api/call/config/ApiInterceptor.java
View file @
6330de54
...
...
@@ -98,6 +98,8 @@ public class ApiInterceptor implements HandlerInterceptor {
}
}
}
Map
<
String
,
String
[]>
parameterMap
=
request
.
getParameterMap
();
System
.
out
.
println
(
"parameterMap:"
+
objectMapper
.
writeValueAsString
(
parameterMap
));
// 接收参数
String
bodyString
=
HttpUtil
.
getBodyString
(
request
);
Map
<
String
,
Object
>
params
=
null
;
...
...
datax-ui/src/views/market/apimask/ApiMaskDetail.vue
View file @
6330de54
...
...
@@ -159,9 +159,11 @@ export default {
getApiMask
(
id
).
then
(
response
=>
{
if
(
response
.
success
)
{
this
.
form
=
response
.
data
this
.
resParamList
=
this
.
apiOptions
.
filter
(
item
=>
item
.
id
===
this
.
form
.
apiId
).
map
(
function
(
item
)
{
return
item
.
resParams
})
console
.
log
(
this
.
form
)
console
.
log
(
this
.
apiOptions
)
this
.
resParamList
=
this
.
apiOptions
.
find
(
function
(
item
)
{
return
item
.
id
===
this
.
form
.
apiId
}).
resParams
this
.
form
.
rules
.
forEach
(
rule
=>
{
let
fieldParamIndex
=
this
.
resParamList
.
findIndex
((
param
)
=>
{
return
param
.
fieldName
===
rule
.
fieldName
...
...
datax-ui/src/views/market/dataapi/DataApiAdd.vue
View file @
6330de54
...
...
@@ -165,7 +165,7 @@
<el-button
size=
"mini"
type=
"primary"
@
click=
"sqlParse"
>
SQL解析
</el-button>
</el-form-item>
</el-form>
<el-form
ref=
"form3"
:model=
"form3"
:rules=
"rules3"
label-width=
"80px"
v-if=
"active == 3"
>
<el-form
ref=
"form3"
:model=
"form3"
label-width=
"80px"
v-if=
"active == 3"
>
<el-divider
content-position=
"left"
>
请求参数
</el-divider>
<el-table
:data=
"form3.reqParams"
stripe
border
:max-height=
"300"
...
...
@@ -186,7 +186,6 @@
</el-table-column>
<el-table-column
prop=
"paramType"
label=
"参数类型"
align=
"center"
show-overflow-tooltip
>
<
template
slot-scope=
"scope"
>
<el-form-item
:prop=
" 'reqParams.' + scope.$index + '.paramType' "
:rules=
"rules3.paramType"
>
<el-select
v-model=
"scope.row.paramType"
placeholder=
"请选择参数类型"
>
<el-option
v-for=
"dict in paramTypeOptions"
...
...
@@ -195,12 +194,10 @@
:value=
"dict.itemText"
></el-option>
</el-select>
</el-form-item>
</
template
>
</el-table-column>
<el-table-column
prop=
"whereType"
label=
"操作符"
align=
"center"
show-overflow-tooltip
>
<
template
slot-scope=
"scope"
>
<el-form-item
:prop=
" 'reqParams.' + scope.$index + '.whereType' "
:rules=
"rules3.whereType"
>
<el-select
v-model=
"scope.row.whereType"
placeholder=
"请选择操作符"
>
<el-option
v-for=
"dict in whereTypeOptions"
...
...
@@ -209,21 +206,16 @@
:value=
"dict.itemText"
></el-option>
</el-select>
</el-form-item>
</
template
>
</el-table-column>
<el-table-column
prop=
"exampleValue"
label=
"示例值"
align=
"center"
show-overflow-tooltip
>
<
template
slot-scope=
"scope"
>
<el-form-item
:prop=
" 'reqParams.' + scope.$index + '.exampleValue' "
:rules=
"rules3.exampleValue"
>
<el-input
v-model=
"scope.row.exampleValue"
placeholder=
"请输入示例值"
/>
</el-form-item>
</
template
>
</el-table-column>
<el-table-column
prop=
"defaultValue"
label=
"默认值"
align=
"center"
show-overflow-tooltip
>
<
template
slot-scope=
"scope"
>
<el-form-item
:prop=
" 'reqParams.' + scope.$index + '.defaultValue' "
:rules=
"rules3.defaultValue"
>
<el-input
v-model=
"scope.row.defaultValue"
placeholder=
"请输入默认值"
/>
</el-form-item>
</
template
>
</el-table-column>
</el-table>
...
...
@@ -244,9 +236,7 @@
</el-table-column>
<el-table-column
prop=
"exampleValue"
label=
"示例值"
align=
"center"
show-overflow-tooltip
>
<
template
slot-scope=
"scope"
>
<el-form-item
:prop=
" 'resParams.' + scope.$index + '.exampleValue' "
:rules=
"rules3.exampleValue"
>
<el-input
v-model=
"scope.row.exampleValue"
placeholder=
"请输入示例值"
/>
</el-form-item>
</
template
>
</el-table-column>
</el-table>
...
...
@@ -354,20 +344,6 @@ export default {
reqParams
:
[],
resParams
:
[]
},
rules3
:
{
paramType
:
[
{
required
:
true
,
message
:
'参数类型不能为空'
,
trigger
:
'change'
}
],
whereType
:
[
{
required
:
true
,
message
:
'操作符不能为空'
,
trigger
:
'change'
}
],
exampleValue
:
[
{
required
:
true
,
message
:
'示例值不能为空'
,
trigger
:
'blur'
}
],
defaultValue
:
[
{
required
:
true
,
message
:
'默认值不能为空'
,
trigger
:
'blur'
}
]
},
// 请求方式数据字典
reqMethodOptions
:
[],
// 返回格式数据字典
...
...
datax-ui/src/views/market/dataapi/DataApiDetail.vue
View file @
6330de54
...
...
@@ -326,7 +326,6 @@ export default {
reqParams
:
[],
resParams
:
[]
},
rules3
:
{},
// 请求方式数据字典
reqMethodOptions
:
[],
// 返回格式数据字典
...
...
datax-ui/src/views/market/dataapi/DataApiEdit.vue
View file @
6330de54
...
...
@@ -165,7 +165,7 @@
<el-button
size=
"mini"
type=
"primary"
@
click=
"sqlParse"
>
SQL解析
</el-button>
</el-form-item>
</el-form>
<el-form
ref=
"form3"
:model=
"form3"
:rules=
"rules3"
label-width=
"80px"
v-if=
"active == 3"
>
<el-form
ref=
"form3"
:model=
"form3"
label-width=
"80px"
v-if=
"active == 3"
>
<el-divider
content-position=
"left"
>
请求参数
</el-divider>
<el-table
:data=
"form3.reqParams"
stripe
border
:max-height=
"300"
...
...
@@ -186,7 +186,6 @@
</el-table-column>
<el-table-column
prop=
"paramType"
label=
"参数类型"
align=
"center"
show-overflow-tooltip
>
<
template
slot-scope=
"scope"
>
<el-form-item
:prop=
" 'reqParams.' + scope.$index + '.paramType' "
:rules=
"rules3.paramType"
>
<el-select
v-model=
"scope.row.paramType"
placeholder=
"请选择参数类型"
>
<el-option
v-for=
"dict in paramTypeOptions"
...
...
@@ -195,12 +194,10 @@
:value=
"dict.itemText"
></el-option>
</el-select>
</el-form-item>
</
template
>
</el-table-column>
<el-table-column
prop=
"whereType"
label=
"操作符"
align=
"center"
show-overflow-tooltip
>
<
template
slot-scope=
"scope"
>
<el-form-item
:prop=
" 'reqParams.' + scope.$index + '.whereType' "
:rules=
"rules3.whereType"
>
<el-select
v-model=
"scope.row.whereType"
placeholder=
"请选择操作符"
>
<el-option
v-for=
"dict in whereTypeOptions"
...
...
@@ -209,21 +206,16 @@
:value=
"dict.itemText"
></el-option>
</el-select>
</el-form-item>
</
template
>
</el-table-column>
<el-table-column
prop=
"exampleValue"
label=
"示例值"
align=
"center"
show-overflow-tooltip
>
<
template
slot-scope=
"scope"
>
<el-form-item
:prop=
" 'reqParams.' + scope.$index + '.exampleValue' "
:rules=
"rules3.exampleValue"
>
<el-input
v-model=
"scope.row.exampleValue"
placeholder=
"请输入示例值"
/>
</el-form-item>
</
template
>
</el-table-column>
<el-table-column
prop=
"defaultValue"
label=
"默认值"
align=
"center"
show-overflow-tooltip
>
<
template
slot-scope=
"scope"
>
<el-form-item
:prop=
" 'reqParams.' + scope.$index + '.defaultValue' "
:rules=
"rules3.defaultValue"
>
<el-input
v-model=
"scope.row.defaultValue"
placeholder=
"请输入默认值"
/>
</el-form-item>
</
template
>
</el-table-column>
</el-table>
...
...
@@ -244,9 +236,7 @@
</el-table-column>
<el-table-column
prop=
"exampleValue"
label=
"示例值"
align=
"center"
show-overflow-tooltip
>
<
template
slot-scope=
"scope"
>
<el-form-item
:prop=
" 'resParams.' + scope.$index + '.exampleValue' "
:rules=
"rules3.exampleValue"
>
<el-input
v-model=
"scope.row.exampleValue"
placeholder=
"请输入示例值"
/>
</el-form-item>
</
template
>
</el-table-column>
</el-table>
...
...
@@ -354,20 +344,6 @@ export default {
reqParams
:
[],
resParams
:
[]
},
rules3
:
{
paramType
:
[
{
required
:
true
,
message
:
'参数类型不能为空'
,
trigger
:
'change'
}
],
whereType
:
[
{
required
:
true
,
message
:
'操作符不能为空'
,
trigger
:
'change'
}
],
exampleValue
:
[
{
required
:
true
,
message
:
'示例值不能为空'
,
trigger
:
'blur'
}
],
defaultValue
:
[
{
required
:
true
,
message
:
'默认值不能为空'
,
trigger
:
'blur'
}
]
},
// 请求方式数据字典
reqMethodOptions
:
[],
// 返回格式数据字典
...
...
datax-ui/src/views/system/dict/DictList.vue
View file @
6330de54
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