Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
聂康
local-rnr-mg
Commits
b2eded42
Commit
b2eded42
authored
Jun 17, 2025
by
kang.nie@inzymeits.com
Browse files
初始化代码
parent
12156d65
Pipeline
#3109
failed with stages
in 0 seconds
Changes
439
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
local-rnr-mg-remote/src/main/java/com/cusc/nirvana/user/rnr/mg/client/MgVehicleCompanyClient.java
0 → 100644
View file @
b2eded42
package
com.cusc.nirvana.user.rnr.mg.client
;
import
com.cusc.nirvana.common.result.PageResult
;
import
com.cusc.nirvana.common.result.Response
;
import
com.cusc.nirvana.user.rnr.mg.constants.UserRnrMgClientConstant
;
import
com.cusc.nirvana.user.rnr.mg.dto.MgVehicleCompanyDTO
;
import
com.cusc.nirvana.user.rnr.mg.util.RnrMgRestTemplateUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Qualifier
;
import
org.springframework.stereotype.Component
;
import
org.springframework.web.client.RestTemplate
;
import
java.util.List
;
/**
* 车企信息表(FpVehicleCompany) client
*
* @author yuy336
* @since 2022-04-19 20:11:23
*/
@Component
public
class
MgVehicleCompanyClient
{
@Autowired
@Qualifier
(
"restTemplateRnrMg"
)
private
RestTemplate
restTemplateRnrMg
;
/**
* 分页查询
*
* @param bean 筛选条件
* @return 查询结果
*/
public
Response
<
PageResult
<
MgVehicleCompanyDTO
>>
queryByPage
(
MgVehicleCompanyDTO
bean
)
{
return
RnrMgRestTemplateUtils
.
postForResponsePageResult
(
restTemplateRnrMg
,
UserRnrMgClientConstant
.
USER_RNR_MG_URL
+
"/mgVehicleCompany/queryByPage"
,
bean
,
MgVehicleCompanyDTO
.
class
);
}
/**
* 通过主键查询单条数据
*
* @param bean 实体
* @return 单条数据
*/
public
Response
<
MgVehicleCompanyDTO
>
getByUuid
(
MgVehicleCompanyDTO
bean
)
{
return
RnrMgRestTemplateUtils
.
postForResponse
(
restTemplateRnrMg
,
UserRnrMgClientConstant
.
USER_RNR_MG_URL
+
"/mgVehicleCompany/getByUuid"
,
bean
,
MgVehicleCompanyDTO
.
class
);
}
/**
* 通过租户编号查询单条数据
*
* @param bean 实体
* @return 单条数据
*/
public
Response
<
MgVehicleCompanyDTO
>
getVehicleCompany
(
MgVehicleCompanyDTO
bean
)
{
return
RnrMgRestTemplateUtils
.
postForResponse
(
restTemplateRnrMg
,
UserRnrMgClientConstant
.
USER_RNR_MG_URL
+
"/mgVehicleCompany/getVehicleCompany"
,
bean
,
MgVehicleCompanyDTO
.
class
);
}
/**
* 通过主键查询单条数据
*
* @param bean 实体
* @return 单条数据
*/
public
Response
<
List
<
MgVehicleCompanyDTO
>>
queryByList
(
MgVehicleCompanyDTO
bean
)
{
return
RnrMgRestTemplateUtils
.
postForResponseList
(
restTemplateRnrMg
,
UserRnrMgClientConstant
.
USER_RNR_MG_URL
+
"/mgVehicleCompany/queryByList"
,
bean
,
MgVehicleCompanyDTO
.
class
);
}
/**
* 新增数据
*
* @param bean 实体
* @return 新增结果
*/
public
Response
add
(
MgVehicleCompanyDTO
bean
)
{
return
restTemplateRnrMg
.
postForObject
(
UserRnrMgClientConstant
.
USER_RNR_MG_URL
+
"/mgVehicleCompany/add"
,
bean
,
Response
.
class
);
}
/**
* 编辑数据
*
* @param bean 实体
* @return 编辑结果
*/
public
Response
update
(
MgVehicleCompanyDTO
bean
)
{
return
restTemplateRnrMg
.
postForObject
(
UserRnrMgClientConstant
.
USER_RNR_MG_URL
+
"/mgVehicleCompany/update"
,
bean
,
Response
.
class
);
}
/**
* 删除数据
*
* @param bean 实体
* @return 删除是否成功
*/
public
Response
<
Boolean
>
deleteById
(
MgVehicleCompanyDTO
bean
)
{
return
restTemplateRnrMg
.
postForObject
(
UserRnrMgClientConstant
.
USER_RNR_MG_URL
+
"/mgVehicleCompany/deleteById"
,
bean
,
Response
.
class
);
}
}
local-rnr-mg-remote/src/main/java/com/cusc/nirvana/user/rnr/mg/client/OpenTenantRelationClient.java
0 → 100644
View file @
b2eded42
package
com.cusc.nirvana.user.rnr.mg.client
;
import
com.cusc.nirvana.common.result.PageResult
;
import
com.cusc.nirvana.common.result.Response
;
import
com.cusc.nirvana.user.rnr.mg.constants.UserRnrMgClientConstant
;
import
com.cusc.nirvana.user.rnr.mg.dto.OpenTenantRelationDTO
;
import
com.cusc.nirvana.user.rnr.mg.util.RnrMgRestTemplateUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Qualifier
;
import
org.springframework.stereotype.Component
;
import
org.springframework.web.client.RestTemplate
;
import
java.util.List
;
/**
* 开放平台租户和实名制租户映射关系表(OpenTenantRelation) client
*
* @author yuy336
* @since 2022-06-15 20:03:19
*/
@Component
public
class
OpenTenantRelationClient
{
@Autowired
@Qualifier
(
"restTemplateRnrMg"
)
private
RestTemplate
restTemplateRnrMg
;
/**
* 分页查询
*
* @param bean 筛选条件
* @return 查询结果
*/
public
Response
<
PageResult
<
OpenTenantRelationDTO
>>
queryByPage
(
OpenTenantRelationDTO
bean
)
{
return
RnrMgRestTemplateUtils
.
postForResponsePageResult
(
restTemplateRnrMg
,
UserRnrMgClientConstant
.
USER_RNR_MG_URL
+
"/openTenantRelation/queryByPage"
,
bean
,
OpenTenantRelationDTO
.
class
);
}
/**
* 通过主键查询单条数据
*
* @param bean 实体
* @return 单条数据
*/
public
Response
<
OpenTenantRelationDTO
>
getByUuid
(
OpenTenantRelationDTO
bean
)
{
return
RnrMgRestTemplateUtils
.
postForResponse
(
restTemplateRnrMg
,
UserRnrMgClientConstant
.
USER_RNR_MG_URL
+
"/openTenantRelation/getByUuid"
,
bean
,
OpenTenantRelationDTO
.
class
);
}
/**
* 通过主键查询单条数据
*
* @param bean 实体
* @return 单条数据
*/
public
Response
<
List
<
OpenTenantRelationDTO
>>
queryByList
(
OpenTenantRelationDTO
bean
)
{
return
RnrMgRestTemplateUtils
.
postForResponseList
(
restTemplateRnrMg
,
UserRnrMgClientConstant
.
USER_RNR_MG_URL
+
"/openTenantRelation/queryByList"
,
bean
,
OpenTenantRelationDTO
.
class
);
}
/**
* 新增数据
*
* @param bean 实体
* @return 新增结果
*/
public
Response
add
(
OpenTenantRelationDTO
bean
)
{
return
RnrMgRestTemplateUtils
.
postForObject
(
restTemplateRnrMg
,
UserRnrMgClientConstant
.
USER_RNR_MG_URL
+
"/openTenantRelation/add"
,
bean
,
Response
.
class
);
}
/**
* 编辑数据
*
* @param bean 实体
* @return 编辑结果
*/
public
Response
update
(
OpenTenantRelationDTO
bean
)
{
return
RnrMgRestTemplateUtils
.
postForObject
(
restTemplateRnrMg
,
UserRnrMgClientConstant
.
USER_RNR_MG_URL
+
"/openTenantRelation/update"
,
bean
,
Response
.
class
);
}
/**
* 删除数据
*
* @param bean 实体
* @return 删除是否成功
*/
public
Response
<
Boolean
>
deleteById
(
OpenTenantRelationDTO
bean
)
{
return
RnrMgRestTemplateUtils
.
postForObject
(
restTemplateRnrMg
,
UserRnrMgClientConstant
.
USER_RNR_MG_URL
+
"/openTenantRelation/deleteById"
,
bean
,
Response
.
class
);
}
}
local-rnr-mg-remote/src/main/java/com/cusc/nirvana/user/rnr/mg/client/OrgBusinessTagClient.java
0 → 100644
View file @
b2eded42
package
com.cusc.nirvana.user.rnr.mg.client
;
import
com.cusc.nirvana.common.result.Response
;
import
com.cusc.nirvana.user.rnr.mg.constants.UserRnrMgClientConstant
;
import
com.cusc.nirvana.user.rnr.mg.dto.OrgBusinessTagDTO
;
import
com.cusc.nirvana.user.rnr.mg.dto.OrgBusinessTagQueryDTO
;
import
com.cusc.nirvana.user.rnr.mg.util.RnrMgRestTemplateUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Qualifier
;
import
org.springframework.stereotype.Component
;
import
org.springframework.web.client.RestTemplate
;
import
java.util.List
;
@Component
public
class
OrgBusinessTagClient
{
@Autowired
@Qualifier
(
"restTemplateRnrMg"
)
RestTemplate
restTemplateRnrMg
;
/**
* 新增业务标签信息
*
* @param bean
* @return
*/
public
Response
<
OrgBusinessTagDTO
>
add
(
OrgBusinessTagDTO
bean
)
{
return
RnrMgRestTemplateUtils
.
postForResponse
(
restTemplateRnrMg
,
UserRnrMgClientConstant
.
USER_RNR_MG_URL
+
"/businessTag/add"
,
bean
,
OrgBusinessTagDTO
.
class
);
}
/**
* 修改业务标签信息
*
* @param bean
* @return
*/
public
Response
<
OrgBusinessTagDTO
>
update
(
OrgBusinessTagDTO
bean
)
{
return
RnrMgRestTemplateUtils
.
postForResponse
(
restTemplateRnrMg
,
UserRnrMgClientConstant
.
USER_RNR_MG_URL
+
"/businessTag/update"
,
bean
,
OrgBusinessTagDTO
.
class
);
}
/**
* 删除业务标签信息
*
* @param bean
* @return
*/
public
Response
delete
(
OrgBusinessTagDTO
bean
)
{
return
restTemplateRnrMg
.
postForObject
(
UserRnrMgClientConstant
.
USER_RNR_MG_URL
+
"/businessTag/delete"
,
bean
,
Response
.
class
);
}
/**
* 查询指定数据
*
* @param uuid
* @return
*/
public
Response
<
OrgBusinessTagDTO
>
getByUuid
(
String
uuid
)
{
return
RnrMgRestTemplateUtils
.
getForResponse
(
restTemplateRnrMg
,
UserRnrMgClientConstant
.
USER_RNR_MG_URL
+
"/businessTag/getByUuid?uuid="
+
uuid
,
OrgBusinessTagDTO
.
class
);
}
/**
* 根据租户和标签编码查询业务标签信息
*
* @param bean
* @return
*/
public
Response
<
OrgBusinessTagDTO
>
getByTagCode
(
OrgBusinessTagDTO
bean
)
{
return
RnrMgRestTemplateUtils
.
postForResponse
(
restTemplateRnrMg
,
UserRnrMgClientConstant
.
USER_RNR_MG_URL
+
"/businessTag/getByTagCode"
,
bean
,
OrgBusinessTagDTO
.
class
);
}
/**
* 分页查询历史数据
*
* @param queryDTO
* @return
*/
public
Response
<
List
<
OrgBusinessTagDTO
>>
query
(
OrgBusinessTagQueryDTO
queryDTO
)
{
return
RnrMgRestTemplateUtils
.
postForResponseList
(
restTemplateRnrMg
,
UserRnrMgClientConstant
.
USER_RNR_MG_URL
+
"/businessTag/query"
,
queryDTO
,
OrgBusinessTagDTO
.
class
);
}
}
local-rnr-mg-remote/src/main/java/com/cusc/nirvana/user/rnr/mg/client/OrgSimRelClient.java
0 → 100644
View file @
b2eded42
package
com.cusc.nirvana.user.rnr.mg.client
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSONObject
;
import
com.cusc.nirvana.common.result.PageResult
;
import
com.cusc.nirvana.common.result.Response
;
import
com.cusc.nirvana.user.rnr.mg.constants.UserRnrMgClientConstant
;
import
com.cusc.nirvana.user.rnr.mg.dto.*
;
import
com.cusc.nirvana.user.rnr.mg.util.RnrMgRestTemplateUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Qualifier
;
import
org.springframework.stereotype.Component
;
import
org.springframework.web.client.RestTemplate
;
import
java.util.List
;
@Component
public
class
OrgSimRelClient
{
@Autowired
@Qualifier
(
"restTemplateRnrMg"
)
RestTemplate
restTemplateRnrMg
;
/**
* 新增组织与SIM卡关系
* @param bean
* @return
*/
public
Response
<
OrgSimRelDTO
>
add
(
OrgSimRelDTO
bean
)
{
return
RnrMgRestTemplateUtils
.
postForResponse
(
restTemplateRnrMg
,
UserRnrMgClientConstant
.
USER_RNR_MG_URL
+
"/orgSimRel/add"
,
bean
,
OrgSimRelDTO
.
class
);
}
/**
* 批量新增组织与SIM卡的关系
* @param bean
* @return
*/
public
Response
<?>
addBatch
(
OrgSimRelBatchDTO
bean
)
{
return
restTemplateRnrMg
.
postForObject
(
UserRnrMgClientConstant
.
USER_RNR_MG_URL
+
"/orgSimRel/addBatch"
,
bean
,
Response
.
class
);
}
/**
* 修改组织与SIM卡关系
* @param bean
* @return
*/
public
Response
<
OrgSimRelDTO
>
update
(
OrgSimRelDTO
bean
)
{
return
RnrMgRestTemplateUtils
.
postForResponse
(
restTemplateRnrMg
,
UserRnrMgClientConstant
.
USER_RNR_MG_URL
+
"/orgSimRel/update"
,
bean
,
OrgSimRelDTO
.
class
);
}
/**
* 修改sim卡与vin码绑定状态
* @param simRelBindStatusDTO
* @return
*/
public
Response
<
Boolean
>
updateBindStatus
(
OrgSimRelBindStatusDTO
simRelBindStatusDTO
)
{
return
RnrMgRestTemplateUtils
.
postForResponse
(
restTemplateRnrMg
,
UserRnrMgClientConstant
.
USER_RNR_MG_URL
+
"/orgSimRel/updateBindStatus"
,
simRelBindStatusDTO
,
Boolean
.
class
);
}
/**
* 修改sim卡与vin码绑定状态
* @return
*/
public
Response
<
Boolean
>
updateBindIccid
(
List
<
String
>
iccid
)
{
return
RnrMgRestTemplateUtils
.
postForResponse
(
restTemplateRnrMg
,
UserRnrMgClientConstant
.
USER_RNR_MG_URL
+
"/orgSimRel/updateBindIccid"
,
iccid
,
Boolean
.
class
);
}
/**
* 删除SIM卡导入历史信息
* @param bean
* @return
*/
public
Response
delete
(
OrgSimRelDTO
bean
)
{
return
restTemplateRnrMg
.
postForObject
(
UserRnrMgClientConstant
.
USER_RNR_MG_URL
+
"/orgSimRel/delete"
,
bean
,
Response
.
class
);
}
/**
* 查询指定数据
* @param uuid
* @return
*/
public
Response
<
OrgSimRelDTO
>
getByUuid
(
String
uuid
)
{
return
RnrMgRestTemplateUtils
.
getForResponse
(
restTemplateRnrMg
,
UserRnrMgClientConstant
.
USER_RNR_MG_URL
+
"/orgSimRel/getByUuid?uuid="
+
uuid
,
OrgSimRelDTO
.
class
);
}
/**
* 根据Iccid查询卡信息
* @param iccid
* @return
*/
public
Response
<
OrgSimRelDTO
>
getByIccid
(
String
iccid
)
{
return
RnrMgRestTemplateUtils
.
getForResponse
(
restTemplateRnrMg
,
UserRnrMgClientConstant
.
USER_RNR_MG_URL
+
"/orgSimRel/getByIccid?iccid="
+
iccid
,
OrgSimRelDTO
.
class
);
}
/**
* 根据vin码查询车卡关系列表
* @param queryDTO
* @return
*/
public
Response
<
List
<
OrgSimRelDTO
>>
queryByVin
(
OrgSimRelVinQueryDTO
queryDTO
)
{
return
RnrMgRestTemplateUtils
.
postForResponseList
(
restTemplateRnrMg
,
UserRnrMgClientConstant
.
USER_RNR_MG_URL
+
"/orgSimRel/queryByVin"
,
queryDTO
,
OrgSimRelDTO
.
class
);
}
/**
* 分页查询历史数据
* @param bean
* @return
*/
public
Response
<
PageResult
<
OrgSimRelDTO
>>
queryByPage
(
OrgSimRelQueryDTO
bean
)
{
return
RnrMgRestTemplateUtils
.
postForResponsePageResult
(
restTemplateRnrMg
,
UserRnrMgClientConstant
.
USER_RNR_MG_URL
+
"/orgSimRel/queryByPage"
,
bean
,
OrgSimRelDTO
.
class
);
}
public
Response
<
List
<
OrgSimRelDTO
>>
queryByList
(
IccIdListRequestDTO
requestDTO
)
{
return
RnrMgRestTemplateUtils
.
postForResponseList
(
restTemplateRnrMg
,
UserRnrMgClientConstant
.
USER_RNR_MG_URL
+
"/orgSimRel/queryByList"
,
requestDTO
,
OrgSimRelDTO
.
class
);
}
public
Response
updateVin
(
List
<
MgRnrCardInfoDTO
>
mgRnrCardInfoDTOList
)
{
return
RnrMgRestTemplateUtils
.
postForResponseList
(
restTemplateRnrMg
,
UserRnrMgClientConstant
.
USER_RNR_MG_URL
+
"/orgSimRel/updateVin"
,
mgRnrCardInfoDTOList
,
Response
.
class
);
}
public
Response
<
List
<
OrgSimRelDTO
>>
queryInfoByIccidAndStatus
(
IccIdListRequestDTO
requestDTO
)
{
return
RnrMgRestTemplateUtils
.
postForResponseList
(
restTemplateRnrMg
,
UserRnrMgClientConstant
.
USER_RNR_MG_URL
+
"/orgSimRel/queryInfoByIccidAndStatus"
,
requestDTO
,
OrgSimRelDTO
.
class
);
}
public
Response
updateStatusByIccid
(
IccIdListRequestDTO
requestDTO
)
{
return
RnrMgRestTemplateUtils
.
postForResponseList
(
restTemplateRnrMg
,
UserRnrMgClientConstant
.
USER_RNR_MG_URL
+
"/orgSimRel/updateStatusByIccid"
,
requestDTO
,
Response
.
class
);
}
}
local-rnr-mg-remote/src/main/java/com/cusc/nirvana/user/rnr/mg/client/RnrNoticeTemplateConfigClient.java
0 → 100644
View file @
b2eded42
package
com.cusc.nirvana.user.rnr.mg.client
;
import
com.cusc.nirvana.common.result.PageResult
;
import
com.cusc.nirvana.common.result.Response
;
import
com.cusc.nirvana.user.rnr.mg.constants.UserRnrMgClientConstant
;
import
com.cusc.nirvana.user.rnr.mg.dto.RnrNoticeTemplateConfigDTO
;
import
com.cusc.nirvana.user.rnr.mg.util.RnrMgRestTemplateUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Qualifier
;
import
org.springframework.stereotype.Component
;
import
org.springframework.web.client.RestTemplate
;
import
java.util.List
;
/**
* 消息模板配置(RnrNoticeTemplateConfig) client
*
* @author yuy336
* @since 2022-06-01 11:06:48
*/
@Component
public
class
RnrNoticeTemplateConfigClient
{
@Autowired
@Qualifier
(
"restTemplateRnrMg"
)
RestTemplate
restTemplateRnrMg
;
/**
* 分页查询
*
* @param bean 筛选条件
* @return 查询结果
*/
public
Response
<
PageResult
<
RnrNoticeTemplateConfigDTO
>>
queryByPage
(
RnrNoticeTemplateConfigDTO
bean
)
{
return
RnrMgRestTemplateUtils
.
postForResponsePageResult
(
restTemplateRnrMg
,
UserRnrMgClientConstant
.
USER_RNR_MG_URL
+
"/rnrNoticeTemplateConfig/queryByPage"
,
bean
,
RnrNoticeTemplateConfigDTO
.
class
);
}
/**
* 通过主键查询单条数据
*
* @param bean 实体
* @return 单条数据
*/
public
Response
<
RnrNoticeTemplateConfigDTO
>
getByUuid
(
RnrNoticeTemplateConfigDTO
bean
)
{
return
RnrMgRestTemplateUtils
.
postForResponse
(
restTemplateRnrMg
,
UserRnrMgClientConstant
.
USER_RNR_MG_URL
+
"/rnrNoticeTemplateConfig/getByUuid"
,
bean
,
RnrNoticeTemplateConfigDTO
.
class
);
}
/**
* 通过主键查询单条数据
*
* @param bean 实体
* @return 单条数据
*/
public
Response
<
List
<
RnrNoticeTemplateConfigDTO
>>
queryByList
(
RnrNoticeTemplateConfigDTO
bean
)
{
return
RnrMgRestTemplateUtils
.
postForResponseList
(
restTemplateRnrMg
,
UserRnrMgClientConstant
.
USER_RNR_MG_URL
+
"/rnrNoticeTemplateConfig/queryByList"
,
bean
,
RnrNoticeTemplateConfigDTO
.
class
);
}
/**
* 新增数据
*
* @param bean 实体
* @return 新增结果
*/
public
Response
add
(
RnrNoticeTemplateConfigDTO
bean
)
{
return
restTemplateRnrMg
.
postForObject
(
UserRnrMgClientConstant
.
USER_RNR_MG_URL
+
"/rnrNoticeTemplateConfig/add"
,
bean
,
Response
.
class
);
}
/**
* 编辑数据
*
* @param bean 实体
* @return 编辑结果
*/
public
Response
update
(
RnrNoticeTemplateConfigDTO
bean
)
{
return
restTemplateRnrMg
.
postForObject
(
UserRnrMgClientConstant
.
USER_RNR_MG_URL
+
"/rnrNoticeTemplateConfig/update"
,
bean
,
Response
.
class
);
}
/**
* 删除数据
*
* @param bean 实体
* @return 删除是否成功
*/
public
Response
<
Boolean
>
deleteById
(
RnrNoticeTemplateConfigDTO
bean
)
{
return
restTemplateRnrMg
.
postForObject
(
UserRnrMgClientConstant
.
USER_RNR_MG_URL
+
"/rnrNoticeTemplateConfig/deleteById"
,
bean
,
Response
.
class
);
}
}
local-rnr-mg-remote/src/main/java/com/cusc/nirvana/user/rnr/mg/client/RnrOrderClient.java
0 → 100644
View file @
b2eded42
package
com.cusc.nirvana.user.rnr.mg.client
;
import
com.cusc.nirvana.common.result.PageResult
;
import
com.cusc.nirvana.common.result.Response
;
import
com.cusc.nirvana.user.rnr.mg.constants.UserRnrMgClientConstant
;
import
com.cusc.nirvana.user.rnr.mg.dto.RnrOrderDTO
;
import
com.cusc.nirvana.user.rnr.mg.util.RnrMgRestTemplateUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Qualifier
;
import
org.springframework.stereotype.Component
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.client.RestTemplate
;
import
java.util.List
;
/**
* 实名工单信息(RnrOrder) client
*
* @author yuy336
* @since 2022-01-26 13:39:49
*/
@Component
public
class
RnrOrderClient
{
@Autowired
@Qualifier
(
"restTemplateRnrMg"
)
private
RestTemplate
restTemplateRnrMg
;
/**
* 分页查询
*
* @param bean 筛选条件
* @return 查询结果
*/
public
Response
<
PageResult
<
RnrOrderDTO
>>
queryByPage
(
RnrOrderDTO
bean
)
{
return
RnrMgRestTemplateUtils
.
postForResponsePageResult
(
restTemplateRnrMg
,
UserRnrMgClientConstant
.
USER_RNR_MG_URL
+
"/mgRnrOrder/queryByPage"
,
bean
,
RnrOrderDTO
.
class
);
}
/**
* 通过主键查询单条数据
*
* @param bean 实体
* @return 单条数据
*/
public
Response
<
RnrOrderDTO
>
getByUuid
(
RnrOrderDTO
bean
)
{
return
RnrMgRestTemplateUtils
.
postForResponse
(
restTemplateRnrMg
,
UserRnrMgClientConstant
.
USER_RNR_MG_URL
+
"/mgRnrOrder/getByUuid"
,
bean
,
RnrOrderDTO
.
class
);
}
/**
* 通过主键查询单条数据
*
* @param bean 实体
* @return 单条数据
*/
public
Response
<
List
<
RnrOrderDTO
>>
queryByList
(
RnrOrderDTO
bean
)
{
return
RnrMgRestTemplateUtils
.
postForResponseList
(
restTemplateRnrMg
,
UserRnrMgClientConstant
.
USER_RNR_MG_URL
+
"/mgRnrOrder/queryByList"
,
bean
,
RnrOrderDTO
.
class
);
}
/**
* 新增数据
*
* @param bean 实体
* @return 新增结果
*/
public
Response
add
(
RnrOrderDTO
bean
)
{
return
restTemplateRnrMg
.
postForObject
(
UserRnrMgClientConstant
.
USER_RNR_MG_URL
+
"/mgRnrOrder/add"
,
bean
,
Response
.
class
);
}
/**
* 编辑数据
*
* @param bean 实体
* @return 编辑结果
*/
public
Response
update
(
RnrOrderDTO
bean
)
{
return
restTemplateRnrMg
.
postForObject
(
UserRnrMgClientConstant
.
USER_RNR_MG_URL
+
"/mgRnrOrder/update"
,
bean
,
Response
.
class
);
}
/**
* 删除数据
*
* @param bean 实体
* @return 删除是否成功
*/
public
Response
<
Boolean
>
deleteById
(
RnrOrderDTO
bean
)
{
return
restTemplateRnrMg
.
postForObject
(
UserRnrMgClientConstant
.
USER_RNR_MG_URL
+
"/mgRnrOrder/deleteById"
,
bean
,
Response
.
class
);
}
/**
* 发起一个工单审批
* @param dto
* @return
*/
public
Response
startWorkOrder
(
@RequestBody
RnrOrderDTO
dto
){
return
restTemplateRnrMg
.
postForObject
(
UserRnrMgClientConstant
.
USER_RNR_MG_URL
+
"/mgRnrOrder/startWorkOrder"
,
dto
,
Response
.
class
);
}
/**
* 更新工单状态
* @param dto
* @return
*/
public
Response
updateOrderStatus
(
@RequestBody
RnrOrderDTO
dto
){
return
restTemplateRnrMg
.
postForObject
(
UserRnrMgClientConstant
.
USER_RNR_MG_URL
+
"/mgRnrOrder/updateOrderStatus"
,
dto
,
Response
.
class
);
}
}
local-rnr-mg-remote/src/main/java/com/cusc/nirvana/user/rnr/mg/client/RnrOrderOperationLogClient.java
0 → 100644
View file @
b2eded42
package
com.cusc.nirvana.user.rnr.mg.client
;
import
com.cusc.nirvana.common.result.PageResult
;
import
com.cusc.nirvana.common.result.Response
;
import
com.cusc.nirvana.user.rnr.mg.constants.UserRnrMgClientConstant
;
import
com.cusc.nirvana.user.rnr.mg.dto.RnrOrderOperationLogDTO
;
import
com.cusc.nirvana.user.rnr.mg.util.RnrMgRestTemplateUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Qualifier
;
import
org.springframework.stereotype.Component
;
import
org.springframework.web.client.RestTemplate
;
import
java.util.List
;
/**
* 实名工单操作日志(MgRnrOrderOperationLog) client
*
* @author yuy336
* @since 2022-03-04 10:08:01
*/
@Component
public
class
RnrOrderOperationLogClient
{
@Autowired
@Qualifier
(
"restTemplateRnrMg"
)
private
RestTemplate
restTemplateRnrMg
;
/**
* 分页查询
*
* @param bean 筛选条件
* @return 查询结果
*/
public
Response
<
PageResult
<
RnrOrderOperationLogDTO
>>
queryByPage
(
RnrOrderOperationLogDTO
bean
)
{
return
RnrMgRestTemplateUtils
.
postForResponsePageResult
(
restTemplateRnrMg
,
UserRnrMgClientConstant
.
USER_RNR_MG_URL
+
"/mgRnrOrderOperationLog/queryByPage"
,
bean
,
RnrOrderOperationLogDTO
.
class
);
}
/**
* 通过主键查询单条数据
*
* @param bean 实体
* @return 单条数据
*/
public
Response
<
RnrOrderOperationLogDTO
>
getByUuid
(
RnrOrderOperationLogDTO
bean
)
{
return
RnrMgRestTemplateUtils
.
postForResponse
(
restTemplateRnrMg
,
UserRnrMgClientConstant
.
USER_RNR_MG_URL
+
"/mgRnrOrderOperationLog/getByUuid"
,
bean
,
RnrOrderOperationLogDTO
.
class
);
}
/**
* 通过主键查询单条数据
*
* @param bean 实体
* @return 单条数据
*/
public
Response
<
List
<
RnrOrderOperationLogDTO
>>
queryByList
(
RnrOrderOperationLogDTO
bean
)
{
return
RnrMgRestTemplateUtils
.
postForResponseList
(
restTemplateRnrMg
,
UserRnrMgClientConstant
.
USER_RNR_MG_URL
+
"/mgRnrOrderOperationLog/queryByList"
,
bean
,
RnrOrderOperationLogDTO
.
class
);
}
/**
* 新增数据
*
* @param bean 实体
* @return 新增结果
*/
public
Response
add
(
RnrOrderOperationLogDTO
bean
)
{
return
restTemplateRnrMg
.
postForObject
(
UserRnrMgClientConstant
.
USER_RNR_MG_URL
+
"/mgRnrOrderOperationLog/add"
,
bean
,
Response
.
class
);
}
/**
* 编辑数据
*
* @param bean 实体
* @return 编辑结果
*/
public
Response
update
(
RnrOrderOperationLogDTO
bean
)
{
return
restTemplateRnrMg
.
postForObject
(
UserRnrMgClientConstant
.
USER_RNR_MG_URL
+
"/mgRnrOrderOperationLog/update"
,
bean
,
Response
.
class
);
}
}
local-rnr-mg-remote/src/main/java/com/cusc/nirvana/user/rnr/mg/client/SimFileHistoryClient.java
0 → 100644
View file @
b2eded42
package
com.cusc.nirvana.user.rnr.mg.client
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSONObject
;
import
com.cusc.nirvana.common.result.PageResult
;
import
com.cusc.nirvana.common.result.Response
;
import
com.cusc.nirvana.user.rnr.mg.constants.UserRnrMgClientConstant
;
import
com.cusc.nirvana.user.rnr.mg.dto.SimFileHistoryDTO
;
import
com.cusc.nirvana.user.rnr.mg.dto.SimFileHistoryQueryDTO
;
import
com.cusc.nirvana.user.rnr.mg.util.RnrMgRestTemplateUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Qualifier
;
import
org.springframework.stereotype.Component
;
import
org.springframework.web.client.RestTemplate
;
@Component
public
class
SimFileHistoryClient
{
@Autowired
@Qualifier
(
"restTemplateRnrMg"
)
RestTemplate
restTemplateRnrMg
;
/**
* 新增SIM卡导入历史信息
* @param bean
* @return
*/
public
Response
<
SimFileHistoryDTO
>
add
(
SimFileHistoryDTO
bean
)
{
return
RnrMgRestTemplateUtils
.
postForResponse
(
restTemplateRnrMg
,
UserRnrMgClientConstant
.
USER_RNR_MG_URL
+
"/simFileHistory/add"
,
bean
,
SimFileHistoryDTO
.
class
);
}
/**
* 修改SIM卡导入历史信息
* @param bean
* @return
*/
public
Response
<
SimFileHistoryDTO
>
update
(
SimFileHistoryDTO
bean
)
{
return
RnrMgRestTemplateUtils
.
postForResponse
(
restTemplateRnrMg
,
UserRnrMgClientConstant
.
USER_RNR_MG_URL
+
"/simFileHistory/update"
,
bean
,
SimFileHistoryDTO
.
class
);
}
/**
* 删除SIM卡导入历史信息
* @param bean
* @return
*/
public
Response
delete
(
SimFileHistoryDTO
bean
)
{
return
restTemplateRnrMg
.
postForObject
(
UserRnrMgClientConstant
.
USER_RNR_MG_URL
+
"/simFileHistory/delete"
,
bean
,
Response
.
class
);
}
/**
* 查询指定数据
* @param uuid
* @return
*/
public
Response
<
SimFileHistoryDTO
>
getByUuid
(
String
uuid
)
{
Response
response
=
restTemplateRnrMg
.
getForObject
(
UserRnrMgClientConstant
.
USER_RNR_MG_URL
+
"/simFileHistory/getByUuid?uuid="
+
uuid
,
Response
.
class
);
return
Response
.
createSuccess
(
JSON
.
parseObject
(
JSONObject
.
toJSONString
(
response
.
getData
()),
SimFileHistoryDTO
.
class
));
}
/**
* 分页查询历史数据
* @param bean
* @return
*/
public
Response
<
PageResult
<
SimFileHistoryDTO
>>
queryByPage
(
SimFileHistoryQueryDTO
bean
)
{
return
RnrMgRestTemplateUtils
.
postForResponsePageResult
(
restTemplateRnrMg
,
UserRnrMgClientConstant
.
USER_RNR_MG_URL
+
"/simFileHistory/queryByPage"
,
bean
,
SimFileHistoryDTO
.
class
);
}
}
local-rnr-mg-remote/src/main/java/com/cusc/nirvana/user/rnr/mg/constants/UserRnrMgClientConstant.java
0 → 100644
View file @
b2eded42
package
com.cusc.nirvana.user.rnr.mg.constants
;
/**
* Description: redis相关常量类
* <br />
* CreateDate 2021-11-03 20:36
*
* @author yuyi
**/
public
class
UserRnrMgClientConstant
{
/**
* 实名业务 服务的url
**/
public
static
final
String
USER_RNR_MG_URL
=
"http://local-rnr-mg"
;
}
local-rnr-mg-remote/src/main/java/com/cusc/nirvana/user/rnr/mg/util/RestUtils.java
0 → 100644
View file @
b2eded42
package
com.cusc.nirvana.user.rnr.mg.util
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.TypeReference
;
import
com.alibaba.fastjson.parser.Feature
;
import
com.cusc.nirvana.common.result.PageResult
;
import
com.cusc.nirvana.common.result.Response
;
import
org.springframework.http.ResponseEntity
;
import
org.springframework.web.client.RestTemplate
;
import
java.lang.reflect.Type
;
import
java.util.List
;
/**
* @author jiamj
* @date 2022/3/9
*/
public
class
RestUtils
{
public
static
<
T
>
Response
<
T
>
rest
(
RestTemplate
restTemplate
,
String
url
,
Object
request
,
Class
<?>
responseType
)
{
ResponseEntity
<
String
>
entity
=
restTemplate
.
postForEntity
(
url
,
request
,
String
.
class
);
return
JSON
.
parseObject
(
entity
.
getBody
(),
(
new
TypeReference
<
Response
<
T
>>(
new
Type
[]{
responseType
})
{
}).
getType
(),
new
Feature
[
0
]);
}
public
static
<
T
>
Response
<
PageResult
<
T
>>
restPageResult
(
RestTemplate
restTemplate
,
String
url
,
Object
request
,
Class
<?>
responseType
)
{
ResponseEntity
<
String
>
entity
=
restTemplate
.
postForEntity
(
url
,
request
,
String
.
class
);
return
JSON
.
parseObject
(
entity
.
getBody
(),
(
new
TypeReference
<
Response
<
PageResult
<
T
>>>(
new
Type
[]{
responseType
})
{
}).
getType
(),
new
Feature
[
0
]);
}
public
static
<
T
>
Response
<
List
<
T
>>
restList
(
RestTemplate
restTemplate
,
String
url
,
Object
request
,
Class
<?>
responseType
)
{
ResponseEntity
<
String
>
entity
=
restTemplate
.
postForEntity
(
url
,
request
,
String
.
class
);
return
JSON
.
parseObject
(
entity
.
getBody
(),
(
new
TypeReference
<
Response
<
List
<
T
>>>(
new
Type
[]{
responseType
})
{
}).
getType
(),
new
Feature
[
0
]);
}
}
local-rnr-mg-server/pom.xml
0 → 100644
View file @
b2eded42
<?xml version="1.0" encoding="UTF-8"?>
<project
xmlns=
"http://maven.apache.org/POM/4.0.0"
xmlns:xsi=
"http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation=
"http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
>
<parent>
<artifactId>
local-rnr-mg
</artifactId>
<groupId>
com.cusc.nirvana
</groupId>
<version>
1.0-SNAPSHOT
</version>
</parent>
<modelVersion>
4.0.0
</modelVersion>
<artifactId>
local-rnr-mg-server
</artifactId>
<properties>
<maven.compiler.source>
8
</maven.compiler.source>
<maven.compiler.target>
8
</maven.compiler.target>
<mysql-connector-j.version>
5.1.49
</mysql-connector-j.version>
<druid.version>
1.1.24
</druid.version>
<pagehelper.version>
5.1.11
</pagehelper.version>
<jsqlparser.version>
3.2
</jsqlparser.version>
<mybatis.version>
3.5.4
</mybatis.version>
<mybatis-plus.version>
3.3.2
</mybatis-plus.version>
<mapstruct.version>
1.4.2.Final
</mapstruct.version>
<skipTests>
true
</skipTests>
</properties>
<dependencies>
<dependency>
<groupId>
com.cusc.nirvana
</groupId>
<artifactId>
cusc-rds
</artifactId>
</dependency>
<dependency>
<groupId>
io.springfox
</groupId>
<artifactId>
springfox-swagger2
</artifactId>
<exclusions>
<exclusion>
<groupId>
org.mapstruct
</groupId>
<artifactId>
mapstruct
</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>
com.cusc.nirvana
</groupId>
<artifactId>
local-rnr-mg-dto
</artifactId>
<version>
${project.version}
</version>
</dependency>
<dependency>
<groupId>
com.cusc.nirvana
</groupId>
<artifactId>
local-rnr-user-remote
</artifactId>
<version>
1.0-SNAPSHOT
</version>
</dependency>
<dependency>
<groupId>
com.cusc.nirvana
</groupId>
<artifactId>
user-config-common
</artifactId>
<version>
1.2-SNAPSHOT
</version>
</dependency>
<dependency>
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot-starter-test
</artifactId>
<scope>
test
</scope>
</dependency>
<dependency>
<groupId>
org.mockito
</groupId>
<artifactId>
mockito-core
</artifactId>
<version>
4.0.0
</version>
<scope>
test
</scope>
</dependency>
<!-- mapstruct-->
<dependency>
<groupId>
org.mapstruct
</groupId>
<artifactId>
mapstruct
</artifactId>
<version>
${mapstruct.version}
</version>
</dependency>
<!-- AOP -->
<dependency>
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot-starter-aop
</artifactId>
</dependency>
<!-- redis依赖 -->
<dependency>
<groupId>
com.cusc.component
</groupId>
<artifactId>
cache-spring
</artifactId>
<version>
1.0.4-RELEASE
</version>
</dependency>
<dependency>
<groupId>
com.cusc.component
</groupId>
<artifactId>
cache-annotation
</artifactId>
<version>
1.0.4-RELEASE
</version>
</dependency>
<!-- apache 文件处理 -->
<dependency>
<groupId>
commons-fileupload
</groupId>
<artifactId>
commons-fileupload
</artifactId>
<version>
1.4
</version>
</dependency>
<!-- Google开源的优秀图片处理的第三方Java类库 -->
<dependency>
<groupId>
net.coobird
</groupId>
<artifactId>
thumbnailator
</artifactId>
<version>
0.4.17
</version>
</dependency>
<dependency>
<groupId>
cn.hutool
</groupId>
<artifactId>
hutool-all
</artifactId>
<version>
5.4.5
</version>
</dependency>
<dependency>
<groupId>
org.bouncycastle
</groupId>
<artifactId>
bcprov-jdk15to18
</artifactId>
<version>
1.66
</version>
</dependency>
<dependency>
<groupId>
com.squareup.okhttp3
</groupId>
<artifactId>
okhttp
</artifactId>
<version>
3.12.0
</version>
</dependency>
<!-- kafka依赖 -->
<dependency>
<groupId>
org.springframework.kafka
</groupId>
<artifactId>
spring-kafka
</artifactId>
</dependency>
<dependency>
<groupId>
com.aliyun.oss
</groupId>
<artifactId>
aliyun-sdk-oss
</artifactId>
<version>
3.10.2
</version>
</dependency>
<dependency>
<groupId>
commons-io
</groupId>
<artifactId>
commons-io
</artifactId>
<version>
2.4
</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot-maven-plugin
</artifactId>
</plugin>
<plugin>
<groupId>
org.apache.maven.plugins
</groupId>
<artifactId>
maven-resources-plugin
</artifactId>
</plugin>
<plugin>
<groupId>
org.apache.maven.plugins
</groupId>
<artifactId>
maven-compiler-plugin
</artifactId>
<configuration>
<source>
1.8
</source>
<target>
1.8
</target>
<annotationProcessorPaths>
<path>
<groupId>
org.projectlombok
</groupId>
<artifactId>
lombok
</artifactId>
<version>
${lombok.version}
</version>
</path>
<path>
<groupId>
org.mapstruct
</groupId>
<artifactId>
mapstruct-processor
</artifactId>
<version>
${mapstruct.version}
</version>
</path>
</annotationProcessorPaths>
</configuration>
</plugin>
</plugins>
<resources>
<resource>
<directory>
src/main/java
</directory>
<includes>
<include>
**/*.xml
</include>
</includes>
<filtering>
false
</filtering>
</resource>
<resource>
<directory>
src/main/resources/
</directory>
<includes>
<include>
**/*.properties
</include>
<include>
**/*.yml
</include>
<include>
**/*.yaml
</include>
<include>
**/*.xml
</include>
<include>
**/*.factories
</include>
</includes>
<filtering>
false
</filtering>
</resource>
</resources>
</build>
</project>
local-rnr-mg-server/src/main/java/com/cusc/nirvana/user/rnr/common/cloud/CloudConstant.java
0 → 100644
View file @
b2eded42
package
com.cusc.nirvana.user.rnr.common.cloud
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.cloud.context.config.annotation.RefreshScope
;
import
org.springframework.stereotype.Component
;
@RefreshScope
@Component
public
class
CloudConstant
{
public
static
String
ORGID
=
"orgId"
;
private
String
HOST
;
private
String
VERSION
;
private
String
APPID
;
private
String
APPSCRET
;
private
String
ENCRYPT_KEY
;
private
String
DECRYPT_KEY
;
public
String
getAPPID
()
{
return
APPID
;
}
@Value
(
"${rnr.cloud.appid}"
)
public
void
setAPPID
(
String
APPID
)
{
this
.
APPID
=
APPID
;
}
public
String
getAPPSCRET
()
{
return
APPSCRET
;
}
@Value
(
"${rnr.cloud.appsecret}"
)
public
void
setAPPSCRET
(
String
APPSCRET
)
{
this
.
APPSCRET
=
APPSCRET
;
}
public
String
getHOST
()
{
return
HOST
;
}
@Value
(
"${rnr.cloud.host}"
)
public
void
setHOST
(
String
HOST
)
{
this
.
HOST
=
HOST
;
}
public
String
getVERSION
()
{
return
VERSION
;
}
@Value
(
"${rnr.cloud.version:1.0.0}"
)
public
void
setVERSION
(
String
VERSION
)
{
this
.
VERSION
=
VERSION
;
}
@Value
(
"${rnr.cloud.encrypt:xxxxxx}"
)
public
void
setENCRYPT_KEY
(
String
ENCRYPT_KEY
)
{
this
.
ENCRYPT_KEY
=
ENCRYPT_KEY
;
}
@Value
(
"${rnr.cloud.decrypt:xxxxxx}"
)
public
void
setDECRYPT_KEY
(
String
DECRYPT_KEY
)
{
this
.
DECRYPT_KEY
=
DECRYPT_KEY
;
}
public
String
getENCRYPT_KEY
()
{
return
ENCRYPT_KEY
;
}
public
String
getDECRYPT_KEY
()
{
return
DECRYPT_KEY
;
}
}
local-rnr-mg-server/src/main/java/com/cusc/nirvana/user/rnr/common/cloud/CloudMethod.java
0 → 100644
View file @
b2eded42
package
com.cusc.nirvana.user.rnr.common.cloud
;
public
class
CloudMethod
{
//5.1标签查询
public
static
String
QUERY_TAG_LIST
=
"/user-rnr-openapi/vehicleCard/manage/queryTagList"
;
//5.2批量卡导入
public
static
String
SIM_IMPORT
=
"/user-rnr-openapi/vehicleCard/manage/simImport"
;
//5.3车卡绑定接口-批量
public
static
String
SIM_BIND
=
"/user-rnr-openapi/vehicleCard/manage/bind"
;
//5.4车卡查询接口
public
static
String
GET_ICCIDS_BY_VIN
=
"/user-rnr-openapi/vehicleCard/manage/getIccidsByVin"
;
//5.5判断车卡是否绑定接口
public
static
String
VERIFY_VIN_CARD
=
"/user-rnr-openapi/vehicleCard/manage/verifyVinCard"
;
//6.文件上传
public
static
String
FILE_UPLOAD
=
"/user-rnr-openapi/rnAuth/attachment/upload"
;
//7.1自然人实名-新车接口
public
static
String
NEW_CAR
=
"/user-rnr-openapi/rnAuth/personal/newCar"
;
//7.2自然人实名-二手车接口
public
static
String
USED_CAR
=
"/user-rnr-openapi/rnAuth/personal/usedCar"
;
//7.3自然人实名-一手车解绑
public
static
String
UNBIND_FIRSTHAND_CAR
=
"/user-rnr-openapi/rnAuth/unbind/firstHandCar"
;
//7.4自然人实名-二手车解绑
public
static
String
UNBIND_SECONDHAND_CAR
=
"/user-rnr-openapi/rnAuth/unbind/secondHandCar"
;
//8.1企业实名-新车
public
static
String
COMPANY_NEWCAR
=
"/user-rnr-openapi/rnAuth/enterprise/newCar"
;
//8.2车企实名-解绑
public
static
String
COMPANY_UNBIND
=
"/user-rnr-openapi/rnAuth/vehicleEnterprise/unbind"
;
//8.3企业责任人变更
public
static
String
COMPANY_CHANGEOWNER
=
"/user-rnr-openapi/rnAuth/enterprise/changeOwner"
;
//9.1设备更换
public
static
String
TBOX_CHANGE
=
"/user-rnr-openapi/rnAuth/tBox/change"
;
//11.1实名信息查询接口
public
static
String
REALMSG_SEARCH
=
"/user-rnr-openapi/rnAuth/search/getRnAuthInfoByVin"
;
// 11.2实名状态查询接口
// public static String A = "";
// 11.3实名状态查询接口-批量
// public static String A = "";
//12.1车联网一证十卡接口
public
static
String
IOVCARD_NUM
=
"/user-rnr-openapi/base/iovCardNum"
;
//12.2物联网一证十卡接口
public
static
String
IOTCARD_NUM
=
"/user-rnr-openapi/base/iotCardNum"
;
//12.3活体认证
public
static
String
LIVENESS
=
"/user-rnr-openapi/base/liveness"
;
//12.4活体验证码
public
static
String
LIVENESS_CODE
=
"/user-rnr-openapi/base/livenessCode"
;
//12.5身份证OCR
public
static
String
OCR_NP
=
"/user-rnr-openapi/base/ocrNp"
;
//12.6人像比对
public
static
String
ID_COMPARE
=
"/user-rnr-openapi/base/idCompare"
;
//12.7人脸比对
public
static
String
FACE_COMPARE
=
"/user-rnr-openapi/base/faceCompare"
;
//12.8身份信息核查
public
static
String
CERT_CHECK
=
"/user-rnr-openapi/base/certCheck"
;
//12.9后端活体检查
public
static
String
FMP
=
"/user-rnr-openapi/base/fmp"
;
//13.1个人实名信息同步接口
public
static
String
SYNC_PERSONAL
=
"/user-rnr-openapi/rnAuth/sync/personal"
;
//13.2企业实名历史数据同步
public
static
String
ASYNC_ENTERPRISE
=
"/user-rnr-openapi/rnAuth/sync/enterprise"
;
//013 本地系统将实名结果回传给智网
public
static
String
NOTIFY_RESULT
=
"/user-rnr-openapi/rnAuth/notify/result"
;
//013 h5接口
public
static
String
H5LIVELOGIN_URL
=
"/user-rnr-openapi/base/getH5LiveLoginUrl"
;
//----------------------------------------openapi未提供接口
//一车多卡绑定接口
public
static
String
ONE_CAR_MORE_CARDS
=
"/user-rnr-openapi/"
;
}
local-rnr-mg-server/src/main/java/com/cusc/nirvana/user/rnr/common/cloud/CloudService.java
0 → 100644
View file @
b2eded42
package
com.cusc.nirvana.user.rnr.common.cloud
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.TypeReference
;
import
com.cusc.nirvana.common.encrypt.sign.HMAC
;
import
com.cusc.nirvana.common.result.Response
;
import
com.cusc.nirvana.user.util.CuscStringUtils
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.http.*
;
import
org.springframework.stereotype.Service
;
import
org.springframework.web.client.RestTemplate
;
import
javax.annotation.Resource
;
import
java.util.List
;
@Service
@Slf4j
public
class
CloudService
<
T
>
{
@Resource
private
RestTemplate
thirdPartyRnr
;
@Autowired
private
CloudConstant
cloudConstant
;
public
<
T
>
Response
<
T
>
postForResponse
(
String
url
,
Object
rq
,
Class
<
T
>
rsClazz
)
{
String
rqUrl
=
cloudConstant
.
getHOST
()
+
url
;
try
{
log
.
info
(
"openapi key : {}"
,
cloudConstant
.
getENCRYPT_KEY
());
String
encryptrq
=
Sm4DemoUtils
.
encryptEcbPaddingHexString
(
cloudConstant
.
getENCRYPT_KEY
(),
JSON
.
toJSONString
(
rq
));
HttpHeaders
headers
=
headers
();
HttpEntity
httpEntity
=
new
HttpEntity
(
encryptrq
,
headers
);
log
.
info
(
"send 2 cloud begin , url : {}, rq : {}, header : {}, encryptrq : {}"
,
rqUrl
,
JSON
.
toJSONString
(
rq
),
headers
.
toString
(),
encryptrq
);
long
startTime
=
System
.
currentTimeMillis
();
ResponseEntity
<
String
>
entity
=
thirdPartyRnr
.
exchange
(
rqUrl
,
HttpMethod
.
POST
,
httpEntity
,
String
.
class
);
long
endTime
=
System
.
currentTimeMillis
();
if
(
entity
!=
null
&&
entity
.
getStatusCodeValue
()
==
200
)
{
log
.
info
(
"send 2 cloud success code 200, url : {}, rq : {}, body : {}, times : {}"
,
rqUrl
,
JSON
.
toJSONString
(
rq
),
entity
.
getBody
(),
endTime
-
startTime
);
Response
<
String
>
result
=
JSON
.
parseObject
(
entity
.
getBody
(),
new
TypeReference
<
Response
<
String
>>(
String
.
class
)
{
}.
getType
());
String
data
=
Sm4DemoUtils
.
decryptEcbPaddingString
(
cloudConstant
.
getDECRYPT_KEY
(),
result
.
getData
());
T
t
=
JSON
.
parseObject
(
data
,
rsClazz
);
Response
<
T
>
finalresult
=
new
Response
<
T
>(
result
.
getMsg
(),
result
.
getCode
(),
t
,
result
.
getSuccess
(),
result
.
getException
());
finalresult
.
setAttachment
(
result
.
getAttachment
());
return
finalresult
;
}
else
{
log
.
info
(
"send 2 cloud fail, url : {}, rq : {}, times : {}, entity : {}"
,
rqUrl
,
JSON
.
toJSONString
(
rq
),
endTime
-
startTime
,
null
==
entity
?
null
:
JSON
.
toJSONString
(
entity
));
return
Response
.
createError
(
"网络异常"
);
}
}
catch
(
Exception
e
)
{
log
.
error
(
"send 2 cloud error, url : {}, rq : {}, e : {}"
,
rqUrl
,
JSON
.
toJSONString
(
rq
),
e
);
return
Response
.
createError
(
"系统异常"
);
}
}
public
<
T
>
Response
<
List
<
T
>>
postForResponseList
(
String
url
,
Object
rq
,
Class
<
T
>
rsClazz
)
{
String
rqUrl
=
cloudConstant
.
getHOST
()
+
url
;
try
{
HttpEntity
httpEntity
=
new
HttpEntity
(
Sm4DemoUtils
.
encryptEcbPaddingHexString
(
cloudConstant
.
getENCRYPT_KEY
(),
JSON
.
toJSONString
(
rq
)),
headers
());
log
.
info
(
"send 2 cloud begin , url : {}, rq : {}"
,
rqUrl
,
JSON
.
toJSONString
(
rq
));
long
startTime
=
System
.
currentTimeMillis
();
ResponseEntity
<
String
>
entity
=
thirdPartyRnr
.
exchange
(
rqUrl
,
HttpMethod
.
POST
,
httpEntity
,
String
.
class
);
long
endTime
=
System
.
currentTimeMillis
();
if
(
entity
!=
null
&&
entity
.
getStatusCodeValue
()
==
200
)
{
log
.
info
(
"send 2 cloud success code 200, url : {}, rq : {}, body : {}, times : {}"
,
rqUrl
,
JSON
.
toJSONString
(
rq
),
entity
.
getBody
(),
endTime
-
startTime
);
Response
<
String
>
result
=
JSON
.
parseObject
(
entity
.
getBody
(),
new
TypeReference
<
Response
<
String
>>(
String
.
class
)
{
}.
getType
());
String
data
=
Sm4DemoUtils
.
decryptEcbPaddingString
(
cloudConstant
.
getDECRYPT_KEY
(),
result
.
getData
());
List
<
T
>
t
=
JSON
.
parseArray
(
data
,
rsClazz
);
Response
<
List
<
T
>>
finalresult
=
new
Response
<
List
<
T
>>(
result
.
getMsg
(),
result
.
getCode
(),
t
,
result
.
getSuccess
(),
result
.
getException
());
finalresult
.
setAttachment
(
result
.
getAttachment
());
return
finalresult
;
}
else
{
log
.
info
(
"send 2 cloud fail, url : {}, rq : {}, times : {}, entity : {}"
,
rqUrl
,
JSON
.
toJSONString
(
rq
),
endTime
-
startTime
,
null
==
entity
?
null
:
JSON
.
toJSONString
(
entity
));
return
Response
.
createError
(
"网络异常"
);
}
}
catch
(
Exception
e
)
{
log
.
error
(
"send 2 cloud error, url : {}, rq : {}, e : {}"
,
rqUrl
,
JSON
.
toJSONString
(
rq
),
e
);
return
Response
.
createError
(
"系统异常"
);
}
}
/**
* 生成请求头
*
* @return
*/
public
HttpHeaders
headers
()
{
HttpHeaders
httpHeaders
=
new
HttpHeaders
();
httpHeaders
.
add
(
SignConstants
.
APP_ID
,
cloudConstant
.
getAPPID
());
httpHeaders
.
add
(
SignConstants
.
NONCE_STR
,
CuscStringUtils
.
generateUuid
());
httpHeaders
.
add
(
SignConstants
.
TIMESTAMP
,
String
.
valueOf
(
System
.
currentTimeMillis
()));
httpHeaders
.
add
(
SignConstants
.
VERSION
,
cloudConstant
.
getVERSION
());
httpHeaders
.
setContentType
(
MediaType
.
parseMediaType
(
"application/json; charset=UTF-8"
));
StringBuilder
sb
=
new
StringBuilder
();
sb
.
append
(
SignConstants
.
APP_ID
+
cloudConstant
.
getAPPID
());
sb
.
append
(
SignConstants
.
NONCE_STR
+
httpHeaders
.
get
(
SignConstants
.
NONCE_STR
).
get
(
0
));
sb
.
append
(
SignConstants
.
TIMESTAMP
+
httpHeaders
.
get
(
SignConstants
.
TIMESTAMP
).
get
(
0
));
sb
.
append
(
SignConstants
.
VERSION
+
httpHeaders
.
get
(
SignConstants
.
VERSION
).
get
(
0
));
String
scret
=
HMAC
.
sign
(
sb
.
toString
(),
cloudConstant
.
getAPPSCRET
(),
HMAC
.
Type
.
HmacSHA256
);
httpHeaders
.
add
(
SignConstants
.
SIGN
,
scret
);
return
httpHeaders
;
}
}
local-rnr-mg-server/src/main/java/com/cusc/nirvana/user/rnr/common/cloud/SignConstants.java
0 → 100644
View file @
b2eded42
package
com.cusc.nirvana.user.rnr.common.cloud
;
/**
* 签名静态属性
*/
public
class
SignConstants
{
/**应用ID的key名称*/
public
final
static
String
APP_ID
=
"APPID"
;
/**随机数key*/
public
final
static
String
NONCE_STR
=
"NONCE_STR"
;
/**时间戳key*/
public
final
static
String
TIMESTAMP
=
"TIMESTAMP"
;
/**版本key*/
public
final
static
String
VERSION
=
"VERSION"
;
/**签名key*/
public
final
static
String
SIGN
=
"SIGN"
;
}
local-rnr-mg-server/src/main/java/com/cusc/nirvana/user/rnr/common/cloud/Sm4DemoUtils.java
0 → 100644
View file @
b2eded42
package
com.cusc.nirvana.user.rnr.common.cloud
;
import
org.apache.commons.lang3.StringUtils
;
import
org.bouncycastle.jce.provider.BouncyCastleProvider
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
javax.crypto.BadPaddingException
;
import
javax.crypto.Cipher
;
import
javax.crypto.IllegalBlockSizeException
;
import
javax.crypto.NoSuchPaddingException
;
import
javax.crypto.spec.SecretKeySpec
;
import
java.io.IOException
;
import
java.nio.charset.StandardCharsets
;
import
java.security.*
;
import
java.util.Base64
;
/**
* Description: 国密SM4
* <br />
* BC库从1.59版本开始已经基本实现了国密算法(SM2、SM3、SM4)
**/
public
class
Sm4DemoUtils
{
private
static
final
Logger
LOGGER
=
LoggerFactory
.
getLogger
(
Sm4DemoUtils
.
class
);
//算法名称
public
static
final
String
ALGORITHM_NAME
=
"SM4"
;
//ECB P5填充
public
static
final
String
ALGORITHM_NAME_ECB_PADDING
=
"SM4/ECB/PKCS5Padding"
;
static
{
Security
.
addProvider
(
new
BouncyCastleProvider
());
}
private
Sm4DemoUtils
()
{
}
/**
* ecb加密默认 hexString true
**/
public
static
String
encryptEcbPaddingHexString
(
String
key
,
String
data
)
{
return
encryptEcbPaddingHex
(
key
,
data
,
true
,
null
);
}
/**
* ecb解密默认 hexString true
**/
public
static
String
decryptEcbPaddingString
(
String
key
,
String
data
)
{
return
decryptEcbPaddingHex
(
key
,
data
,
true
,
null
);
}
/**
* Description: ecb解密,可以指定混淆
* <br />
* CreateDate 2021-11-17 15:53:34
*
* @author yuyi
**/
public
static
String
decryptEcbPaddingHex
(
String
key
,
String
data
,
boolean
hexString
,
String
charset
)
{
if
(
StringUtils
.
isEmpty
(
data
))
{
return
null
;
}
try
{
byte
[]
keyBytes
;
if
(
hexString
)
{
keyBytes
=
hexStringToBytes
(
key
);
}
else
{
keyBytes
=
key
.
getBytes
();
}
byte
[]
decrypted
=
decryptEcbPaddingByte
(
keyBytes
,
base64Decoder
(
data
));
if
(
StringUtils
.
isNotEmpty
(
charset
))
{
return
new
String
(
decrypted
,
charset
);
}
return
new
String
(
decrypted
,
StandardCharsets
.
UTF_8
);
}
catch
(
Exception
e
)
{
LOGGER
.
error
(
"Sm4Util.decryptEcbPaddingHex error ! "
,
e
);
return
null
;
}
}
/**
* ECB P5填充解密
*
* @param key 密钥
* @param cipherText 加密后的数据
* @return byte
* @throws IllegalBlockSizeException
* @throws BadPaddingException
* @throws InvalidKeyException
* @throws NoSuchAlgorithmException
* @throws NoSuchProviderException
* @throws NoSuchPaddingException
*/
private
static
byte
[]
decryptEcbPaddingByte
(
byte
[]
key
,
byte
[]
cipherText
)
throws
IllegalBlockSizeException
,
BadPaddingException
,
InvalidKeyException
,
NoSuchAlgorithmException
,
NoSuchProviderException
,
NoSuchPaddingException
{
Cipher
cipher
=
generateEcbCipher
(
ALGORITHM_NAME_ECB_PADDING
,
Cipher
.
DECRYPT_MODE
,
key
);
return
cipher
.
doFinal
(
cipherText
);
}
/**
* Description: ecb加密,可以指定混淆
* <br />
* CreateDate 2021-11-17 15:53:34
*
* @author yuyi
**/
private
static
String
encryptEcbPaddingHex
(
String
key
,
String
data
,
boolean
hexString
,
String
charset
)
{
if
(
StringUtils
.
isEmpty
(
data
))
{
return
null
;
}
try
{
byte
[]
keyBytes
;
if
(
hexString
)
{
keyBytes
=
hexStringToBytes
(
key
);
}
else
{
keyBytes
=
key
.
getBytes
();
}
byte
[]
dataBytes
;
if
(
StringUtils
.
isNotEmpty
(
charset
))
{
dataBytes
=
data
.
getBytes
(
charset
);
}
else
{
dataBytes
=
data
.
getBytes
(
StandardCharsets
.
UTF_8
);
}
byte
[]
encrypted
=
encryptEcbPaddingByte
(
keyBytes
,
dataBytes
);
return
base64Encoder
(
encrypted
);
}
catch
(
Exception
e
)
{
LOGGER
.
error
(
"Sm4Util.encryptEcbPaddingHex error ! "
,
e
);
return
null
;
}
}
/**
* base64编码
**/
private
static
String
base64Encoder
(
byte
[]
encrypted
)
{
return
Base64
.
getEncoder
().
encodeToString
(
encrypted
);
}
/**
* base64解码
**/
private
static
byte
[]
base64Decoder
(
String
encrypted
)
throws
IOException
{
return
Base64
.
getDecoder
().
decode
(
encrypted
);
}
/**
* ECB P5填充加密
*
* @param key 密钥
* @param data 明文数据
* @return byte
* @throws InvalidKeyException
* @throws NoSuchAlgorithmException
* @throws NoSuchProviderException
* @throws NoSuchPaddingException
* @throws IllegalBlockSizeException
* @throws BadPaddingException
*/
private
static
byte
[]
encryptEcbPaddingByte
(
byte
[]
key
,
byte
[]
data
)
throws
InvalidKeyException
,
NoSuchAlgorithmException
,
NoSuchProviderException
,
NoSuchPaddingException
,
IllegalBlockSizeException
,
BadPaddingException
{
Cipher
cipher
=
generateEcbCipher
(
ALGORITHM_NAME_ECB_PADDING
,
Cipher
.
ENCRYPT_MODE
,
key
);
return
cipher
.
doFinal
(
data
);
}
/**
* ECB P5填充加解密Cipher初始化
*
* @param algorithmName 算法名称
* @param mode 1 加密 2解密
* @param key 密钥
* @return Cipher
* @throws NoSuchAlgorithmException
* @throws NoSuchProviderException
* @throws NoSuchPaddingException
* @throws InvalidKeyException
*/
private
static
Cipher
generateEcbCipher
(
String
algorithmName
,
int
mode
,
byte
[]
key
)
throws
NoSuchAlgorithmException
,
NoSuchProviderException
,
NoSuchPaddingException
,
InvalidKeyException
{
Cipher
cipher
=
Cipher
.
getInstance
(
algorithmName
,
BouncyCastleProvider
.
PROVIDER_NAME
);
Key
sm4Key
=
new
SecretKeySpec
(
key
,
ALGORITHM_NAME
);
cipher
.
init
(
mode
,
sm4Key
);
return
cipher
;
}
/**
* Convert hex string to byte[]
*
* @param hexString
* the hex string
* @return byte[]
*/
public
static
byte
[]
hexStringToBytes
(
String
hexString
)
{
if
(
hexString
==
null
||
hexString
.
equals
(
""
))
{
return
null
;
}
hexString
=
hexString
.
toUpperCase
();
int
length
=
hexString
.
length
()
/
2
;
char
[]
hexChars
=
hexString
.
toCharArray
();
byte
[]
d
=
new
byte
[
length
];
for
(
int
i
=
0
;
i
<
length
;
i
++)
{
int
pos
=
i
*
2
;
d
[
i
]
=
(
byte
)
(
charToByte
(
hexChars
[
pos
])
<<
4
|
charToByte
(
hexChars
[
pos
+
1
]));
}
return
d
;
}
/**
* Convert char to byte
*
* @param c
* char
* @return byte
*/
public
static
byte
charToByte
(
char
c
)
{
return
(
byte
)
"0123456789ABCDEF"
.
indexOf
(
c
);
}
}
local-rnr-mg-server/src/main/java/com/cusc/nirvana/user/rnr/common/config/ExecutorConfig.java
0 → 100644
View file @
b2eded42
package
com.cusc.nirvana.user.rnr.common.config
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.context.annotation.Bean
;
import
org.springframework.context.annotation.Configuration
;
import
org.springframework.core.task.AsyncTaskExecutor
;
import
org.springframework.scheduling.annotation.EnableAsync
;
import
org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor
;
import
java.util.concurrent.Executor
;
import
java.util.concurrent.ThreadPoolExecutor
;
/**
* Description: 异步线程池配置
* <br />
* CreateDate 2021-12-01 17:25
*
* @author yuy336
**/
@Configuration
@EnableAsync
public
class
ExecutorConfig
{
private
final
static
Logger
LOGGER
=
LoggerFactory
.
getLogger
(
ExecutorConfig
.
class
);
/**
* Description: 日志异步入库
* <br />
* CreateDate 2021-12-01 17:27:11
*
* @author yuyi
**/
@Bean
(
"logToDBExecutor"
)
public
Executor
logToDBExecutor
()
{
LOGGER
.
info
(
"init logToDBExecutor"
);
ThreadPoolTaskExecutor
executor
=
new
ThreadPoolTaskExecutor
();
//配置核心线程数
executor
.
setCorePoolSize
(
2
);
//配置最大线程数
executor
.
setMaxPoolSize
(
10
);
//配置队列大小
executor
.
setQueueCapacity
(
100
);
//允许线程的空闲时间60秒:当超过了核心线程出之外的线程在空闲时间到达之后会被销毁
executor
.
setKeepAliveSeconds
(
60
);
//配置线程池中的线程的名称前缀
executor
.
setThreadNamePrefix
(
"data-to-redis"
);
//线程池的饱和策略 我这里设置的是 CallerRunsPolicy 也就是由用调用者所在的线程来执行任务 共有四种
//AbortPolicy:直接抛出异常,这是默认策略;
//CallerRunsPolicy:用调用者所在的线程来执行任务;
//DiscardOldestPolicy:丢弃阻塞队列中靠最前的任务,并执行当前任务;
//DiscardPolicy:直接丢弃任务;
executor
.
setRejectedExecutionHandler
(
new
ThreadPoolExecutor
.
CallerRunsPolicy
());
//线程池的优雅关闭,表明等待所有线程执行完
executor
.
setWaitForTasksToCompleteOnShutdown
(
true
);
//执行初始化
executor
.
initialize
();
return
executor
;
}
/**
* Description: 实名认证方式执行
* <br />
* CreateDate 2021-12-01 17:27:11
*
* @author yuyi
**/
@Bean
(
"rnrAuthWayExecutor"
)
public
AsyncTaskExecutor
rnrAuthWayExecutor
()
{
LOGGER
.
info
(
"init rnrAuthWayExecutor"
);
ThreadPoolTaskExecutor
executor
=
new
ThreadPoolTaskExecutor
();
//配置核心线程数
executor
.
setCorePoolSize
(
2
);
//配置最大线程数
executor
.
setMaxPoolSize
(
10
);
//配置队列大小
executor
.
setQueueCapacity
(
100
);
//允许线程的空闲时间60秒:当超过了核心线程出之外的线程在空闲时间到达之后会被销毁
executor
.
setKeepAliveSeconds
(
60
);
//配置线程池中的线程的名称前缀
executor
.
setThreadNamePrefix
(
"rnr-mq"
);
//线程池的饱和策略 我这里设置的是 CallerRunsPolicy 也就是由用调用者所在的线程来执行任务 共有四种
//AbortPolicy:直接抛出异常,这是默认策略;
//CallerRunsPolicy:用调用者所在的线程来执行任务;
//DiscardOldestPolicy:丢弃阻塞队列中靠最前的任务,并执行当前任务;
//DiscardPolicy:直接丢弃任务;
executor
.
setRejectedExecutionHandler
(
new
ThreadPoolExecutor
.
DiscardPolicy
());
//线程池的优雅关闭,表明等待所有线程执行完
executor
.
setWaitForTasksToCompleteOnShutdown
(
true
);
//执行初始化
executor
.
initialize
();
return
executor
;
}
/**
* Description: 实名认证方式执行
* <br />
* CreateDate 2021-12-01 17:27:11
*
* @author yuyi
**/
@Bean
(
"mqExecutor"
)
public
AsyncTaskExecutor
mqExecutor
()
{
LOGGER
.
info
(
"init mqExecutor"
);
ThreadPoolTaskExecutor
executor
=
new
ThreadPoolTaskExecutor
();
//配置核心线程数
executor
.
setCorePoolSize
(
50
);
//配置最大线程数
executor
.
setMaxPoolSize
(
200
);
//配置队列大小
executor
.
setQueueCapacity
(
100
);
//允许线程的空闲时间60秒:当超过了核心线程出之外的线程在空闲时间到达之后会被销毁
executor
.
setKeepAliveSeconds
(
60
);
//配置线程池中的线程的名称前缀
executor
.
setThreadNamePrefix
(
"rnr-auth-way"
);
//线程池的饱和策略 我这里设置的是 CallerRunsPolicy 也就是由用调用者所在的线程来执行任务 共有四种
//AbortPolicy:直接抛出异常,这是默认策略;
//CallerRunsPolicy:用调用者所在的线程来执行任务;
//DiscardOldestPolicy:丢弃阻塞队列中靠最前的任务,并执行当前任务;
//DiscardPolicy:直接丢弃任务;
executor
.
setRejectedExecutionHandler
(
new
ThreadPoolExecutor
.
CallerRunsPolicy
());
//线程池的优雅关闭,表明等待所有线程执行完
executor
.
setWaitForTasksToCompleteOnShutdown
(
true
);
//执行初始化
executor
.
initialize
();
return
executor
;
}
@Bean
(
"updateVinExecutor"
)
public
AsyncTaskExecutor
updateVinExecutor
()
{
LOGGER
.
info
(
"init updateVinExecutor"
);
ThreadPoolTaskExecutor
executor
=
new
ThreadPoolTaskExecutor
();
//配置核心线程数
executor
.
setCorePoolSize
(
2
);
//配置最大线程数
executor
.
setMaxPoolSize
(
10
);
//配置队列大小
executor
.
setQueueCapacity
(
100
);
//允许线程的空闲时间60秒:当超过了核心线程出之外的线程在空闲时间到达之后会被销毁
executor
.
setKeepAliveSeconds
(
60
);
//配置线程池中的线程的名称前缀
executor
.
setThreadNamePrefix
(
"local-rnr-update"
);
//线程池的饱和策略 我这里设置的是 CallerRunsPolicy 也就是由用调用者所在的线程来执行任务 共有四种
//AbortPolicy:直接抛出异常,这是默认策略;
//CallerRunsPolicy:用调用者所在的线程来执行任务;
//DiscardOldestPolicy:丢弃阻塞队列中靠最前的任务,并执行当前任务;
//DiscardPolicy:直接丢弃任务;
executor
.
setRejectedExecutionHandler
(
new
ThreadPoolExecutor
.
DiscardPolicy
());
//线程池的优雅关闭,表明等待所有线程执行完
executor
.
setWaitForTasksToCompleteOnShutdown
(
true
);
//执行初始化
executor
.
initialize
();
return
executor
;
}
@Bean
(
"asyncOrderExecutor"
)
public
AsyncTaskExecutor
asyncOrderExecutor
()
{
LOGGER
.
info
(
"init asyncOrderExecutor"
);
ThreadPoolTaskExecutor
executor
=
new
ThreadPoolTaskExecutor
();
//配置核心线程数
executor
.
setCorePoolSize
(
10
);
//配置最大线程数
executor
.
setMaxPoolSize
(
10
);
//配置队列大小
executor
.
setQueueCapacity
(
100
);
//允许线程的空闲时间60秒:当超过了核心线程出之外的线程在空闲时间到达之后会被销毁
executor
.
setKeepAliveSeconds
(
60
);
//配置线程池中的线程的名称前缀
executor
.
setThreadNamePrefix
(
"async_order_executor"
);
//线程池的饱和策略 我这里设置的是 CallerRunsPolicy 也就是由用调用者所在的线程来执行任务 共有四种
//AbortPolicy:直接抛出异常,这是默认策略;
//CallerRunsPolicy:用调用者所在的线程来执行任务;
//DiscardOldestPolicy:丢弃阻塞队列中靠最前的任务,并执行当前任务;
//DiscardPolicy:直接丢弃任务;
executor
.
setRejectedExecutionHandler
(
new
ThreadPoolExecutor
.
AbortPolicy
());
//线程池的优雅关闭,表明等待所有线程执行完
executor
.
setWaitForTasksToCompleteOnShutdown
(
true
);
//执行初始化
executor
.
initialize
();
return
executor
;
}
}
local-rnr-mg-server/src/main/java/com/cusc/nirvana/user/rnr/common/config/OssConfig.java
0 → 100644
View file @
b2eded42
/*
package com.cusc.nirvana.user.rnr.common.config;
import com.cusc.nirvana.user.rnr.mg.util.OSSUtil;
import lombok.Data;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.stereotype.Component;
*/
/**
* @author fyp
* @CreateTime: 2022/6/10
* @Description: OSS配置类
*//*
@Data
@Component
public class OssConfig {
@Value("${oss.endpoint}")
private String endpoint;
@Value("${oss.accessKeyId}")
private String accessKeyId;
@Value("${oss.accessKeySecret}")
private String accessKeySecret;
@Value("${oss.bucketName}")
private String bucketName;
@Value("${oss.prefix:/}")
private String prefix;
@Bean
public OSSUtil createOssClient() {
return new OSSUtil(endpoint, bucketName, accessKeyId, accessKeySecret,prefix);
}
}
*/
local-rnr-mg-server/src/main/java/com/cusc/nirvana/user/rnr/common/config/RestTemplateRnrConfig.java
0 → 100644
View file @
b2eded42
package
com.cusc.nirvana.user.rnr.common.config
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.http.client.HttpClient
;
import
org.apache.http.client.config.RequestConfig
;
import
org.apache.http.config.Registry
;
import
org.apache.http.config.RegistryBuilder
;
import
org.apache.http.conn.socket.ConnectionSocketFactory
;
import
org.apache.http.conn.socket.PlainConnectionSocketFactory
;
import
org.apache.http.conn.ssl.SSLConnectionSocketFactory
;
import
org.apache.http.impl.client.HttpClientBuilder
;
import
org.apache.http.impl.conn.PoolingHttpClientConnectionManager
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.cloud.client.loadbalancer.LoadBalanced
;
import
org.springframework.context.annotation.Bean
;
import
org.springframework.context.annotation.Configuration
;
import
org.springframework.http.client.ClientHttpRequestFactory
;
import
org.springframework.http.client.HttpComponentsClientHttpRequestFactory
;
import
org.springframework.web.client.RestTemplate
;
import
java.util.concurrent.TimeUnit
;
/**
* Description: 实名的RestTemplate对象
* <br />
* CreateDate 2021-10-27 18:52
*
* @author yuyi
**/
@Configuration
@Slf4j
public
class
RestTemplateRnrConfig
{
@Autowired
private
ThirdPartyHttpPoolConfig
httpPoolConstants
;
@Bean
(
name
=
"thirdPartyRnr"
)
public
RestTemplate
thirdPartyRnr
()
{
return
getRestTemplateRnr
();
}
@Bean
(
name
=
"restTemplate"
)
@LoadBalanced
public
RestTemplate
restTemplate
()
{
return
getRestTemplateRnr
();
}
public
RestTemplate
getRestTemplateRnr
()
{
return
new
RestTemplate
(
httpRequestFactoryRnr
());
}
private
ClientHttpRequestFactory
httpRequestFactoryRnr
()
{
return
new
HttpComponentsClientHttpRequestFactory
(
httpClientRnr
());
}
private
HttpClient
httpClientRnr
()
{
Registry
<
ConnectionSocketFactory
>
registry
=
RegistryBuilder
.<
ConnectionSocketFactory
>
create
()
.
register
(
"http"
,
PlainConnectionSocketFactory
.
getSocketFactory
())
.
register
(
"https"
,
SSLConnectionSocketFactory
.
getSocketFactory
())
.
build
();
PoolingHttpClientConnectionManager
connectionManager
=
new
PoolingHttpClientConnectionManager
(
registry
);
//设置整个连接池最大连接数
connectionManager
.
setMaxTotal
(
httpPoolConstants
.
getMaxTotal
());
//路由是对maxTotal的细分
connectionManager
.
setDefaultMaxPerRoute
(
httpPoolConstants
.
getDefaultMaxPerRoute
());
RequestConfig
requestConfig
=
RequestConfig
.
custom
()
.
setSocketTimeout
(
httpPoolConstants
.
getSocketTimeout
())
//返回数据的超时时间
.
setConnectTimeout
(
httpPoolConstants
.
getConnectTimeout
())
//连接上服务器的超时时间
.
setConnectionRequestTimeout
(
httpPoolConstants
.
getConnectionRequestTimeout
())
//从连接池中获取连接的超时时间
.
build
();
return
HttpClientBuilder
.
create
()
.
setDefaultRequestConfig
(
requestConfig
)
.
setConnectionManager
(
connectionManager
)
//设置后台线程剔除失效连接
.
evictExpiredConnections
().
evictIdleConnections
(
httpPoolConstants
.
getMaxIdleTime
(),
TimeUnit
.
SECONDS
)
.
build
();
}
}
local-rnr-mg-server/src/main/java/com/cusc/nirvana/user/rnr/common/config/ThirdPartyHttpPoolConfig.java
0 → 100644
View file @
b2eded42
package
com.cusc.nirvana.user.rnr.common.config
;
import
lombok.Data
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.stereotype.Component
;
/**
* Description: resttemplate的连接池配置
* <br />
* CreateDate 2022-05-18 15:00
*
* @author yuy336
**/
@Component
@Data
public
class
ThirdPartyHttpPoolConfig
{
/**
* 设置整个连接池最大连接数
*/
@Value
(
"${httpPool.thirdParty.maxTotal:200}"
)
private
Integer
maxTotal
;
/**
* 路由是对maxTotal的细分,针对一个url的最大并发数,每路由最大连接数,默认值是2
*/
@Value
(
"${httpPool.thirdParty.defaultMaxPerRoute:100}"
)
private
Integer
defaultMaxPerRoute
;
/**
* 服务器返回数据(response)的时间,超过该时间抛出read timeout
*/
@Value
(
"${httpPool.thirdParty.socketTimeout:60000}"
)
private
Integer
socketTimeout
;
/**
* 连接上服务器(握手成功)的时间,超出该时间抛出connect timeout
*/
@Value
(
"${httpPool.thirdParty.connectTimeout:1000}"
)
private
Integer
connectTimeout
;
/**
* 从连接池中获取连接的超时时间,超过该时间未拿到可用连接,会抛出org.apache.http.conn.ConnectionPoolTimeoutException: Timeout waiting for connection from pool
*/
@Value
(
"${httpPool.thirdParty.connectionRequestTimeout:500}"
)
private
Integer
connectionRequestTimeout
;
/**
* 线程最大空闲时间
*/
@Value
(
"${httpPool.thirdParty.maxIdleTime:10}"
)
private
Integer
maxIdleTime
;
}
Prev
1
…
3
4
5
6
7
8
9
10
11
…
22
Next
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