Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
C
cash-loan-flow-boss
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
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
QG
cash-loan-flow-boss
Commits
d34603ef
Commit
d34603ef
authored
Sep 10, 2019
by
suntao
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
二次风控接口
parent
851b33b5
Changes
7
Show whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
359 additions
and
228 deletions
+359
-228
OrderController.java
...ashloanflowboss/api/order/controller/OrderController.java
+7
-5
OrderVo.java
.../quantgroup/cashloanflowboss/api/order/model/OrderVo.java
+1
-0
OrderService.java
...roup/cashloanflowboss/api/order/service/OrderService.java
+154
-16
OrderUtil.java
...quantgroup/cashloanflowboss/api/order/util/OrderUtil.java
+90
-203
LoanApplicationHistory.java
...hloanflowboss/spi/xyqb/entity/LoanApplicationHistory.java
+82
-0
LoanApplicationHistoryRepository.java
...spi/xyqb/repository/LoanApplicationHistoryRepository.java
+18
-0
XYQBCenterService.java
.../cashloanflowboss/spi/xyqb/service/XYQBCenterService.java
+7
-4
No files found.
src/main/java/cn/quantgroup/cashloanflowboss/api/order/controller/OrderController.java
View file @
d34603ef
...
...
@@ -86,22 +86,24 @@ public class OrderController {
@PostMapping
(
"/lending"
)
public
Result
<
Boolean
>
lending
(
@RequestBody
@Valid
LendingFormModel
lendingFormModel
)
{
if
(
debugModel
)
{
return
Result
.
buildSuccess
(
this
.
orderService
.
lending
(
lendingFormModel
),
this
.
orderService
.
lending
(
lendingFormModel
)
?
"放款操作成功"
:
"放款操作失败"
);
boolean
lendingResult
=
this
.
orderService
.
lending
(
lendingFormModel
);
return
Result
.
buildSuccess
(
lendingResult
,
lendingResult
?
"放款操作成功"
:
"放款操作失败"
);
}
else
{
return
Result
.
buildSuccess
(
false
,
"无此操作"
);
}
}
/**
*
放款
*
二次风控审批
*
* @return
*/
@Security
(
authorityId
=
"Order.secondAudit"
)
@
Pos
tMapping
(
"/secondAudit"
)
public
Result
<
Boolean
>
secondAudit
(
@RequestBody
@Valid
LendingFormModel
lendingFormModel
)
{
@
Ge
tMapping
(
"/secondAudit"
)
public
Result
<
Boolean
>
secondAudit
(
String
channelOrderNumber
)
{
if
(
debugModel
)
{
return
Result
.
buildSuccess
(
this
.
orderService
.
secondAudit
(
lendingFormModel
));
boolean
secondAudit
=
this
.
orderService
.
secondAudit
(
channelOrderNumber
);
return
Result
.
buildSuccess
(
secondAudit
,
secondAudit
?
"操作成功"
:
"操作失败"
);
}
else
{
return
Result
.
buildSuccess
(
false
,
"无此操作"
);
}
...
...
src/main/java/cn/quantgroup/cashloanflowboss/api/order/model/OrderVo.java
View file @
d34603ef
...
...
@@ -37,6 +37,7 @@ public class OrderVo {
public
enum
OptButtonAction
{
audit
(
"审批"
),
cancel
(
"贷前关单"
),
second_audit
(
"二次风控审批"
),
pay_succ
(
"放款成功"
),
pay_fail
(
"放款失败"
),
withdraw_second
(
"存管提现"
),
...
...
src/main/java/cn/quantgroup/cashloanflowboss/api/order/service/OrderService.java
View file @
d34603ef
...
...
@@ -29,6 +29,7 @@ import cn.quantgroup.cashloanflowboss.spi.user.service.UserSysService;
import
cn.quantgroup.cashloanflowboss.spi.user.service.XyqbUserService
;
import
cn.quantgroup.cashloanflowboss.spi.xyqb.entity.Contract
;
import
cn.quantgroup.cashloanflowboss.spi.xyqb.entity.FundLending
;
import
cn.quantgroup.cashloanflowboss.spi.xyqb.entity.LoanApplicationHistory
;
import
cn.quantgroup.cashloanflowboss.spi.xyqb.service.XYQBCenterService
;
import
cn.quantgroup.cashloanflowboss.utils.JSONTools
;
import
cn.quantgroup.user.retbean.XUser
;
...
...
@@ -147,14 +148,12 @@ public class OrderService {
orderVo
.
setCreatedAt
(
it
.
getCreatedAt
());
if
(
StringUtils
.
isNotEmpty
(
it
.
getApplyNo
()))
{
OrderApprove
orderApprove
=
orderApproveRepository
.
findByCreditNumber
(
it
.
getApplyNo
());
ServiceResult
<
XyqbCurrentOrderStatusServiceResultModel
>
xyqbCenterServiceXyqbOrderStatus
=
xyqbCenterService
.
getXyqbOrderStatus
(
it
.
getApplyNo
(),
it
.
getLoanId
());
log
.
info
(
"[xyqbCenterService.getXyqbOrderStatus]xyqbOrderStatus={}"
,
JSONTools
.
serialize
(
xyqbCenterServiceXyqbOrderStatus
));
if
(
xyqbCenterServiceXyqbOrderStatus
.
isSuccess
())
{
QueryXyqbOrderStatus
currentStatus
=
xyqbCenterServiceXyqbOrderStatus
.
getData
().
getCurrentStatus
();
Tuple
<
String
,
List
<
OrderVo
.
OptButton
>>
currentStatusAndButtons
=
OrderUtil
.
getCurrentStatusAndButtons
(
currentStatus
,
orderApprove
);
Tuple
<
String
,
List
<
OrderVo
.
OptButton
>>
currentStatusAndButtons
=
this
.
getCurrentStatusAndButtons
(
currentStatus
,
it
);
orderVo
.
setStatus
(
currentStatusAndButtons
.
getKey
());
if
(
debugModel
)
{
// 只有测试环境才需要订单操作
...
...
@@ -303,15 +302,15 @@ public class OrderService {
* 已经自动,无须调用
* 二次风控
*
* @param
lendingFormModel
* @param
channelOrderNumber
* @return
*/
@Transactional
public
boolean
secondAudit
(
LendingFormModel
lendingFormModel
)
{
public
boolean
secondAudit
(
String
channelOrderNumber
)
{
boolean
result
;
ClfOrderMapping
orderMapping
=
this
.
clfOrderMappingRepository
.
findByChannelOrderNo
AndRegisteredFromLastOne
(
lendingFormModel
.
getChannelOrderNumber
(),
lendingFormModel
.
getChannelId
()
);
ClfOrderMapping
orderMapping
=
this
.
clfOrderMappingRepository
.
findByChannelOrderNo
LastOne
(
channelOrderNumber
);
// 更新合同状态
Contract
conscont
=
xyqbCenterService
.
findContractByUserId
(
orderMapping
.
getQgUserId
());
...
...
@@ -324,7 +323,7 @@ public class OrderService {
// 操作记录
OptHistoryLog
optHistoryLog
=
new
OptHistoryLog
();
optHistoryLog
.
setChannelOrderNumber
(
lendingFormModel
.
getChannelOrderNumber
()
);
optHistoryLog
.
setChannelOrderNumber
(
channelOrderNumber
);
optHistoryLog
.
setCreditNumber
(
orderMapping
.
getApplyNo
());
optHistoryLog
.
setLoanId
(
orderMapping
.
getLoanId
());
optHistoryLog
.
setChannelId
(
orderMapping
.
getRegisteredFrom
());
...
...
@@ -335,27 +334,27 @@ public class OrderService {
// 二次风控回调
XUser
xUser
=
xyqbUserService
.
findXUserById
(
orderMapping
.
getQgUserId
());
if
(
xUser
==
null
)
{
log
.
info
(
"[secendAudit]二次风控失败,未找到user channelOrderNumber={}"
,
lendingFormModel
.
getChannelOrderNumber
()
);
log
.
info
(
"[secendAudit]二次风控失败,未找到user channelOrderNumber={}"
,
channelOrderNumber
);
optHistoryLog
.
setOptLogDetail
(
"二次风控失败,未找到user"
);
optHistoryLog
.
setOptResult
(
false
);
optHistoryLogService
.
save
(
optHistoryLog
);
return
false
;
}
ChannelConf
channelConf
=
channelConfRepository
.
getByChannelId
(
lendingFormModel
.
getChannelId
());
ChannelConf
channelConf
=
channelConfRepository
.
getByChannelId
(
orderMapping
.
getRegisteredFrom
());
if
(
channelConf
==
null
)
{
log
.
info
(
"[secendAudit]二次风控失败,未找到channelConf配置 channelOrderNumber={}"
,
lendingFormModel
.
getChannelOrderNumber
()
);
log
.
info
(
"[secendAudit]二次风控失败,未找到channelConf配置 channelOrderNumber={}"
,
channelOrderNumber
);
optHistoryLog
.
setOptLogDetail
(
"二次风控失败,未找到channelConf配置"
);
optHistoryLog
.
setOptResult
(
false
);
optHistoryLogService
.
save
(
optHistoryLog
);
return
false
;
}
log
.
info
(
"[secendAudit]二次风控发起,channelOrderNumber={}, bizType={}"
,
lendingFormModel
.
getChannelOrderNumber
()
,
channelConf
.
getBizType
());
log
.
info
(
"[secendAudit]二次风控发起,channelOrderNumber={}, bizType={}"
,
channelOrderNumber
,
channelConf
.
getBizType
());
result
=
clothoCenterService
.
orderAuditNotify
(
xUser
.
getUuid
(),
orderMapping
.
getLoanId
(),
true
,
channelConf
.
getBizType
());
if
(
result
)
{
log
.
info
(
"[secendAudit]二次风控成功,channelOrderNumber={}, result={}"
,
lendingFormModel
.
getChannelOrderNumber
()
,
result
);
log
.
info
(
"[secendAudit]二次风控成功,channelOrderNumber={}, result={}"
,
channelOrderNumber
,
result
);
}
else
{
log
.
info
(
"[secendAudit]二次风控失败,clotho返回失败 channelOrderNumber={}"
,
lendingFormModel
.
getChannelOrderNumber
()
);
log
.
info
(
"[secendAudit]二次风控失败,clotho返回失败 channelOrderNumber={}"
,
channelOrderNumber
);
optHistoryLog
.
setOptLogDetail
(
"二次风控失败,clotho返回失败"
);
optHistoryLog
.
setOptResult
(
false
);
optHistoryLogService
.
save
(
optHistoryLog
);
...
...
@@ -375,7 +374,7 @@ public class OrderService {
optHistoryLog
.
setOptLogDetail
(
"二次风控操作成功"
);
optHistoryLog
.
setOptResult
(
true
);
optHistoryLogService
.
save
(
optHistoryLog
);
log
.
info
(
"[secendAudit]二次风控操作 最后结果,channelOrderNumber={}, result={}"
,
lendingFormModel
.
getChannelOrderNumber
()
,
result
);
log
.
info
(
"[secendAudit]二次风控操作 最后结果,channelOrderNumber={}, result={}"
,
channelOrderNumber
,
result
);
return
result
;
...
...
@@ -489,8 +488,8 @@ public class OrderService {
List
<
VoOrderStatus
>
historyStatusList
=
new
ArrayList
<>();
for
(
QueryXyqbOrderStatus
queryXyqbOrderStatus
:
data
.
getHistoryStatus
())
{
VoOrderStatus
voOrderStatus
=
new
VoOrderStatus
();
Tuple
<
String
,
List
<
OrderVo
.
OptButton
>>
oneStatus
=
OrderUtil
.
getCurrentStatusAndButtons
(
queryXyqbOrderStatus
,
orderApprove
);
voOrderStatus
.
setStatus
(
oneStatus
.
getKey
());
Tuple
<
String
,
String
>
stautsName
=
OrderUtil
.
KaNoticeTypeNameConvertChnName
(
queryXyqbOrderStatus
.
getStatus
()
,
orderApprove
);
voOrderStatus
.
setStatus
(
stautsName
.
getValue
());
voOrderStatus
.
setUpdateTime
(
new
Date
(
queryXyqbOrderStatus
.
getUpdateTime
()));
historyStatusList
.
add
(
voOrderStatus
);
}
...
...
@@ -630,4 +629,143 @@ public class OrderService {
// xyqbCenterService.findRepaymentPlan(loanId);
return
null
;
}
/**
* 查询订单状态
* @param currentStatus
* @param orderMapping
* @return
*/
private
Tuple
<
String
,
List
<
OrderVo
.
OptButton
>>
getCurrentStatusAndButtons
(
QueryXyqbOrderStatus
currentStatus
,
ClfOrderMapping
orderMapping
)
{
Tuple
tuple
=
new
Tuple
();
List
<
OrderVo
.
OptButton
>
buttonList
=
new
ArrayList
<>();
if
(
currentStatus
!=
null
)
{
if
(
StringUtils
.
isNotEmpty
(
currentStatus
.
getStatus
()))
{
OrderVo
.
OptButton
buttonBeforeCancel
=
new
OrderVo
.
OptButton
();
buttonBeforeCancel
.
setAction
(
OrderVo
.
OptButtonAction
.
cancel
.
name
());
buttonBeforeCancel
.
setName
(
OrderVo
.
OptButtonAction
.
cancel
.
getDesc
());
switch
(
currentStatus
.
getStatus
())
{
case
"CREDIT_SUCC"
:
// 授信成功 需要 审批
OrderVo
.
OptButton
buttonApprove
=
new
OrderVo
.
OptButton
();
buttonApprove
.
setAction
(
OrderVo
.
OptButtonAction
.
audit
.
name
());
buttonApprove
.
setName
(
OrderVo
.
OptButtonAction
.
audit
.
getDesc
());
buttonList
.
add
(
buttonApprove
);
buttonList
.
add
(
buttonBeforeCancel
);
tuple
.
setKey
(
"授信成功"
);
tuple
.
setValue
(
buttonList
);
return
tuple
;
case
"APPROVE_ING"
:
OrderApprove
orderApprove
=
orderApproveRepository
.
findByCreditNumber
(
orderMapping
.
getApplyNo
());
if
(
orderApprove
==
null
)
{
OrderVo
.
OptButton
buttonApprove2
=
new
OrderVo
.
OptButton
();
buttonApprove2
.
setAction
(
OrderVo
.
OptButtonAction
.
audit
.
name
());
buttonApprove2
.
setName
(
OrderVo
.
OptButtonAction
.
audit
.
getDesc
());
buttonList
.
add
(
buttonApprove2
);
buttonList
.
add
(
buttonBeforeCancel
);
tuple
.
setKey
(
"授信成功,待审批"
);
tuple
.
setValue
(
buttonList
);
}
else
{
tuple
.
setKey
(
"审批中(等待几分钟)"
);
buttonList
.
add
(
buttonBeforeCancel
);
tuple
.
setValue
(
buttonList
);
}
return
tuple
;
case
"REJECT"
:
tuple
.
setKey
(
"审批拒绝"
);
tuple
.
setValue
(
buttonList
);
return
tuple
;
case
"FUAD_ASSIFN_SUCC"
:
tuple
.
setKey
(
"审批通过,待提现"
);
buttonList
.
add
(
buttonBeforeCancel
);
tuple
.
setValue
(
buttonList
);
return
tuple
;
case
"WITHDRAW"
:
// 提现申请成功 需要放款
tuple
.
setKey
(
"申请提现成功"
);
LoanApplicationHistory
loanApplicationHistory
=
xyqbCenterService
.
findLoanApplicationHistoryById
(
orderMapping
.
getLoanId
());
if
(
loanApplicationHistory
!=
null
)
{
if
(
LoanProgress
.
WAITING_FUND
.
equals
(
loanApplicationHistory
.
getProgress
()))
{
// 更改放款时间,二次风控回调
OrderVo
.
OptButton
secondAudit
=
new
OrderVo
.
OptButton
();
secondAudit
.
setAction
(
OrderVo
.
OptButtonAction
.
second_audit
.
name
());
secondAudit
.
setName
(
OrderVo
.
OptButtonAction
.
second_audit
.
getDesc
());
buttonList
.
add
(
secondAudit
);
}
else
if
(
LoanProgress
.
FINAL_SEND_TO_MASHANG_BEFORE_APPROVAL
.
equals
(
loanApplicationHistory
.
getProgress
()))
{
OrderVo
.
OptButton
buttonPaySucc
=
new
OrderVo
.
OptButton
();
buttonPaySucc
.
setAction
(
OrderVo
.
OptButtonAction
.
pay_succ
.
name
());
buttonPaySucc
.
setName
(
OrderVo
.
OptButtonAction
.
pay_succ
.
getDesc
());
buttonList
.
add
(
buttonPaySucc
);
OrderVo
.
OptButton
buttonPayFail
=
new
OrderVo
.
OptButton
();
buttonPayFail
.
setAction
(
OrderVo
.
OptButtonAction
.
pay_fail
.
name
());
buttonPayFail
.
setName
(
OrderVo
.
OptButtonAction
.
pay_fail
.
getDesc
());
buttonList
.
add
(
buttonPayFail
);
buttonList
.
add
(
buttonBeforeCancel
);
}
tuple
.
setValue
(
buttonList
);
}
return
tuple
;
case
"PAY_ING"
:
tuple
.
setKey
(
"放款中(等待几分钟)"
);
buttonList
.
add
(
buttonBeforeCancel
);
tuple
.
setValue
(
buttonList
);
return
tuple
;
case
"FUND_SUCC"
:
OrderApprove
orderApprove2
=
orderApproveRepository
.
findByCreditNumber
(
orderMapping
.
getApplyNo
());
if
(
orderApprove2
!=
null
&&
orderApprove2
.
getFundType
()
!=
0
)
{
// 是存管
tuple
.
setKey
(
"放款到存管,待提现"
);
OrderVo
.
OptButton
cancelAfterButton
=
new
OrderVo
.
OptButton
();
cancelAfterButton
.
setAction
(
OrderVo
.
OptButtonAction
.
cancel_after
.
name
());
cancelAfterButton
.
setName
(
OrderVo
.
OptButtonAction
.
cancel_after
.
getDesc
());
buttonList
.
add
(
cancelAfterButton
);
OrderVo
.
OptButton
withdrawSecondButton
=
new
OrderVo
.
OptButton
();
withdrawSecondButton
.
setAction
(
OrderVo
.
OptButtonAction
.
withdraw_second
.
name
());
withdrawSecondButton
.
setName
(
OrderVo
.
OptButtonAction
.
withdraw_second
.
getDesc
());
buttonList
.
add
(
withdrawSecondButton
);
}
else
{
tuple
.
setKey
(
"放款成功"
);
}
tuple
.
setValue
(
buttonList
);
return
tuple
;
case
"FUND_WITHDRAW_SUCC"
:
tuple
.
setKey
(
"存管提现成功"
);
tuple
.
setValue
(
buttonList
);
return
tuple
;
case
"FUND_FAIL"
:
tuple
.
setKey
(
"放款失败"
);
tuple
.
setValue
(
buttonList
);
return
tuple
;
case
"ALL_REPAID"
:
tuple
.
setKey
(
"已结清"
);
tuple
.
setValue
(
buttonList
);
return
tuple
;
case
"CANCEL_LOAN"
:
tuple
.
setKey
(
"已关单"
);
tuple
.
setValue
(
buttonList
);
return
tuple
;
case
"CANCEL_AFTER_LOAN"
:
tuple
.
setKey
(
"存管提现超时或贷后关单"
);
tuple
.
setValue
(
buttonList
);
return
tuple
;
default
:
tuple
.
setKey
(
"未知状态"
);
tuple
.
setValue
(
buttonList
);
return
tuple
;
}
}
}
else
{
tuple
.
setKey
(
"未知状态"
);
tuple
.
setValue
(
buttonList
);
return
tuple
;
}
tuple
.
setKey
(
"未知状态"
);
tuple
.
setValue
(
buttonList
);
return
tuple
;
}
}
src/main/java/cn/quantgroup/cashloanflowboss/api/order/util/OrderUtil.java
View file @
d34603ef
...
...
@@ -25,219 +25,106 @@ import java.util.List;
public
class
OrderUtil
{
public
static
final
String
financeProductsFormat
=
"[{\"min\":%s,\"max\":%s,\"terms\":[{\"term\":%s,\"fundInfo\":[{\"fundId\":%s,\"rate\":\"0\",\"rateType\":1,\"priority\":\"1\",\"feeType\":\"1\"}]}]}]"
;
/**
*
* @param kaNoticeType
* @return 状态英文,状态中文
*/
public
static
Tuple
<
String
,
String
>
KaNoticeTypeConvertChnName
(
KANoticeType
kaNoticeType
,
OrderApprove
orderApprove
)
{
public
static
Tuple
<
String
,
List
<
OrderVo
.
OptButton
>>
getCurrentStatusAndButtons
(
QueryXyqbOrderStatus
currentStatus
,
OrderApprove
orderApprove
)
{
Tuple
tuple
=
new
Tuple
();
List
<
OrderVo
.
OptButton
>
buttonList
=
new
ArrayList
<>();
if
(
currentStatus
!=
null
)
{
if
(
StringUtils
.
isNotEmpty
(
currentStatus
.
getStatus
()))
{
OrderVo
.
OptButton
buttonBeforeCancel
=
new
OrderVo
.
OptButton
();
buttonBeforeCancel
.
setAction
(
OrderVo
.
OptButtonAction
.
cancel
.
name
());
buttonBeforeCancel
.
setName
(
OrderVo
.
OptButtonAction
.
cancel
.
getDesc
());
switch
(
currentStatus
.
getStatus
())
{
if
(
kaNoticeType
!=
null
)
{
switch
(
kaNoticeType
.
name
())
{
case
"CREDIT_SUCC"
:
// 授信成功 需要 审批
OrderVo
.
OptButton
buttonApprove
=
new
OrderVo
.
OptButton
();
buttonApprove
.
setAction
(
OrderVo
.
OptButtonAction
.
audit
.
name
());
buttonApprove
.
setName
(
OrderVo
.
OptButtonAction
.
audit
.
getDesc
());
buttonList
.
add
(
buttonApprove
);
buttonList
.
add
(
buttonBeforeCancel
);
tuple
.
setKey
(
"授信成功"
);
tuple
.
setValue
(
buttonList
);
return
tuple
;
return
new
Tuple
(
"CREDIT_SUCC"
,
"授信成功"
);
case
"APPROVE_ING"
:
if
(
orderApprove
==
null
)
{
OrderVo
.
OptButton
buttonApprove2
=
new
OrderVo
.
OptButton
();
buttonApprove2
.
setAction
(
OrderVo
.
OptButtonAction
.
audit
.
name
());
buttonApprove2
.
setName
(
OrderVo
.
OptButtonAction
.
audit
.
getDesc
());
buttonList
.
add
(
buttonApprove2
);
buttonList
.
add
(
buttonBeforeCancel
);
tuple
.
setKey
(
"授信成功,待审批"
);
tuple
.
setValue
(
buttonList
);
return
new
Tuple
(
"APPROVE_ING"
,
"授信成功,待审批"
);
}
else
{
tuple
.
setKey
(
"审批中"
);
buttonList
.
add
(
buttonBeforeCancel
);
tuple
.
setValue
(
buttonList
);
return
new
Tuple
(
"APPROVE_ING"
,
"审批中"
);
}
return
tuple
;
case
"REJECT"
:
tuple
.
setKey
(
"审批拒绝"
);
tuple
.
setValue
(
buttonList
);
return
tuple
;
return
new
Tuple
(
kaNoticeType
.
name
(),
"审批拒绝"
);
case
"FUAD_ASSIFN_SUCC"
:
tuple
.
setKey
(
"审批通过,待提现"
);
buttonList
.
add
(
buttonBeforeCancel
);
tuple
.
setValue
(
buttonList
);
return
tuple
;
return
new
Tuple
(
kaNoticeType
.
name
(),
"审批通过,待提现"
);
case
"WITHDRAW"
:
// 提现申请成功 需要放款
tuple
.
setKey
(
"申请提现成功"
);
OrderVo
.
OptButton
buttonPaySucc
=
new
OrderVo
.
OptButton
();
buttonPaySucc
.
setAction
(
OrderVo
.
OptButtonAction
.
pay_succ
.
name
());
buttonPaySucc
.
setName
(
OrderVo
.
OptButtonAction
.
pay_succ
.
getDesc
());
buttonList
.
add
(
buttonPaySucc
);
OrderVo
.
OptButton
buttonPayFail
=
new
OrderVo
.
OptButton
();
buttonPayFail
.
setAction
(
OrderVo
.
OptButtonAction
.
pay_fail
.
name
());
buttonPayFail
.
setName
(
OrderVo
.
OptButtonAction
.
pay_fail
.
getDesc
());
buttonList
.
add
(
buttonPayFail
);
buttonList
.
add
(
buttonBeforeCancel
);
tuple
.
setValue
(
buttonList
);
return
tuple
;
return
new
Tuple
(
kaNoticeType
.
name
(),
"申请提现成功"
);
case
"PAY_ING"
:
tuple
.
setKey
(
"放款中"
);
buttonList
.
add
(
buttonBeforeCancel
);
tuple
.
setValue
(
buttonList
);
return
tuple
;
return
new
Tuple
(
"PAY_ING"
,
"放款中"
);
case
"FUND_SUCC"
:
if
(
orderApprove
!=
null
&&
orderApprove
.
getFundType
()
!=
0
)
{
// 是存管
tuple
.
setKey
(
"放款到存管,待提现"
);
OrderVo
.
OptButton
cancelAfterButton
=
new
OrderVo
.
OptButton
();
cancelAfterButton
.
setAction
(
OrderVo
.
OptButtonAction
.
cancel_after
.
name
());
cancelAfterButton
.
setName
(
OrderVo
.
OptButtonAction
.
cancel_after
.
getDesc
());
buttonList
.
add
(
cancelAfterButton
);
OrderVo
.
OptButton
withdrawSecondButton
=
new
OrderVo
.
OptButton
();
withdrawSecondButton
.
setAction
(
OrderVo
.
OptButtonAction
.
withdraw_second
.
name
());
withdrawSecondButton
.
setName
(
OrderVo
.
OptButtonAction
.
withdraw_second
.
getDesc
());
buttonList
.
add
(
withdrawSecondButton
);
return
new
Tuple
(
kaNoticeType
.
name
(),
"放款到存管,待提现"
);
}
else
{
tuple
.
setKey
(
"放款成功"
);
return
new
Tuple
(
kaNoticeType
.
name
(),
"放款成功"
);
}
tuple
.
setValue
(
buttonList
);
return
tuple
;
case
"FUND_WITHDRAW_SUCC"
:
tuple
.
setKey
(
"存管提现成功"
);
tuple
.
setValue
(
buttonList
);
return
tuple
;
return
new
Tuple
(
kaNoticeType
.
name
(),
"存管提现成功"
);
case
"FUND_FAIL"
:
tuple
.
setKey
(
"放款失败"
);
tuple
.
setValue
(
buttonList
);
return
tuple
;
return
new
Tuple
(
kaNoticeType
.
name
(),
"放款失败"
);
case
"ALL_REPAID"
:
tuple
.
setKey
(
"已结清"
);
tuple
.
setValue
(
buttonList
);
return
tuple
;
return
new
Tuple
(
kaNoticeType
.
name
(),
"已结清"
);
case
"CANCEL_LOAN"
:
tuple
.
setKey
(
"已关单"
);
tuple
.
setValue
(
buttonList
);
return
tuple
;
return
new
Tuple
(
kaNoticeType
.
name
(),
"已关单"
);
case
"CANCEL_AFTER_LOAN"
:
tuple
.
setKey
(
"存管提现超时或贷后关单"
);
tuple
.
setValue
(
buttonList
);
return
tuple
;
return
new
Tuple
(
kaNoticeType
.
name
(),
"存管提现超时或贷后关单"
);
default
:
tuple
.
setKey
(
"未知状态"
);
tuple
.
setValue
(
buttonList
);
return
tuple
;
return
new
Tuple
(
kaNoticeType
.
name
(),
"未知状态"
);
}
}
}
else
{
tuple
.
setKey
(
"未知状态"
);
tuple
.
setValue
(
buttonList
);
return
tuple
;
}
tuple
.
setKey
(
"未知状态"
);
tuple
.
setValue
(
buttonList
);
return
tuple
;
return
new
Tuple
(
kaNoticeType
.
name
(),
"未知状态"
);
}
public
static
Tuple
<
String
,
String
>
KaNoticeTypeConvert
(
KANoticeType
kaNoticeType
)
{
/**
*
* @param kaNoticeType
* @return 状态英文,状态中文
*/
public
static
Tuple
<
String
,
String
>
KaNoticeTypeNameConvertChnName
(
String
kaNoticeType
,
OrderApprove
orderApprove
)
{
if
(
kaNoticeType
!=
null
)
{
switch
(
kaNoticeType
.
name
()
)
{
if
(
StringUtils
.
isNotEmpty
(
kaNoticeType
)
)
{
switch
(
kaNoticeType
)
{
case
"CREDIT_SUCC"
:
// 授信成功 需要 审批
// return new Tuple("授信成功", "CREDIT_SUCC");
// case "APPROVE_ING" :
// if (orderApprove == null) {
// OrderVo.OptButton buttonApprove2 = new OrderVo.OptButton();
// buttonApprove2.setAction(OrderVo.OptButtonAction.audit.name());
// buttonApprove2.setName(OrderVo.OptButtonAction.audit.getDesc());
// buttonList.add(buttonApprove2);
// buttonList.add(buttonBeforeCancel);
// tuple.setKey("授信成功,待审批");
// tuple.setValue(buttonList);
// } else {
// tuple.setKey("审批中");
// buttonList.add(buttonBeforeCancel);
// tuple.setValue(buttonList);
// }
// return tuple;
// case "REJECT" :
// tuple.setKey("审批拒绝");
// tuple.setValue(buttonList);
// return tuple;
// case "FUAD_ASSIFN_SUCC" :
// tuple.setKey("审批通过,待提现");
// buttonList.add(buttonBeforeCancel);
// tuple.setValue(buttonList);
// return tuple;
// case "WITHDRAW" :
// // 提现申请成功 需要放款
// tuple.setKey("申请提现成功");
// OrderVo.OptButton buttonPaySucc = new OrderVo.OptButton();
// buttonPaySucc.setAction(OrderVo.OptButtonAction.pay_succ.name());
// buttonPaySucc.setName(OrderVo.OptButtonAction.pay_succ.getDesc());
// buttonList.add(buttonPaySucc);
// OrderVo.OptButton buttonPayFail = new OrderVo.OptButton();
// buttonPayFail.setAction(OrderVo.OptButtonAction.pay_fail.name());
// buttonPayFail.setName(OrderVo.OptButtonAction.pay_fail.getDesc());
// buttonList.add(buttonPayFail);
// buttonList.add(buttonBeforeCancel);
// tuple.setValue(buttonList);
// return tuple;
// case "PAY_ING" :
// tuple.setKey("放款中");
// buttonList.add(buttonBeforeCancel);
// tuple.setValue(buttonList);
// return tuple;
// case "FUND_SUCC" :
// if (orderApprove != null && orderApprove.getFundType() != 0) {
// // 是存管
// tuple.setKey("放款到存管,待提现");
// OrderVo.OptButton cancelAfterButton = new OrderVo.OptButton();
// cancelAfterButton.setAction(OrderVo.OptButtonAction.cancel_after.name());
// cancelAfterButton.setName(OrderVo.OptButtonAction.cancel_after.getDesc());
// buttonList.add(cancelAfterButton);
// OrderVo.OptButton withdrawSecondButton = new OrderVo.OptButton();
// withdrawSecondButton.setAction(OrderVo.OptButtonAction.withdraw_second.name());
// withdrawSecondButton.setName(OrderVo.OptButtonAction.withdraw_second.getDesc());
// buttonList.add(withdrawSecondButton);
// } else {
// tuple.setKey("放款成功");
// }
// tuple.setValue(buttonList);
// return tuple;
// case "FUND_WITHDRAW_SUCC" :
// tuple.setKey("存管提现成功");
// tuple.setValue(buttonList);
// return tuple;
// case "FUND_FAIL" :
// tuple.setKey("放款失败");
// tuple.setValue(buttonList);
// return tuple;
// case "ALL_REPAID" :
// tuple.setKey("已结清");
// tuple.setValue(buttonList);
// return tuple;
// case "CANCEL_LOAN" :
// tuple.setKey("已关单");
// tuple.setValue(buttonList);
// return tuple;
// case "CANCEL_AFTER_LOAN" :
// tuple.setKey("存管提现超时或贷后关单");
// tuple.setValue(buttonList);
// return tuple;
// default:
// tuple.setKey("未知状态");
// tuple.setValue(buttonList);
// return tuple;
return
new
Tuple
(
"CREDIT_SUCC"
,
"授信成功"
);
case
"APPROVE_ING"
:
if
(
orderApprove
==
null
)
{
return
new
Tuple
(
"APPROVE_ING"
,
"授信成功"
);
}
else
{
return
new
Tuple
(
"APPROVE_ING"
,
"审批中"
);
}
case
"REJECT"
:
return
new
Tuple
(
kaNoticeType
,
"审批拒绝"
);
case
"FUAD_ASSIFN_SUCC"
:
return
new
Tuple
(
kaNoticeType
,
"审批通过"
);
case
"WITHDRAW"
:
// 提现申请成功 需要放款
return
new
Tuple
(
kaNoticeType
,
"申请提现成功"
);
case
"PAY_ING"
:
return
new
Tuple
(
"PAY_ING"
,
"放款中"
);
case
"FUND_SUCC"
:
if
(
orderApprove
!=
null
&&
orderApprove
.
getFundType
()
!=
0
)
{
// 是存管
return
new
Tuple
(
kaNoticeType
,
"放款到存管"
);
}
else
{
return
new
Tuple
(
kaNoticeType
,
"放款成功"
);
}
case
"FUND_WITHDRAW_SUCC"
:
return
new
Tuple
(
kaNoticeType
,
"存管提现成功"
);
case
"FUND_FAIL"
:
return
new
Tuple
(
kaNoticeType
,
"放款失败"
);
case
"ALL_REPAID"
:
return
new
Tuple
(
kaNoticeType
,
"已结清"
);
case
"CANCEL_LOAN"
:
return
new
Tuple
(
kaNoticeType
,
"已关单"
);
case
"CANCEL_AFTER_LOAN"
:
return
new
Tuple
(
kaNoticeType
,
"存管提现超时或贷后关单"
);
default
:
return
new
Tuple
(
kaNoticeType
,
"未知状态"
);
}
return
n
ull
;
}
return
n
ew
Tuple
(
kaNoticeType
,
"未知状态"
)
;
}
public
static
List
<
OptHistoryLog
>
convertApplyRequestHistoryList2OptHistoryLogList
(
List
<
ApplyRequestHistory
>
applyRequestHistoryList
,
ClfOrderMapping
orderMapping
)
{
...
...
src/main/java/cn/quantgroup/cashloanflowboss/spi/xyqb/entity/LoanApplicationHistory.java
0 → 100644
View file @
d34603ef
package
cn
.
quantgroup
.
cashloanflowboss
.
spi
.
xyqb
.
entity
;
import
cn.quantgroup.cashloanflowboss.spi.clf.model.LoanProgress
;
import
lombok.Getter
;
import
lombok.Setter
;
import
lombok.ToString
;
import
javax.persistence.*
;
import
java.io.Serializable
;
import
java.sql.Timestamp
;
import
java.util.Objects
;
/**
* Created by FrankChow on 15/7/8.
* 贷款记录表
*/
@Entity
@Table
(
name
=
"loan_application_history"
)
@Getter
@Setter
@ToString
public
class
LoanApplicationHistory
implements
Serializable
{
private
static
final
long
serialVersionUID
=
-
1L
;
@Id
@Column
(
name
=
"id"
)
@GeneratedValue
(
strategy
=
GenerationType
.
IDENTITY
)
private
Long
id
;
@Column
(
name
=
"user_id"
)
private
Long
userId
;
@Column
(
name
=
"channel_id"
)
private
Long
channelId
;
// false表示借款申请是无效的或者已完成
@Column
(
name
=
"is_active"
)
private
Boolean
isActive
=
true
;
// 贷款进度 默认是02
@Column
(
name
=
"progress"
)
private
LoanProgress
progress
=
LoanProgress
.
USER_AUTHENTICATION_INCOMPLETE
;
@Column
(
name
=
"bank_card_id"
)
private
Long
bankCardId
;
// 从哪个渠道注册过来
@Column
(
name
=
"created_from"
)
private
Long
createdFrom
;
@Column
(
name
=
"baitiao_merchant_id"
)
private
Long
baitiaoMerchantId
=
-
1L
;
// 上一次修改时间
@Column
(
name
=
"updated_at"
)
private
Timestamp
updatedAt
;
// 上一次修改时间
@Column
(
name
=
"created_at"
)
private
Timestamp
createdAt
;
@PrePersist
public
void
prePersist
()
{
Timestamp
timestamp
=
new
Timestamp
(
System
.
currentTimeMillis
());
createdAt
=
timestamp
;
updatedAt
=
timestamp
;
}
@PreUpdate
public
void
preUpdate
()
{
updatedAt
=
new
Timestamp
(
System
.
currentTimeMillis
());
}
public
long
parseChannelId
()
{
return
!
Objects
.
equals
(
createdFrom
,
-
1L
)
?
this
.
createdFrom
:
this
.
channelId
;
}
}
src/main/java/cn/quantgroup/cashloanflowboss/spi/xyqb/repository/LoanApplicationHistoryRepository.java
0 → 100644
View file @
d34603ef
package
cn
.
quantgroup
.
cashloanflowboss
.
spi
.
xyqb
.
repository
;
import
cn.quantgroup.cashloanflowboss.spi.xyqb.entity.LoanApplicationHistory
;
import
cn.quantgroup.cashloanflowboss.spi.xyqb.source.XYQBDataSource
;
import
org.springframework.data.repository.CrudRepository
;
import
org.springframework.stereotype.Repository
;
/**
* Created by WeiWei on 2019/8/12.
*/
@XYQBDataSource
@Repository
public
interface
LoanApplicationHistoryRepository
extends
CrudRepository
<
LoanApplicationHistory
,
Integer
>
{
LoanApplicationHistory
findById
(
Long
id
);
}
\ No newline at end of file
src/main/java/cn/quantgroup/cashloanflowboss/spi/xyqb/service/XYQBCenterService.java
View file @
d34603ef
...
...
@@ -4,10 +4,7 @@ import cn.quantgroup.cashloanflowboss.api.order.model.XyqbCurrentOrderStatusServ
import
cn.quantgroup.cashloanflowboss.api.order.model.XyqbHistoryOrderStatusServiceResultModel
;
import
cn.quantgroup.cashloanflowboss.core.base.ServiceResult
;
import
cn.quantgroup.cashloanflowboss.spi.xyqb.client.XYQBCenter
;
import
cn.quantgroup.cashloanflowboss.spi.xyqb.entity.Contract
;
import
cn.quantgroup.cashloanflowboss.spi.xyqb.entity.FundLending
;
import
cn.quantgroup.cashloanflowboss.spi.xyqb.entity.FundingAssetAllocationsPrograms
;
import
cn.quantgroup.cashloanflowboss.spi.xyqb.entity.FundingCorpPolicy
;
import
cn.quantgroup.cashloanflowboss.spi.xyqb.entity.*
;
import
cn.quantgroup.cashloanflowboss.spi.xyqb.repository.*
;
import
cn.quantgroup.cashloanflowboss.spi.xyqb.util.SignUtil
;
import
cn.quantgroup.cashloanflowboss.utils.DateUtil
;
...
...
@@ -38,6 +35,8 @@ public class XYQBCenterService {
private
FundingCorpPolicyRepository
fundingCorpPolicyRepository
;
@Autowired
private
FundingAssetAllocationsProgramsRepository
fundingAssetAllocationsProgramsRepository
;
@Autowired
private
LoanApplicationHistoryRepository
loanApplicationHistoryRepository
;
@Value
(
"${debug.model}"
)
...
...
@@ -133,6 +132,10 @@ public class XYQBCenterService {
return
fundingAssetAllocationsProgramsRepository
.
findByFundCorpIdAndPlanDate
(
corpPolicyId
,
planDate
);
}
public
LoanApplicationHistory
findLoanApplicationHistoryById
(
Long
loanId
)
{
return
loanApplicationHistoryRepository
.
findById
(
loanId
);
}
/**
* 验证资产计划 是否有效
* @param corpPolicyId
...
...
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