Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Q
qa-platform
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
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
QA
qa-platform
Commits
1bc533f5
Commit
1bc533f5
authored
May 27, 2021
by
黎博
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
优化vcc授信回调接口以及新增分配资方接口
parent
8c88e281
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
89 additions
and
7 deletions
+89
-7
pom.xml
pom.xml
+6
-0
XyqbGenController.java
...g/qaplatform/controller/zdata/xyqb/XyqbGenController.java
+16
-0
XyqbGenDataService.java
.../qg/qaplatform/service/zdata/xyqb/XyqbGenDataService.java
+2
-0
XyqbGenDataServiceImpl.java
...tform/service/zdata/xyqb/impl/XyqbGenDataServiceImpl.java
+64
-6
VccDataMapper.xml
src/main/resources/mapper/zdata/VccDataMapper.xml
+1
-1
No files found.
pom.xml
View file @
1bc533f5
...
...
@@ -207,6 +207,12 @@
<version>
0.3.8
</version>
</dependency>
<dependency>
<groupId>
com.jayway.jsonpath
</groupId>
<artifactId>
json-path
</artifactId>
<version>
2.5.0
</version>
</dependency>
</dependencies>
<build>
...
...
src/main/java/cn/qg/qaplatform/controller/zdata/xyqb/XyqbGenController.java
View file @
1bc533f5
...
...
@@ -87,6 +87,11 @@ public class XyqbGenController {
return
JsonResult
.
success
(
resultFundList
);
}
/**
* 资方渠道映射
* @param fundId 资方id
* @return
*/
@GetMapping
(
"/fundMappedChannel"
)
public
JsonResult
mapChannel
(
@RequestParam
Integer
fundId
)
{
List
<
Map
<
String
,
Object
>>
supportChannel
=
EnumUtils
.
enumToListMap
(
ChannelEnum
.
class
);
...
...
@@ -109,4 +114,15 @@ public class XyqbGenController {
return
JsonResult
.
success
(
resultChannelList
);
}
/**
* @param namespace 环境
* @param fundCorpId 资方id
* @return
* @throws Exception
*/
@GetMapping
(
"/assign/fund"
)
public
JsonResult
assignFund
(
String
namespace
,
Integer
fundCorpId
)
throws
Exception
{
return
JsonResult
.
success
(
xyqbGenDataService
.
assignFund
(
namespace
,
fundCorpId
));
}
}
src/main/java/cn/qg/qaplatform/service/zdata/xyqb/XyqbGenDataService.java
View file @
1bc533f5
...
...
@@ -4,6 +4,7 @@ import cn.qg.qaplatform.entity.zdata.XyqbApplyDataVo;
import
cn.qg.qaplatform.entity.zdata.XjfqGenProcessVo
;
import
java.io.IOException
;
import
java.net.URISyntaxException
;
public
interface
XyqbGenDataService
{
...
...
@@ -49,4 +50,5 @@ public interface XyqbGenDataService {
*/
XjfqGenProcessVo
queryUserStatus
(
String
namespace
,
String
phoneNo
);
String
assignFund
(
String
namespace
,
Integer
fundCorpId
)
throws
Exception
;
}
src/main/java/cn/qg/qaplatform/service/zdata/xyqb/impl/XyqbGenDataServiceImpl.java
View file @
1bc533f5
...
...
@@ -7,7 +7,10 @@ import cn.qg.qaplatform.process.Xyqb;
import
cn.qg.qaplatform.service.zdata.xyqb.QueryInProcessStatusService
;
import
cn.qg.qaplatform.service.zdata.xyqb.XyqbGenDataService
;
import
cn.qg.qaplatform.service.zdata.xyqb.XyqbBasicQueryService
;
import
cn.qg.qaplatform.utils.HttpClientUtils
;
import
com.alibaba.fastjson.JSONException
;
import
com.alibaba.fastjson.JSONObject
;
import
com.jayway.jsonpath.JsonPath
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.data.redis.core.RedisTemplate
;
...
...
@@ -15,6 +18,7 @@ import org.springframework.stereotype.Service;
import
javax.annotation.Resource
;
import
java.net.URISyntaxException
;
import
java.util.HashMap
;
import
java.util.Map
;
import
java.util.concurrent.TimeUnit
;
...
...
@@ -34,6 +38,7 @@ public class XyqbGenDataServiceImpl implements XyqbGenDataService {
/**
* 分配资产计划
*
* @param namespace
* @param fundId
* @return
...
...
@@ -72,6 +77,7 @@ public class XyqbGenDataServiceImpl implements XyqbGenDataService {
/**
* 授信
*
* @param xyqbApplyDataVo 造数据的相关信息
* @return
* @throws Exception
...
...
@@ -131,8 +137,9 @@ public class XyqbGenDataServiceImpl implements XyqbGenDataService {
/**
* 提现
*
* @param xyqbApplyDataVo 造数据相关信息
* @param auditResult 二次风控成功or失败
* @param auditResult
二次风控成功or失败
* @return
* @throws Exception
*/
...
...
@@ -192,6 +199,7 @@ public class XyqbGenDataServiceImpl implements XyqbGenDataService {
/**
* 放款
*
* @param xyqbApplyDataVo
* @return
*/
...
...
@@ -222,7 +230,7 @@ public class XyqbGenDataServiceImpl implements XyqbGenDataService {
Xyqb
.
modifyWaitingFundingCreatedAt
(
namespace
,
loanId
);
Thread
.
sleep
(
5000
);
// 直接打款
Xyqb
.
fundsPlanLoanApply
(
namespace
,
opToken
,
fundId
,
money
,
people
);
Xyqb
.
fundsPlanLoanApply
(
namespace
,
opToken
,
fundId
,
money
,
people
);
Thread
.
sleep
(
30000
);
// 放款结果通知
boolean
makeLoanResult
=
Xyqb
.
payNotify
(
namespace
,
loanId
,
payStatus
);
...
...
@@ -236,14 +244,15 @@ public class XyqbGenDataServiceImpl implements XyqbGenDataService {
/**
* 设置redis值,查询状态
*
* @param namespace
* @param phoneNo
* @param status 0-授信成功,1-授信失败,2-提现成功,3-放款成功,4-放款失败
* @param status
0-授信成功,1-授信失败,2-提现成功,3-放款成功,4-放款失败
*/
public
void
setUserStatusRedisValue
(
String
namespace
,
String
phoneNo
,
Integer
status
)
{
String
redisKey
=
namespace
+
"_"
+
phoneNo
;
redisTemplate
.
opsForValue
().
set
(
redisKey
,
status
);
redisTemplate
.
expire
(
redisKey
,
1800
,
TimeUnit
.
SECONDS
);
redisTemplate
.
expire
(
redisKey
,
1800
,
TimeUnit
.
SECONDS
);
}
...
...
@@ -302,7 +311,7 @@ public class XyqbGenDataServiceImpl implements XyqbGenDataService {
}
// 查询资方审核进度,如未分配成功,则阻塞下一步
queryInProcessStatusService
.
queryFundingAssignProgress
(
namespace
,
phoneNo
,
fundId
,
symbol
);
boolean
withDrawResult
=
withDraw
(
xyqbApplyDataVo
,
true
);
boolean
withDrawResult
=
withDraw
(
xyqbApplyDataVo
,
true
);
if
(!
withDrawResult
)
{
WebSocketServer
.
sendInfo
(
"提现失败!"
,
symbol
);
return
false
;
...
...
@@ -349,7 +358,7 @@ public class XyqbGenDataServiceImpl implements XyqbGenDataService {
setUserStatusRedisValue
(
namespace
,
phoneNo
,
4
);
return
true
;
}
boolean
withDrawResult
=
withDraw
(
xyqbApplyDataVo
,
true
);
boolean
withDrawResult
=
withDraw
(
xyqbApplyDataVo
,
true
);
if
(!
withDrawResult
)
{
WebSocketServer
.
sendInfo
(
"提现失败!"
,
symbol
);
return
false
;
...
...
@@ -407,5 +416,54 @@ public class XyqbGenDataServiceImpl implements XyqbGenDataService {
return
xjfqGenProcessVo
;
}
@Override
public
String
assignFund
(
String
namespace
,
Integer
fundCorpId
)
throws
Exception
{
String
loginOpUrl
=
"http://opapi-"
+
namespace
+
".liangkebang.net"
+
"/user/login"
;
String
fundAssignUrl
=
"https://clotho-"
+
namespace
+
".liangkebang.net/"
+
"/funds/plan/funding/plan/save"
;
String
unLockSwitchUrl
=
"http://opapi-"
+
namespace
+
".liangkebang.net"
+
"/clotho/funds/plan/funding/switch/"
+
fundCorpId
.
toString
()
+
"/loan/auto_lock"
;
String
fundPolicySetUrl
=
"http://opapi-"
+
namespace
+
".liangkebang.net"
+
"/clotho/funds/plan/funding/policy/save"
;
// 登录OP
log
.
info
(
"开始分配资产计划,环境:{}, 资方id:{}"
,
namespace
,
fundCorpId
);
Map
<
String
,
Object
>
loginOpParams
=
new
HashMap
<>();
loginOpParams
.
put
(
"auth"
,
"dXNlcj1xYSZwYXNzd29yZD1xYXRlc3Q="
);
JSONObject
loginOpResult
=
HttpClientUtils
.
doGetReturnJson
(
loginOpUrl
,
loginOpParams
,
null
);
log
.
info
(
"登录OP结果:{}"
,
loginOpResult
);
String
opToken
=
JsonPath
.
read
(
loginOpResult
,
"$.data.token"
);
// 分配资产计划
Map
<
String
,
Object
>
headers
=
new
HashMap
<>();
Map
<
String
,
Object
>
assignFundParams
=
new
HashMap
<>();
headers
.
put
(
"Content-Type"
,
"application/x-www-form-urlencoded"
);
headers
.
put
(
"x-auth-token"
,
opToken
);
assignFundParams
.
put
(
"fundCorpId"
,
fundCorpId
);
assignFundParams
.
put
(
"planDate"
,
""
);
assignFundParams
.
put
(
"maxAssignAmount"
,
1000000
);
assignFundParams
.
put
(
"maxLoanAmount"
,
1000000
);
assignFundParams
.
put
(
"maxLoanPeople"
,
100
);
assignFundParams
.
put
(
"maxAssignPeople"
,
100
);
assignFundParams
.
put
(
"priorityLevel"
,
1
);
JSONObject
assignFundResult
=
HttpClientUtils
.
doPost
(
fundAssignUrl
,
assignFundParams
,
headers
);
log
.
info
(
"分配资产计划结果:{}"
,
assignFundResult
);
Map
<
String
,
Object
>
unLockSwitchParams
=
new
HashMap
<>();
unLockSwitchParams
.
put
(
"to"
,
true
);
JSONObject
unLockSwitchResult
=
HttpClientUtils
.
doPost
(
unLockSwitchUrl
,
unLockSwitchParams
,
headers
);
log
.
info
(
"推送放款的结果:{}"
,
unLockSwitchResult
);
Map
<
String
,
Object
>
fundPolicySetParams
=
new
HashMap
<>();
fundPolicySetParams
.
put
(
"fundingCorpId"
,
fundCorpId
);
fundPolicySetParams
.
put
(
"minQgScore"
,
-
1
);
fundPolicySetParams
.
put
(
"maxQgScore"
,
-
1
);
fundPolicySetParams
.
put
(
"productType"
,
1
);
fundPolicySetParams
.
put
(
"fetchConfig"
,
"0:01"
);
fundPolicySetParams
.
put
(
"autoLoanFetchConfig"
,
"0:01"
);
fundPolicySetParams
.
put
(
"loanTimes"
,
"0:00-23:59"
);
// fundPolicySetParams.put("onlyChannel", 159439);
fundPolicySetParams
.
put
(
"isAutoAssign"
,
true
);
fundPolicySetParams
.
put
(
"isAutoLoan"
,
true
);
fundPolicySetParams
.
put
(
"isAutoFetch"
,
true
);
fundPolicySetParams
.
put
(
"autoLoanFetch"
,
true
);
JSONObject
fundPolicySetResult
=
HttpClientUtils
.
doPost
(
fundPolicySetUrl
,
fundPolicySetParams
,
headers
);
log
.
info
(
"设置资方不受限制的结果:{}"
,
fundPolicySetResult
);
return
"资方分配成功"
;
}
}
src/main/resources/mapper/zdata/VccDataMapper.xml
View file @
1bc533f5
...
...
@@ -34,7 +34,7 @@
</select>
<select
id=
"getVccRiskRecord"
resultType=
"java.util.Map"
>
SELECT * FROM `risk_record` where `uuid` = #{uuid}
SELECT * FROM `risk_record` where `uuid` = #{uuid}
order by id desc limit 1
</select>
</mapper>
\ No newline at end of file
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