Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
D
dm_project
Project
Project
Details
Activity
Releases
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
姚本章
dm_project
Commits
32a95cd7
Commit
32a95cd7
authored
Jan 06, 2021
by
zhangc
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
添加gateway请求相关接口
parent
8ee1efb1
Changes
19
Hide whitespace changes
Inline
Side-by-side
Showing
19 changed files
with
135 additions
and
135 deletions
+135
-135
ApiInfoOutTypeEnum.java
...m/jz/dm/common/enums/apiInterface/ApiInfoOutTypeEnum.java
+16
-0
AuthController.java
...ay/src/main/java/com/jz/dm/controller/AuthController.java
+2
-2
ProducerController.java
...rc/main/java/com/jz/dm/controller/ProducerController.java
+1
-1
AuthFilter.java
...apigateway/src/main/java/com/jz/dm/filter/AuthFilter.java
+2
-2
CheckArgsFilter.java
...teway/src/main/java/com/jz/dm/filter/CheckArgsFilter.java
+1
-1
InvokeRouteFilter.java
...way/src/main/java/com/jz/dm/filter/InvokeRouteFilter.java
+1
-1
VerifySignFilter.java
...eway/src/main/java/com/jz/dm/filter/VerifySignFilter.java
+1
-1
AuthInfoDto.java
...teway/src/main/java/com/jz/dm/models/dto/AuthInfoDto.java
+0
-3
AuthListInfoReq.java
.../main/java/com/jz/dm/models/req/auth/AuthListInfoReq.java
+9
-0
ApiInterfaceReq.java
.../main/java/com/jz/dm/models/req/make/ApiInterfaceReq.java
+7
-11
MakeApiSaveInfoReq.java
...in/java/com/jz/dm/models/req/make/MakeApiSaveInfoReq.java
+0
-71
MakeBigDataApiReq.java
...ain/java/com/jz/dm/models/req/make/MakeBigDataApiReq.java
+8
-7
ProducerService.java
...eway/src/main/java/com/jz/dm/service/ProducerService.java
+1
-1
AuthServiceImpl.java
...src/main/java/com/jz/dm/service/impl/AuthServiceImpl.java
+19
-2
OrganizationManageImpl.java
...n/java/com/jz/dm/service/impl/OrganizationManageImpl.java
+1
-0
ProducerServiceImpl.java
...main/java/com/jz/dm/service/impl/ProducerServiceImpl.java
+23
-18
ApiQueryService.java
.../main/java/com/jz/dm/service/request/ApiQueryService.java
+38
-10
HttpsUtils.java
...-common/src/main/java/com/jz/common/utils/HttpsUtils.java
+4
-3
Result.java
jz-dm-common/src/main/java/com/jz/common/utils/Result.java
+1
-1
No files found.
jz-dm-apigateway/src/main/java/com/jz/dm/common/enums/apiInterface/ApiInfoOutTypeEnum.java
0 → 100644
View file @
32a95cd7
package
com
.
jz
.
dm
.
common
.
enums
.
apiInterface
;
/**
* @author ZC
* @PACKAGE_NAME: com.jz.dm.common.enums.apiInterface
* @PROJECT_NAME: jz-dm-parent
* @NAME: ApiInfoOutTypeEnum
* @DATE: 2021-1-6/11:14
* @DAY_NAME_SHORT: 周三
* @Description: 输出类型
**/
public
enum
ApiInfoOutTypeEnum
{
JSON
,
XML
,
FLOW
;
}
jz-dm-apigateway/src/main/java/com/jz/dm/controller/AuthController.java
View file @
32a95cd7
...
...
@@ -81,8 +81,8 @@ public class AuthController {
* @Author: Mr.zhang
* @Date: 2020-12-26
*/
// @ApiOperation("认证信息修改
")
//
@PostMapping(value = "/update-auth-info")
@ApiOperation
(
"取消授权
"
)
@PostMapping
(
value
=
"/update-auth-info"
)
public
Mono
<
Result
>
updateAuthListInfo
(
@RequestBody
@Valid
AuthInfoUpdateReq
req
)
{
return
Mono
.
fromSupplier
(()
->
authService
.
updateAuthInfo
(
req
));
}
...
...
jz-dm-apigateway/src/main/java/com/jz/dm/controller/ProducerController.java
View file @
32a95cd7
...
...
@@ -104,7 +104,7 @@ public class ProducerController {
*/
@ApiOperation
(
"保存修改的api信息"
)
@PostMapping
(
value
=
"/保存修改的api信息"
)
public
Mono
<
Result
>
saveUpdateAPiInfo
(
@RequestBody
@Valid
MakeApiSaveInfo
Req
req
)
{
public
Mono
<
Result
>
saveUpdateAPiInfo
(
@RequestBody
@Valid
ApiInterface
Req
req
)
{
return
Mono
.
fromSupplier
(()
->
producerService
.
saveUpdateAPiInfo
(
req
));
}
...
...
jz-dm-apigateway/src/main/java/com/jz/dm/filter/AuthFilter.java
View file @
32a95cd7
...
...
@@ -65,7 +65,7 @@ public class AuthFilter extends AbstractFilter {
protected
void
internalDoFilter
(
GatewayRequest
request
,
GatewayResponse
response
,
FilterChain
chain
)
{
try
{
ApiInterface
apiInterface
=
apiInterfaceService
.
getApiInfo
(
request
.
getAp
p
Key
());
ApiInterface
apiInterface
=
apiInterfaceService
.
getApiInfo
(
request
.
getAp
i
Key
());
if
(
null
==
apiInterface
)
{
throw
new
GatewayException
(
GatewayResultCode
.
ILLEGAL_REQUEST
);
}
...
...
@@ -111,7 +111,7 @@ public class AuthFilter extends AbstractFilter {
}
//查询数据银行银行余额是否充足
try
{
//记录请求次数(每天限制请求次数)
String
limitKey
=
request
.
getAp
p
Key
()
+
LoggingConstants
.
AND_SPILT
+
authCode
;
String
limitKey
=
request
.
getAp
i
Key
()
+
LoggingConstants
.
AND_SPILT
+
authCode
;
String
reqKey
=
redisUtils
.
get
(
limitKey
);
long
timeOut
=
DateUtil
.
calculateNowResidueTime
();
if
(
null
!=
reqKey
)
{
...
...
jz-dm-apigateway/src/main/java/com/jz/dm/filter/CheckArgsFilter.java
View file @
32a95cd7
...
...
@@ -31,7 +31,7 @@ public class CheckArgsFilter extends AbstractFilter {
protected
void
internalDoFilter
(
GatewayRequest
request
,
GatewayResponse
response
,
FilterChain
chain
)
{
// 校验参数非空
if
(
StringUtil
.
isEmpty
(
request
.
getAp
p
Key
())
||
StringUtil
.
isEmpty
(
request
.
getMethod
())
if
(
StringUtil
.
isEmpty
(
request
.
getAp
i
Key
())
||
StringUtil
.
isEmpty
(
request
.
getMethod
())
||
StringUtil
.
isEmpty
(
request
.
getSignType
())||
StringUtil
.
isEmpty
(
request
.
getSign
())
||
StringUtil
.
isEmpty
(
request
.
getTimestamp
())||
StringUtil
.
isEmpty
(
request
.
getParams
()))
{
throw
new
GatewayException
(
GatewayResultCode
.
ILLEGAL_ARGUMENT
);
//无效参数
...
...
jz-dm-apigateway/src/main/java/com/jz/dm/filter/InvokeRouteFilter.java
View file @
32a95cd7
...
...
@@ -54,7 +54,7 @@ public class InvokeRouteFilter extends AbstractFilter {
//}
DispatchContext
context
=
new
DispatchContext
();
context
.
setAppKey
(
request
.
getAp
p
Key
());
//apiKey
context
.
setAppKey
(
request
.
getAp
i
Key
());
//apiKey
context
.
setOpenApiMethod
(
request
.
getMethod
());
//方法 例如:tradd.add
context
.
setOpenApiParams
(
request
.
getParams
());
//入参
context
.
setOpenApiVersion
(
request
.
getVersion
());
//版本号
...
...
jz-dm-apigateway/src/main/java/com/jz/dm/filter/VerifySignFilter.java
View file @
32a95cd7
...
...
@@ -50,7 +50,7 @@ public class VerifySignFilter extends AbstractFilter {
if
(
CollectionUtils
.
isNotEmpty
(
signParams
)){
JSONObject
jsonObject
=
JSONObject
.
parseObject
(
request
.
getParams
());
//需要传入授权码
ApiAuth
apiAuthInfo
=
apiInterfaceService
.
getApiAuthInfo
(
request
.
getAp
p
Key
(),
jsonObject
.
getString
(
"authCode"
));
ApiAuth
apiAuthInfo
=
apiInterfaceService
.
getApiAuthInfo
(
request
.
getAp
i
Key
(),
jsonObject
.
getString
(
"authCode"
));
if
(
null
==
apiAuthInfo
){
throw
new
GatewayException
(
GatewayResultCode
.
ILLEGAL_REQUEST
);
}
...
...
jz-dm-apigateway/src/main/java/com/jz/dm/models/dto/AuthInfoDto.java
View file @
32a95cd7
...
...
@@ -24,9 +24,6 @@ public class AuthInfoDto implements Serializable {
@ApiModelProperty
(
value
=
"授权组织id"
)
private
Long
apiOrgId
;
/* @ApiModelProperty(value = "api应用id")
private Long apiInterfaceId;*/
@ApiModelProperty
(
value
=
"授权组织名称"
)
private
String
orgName
;
...
...
jz-dm-apigateway/src/main/java/com/jz/dm/models/req/auth/AuthListInfoReq.java
View file @
32a95cd7
...
...
@@ -2,6 +2,7 @@ package com.jz.dm.models.req.auth;
import
com.jz.common.bean.BasePageBean
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
java.io.Serializable
;
...
...
@@ -18,4 +19,12 @@ import java.io.Serializable;
@Data
@ApiModel
(
"认证信息列表请求体"
)
public
class
AuthListInfoReq
extends
BasePageBean
implements
Serializable
{
@ApiModelProperty
(
value
=
"apiKey api唯一标识"
,
required
=
false
)
private
String
apiKey
;
@ApiModelProperty
(
value
=
"授权码"
,
required
=
false
)
private
String
authCode
;
}
jz-dm-apigateway/src/main/java/com/jz/dm/models/req/make/ApiInterfaceReq.java
View file @
32a95cd7
...
...
@@ -5,6 +5,7 @@ import io.swagger.annotations.ApiModelProperty;
import
lombok.Data
;
import
javax.validation.constraints.NotNull
;
import
java.io.Serializable
;
/**
* @author ZC
...
...
@@ -17,7 +18,7 @@ import javax.validation.constraints.NotNull;
**/
@Data
@ApiModel
(
value
=
"api基本信息"
)
public
class
ApiInterfaceReq
{
public
class
ApiInterfaceReq
implements
Serializable
{
@ApiModelProperty
(
value
=
"api类型:1 实时接入 2 数据银行制作API, 3 数据银行制作数据包 6标签查询 9自定义"
,
required
=
true
)
@NotNull
(
message
=
"api类型不能为空"
)
public
String
apiType
;
...
...
@@ -25,8 +26,7 @@ public class ApiInterfaceReq {
@ApiModelProperty
(
value
=
"接口描述"
,
required
=
false
)
public
String
apiDesc
;
@ApiModelProperty
(
value
=
"传输方式"
,
required
=
true
)
@ApiModelProperty
(
value
=
"传输方式:http https"
,
required
=
true
)
@NotNull
(
message
=
"传输方式不能为空"
)
public
String
transMode
;
...
...
@@ -58,14 +58,10 @@ public class ApiInterfaceReq {
public
Long
projectId
;
@ApiModelProperty
(
value
=
"状态"
,
required
=
false
)
public
String
status
;
/*@ApiModelProperty(value = "api名称",required = false)
public String apiName;
*/
/* @ApiModelProperty(value = "状态",required = false)
public String status;*/
//@ApiModelProperty(value = "更新时传入api自增id",required = false)
//public Long id;
@ApiModelProperty
(
value
=
"更新时传入api自增id"
,
required
=
false
)
public
Long
id
;
}
jz-dm-apigateway/src/main/java/com/jz/dm/models/req/make/MakeApiSaveInfoReq.java
deleted
100644 → 0
View file @
8ee1efb1
package
com
.
jz
.
dm
.
models
.
req
.
make
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
javax.validation.constraints.NotNull
;
import
java.io.Serializable
;
/**
* @author ZC
* @PACKAGE_NAME: com.jz.dm.models.req.make
* @PROJECT_NAME: jz-dm-parent
* @NAME: MakeApiSaveInfoReq
* @DATE: 2020-12-29/10:00
* @DAY_NAME_SHORT: 周二
* @Description:
**/
@Data
@ApiModel
(
"保存API基本信息请求体"
)
public
class
MakeApiSaveInfoReq
implements
Serializable
{
@ApiModelProperty
(
value
=
"id"
,
required
=
true
)
@NotNull
(
message
=
"id不能为空"
)
public
Long
id
;
@ApiModelProperty
(
value
=
"api类型"
,
required
=
true
)
@NotNull
(
message
=
"api类型不能为空"
)
public
String
apiType
;
@ApiModelProperty
(
value
=
"apiId 等价于apiKey"
,
required
=
true
)
@NotNull
(
message
=
"apiId不能为空"
)
public
String
apiId
;
@ApiModelProperty
(
value
=
"接口描述"
,
required
=
false
)
public
String
apiDesc
;
@ApiModelProperty
(
value
=
"api版本"
,
required
=
false
)
public
String
version
;
@ApiModelProperty
(
value
=
"加密方式"
,
required
=
true
)
@NotNull
(
message
=
"加密方式不能为空"
)
public
String
transMode
;
@ApiModelProperty
(
value
=
"传输方式"
,
required
=
true
)
@NotNull
(
message
=
"传输方式不能为空"
)
public
String
type
;
@ApiModelProperty
(
value
=
"目标地址"
,
required
=
true
)
@NotNull
(
message
=
"目标地址不能为空"
)
public
String
targetUrl
;
@ApiModelProperty
(
value
=
"超时时间"
,
required
=
true
)
@NotNull
(
message
=
"超时时间不能为空"
)
public
String
timeout
;
@ApiModelProperty
(
value
=
"api描述"
,
required
=
false
)
public
String
apiFunction
;
@ApiModelProperty
(
value
=
"项目编号"
,
required
=
true
)
@NotNull
(
message
=
"项目编号不能为空"
)
public
String
projectId
;
@ApiModelProperty
(
value
=
"列"
,
required
=
false
)
public
String
columnCode
;
@ApiModelProperty
(
value
=
"状态"
,
required
=
false
)
public
String
status
;
}
jz-dm-apigateway/src/main/java/com/jz/dm/models/req/make/MakeBigDataApiReq.java
View file @
32a95cd7
...
...
@@ -23,13 +23,16 @@ public class MakeBigDataApiReq implements Serializable {
@ApiModelProperty
(
value
=
"id--更新时id不能为空"
,
required
=
false
)
private
Long
id
;
@ApiModelProperty
(
value
=
"数据类型:api类型:1 实时接入 2 数据银行制作API, 3 数据银行制作数据包 6标签查询 8 查询hive数据源 9自定义"
,
required
=
true
)
/*
@ApiModelProperty(value = "数据类型:api类型:1 实时接入 2 数据银行制作API, 3 数据银行制作数据包 6标签查询 8 查询hive数据源 9自定义",required = true)
@NotNull(message = "apiType不能为空")
private
String
apiType
;
private String apiType;
*/
//@ApiModelProperty(value = "apiId 等价于apiKey",required = true)
//@NotNull(message = "apiId不能为空")
//public String apiId;
@ApiModelProperty
(
value
=
"接入类型:对应字典表key"
,
required
=
true
)
@NotNull
(
message
=
"接入类型不能为空"
)
public
String
joinType
;
@ApiModelProperty
(
value
=
"是否分页"
,
required
=
false
)
public
Integer
page
;
@ApiModelProperty
(
value
=
"数据源Id"
,
required
=
true
)
@NotNull
(
message
=
"数据源Id不能为空"
)
...
...
@@ -47,8 +50,6 @@ public class MakeBigDataApiReq implements Serializable {
@NotNull
(
message
=
"处理类型不能为空"
)
private
String
handleType
;
@ApiModelProperty
(
value
=
"是否分页"
,
required
=
false
)
private
long
page
;
@ApiModelProperty
(
value
=
"请求参数"
,
required
=
true
)
@NotNull
(
message
=
"请求参数不能为空"
)
...
...
jz-dm-apigateway/src/main/java/com/jz/dm/service/ProducerService.java
View file @
32a95cd7
...
...
@@ -73,7 +73,7 @@ public interface ProducerService {
* @param req
* @return
*/
Result
saveUpdateAPiInfo
(
MakeApiSaveInfo
Req
req
);
Result
saveUpdateAPiInfo
(
ApiInterface
Req
req
);
/**
* 数据银行制作API/数据包
...
...
jz-dm-apigateway/src/main/java/com/jz/dm/service/impl/AuthServiceImpl.java
View file @
32a95cd7
...
...
@@ -64,6 +64,12 @@ public class AuthServiceImpl implements AuthService {
public
Result
getAuthListInfo
(
AuthListInfoReq
req
)
{
IPage
<
AuthInfoDto
>
page
=
new
Page
<>(
req
.
getPageNum
(),
req
.
getPageSize
());
QueryWrapper
<
AuthInfoDto
>
query
=
new
QueryWrapper
<>();
if
(
StringUtils
.
isNotBlank
(
req
.
getApiKey
())){
query
.
eq
(
"ai.api_key"
,
req
.
getApiKey
());
}
if
(
StringUtils
.
isNotBlank
(
req
.
getAuthCode
())){
query
.
eq
(
"au.auth_code"
,
req
.
getAuthCode
());
}
query
.
eq
(
"au.is_deleted"
,
0
);
query
.
orderByDesc
(
"au.create_date"
);
IPage
<
AuthInfoDto
>
listSelectApiAuth
=
apiAuthMapper
.
listSelectApiAuth
(
page
,
query
);
...
...
@@ -234,8 +240,18 @@ public class AuthServiceImpl implements AuthService {
*/
@Override
public
Result
updateAuthInfo
(
AuthInfoUpdateReq
req
)
{
//TODO 认证后是否可以修改
return
null
;
ApiAuth
apiAuth
=
apiAuthMapper
.
selectById
(
req
.
getId
());
if
(
null
==
apiAuth
){
return
Result
.
of_error
(
ResultMsg
.
DATA_NOT_EXIST
);
}
UpdateWrapper
<
ApiAuth
>
updateWra
=
new
UpdateWrapper
<>();
updateWra
.
set
(
"is_deleted"
,
1
);
updateWra
.
set
(
"status"
,
GeneralStatusTypeEnum
.
UN_VALID
.
name
());
updateWra
.
eq
(
"id"
,
req
.
getId
());
if
(
apiAuthMapper
.
update
(
null
,
updateWra
)
==
0
){
return
Result
.
of_error
(
ResultMsg
.
UPDATE_FAIL
);
}
return
Result
.
of_success
(
ResultMsg
.
UPDATE_SUCCESS
);
}
/**
...
...
@@ -274,6 +290,7 @@ public class AuthServiceImpl implements AuthService {
public
ApiAuth
getAuthUser
(
String
authCode
,
Long
apiId
)
{
QueryWrapper
<
ApiAuth
>
query
=
new
QueryWrapper
<>();
query
.
eq
(
"auth_code"
,
authCode
);
query
.
eq
(
"status"
,
GeneralStatusTypeEnum
.
VALID
.
name
());
query
.
eq
(
"api_interface_id"
,
apiId
);
query
.
eq
(
"is_deleted"
,
0
);
return
apiAuthMapper
.
selectOne
(
query
);
...
...
jz-dm-apigateway/src/main/java/com/jz/dm/service/impl/OrganizationManageImpl.java
View file @
32a95cd7
...
...
@@ -193,6 +193,7 @@ public class OrganizationManageImpl implements OrganizationManageService {
public
ApiOrg
getAuthOrganization
(
Long
apiOrgId
)
{
QueryWrapper
<
ApiOrg
>
query
=
new
QueryWrapper
<>();
query
.
eq
(
"id"
,
apiOrgId
);
query
.
eq
(
"status"
,
OrgStatusEnum
.
NORMAL
.
name
());
query
.
eq
(
"is_deleted"
,
0
);
return
apiOrgMapper
.
selectOne
(
query
);
}
...
...
jz-dm-apigateway/src/main/java/com/jz/dm/service/impl/ProducerServiceImpl.java
View file @
32a95cd7
...
...
@@ -15,6 +15,7 @@ import com.jz.common.utils.RedisUtils;
import
com.jz.common.utils.Result
;
import
com.jz.dm.common.constant.TagConstants
;
import
com.jz.dm.common.enums.GeneralStatusTypeEnum
;
import
com.jz.dm.common.enums.apiInterface.ApiInfoOutTypeEnum
;
import
com.jz.dm.common.enums.apiInterface.ApiStatusEnum
;
import
com.jz.dm.common.enums.produce.ProducerStatusTypeEnum
;
import
com.jz.dm.common.util.RandomUtil
;
...
...
@@ -99,7 +100,7 @@ public class ProducerServiceImpl implements ProducerService {
}
/**
* 制作自定义Api
*
DMP
制作自定义Api
*
* @param req
* @return
...
...
@@ -118,29 +119,33 @@ public class ProducerServiceImpl implements ProducerService {
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
,
propagation
=
Propagation
.
REQUIRES_NEW
)
public
Result
addDataBankApiInfo
(
MakeDataBankApiReq
req
)
{
SysUserDto
currentUser
=
getLoginUser
(
RedisMessageConstant
.
SENDTYPE_LOGIN_SYS
);
if
(
null
==
currentUser
)
{
return
Result
.
of_error
(
ResultMsg
.
USER_NOT_LOGIN
);
}
//
SysUserDto currentUser = getLoginUser(RedisMessageConstant.SENDTYPE_LOGIN_SYS);
//
if (null == currentUser) {
//
return Result.of_error(ResultMsg.USER_NOT_LOGIN);
//
}
List
<
ApiInterfaceFile
>
fileSource
=
apiInterfaceFileMapper
.
selectList
(
new
QueryWrapper
<
ApiInterfaceFile
>().
eq
(
"file_source"
,
"2"
));
if
(
fileSource
.
size
()
==
0
||
fileSource
.
size
()
>=
2
)
{
return
Result
.
of_error
(
"文件夹信息异常!"
);
}
if
(
StringUtils
.
isNotBlank
(
req
.
getOutputType
())
&&
(!
req
.
getOutputType
().
contains
(
ApiInfoOutTypeEnum
.
JSON
.
name
())
||
!
req
.
getOutputType
().
contains
(
ApiInfoOutTypeEnum
.
FLOW
.
name
())
)){
return
Result
.
of_error
(
"输出类型不存在!"
);
}
String
apiKey
=
""
;
if
(
StringUtils
.
isNotBlank
(
req
.
getJoinType
())
&&
"10006"
.
equals
(
req
.
getJoinType
()))
{
//数据银行制作API
apiKey
=
RandomUtil
.
getStringRandom
(
16
);
ApiInterface
anInterface
=
new
ApiInterface
();
anInterface
.
setCreateUser
(
""
);
//anInterface.setCreateUser(currentUser.getUserName()
);
anInterface
.
setApiType
(
"2"
);
//数据银行制作api
anInterface
.
setStatus
(
ProducerStatusTypeEnum
.
ISSUE
.
name
());
//发布
anInterface
.
setApiKey
(
apiKey
);
//apiKey
anInterface
.
setFileId
(
req
.
getFileId
());
BeanUtils
.
copyProperties
(
req
,
anInterface
);
int
resIn
=
apiInterfaceMapper
.
insert
(
anInterface
);
ApiInterfaceCustom
interfaceCustom
=
new
ApiInterfaceCustom
();
interfaceCustom
.
setCreateUser
(
""
);
//interfaceCustom.setCreateUser(currentUser.getUserName()
);
interfaceCustom
.
setApiKey
(
apiKey
);
interfaceCustom
.
setApiInterfaceId
(
anInterface
.
getId
());
BeanUtils
.
copyProperties
(
req
,
interfaceCustom
);
...
...
@@ -188,7 +193,7 @@ public class ProducerServiceImpl implements ProducerService {
public
Result
addBigDataMakeApi
(
MakeBigDataApiReq
req
)
{
SysUserDto
currentUser
=
getLoginUser
(
RedisMessageConstant
.
SENDTYPE_LOGIN_SYS
);
if
(
null
==
currentUser
)
{
return
Result
.
of_error
(
ResultMsg
.
USER_NOT_LOGIN
);
return
Result
.
of_error
(
"用户信息不存在"
);
}
QueryWrapper
<
ApiOpenApiEsFields
>
queryOpenApi
=
new
QueryWrapper
<>();
queryOpenApi
.
eq
(
"es_database"
,
req
.
getEsDatabase
());
...
...
@@ -222,9 +227,6 @@ public class ProducerServiceImpl implements ProducerService {
//api信息在redis中的key
String
redisValueOfKey
=
RandomUtil
.
getStringRandom
(
16
);
if
(
null
!=
dataSource
)
{
redisTemplate
.
opsForValue
().
set
(
TagConstants
.
OPEN_API_HANDLER_INFO_NAMESPACE
+
redisValueOfKey
,
req
.
getHandleType
());
//es相关信息
//redisTemplate.opsForValue().set(TagConstants.OPEN_API_ESTAG_INFO_NAMESPACE + redisValueOfKey, req);
//存入调用的基本ApiKey信息
redisTemplate
.
opsForValue
().
set
(
redisValueOfKey
,
req
);
//esjdbc 连接地址 用于接口中调用获取es数据
...
...
@@ -232,7 +234,7 @@ public class ProducerServiceImpl implements ProducerService {
}
int
result
=
0
;
ApiOpenApiEsTagconfig
apiEsTagconfig
=
new
ApiOpenApiEsTagconfig
();
if
(
null
!=
req
.
getId
()
&&
""
.
equals
(
req
.
getId
()))
{
//更新
if
(
null
!=
req
.
getId
()
&&
!
""
.
equals
(
req
.
getId
()))
{
//更新
apiEsTagconfig
.
setUpdateDate
(
new
Date
());
apiEsTagconfig
.
setUpdateUser
(
currentUser
.
getUserName
());
BeanUtils
.
copyProperties
(
req
,
apiEsTagconfig
);
...
...
@@ -259,7 +261,7 @@ public class ProducerServiceImpl implements ProducerService {
public
Result
saveInterfaceAPi
(
ApiInterfaceReq
req
)
{
SysUserDto
currentUser
=
getLoginUser
(
RedisMessageConstant
.
SENDTYPE_LOGIN_SYS
);
if
(
null
==
currentUser
)
{
return
Result
.
of_error
(
ResultMsg
.
USER_NOT_LOGIN
);
return
Result
.
of_error
(
"用户信息不存在"
);
}
QueryWrapper
<
ApiInterfaceFile
>
query
=
new
QueryWrapper
<>();
query
.
eq
(
"project_id"
,
req
.
getProjectId
());
...
...
@@ -303,6 +305,8 @@ public class ProducerServiceImpl implements ProducerService {
if
(
apiInterfaceMapper
.
insert
(
apiInterface
)
==
0
)
{
throw
ResponseException
.
of_error
(
"保存Api信息失败!"
);
}
//缓存到redis中
redisUtils
.
set
(
apiKey
,
req
);
return
Result
.
of_success
(
ResultMsg
.
INSERT_SUCCESS
,
apiKey
);
}
...
...
@@ -313,22 +317,23 @@ public class ProducerServiceImpl implements ProducerService {
* @return
*/
@Override
public
Result
saveUpdateAPiInfo
(
MakeApiSaveInfo
Req
req
)
{
public
Result
saveUpdateAPiInfo
(
ApiInterface
Req
req
)
{
SysUserDto
currentUser
=
getLoginUser
(
RedisMessageConstant
.
SENDTYPE_LOGIN_SYS
);
if
(
null
==
currentUser
)
{
return
Result
.
of_error
(
ResultMsg
.
USER_NOT_LOGIN
);
return
Result
.
of_error
(
"用户信息不存在"
);
}
ApiInterface
apiInterface
=
apiInterfaceMapper
.
selectById
(
req
.
getId
());
if
(
null
==
apiInterface
)
{
return
Result
.
of_error
(
ResultMsg
.
DATA_NOT_FOUND
);
}
if
(
StringUtils
.
isBlank
(
req
.
get
Type
())
||
"0"
.
equals
(
req
.
get
Type
()))
{
if
(
StringUtils
.
isBlank
(
req
.
get
SignType
())
||
"0"
.
equals
(
req
.
getSign
Type
()))
{
return
Result
.
of_error
(
"加密类型错误!"
);
}
apiInterface
.
setApiType
(
req
.
getApiType
());
apiInterface
.
setApiDesc
(
req
.
getApiDesc
());
apiInterface
.
setJoinType
(
req
.
getJoinType
());
apiInterface
.
setVersion
(
RandomUtil
.
generateVersion
(
apiInterface
.
getVersion
()));
//版本自动累加
apiInterface
.
setSignType
(
req
.
getType
());
apiInterface
.
setSignType
(
req
.
get
Sign
Type
());
apiInterface
.
setApiProtocl
(
req
.
getTransMode
());
//传输方式 https http
if
(
StringUtils
.
isNotBlank
(
req
.
getTargetUrl
()))
{
apiInterface
.
setTargetUrl
(
req
.
getTargetUrl
());
...
...
jz-dm-apigateway/src/main/java/com/jz/dm/service/request/ApiQueryService.java
View file @
32a95cd7
...
...
@@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSONObject;
import
com.jz.common.utils.HttpsUtils
;
import
com.jz.common.utils.RedisUtils
;
import
com.jz.dm.common.enums.GatewayResultCode
;
import
com.jz.dm.common.enums.apiInterface.ApiInfoOutTypeEnum
;
import
com.jz.dm.common.exception.GatewayException
;
import
com.jz.dm.common.util.OpenApiRequest
;
import
com.jz.dm.common.util.OpenApiResponse
;
...
...
@@ -66,26 +67,39 @@ public class ApiQueryService implements OpenApiService {
if
(
StringUtils
.
isNotBlank
(
selectType
))
{
try
{
switch
(
selectType
)
{
case
"
QUERY_TAG"
:
//标签
查询
case
"
10001"
:
//实时接入
查询
break
;
case
"
BIG_DATA_QUERY"
:
//大数据
查询
case
"
10003"
:
//标签
查询
break
;
case
"CUSTOM_QUERY"
:
//自定义查询(三方查询)
case
"10002"
:
//大数据查询
if
(
StringUtils
.
isNotBlank
(
apiInterface
)){
//redis中存在
JSONObject
jsonBigData
=
JSONObject
.
parseObject
(
apiInterface
);
String
targetUrl
=
jsonBigData
.
getString
(
"targetUrl"
);
rangRequestTarget
(
ApiInfoOutTypeEnum
.
JSON
.
name
(),
targetUrl
,
paramMap
,
response
);
}
else
{
//缓存中不存在 查询数据库
ApiInterface
apiInfo
=
apiInterfaceService
.
getApiInfo
(
request
.
getAppKey
());
if
(
apiInfo
==
null
){
throw
new
GatewayException
(
GatewayResultCode
.
REQUEST_INFO_UNEXIST
);
}
rangRequestTarget
(
ApiInfoOutTypeEnum
.
JSON
.
name
(),
apiInfo
.
getTargetUrl
(),
paramMap
,
response
);
}
break
;
case
"10004"
:
//自定义查询(三方查询)
if
(
StringUtils
.
isNotBlank
(
apiInterface
)){
//redis中存在
JSONObject
jsonCustom
=
JSONObject
.
parseObject
(
apiInterface
);
String
targetUrl
=
jsonCustom
.
getString
(
"targetUrl"
);
rangRequestTarget
(
"json"
,
targetUrl
,
null
,
response
);
rangRequestTarget
(
ApiInfoOutTypeEnum
.
JSON
.
name
()
,
targetUrl
,
null
,
response
);
}
else
{
//redis中不存在,查询数据库
ApiInterface
apiReqDto
=
apiInterfaceService
.
getReqTargetInfo
(
request
.
getAppKey
());
if
(
null
==
apiReqDto
)
{
throw
new
GatewayException
(
GatewayResultCode
.
REQUEST_INFO_UNEXIST
);
}
rangRequestTarget
(
"json"
,
apiReqDto
.
getTargetUrl
(),
null
,
response
);
rangRequestTarget
(
ApiInfoOutTypeEnum
.
JSON
.
name
()
,
apiReqDto
.
getTargetUrl
(),
null
,
response
);
}
break
;
case
"
DATA_BANK_QUERY
"
:
//数据银行查询
if
(
null
!=
apiInterface
)
{
//redis中存在
case
"
10006
"
:
//数据银行查询
if
(
StringUtils
.
isNotBlank
(
apiInterface
)
)
{
//redis中存在
JSONObject
jsonObject
=
JSONObject
.
parseObject
(
apiInterface
);
String
targetUrl
=
jsonObject
.
getString
(
"targetUrl"
);
String
outputType
=
jsonObject
.
getString
(
"outputType"
);
...
...
@@ -99,7 +113,21 @@ public class ApiQueryService implements OpenApiService {
rangRequestTarget
(
apiReqDto
.
getOutputType
(),
apiReqDto
.
getTargetUrl
(),
paramMap
,
response
);
}
break
;
case
"DATA_BAG_QUERY"
:
//数据银行数据包查询
case
"10007"
:
//数据银行数据包查询
if
(
StringUtils
.
isNotBlank
(
apiInterface
)){
//从redis中获取数据
JSONObject
jsonObject
=
JSONObject
.
parseObject
(
apiInterface
);
String
targetUrl
=
jsonObject
.
getString
(
"targetUrl"
);
String
outputType
=
jsonObject
.
getString
(
"outputType"
);
rangRequestTarget
(
outputType
,
targetUrl
,
paramMap
,
response
);
}
else
{
//不存在查询数据库
ApiInterface
apiReqDto
=
apiInterfaceService
.
getReqTargetInfo
(
request
.
getAppKey
());
if
(
null
==
apiReqDto
)
{
throw
new
GatewayException
(
GatewayResultCode
.
REQUEST_INFO_UNEXIST
);
}
rangRequestTarget
(
apiReqDto
.
getOutputType
(),
apiReqDto
.
getTargetUrl
(),
paramMap
,
response
);
}
break
;
default
:
response
.
setCode
(
GatewayResultCode
.
ILLEGAL_REQUEST
.
getCode
());
...
...
@@ -116,9 +144,9 @@ public class ApiQueryService implements OpenApiService {
}
private
void
rangRequestTarget
(
String
outputType
,
String
targetUrl
,
Map
<
String
,
String
>
param
,
OpenApiResponse
response
)
{
if
(
"flow"
.
equals
(
outputType
))
{
//文件流形式请求
if
(
ApiInfoOutTypeEnum
.
FLOW
.
name
()
.
equals
(
outputType
))
{
//文件流形式请求
// httpsUtils.doGetImg()TODO 流形式未实现
}
else
if
(
"json"
.
equals
(
outputType
))
{
}
else
if
(
ApiInfoOutTypeEnum
.
JSON
.
name
()
.
equals
(
outputType
))
{
String
respResult
=
httpsUtils
.
doGet
(
targetUrl
,
param
);
response
.
setAttribute
(
respResult
);
}
else
{
...
...
jz-dm-common/src/main/java/com/jz/common/utils/HttpsUtils.java
View file @
32a95cd7
package
com
.
jz
.
common
.
utils
;
import
com.alibaba.fastjson.JSONObject
;
import
com.baomidou.mybatisplus.core.toolkit.CollectionUtils
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.lang3.StringUtils
;
...
...
@@ -44,7 +45,7 @@ public class HttpsUtils {
* @param headers 请求头
* @return
*/
public
String
submitPost
(
String
url
,
String
params
,
Map
<
String
,
String
>
headers
)
{
public
String
submitPost
(
String
url
,
JSONObject
params
,
Map
<
String
,
String
>
headers
)
{
CloseableHttpClient
httpClient
=
getHttpClient
();
String
body
=
null
;
CloseableHttpResponse
response
=
null
;
...
...
@@ -56,8 +57,8 @@ public class HttpsUtils {
httpPost
.
addHeader
(
e
.
getKey
(),
e
.
getValue
());
}
}
if
(
StringUtils
.
isNotBlank
(
params
))
{
httpPost
.
setEntity
(
new
StringEntity
(
params
,
Consts
.
UTF_8
));
if
(
StringUtils
.
isNotBlank
(
params
.
toString
()
))
{
httpPost
.
setEntity
(
new
StringEntity
(
params
.
toString
()
,
Consts
.
UTF_8
));
}
response
=
httpClient
.
execute
(
httpPost
);
body
=
getBody
(
response
.
getEntity
());
...
...
jz-dm-common/src/main/java/com/jz/common/utils/Result.java
View file @
32a95cd7
...
...
@@ -143,7 +143,7 @@ public class Result<T> implements Serializable {
Result
resultJson
=
new
Result
(
ResultCode
.
FAILURE
.
getCode
(),
data
);
return
resultJson
;
}
@Deprecated
//
@Deprecated
public
static
Result
of_error
(
String
msg
)
{
Result
resultJson
=
new
Result
(
ResultCode
.
FAILURE
.
getCode
(),
null
,
msg
);
return
resultJson
;
...
...
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