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
dd9003f9
Commit
dd9003f9
authored
Jun 11, 2020
by
王向伟
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
二次风控审核bizType对乐信单独判断
parent
01d221ba
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
77 additions
and
81 deletions
+77
-81
OrderServiceImpl.java
.../cashloanflowboss/api/order/service/OrderServiceImpl.java
+77
-81
No files found.
src/main/java/cn/quantgroup/cashloanflowboss/api/order/service/OrderServiceImpl.java
View file @
dd9003f9
package
cn
.
quantgroup
.
cashloanflowboss
.
api
.
order
.
service
;
package
cn
.
quantgroup
.
cashloanflowboss
.
api
.
order
.
service
;
import
cn.quantgroup.cashloanflowboss.api.optlog.entity.OptHistoryLog
;
import
cn.quantgroup.cashloanflowboss.api.optlog.model.OptEnumName
;
import
cn.quantgroup.cashloanflowboss.api.optlog.service.OptHistoryLogServiceImpl
;
import
cn.quantgroup.cashloanflowboss.core.annotation.opt.OperationAnno
;
import
cn.quantgroup.cashloanflowboss.core.base.Tuple
;
import
cn.quantgroup.cashloanflowboss.core.constants.Constants
;
import
cn.quantgroup.cashloanflowboss.spi.clf.entity.CallbackFailRecord
;
import
cn.quantgroup.cashloanflowboss.spi.clf.entity.ClfChannelConfiguration
;
import
cn.quantgroup.cashloanflowboss.spi.clf.model.KANoticeType
;
import
cn.quantgroup.cashloanflowboss.spi.clf.model.LoanProgress
;
import
cn.quantgroup.cashloanflowboss.api.channel.entity.ChannelConf
;
import
cn.quantgroup.cashloanflowboss.api.channel.entity.ChannelConf
;
import
cn.quantgroup.cashloanflowboss.api.channel.repository.ChannelConfRepository
;
import
cn.quantgroup.cashloanflowboss.api.channel.repository.ChannelConfRepository
;
import
cn.quantgroup.cashloanflowboss.api.channel.util.ChannelConfUtil
;
import
cn.quantgroup.cashloanflowboss.api.channel.util.ChannelConfUtil
;
import
cn.quantgroup.cashloanflowboss.api.optlog.entity.OptHistoryLog
;
import
cn.quantgroup.cashloanflowboss.api.optlog.model.OptEnumName
;
import
cn.quantgroup.cashloanflowboss.api.optlog.service.OptHistoryLogServiceImpl
;
import
cn.quantgroup.cashloanflowboss.api.order.entity.OrderApprove
;
import
cn.quantgroup.cashloanflowboss.api.order.entity.OrderApprove
;
import
cn.quantgroup.cashloanflowboss.api.order.model.*
;
import
cn.quantgroup.cashloanflowboss.api.order.model.*
;
import
cn.quantgroup.cashloanflowboss.api.order.repository.OrderApproveRepository
;
import
cn.quantgroup.cashloanflowboss.api.order.repository.OrderApproveRepository
;
import
cn.quantgroup.cashloanflowboss.api.order.util.OrderUtil
;
import
cn.quantgroup.cashloanflowboss.api.order.util.OrderUtil
;
import
cn.quantgroup.cashloanflowboss.core.Application
;
import
cn.quantgroup.cashloanflowboss.core.Application
;
import
cn.quantgroup.cashloanflowboss.core.annotation.opt.OperationAnno
;
import
cn.quantgroup.cashloanflowboss.core.base.ServiceResult
;
import
cn.quantgroup.cashloanflowboss.core.base.ServiceResult
;
import
cn.quantgroup.cashloanflowboss.core.base.Tuple
;
import
cn.quantgroup.cashloanflowboss.core.constants.Constants
;
import
cn.quantgroup.cashloanflowboss.spi.clf.entity.CallbackFailRecord
;
import
cn.quantgroup.cashloanflowboss.spi.clf.entity.CallbackRecord
;
import
cn.quantgroup.cashloanflowboss.spi.clf.entity.CallbackRecord
;
import
cn.quantgroup.cashloanflowboss.spi.clf.entity.ClfChannelConfiguration
;
import
cn.quantgroup.cashloanflowboss.spi.clf.entity.ClfOrderMapping
;
import
cn.quantgroup.cashloanflowboss.spi.clf.entity.ClfOrderMapping
;
import
cn.quantgroup.cashloanflowboss.spi.clf.model.CallbackRecordVoModel
;
import
cn.quantgroup.cashloanflowboss.spi.clf.model.CallbackRecordVoModel
;
import
cn.quantgroup.cashloanflowboss.spi.clf.model.KANoticeType
;
import
cn.quantgroup.cashloanflowboss.spi.clf.model.LoanProgress
;
import
cn.quantgroup.cashloanflowboss.spi.clf.repository.ClfOrderMappingRepository
;
import
cn.quantgroup.cashloanflowboss.spi.clf.repository.ClfOrderMappingRepository
;
import
cn.quantgroup.cashloanflowboss.spi.clf.service.CLFCenterService
;
import
cn.quantgroup.cashloanflowboss.spi.clf.service.CLFCenterService
;
import
cn.quantgroup.cashloanflowboss.spi.clotho.service.ClothoCenterService
;
import
cn.quantgroup.cashloanflowboss.spi.clotho.service.ClothoCenterService
;
...
@@ -38,19 +38,6 @@ import cn.quantgroup.cashloanflowboss.utils.JSONTools;
...
@@ -38,19 +38,6 @@ import cn.quantgroup.cashloanflowboss.utils.JSONTools;
import
cn.quantgroup.user.retbean.XUser
;
import
cn.quantgroup.user.retbean.XUser
;
import
com.alibaba.fastjson.JSONObject
;
import
com.alibaba.fastjson.JSONObject
;
import
com.google.common.collect.Maps
;
import
com.google.common.collect.Maps
;
import
java.math.BigDecimal
;
import
java.util.ArrayList
;
import
java.util.Calendar
;
import
java.util.Date
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Objects
;
import
java.util.UUID
;
import
java.util.concurrent.ConcurrentMap
;
import
javax.persistence.criteria.Predicate
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.collections.CollectionUtils
;
import
org.apache.commons.collections.CollectionUtils
;
import
org.apache.commons.lang3.BooleanUtils
;
import
org.apache.commons.lang3.BooleanUtils
;
...
@@ -63,6 +50,11 @@ import org.springframework.data.domain.PageRequest;
...
@@ -63,6 +50,11 @@ import org.springframework.data.domain.PageRequest;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.transaction.annotation.Transactional
;
import
javax.persistence.criteria.Predicate
;
import
java.math.BigDecimal
;
import
java.util.*
;
import
java.util.concurrent.ConcurrentMap
;
/**
/**
* function:
* function:
* date: 2019/8/8
* date: 2019/8/8
...
@@ -72,7 +64,7 @@ import org.springframework.transaction.annotation.Transactional;
...
@@ -72,7 +64,7 @@ import org.springframework.transaction.annotation.Transactional;
@Slf4j
@Slf4j
@Service
@Service
public
class
OrderServiceImpl
implements
OrderService
{
public
class
OrderServiceImpl
implements
OrderService
{
@Autowired
@Autowired
...
@@ -96,7 +88,6 @@ public class OrderServiceImpl implements OrderService{
...
@@ -96,7 +88,6 @@ public class OrderServiceImpl implements OrderService{
private
JolyneService
jolyneService
;
private
JolyneService
jolyneService
;
@Autowired
@Autowired
private
ClfOrderMappingRepository
clfOrderMappingRepository
;
private
ClfOrderMappingRepository
clfOrderMappingRepository
;
...
@@ -183,7 +174,6 @@ public class OrderServiceImpl implements OrderService{
...
@@ -183,7 +174,6 @@ public class OrderServiceImpl implements OrderService{
}
}
/**
/**
*
* @param approveVo
* @param approveVo
* @return Tuple<Boolean 审批结果 true 审批完成 false 审批操作失败, String msg 信息>
* @return Tuple<Boolean 审批结果 true 审批完成 false 审批操作失败, String msg 信息>
*/
*/
...
@@ -200,7 +190,7 @@ public class OrderServiceImpl implements OrderService{
...
@@ -200,7 +190,7 @@ public class OrderServiceImpl implements OrderService{
ClfOrderMapping
orderMapping
=
clfOrderMappingRepository
.
findByChannelOrderNoLastOne
(
approveVo
.
getChannelOrderNumber
());
ClfOrderMapping
orderMapping
=
clfOrderMappingRepository
.
findByChannelOrderNoLastOne
(
approveVo
.
getChannelOrderNumber
());
if
(
orderMapping
==
null
)
{
if
(
orderMapping
==
null
)
{
log
.
info
(
"approveOpt,审批失败,无订单 channelOrderNumber={}"
,
approveVo
.
getChannelOrderNumber
());
log
.
info
(
"approveOpt,审批失败,无订单 channelOrderNumber={}"
,
approveVo
.
getChannelOrderNumber
());
return
new
Tuple
(
false
,
"审批失败,无订单"
);
return
new
Tuple
(
false
,
"审批失败,无订单"
);
}
}
XUser
xUser
=
xyqbUserService
.
findXUserById
(
orderMapping
.
getQgUserId
());
XUser
xUser
=
xyqbUserService
.
findXUserById
(
orderMapping
.
getQgUserId
());
if
(
xUser
==
null
)
{
if
(
xUser
==
null
)
{
...
@@ -224,18 +214,23 @@ public class OrderServiceImpl implements OrderService{
...
@@ -224,18 +214,23 @@ public class OrderServiceImpl implements OrderService{
return
new
Tuple
(
false
,
"审批失败,clfChannelConfiguration渠道配置为空"
);
return
new
Tuple
(
false
,
"审批失败,clfChannelConfiguration渠道配置为空"
);
}
}
QuotaProduct
quotaProduct
=
null
;
QuotaProduct
quotaProduct
=
null
;
if
(!
orderMapping
.
getRegisteredFrom
().
equals
(
159886L
)){
Map
<
String
,
Object
>
data
=
null
;
if
(
orderMapping
.
getRegisteredFrom
().
equals
(
159886L
))
{
data
=
getApproveObjectMap
(
approveVo
,
orderMapping
,
xUser
,
fundFormat
,
9
);
}
else
{
quotaProduct
=
xyqbCenterService
.
getXyqbProduct
(
clfChannelConfiguration
.
getXyqbProductId
());
quotaProduct
=
xyqbCenterService
.
getXyqbProduct
(
clfChannelConfiguration
.
getXyqbProductId
());
if
(
quotaProduct
==
null
)
{
if
(
quotaProduct
==
null
)
{
return
new
Tuple
(
false
,
"审批失败,xyqb.quota_product配置为空("
.
concat
(
clfChannelConfiguration
.
getXyqbProductId
()).
concat
(
")"
));
return
new
Tuple
(
false
,
"审批失败,xyqb.quota_product配置为空("
.
concat
(
clfChannelConfiguration
.
getXyqbProductId
()).
concat
(
")"
));
}
}
data
=
getApproveObjectMap
(
approveVo
,
orderMapping
,
xUser
,
fundFormat
,
quotaProduct
.
getProductType
());
}
}
Map
<
String
,
Object
>
data
=
getApproveObjectMap
(
approveVo
,
orderMapping
,
xUser
,
fundFormat
,
quotaProduct
);
// 发起审批
// 发起审批
log
.
info
(
"[approveOpt] 向clotho发起审批,data={}"
,
JSONTools
.
serialize
(
data
));
log
.
info
(
"[approveOpt] 向clotho发起审批,data={}"
,
JSONTools
.
serialize
(
data
));
String
approveStringResult
=
clothoCenterService
.
approve
(
data
);
String
approveStringResult
=
clothoCenterService
.
approve
(
data
);
log
.
info
(
"[approveOpt] 返回结果 result={}"
,
approveStringResult
);
log
.
info
(
"[approveOpt] 返回结果 result={}"
,
approveStringResult
);
Boolean
corpPolicyValidate
=
false
;
Boolean
corpPolicyValidate
=
false
;
try
{
try
{
corpPolicyValidate
=
xyqbCenterService
.
validateCorpPolicy
(
Long
.
valueOf
(
fundId
),
new
Date
());
corpPolicyValidate
=
xyqbCenterService
.
validateCorpPolicy
(
Long
.
valueOf
(
fundId
),
new
Date
());
...
@@ -260,6 +255,7 @@ public class OrderServiceImpl implements OrderService{
...
@@ -260,6 +255,7 @@ public class OrderServiceImpl implements OrderService{
/**
/**
* 二次风控
* 二次风控
*
* @param channelOrderNumber
* @param channelOrderNumber
* @return
* @return
*/
*/
...
@@ -278,7 +274,7 @@ public class OrderServiceImpl implements OrderService{
...
@@ -278,7 +274,7 @@ public class OrderServiceImpl implements OrderService{
}
}
// 更新合同状态
// 更新合同状态
Contract
conscont
=
xyqbCenterService
.
findContractByUserId
(
orderMapping
.
getQgUserId
());
Contract
conscont
=
xyqbCenterService
.
findContractByUserId
(
orderMapping
.
getQgUserId
());
if
(
conscont
!=
null
)
{
if
(
conscont
!=
null
)
{
if
(
conscont
.
getGenerateStatus
()
!=
CONSCONT_STATUS
)
{
if
(
conscont
.
getGenerateStatus
()
!=
CONSCONT_STATUS
)
{
log
.
info
(
"secondAudit,合同状态不对,channelOrderNumber="
.
concat
(
channelOrderNumber
));
log
.
info
(
"secondAudit,合同状态不对,channelOrderNumber="
.
concat
(
channelOrderNumber
));
...
@@ -307,10 +303,10 @@ public class OrderServiceImpl implements OrderService{
...
@@ -307,10 +303,10 @@ public class OrderServiceImpl implements OrderService{
return
new
Tuple
(
false
,
"二次风控失败,clfChannelConfiguration渠道配置为空"
);
return
new
Tuple
(
false
,
"二次风控失败,clfChannelConfiguration渠道配置为空"
);
}
}
String
xyqbProductId
=
clfChannelConfiguration
.
getXyqbProductId
();
if
(
Objects
.
isNull
(
xyqbProductId
)){
//为null 是多订单的情况
bizType直接为9
if
(
clfChannelConfiguration
.
getRegisteredFrom
().
equals
(
159886L
))
{
//乐信渠道
bizType直接为9
result
=
clothoCenterService
.
orderAuditNotify
(
xUser
.
getUuid
(),
orderMapping
.
getLoanId
(),
true
,
9
);
result
=
clothoCenterService
.
orderAuditNotify
(
xUser
.
getUuid
(),
orderMapping
.
getLoanId
(),
true
,
9
);
}
else
{
}
else
{
QuotaProduct
quotaProduct
=
xyqbCenterService
.
getXyqbProduct
(
clfChannelConfiguration
.
getXyqbProductId
());
QuotaProduct
quotaProduct
=
xyqbCenterService
.
getXyqbProduct
(
clfChannelConfiguration
.
getXyqbProductId
());
if
(
quotaProduct
==
null
)
{
if
(
quotaProduct
==
null
)
{
...
@@ -364,7 +360,7 @@ public class OrderServiceImpl implements OrderService{
...
@@ -364,7 +360,7 @@ public class OrderServiceImpl implements OrderService{
// 更新合同状态
// 更新合同状态
Contract
conscont
=
xyqbCenterService
.
findContractByUserId
(
orderMapping
.
getQgUserId
());
Contract
conscont
=
xyqbCenterService
.
findContractByUserId
(
orderMapping
.
getQgUserId
());
if
(
conscont
==
null
)
{
if
(
conscont
==
null
)
{
// 合同为空 log表记录问题,UI用户查询
// 合同为空 log表记录问题,UI用户查询
optDetail
=
optDetail
.
concat
(
"合同未生成,请注意,需要不用身份证才能自动生成合同,"
);
optDetail
=
optDetail
.
concat
(
"合同未生成,请注意,需要不用身份证才能自动生成合同,"
);
...
@@ -385,7 +381,7 @@ public class OrderServiceImpl implements OrderService{
...
@@ -385,7 +381,7 @@ public class OrderServiceImpl implements OrderService{
log
.
error
(
"[order_lending][queryLendingRecordCount]查询待打款数量 失败,channelOrderNumber={}, data={}"
,
lendingFormModel
.
getChannelOrderNumber
(),
data
);
log
.
error
(
"[order_lending][queryLendingRecordCount]查询待打款数量 失败,channelOrderNumber={}, data={}"
,
lendingFormModel
.
getChannelOrderNumber
(),
data
);
}
}
log
.
info
(
"[order_lending][queryLendingRecordCount]查询待打款数量,channelOrderNumber={}, data={}"
,
lendingFormModel
.
getChannelOrderNumber
(),
data
);
log
.
info
(
"[order_lending][queryLendingRecordCount]查询待打款数量,channelOrderNumber={}, data={}"
,
lendingFormModel
.
getChannelOrderNumber
(),
data
);
if
(
data
!=
null
&&
data
.
size
()
>
0
)
{
if
(
data
!=
null
&&
data
.
size
()
>
0
)
{
if
(
Objects
.
nonNull
(
data
.
get
(
Constants
.
TOTAL_AMOUNT
))
&&
Objects
.
nonNull
(
data
.
get
(
Constants
.
TOTAL_COUNT
)))
{
if
(
Objects
.
nonNull
(
data
.
get
(
Constants
.
TOTAL_AMOUNT
))
&&
Objects
.
nonNull
(
data
.
get
(
Constants
.
TOTAL_COUNT
)))
{
result
=
this
.
clothoCenterService
.
lending
(
orderApprove
.
getFundId
(),
new
BigDecimal
(
String
.
valueOf
(
data
.
get
(
Constants
.
TOTAL_AMOUNT
))),
Integer
.
valueOf
(
String
.
valueOf
(
data
.
get
(
Constants
.
TOTAL_COUNT
))));
result
=
this
.
clothoCenterService
.
lending
(
orderApprove
.
getFundId
(),
new
BigDecimal
(
String
.
valueOf
(
data
.
get
(
Constants
.
TOTAL_AMOUNT
))),
Integer
.
valueOf
(
String
.
valueOf
(
data
.
get
(
Constants
.
TOTAL_COUNT
))));
log
.
info
(
"[order_lending]直投打款,channelOrderNumber={}, result={}"
,
lendingFormModel
.
getChannelOrderNumber
(),
result
);
log
.
info
(
"[order_lending]直投打款,channelOrderNumber={}, result={}"
,
lendingFormModel
.
getChannelOrderNumber
(),
result
);
...
@@ -442,46 +438,46 @@ public class OrderServiceImpl implements OrderService{
...
@@ -442,46 +438,46 @@ public class OrderServiceImpl implements OrderService{
*/
*/
@OperationAnno
(
channelNo
=
"#this[0]"
,
opt
=
OptEnumName
.
PRE_CANCEL
,
succSPEL
=
"#this.key"
,
optDetailSPEL
=
"#this.value"
)
@OperationAnno
(
channelNo
=
"#this[0]"
,
opt
=
OptEnumName
.
PRE_CANCEL
,
succSPEL
=
"#this.key"
,
optDetailSPEL
=
"#this.value"
)
@Override
@Override
public
Tuple
<
Boolean
,
String
>
cancelPreLoan
(
String
channelOrderNumber
)
{
public
Tuple
<
Boolean
,
String
>
cancelPreLoan
(
String
channelOrderNumber
)
{
boolean
cancel
=
true
;
boolean
cancel
=
true
;
String
token
=
null
;
String
token
=
null
;
String
result
=
""
;
String
result
=
""
;
ClfOrderMapping
orderMapping
=
clfOrderMappingRepository
.
findByChannelOrderNoLastOne
(
channelOrderNumber
);
ClfOrderMapping
orderMapping
=
clfOrderMappingRepository
.
findByChannelOrderNoLastOne
(
channelOrderNumber
);
if
(
orderMapping
==
null
)
{
if
(
orderMapping
==
null
)
{
log
.
info
(
"cancelPreLoan,贷前关单失败,无订单 channelOrderNumber={}"
,
channelOrderNumber
);
log
.
info
(
"cancelPreLoan,贷前关单失败,无订单 channelOrderNumber={}"
,
channelOrderNumber
);
return
new
Tuple
<>(
false
,
"贷前关单失败,无订单"
);
return
new
Tuple
<>(
false
,
"贷前关单失败,无订单"
);
}
}
try
{
try
{
Long
id
=
cancelPreLoanRepository
.
cancelPreLoan
(
orderMapping
.
getApplyNo
());
Long
id
=
cancelPreLoanRepository
.
cancelPreLoan
(
orderMapping
.
getApplyNo
());
String
response
=
opCenter
.
getToken
(
auth
);
String
response
=
opCenter
.
getToken
(
auth
);
JSONObject
responseJ
=
JSONObject
.
parseObject
(
response
);
JSONObject
responseJ
=
JSONObject
.
parseObject
(
response
);
if
(
responseJ
!=
null
&&
responseJ
.
containsKey
(
Constants
.
DATA
))
{
if
(
responseJ
!=
null
&&
responseJ
.
containsKey
(
Constants
.
DATA
))
{
JSONObject
data
=
(
JSONObject
)
responseJ
.
get
(
Constants
.
DATA
);
JSONObject
data
=
(
JSONObject
)
responseJ
.
get
(
Constants
.
DATA
);
if
(
data
!=
null
&&
data
.
containsKey
(
Constants
.
TOKEN
))
{
if
(
data
!=
null
&&
data
.
containsKey
(
Constants
.
TOKEN
))
{
token
=
String
.
valueOf
(
data
.
get
(
Constants
.
TOKEN
));
token
=
String
.
valueOf
(
data
.
get
(
Constants
.
TOKEN
));
}
}
}
}
HashMap
<
Object
,
Object
>
data
=
Maps
.
newHashMap
();
HashMap
<
Object
,
Object
>
data
=
Maps
.
newHashMap
();
Long
loanId
=
orderMapping
.
getLoanId
();
Long
loanId
=
orderMapping
.
getLoanId
();
if
(
Objects
.
nonNull
(
loanId
))
{
if
(
Objects
.
nonNull
(
loanId
))
{
data
.
put
(
"loanIds"
,
loanId
);
data
.
put
(
"loanIds"
,
loanId
);
result
=
clothoCenterService
.
cancelPreLoanHasLoanId
(
data
,
token
);
result
=
clothoCenterService
.
cancelPreLoanHasLoanId
(
data
,
token
);
}
else
{
}
else
{
data
.
put
(
"data"
,
id
);
data
.
put
(
"data"
,
id
);
data
.
put
(
"remark"
,
"贷前关单"
);
data
.
put
(
"remark"
,
"贷前关单"
);
result
=
clothoCenterService
.
cancelPreLoan
(
data
,
token
);
result
=
clothoCenterService
.
cancelPreLoan
(
data
,
token
);
}
}
JSONObject
resp
=
JSONObject
.
parseObject
(
result
);
JSONObject
resp
=
JSONObject
.
parseObject
(
result
);
if
(
Objects
.
isNull
(
resp
)
||
Objects
.
isNull
(
resp
.
get
(
Constants
.
SUCCESS
))
||
!
Constants
.
TRUE
.
equals
(
String
.
valueOf
(
resp
.
get
(
Constants
.
SUCCESS
))))
{
if
(
Objects
.
isNull
(
resp
)
||
Objects
.
isNull
(
resp
.
get
(
Constants
.
SUCCESS
))
||
!
Constants
.
TRUE
.
equals
(
String
.
valueOf
(
resp
.
get
(
Constants
.
SUCCESS
))))
{
cancel
=
false
;
cancel
=
false
;
}
}
}
catch
(
Exception
e
)
{
}
catch
(
Exception
e
)
{
cancel
=
false
;
cancel
=
false
;
log
.
error
(
e
.
getMessage
(),
e
);
log
.
error
(
e
.
getMessage
(),
e
);
}
}
return
new
Tuple
<>(
cancel
,
cancel
?
"贷前关单成功"
:
"贷前关单失败"
);
return
new
Tuple
<>(
cancel
,
cancel
?
"贷前关单成功"
:
"贷前关单失败"
);
}
}
/**
/**
...
@@ -492,37 +488,39 @@ public class OrderServiceImpl implements OrderService{
...
@@ -492,37 +488,39 @@ public class OrderServiceImpl implements OrderService{
*/
*/
@OperationAnno
(
channelNo
=
"#this[0]"
,
opt
=
OptEnumName
.
LOAN_CANCEL
,
succSPEL
=
"#this.key"
,
optDetailSPEL
=
"#this.value"
)
@OperationAnno
(
channelNo
=
"#this[0]"
,
opt
=
OptEnumName
.
LOAN_CANCEL
,
succSPEL
=
"#this.key"
,
optDetailSPEL
=
"#this.value"
)
@Override
@Override
public
Tuple
<
Boolean
,
String
>
cancelAfterLoan
(
String
channelOrderNumber
)
{
public
Tuple
<
Boolean
,
String
>
cancelAfterLoan
(
String
channelOrderNumber
)
{
return
huijinsuoCloseOrder72
(
channelOrderNumber
);
return
huijinsuoCloseOrder72
(
channelOrderNumber
);
}
}
/**
/**
* 惠金所 72 小时提现超时
* 惠金所 72 小时提现超时
*
* @param channelOrderNumber
* @param channelOrderNumber
* @return
* @return
*/
*/
private
Tuple
<
Boolean
,
String
>
huijinsuoCloseOrder72
(
String
channelOrderNumber
)
{
private
Tuple
<
Boolean
,
String
>
huijinsuoCloseOrder72
(
String
channelOrderNumber
)
{
ClfOrderMapping
orderMapping
=
this
.
clfOrderMappingRepository
.
findByChannelOrderNoLastOne
(
channelOrderNumber
);
ClfOrderMapping
orderMapping
=
this
.
clfOrderMappingRepository
.
findByChannelOrderNoLastOne
(
channelOrderNumber
);
if
(
orderMapping
==
null
)
{
if
(
orderMapping
==
null
)
{
log
.
info
(
"cancelAfterLoan,贷后关单失败,无订单 ={}"
,
channelOrderNumber
);
log
.
info
(
"cancelAfterLoan,贷后关单失败,无订单 ={}"
,
channelOrderNumber
);
return
new
Tuple
<>(
false
,
"贷后关单失败,无订单"
);
return
new
Tuple
<>(
false
,
"贷后关单失败,无订单"
);
}
}
if
(
orderMapping
.
getLoanId
()
==
null
)
{
if
(
orderMapping
.
getLoanId
()
==
null
)
{
log
.
info
(
"cancelAfterLoan,贷后关单失败,loanId为空,channelOrderNumber={}"
,
channelOrderNumber
);
log
.
info
(
"cancelAfterLoan,贷后关单失败,loanId为空,channelOrderNumber={}"
,
channelOrderNumber
);
return
new
Tuple
<>(
false
,
"贷后关单失败,loanId为空"
);
return
new
Tuple
<>(
false
,
"贷后关单失败,loanId为空"
);
}
}
ConcurrentMap
<
Object
,
Object
>
data
=
Maps
.
newConcurrentMap
();
ConcurrentMap
<
Object
,
Object
>
data
=
Maps
.
newConcurrentMap
();
data
.
put
(
"loanId"
,
orderMapping
.
getLoanId
());
data
.
put
(
"loanId"
,
orderMapping
.
getLoanId
());
data
.
put
(
"userId"
,
orderMapping
.
getQgUserId
());
data
.
put
(
"userId"
,
orderMapping
.
getQgUserId
());
data
.
put
(
"flowNo"
,
UUID
.
randomUUID
());
data
.
put
(
"flowNo"
,
UUID
.
randomUUID
());
String
id
=
clothoCenterService
.
cancelAfterLoan
(
data
);
String
id
=
clothoCenterService
.
cancelAfterLoan
(
data
);
return
new
Tuple
<>(
true
,
"贷后关单成功"
);
return
new
Tuple
<>(
true
,
"贷后关单成功"
);
}
}
/**
/**
* 查询订单历史推送记录
* 查询订单历史推送记录
*
* @param channelOrderNumber
* @param channelOrderNumber
* @return
* @return
*/
*/
...
@@ -587,6 +585,7 @@ public class OrderServiceImpl implements OrderService{
...
@@ -587,6 +585,7 @@ public class OrderServiceImpl implements OrderService{
/**
/**
* 查询还款计划
* 查询还款计划
*
* @param channelOrderNumber
* @param channelOrderNumber
* @param loanId
* @param loanId
* @return
* @return
...
@@ -624,7 +623,7 @@ public class OrderServiceImpl implements OrderService{
...
@@ -624,7 +623,7 @@ public class OrderServiceImpl implements OrderService{
@OperationAnno
(
channelNo
=
"#this[0]"
,
opt
=
OptEnumName
.
ALL_REPAID
,
succSPEL
=
"#this.key"
,
optDetailSPEL
=
"#this.value"
)
@OperationAnno
(
channelNo
=
"#this[0]"
,
opt
=
OptEnumName
.
ALL_REPAID
,
succSPEL
=
"#this.key"
,
optDetailSPEL
=
"#this.value"
)
@Override
@Override
public
Tuple
<
Boolean
,
String
>
settle
(
String
channelOrderNumber
)
{
public
Tuple
<
Boolean
,
String
>
settle
(
String
channelOrderNumber
)
{
ClfOrderMapping
orderMapping
=
clfCenterService
.
findOrderMappingByChannelOrderNo
(
channelOrderNumber
);
ClfOrderMapping
orderMapping
=
clfCenterService
.
findOrderMappingByChannelOrderNo
(
channelOrderNumber
);
if
(
orderMapping
!=
null
&&
StringUtils
.
isNotEmpty
(
orderMapping
.
getApplyNo
()))
{
if
(
orderMapping
!=
null
&&
StringUtils
.
isNotEmpty
(
orderMapping
.
getApplyNo
()))
{
...
@@ -646,6 +645,7 @@ public class OrderServiceImpl implements OrderService{
...
@@ -646,6 +645,7 @@ public class OrderServiceImpl implements OrderService{
/**
/**
* 查询订单状态
* 查询订单状态
*
* @param currentStatus
* @param currentStatus
* @param orderMapping
* @param orderMapping
* @return
* @return
...
@@ -659,25 +659,25 @@ public class OrderServiceImpl implements OrderService{
...
@@ -659,25 +659,25 @@ public class OrderServiceImpl implements OrderService{
buttonBeforeCancel
.
setAction
(
OrderVo
.
OptButtonAction
.
cancel
.
name
());
buttonBeforeCancel
.
setAction
(
OrderVo
.
OptButtonAction
.
cancel
.
name
());
buttonBeforeCancel
.
setName
(
OrderVo
.
OptButtonAction
.
cancel
.
getDesc
());
buttonBeforeCancel
.
setName
(
OrderVo
.
OptButtonAction
.
cancel
.
getDesc
());
switch
(
currentStatus
.
getStatus
())
{
switch
(
currentStatus
.
getStatus
())
{
case
"CREDIT_SUCC"
:
case
"CREDIT_SUCC"
:
return
getCreditSuccessTuple
(
tuple
,
buttonList
);
return
getCreditSuccessTuple
(
tuple
,
buttonList
);
case
"APPROVE_ING"
:
case
"APPROVE_ING"
:
return
getApprovingTuple
(
orderMapping
,
tuple
,
buttonList
);
return
getApprovingTuple
(
orderMapping
,
tuple
,
buttonList
);
case
"REJECT"
:
case
"REJECT"
:
tuple
.
setKey
(
"审批拒绝"
);
tuple
.
setKey
(
"审批拒绝"
);
tuple
.
setValue
(
buttonList
);
tuple
.
setValue
(
buttonList
);
return
tuple
;
return
tuple
;
case
"FUAD_ASSIFN_SUCC"
:
case
"FUAD_ASSIFN_SUCC"
:
tuple
.
setKey
(
"审批通过,待提现"
);
tuple
.
setKey
(
"审批通过,待提现"
);
buttonList
.
add
(
buttonBeforeCancel
);
buttonList
.
add
(
buttonBeforeCancel
);
tuple
.
setValue
(
buttonList
);
tuple
.
setValue
(
buttonList
);
return
tuple
;
return
tuple
;
case
"WITHDRAW_APPROVING"
:
case
"WITHDRAW_APPROVING"
:
return
getWithdrawApprovingTuple
(
tuple
,
buttonList
,
buttonBeforeCancel
);
return
getWithdrawApprovingTuple
(
tuple
,
buttonList
,
buttonBeforeCancel
);
case
"WITHDRAW"
:
case
"WITHDRAW"
:
case
"PAY_ING"
:
case
"PAY_ING"
:
return
getWithdrawTuple
(
orderMapping
,
tuple
,
buttonList
,
buttonBeforeCancel
);
return
getWithdrawTuple
(
orderMapping
,
tuple
,
buttonList
,
buttonBeforeCancel
);
case
"FUND_WAITING_WITHDRAW"
:
case
"FUND_WAITING_WITHDRAW"
:
tuple
.
setKey
(
"放款到存管账户,待存管提现"
);
tuple
.
setKey
(
"放款到存管账户,待存管提现"
);
OrderVo
.
OptButton
cancelAfterButton0
=
new
OrderVo
.
OptButton
();
OrderVo
.
OptButton
cancelAfterButton0
=
new
OrderVo
.
OptButton
();
cancelAfterButton0
.
setAction
(
OrderVo
.
OptButtonAction
.
cancel_after
.
name
());
cancelAfterButton0
.
setAction
(
OrderVo
.
OptButtonAction
.
cancel_after
.
name
());
...
@@ -685,26 +685,26 @@ public class OrderServiceImpl implements OrderService{
...
@@ -685,26 +685,26 @@ public class OrderServiceImpl implements OrderService{
buttonList
.
add
(
cancelAfterButton0
);
buttonList
.
add
(
cancelAfterButton0
);
tuple
.
setValue
(
buttonList
);
tuple
.
setValue
(
buttonList
);
return
tuple
;
return
tuple
;
case
"FUND_SUCC"
:
case
"FUND_SUCC"
:
tuple
.
setKey
(
"放款成功"
);
tuple
.
setKey
(
"放款成功"
);
return
tuple
;
return
tuple
;
case
"FUND_WITHDRAW_SUCC"
:
case
"FUND_WITHDRAW_SUCC"
:
tuple
.
setKey
(
"存管提现成功"
);
tuple
.
setKey
(
"存管提现成功"
);
tuple
.
setValue
(
buttonList
);
tuple
.
setValue
(
buttonList
);
return
tuple
;
return
tuple
;
case
"FUND_FAIL"
:
case
"FUND_FAIL"
:
tuple
.
setKey
(
"放款失败"
);
tuple
.
setKey
(
"放款失败"
);
tuple
.
setValue
(
buttonList
);
tuple
.
setValue
(
buttonList
);
return
tuple
;
return
tuple
;
case
"ALL_REPAID"
:
case
"ALL_REPAID"
:
tuple
.
setKey
(
"已结清"
);
tuple
.
setKey
(
"已结清"
);
tuple
.
setValue
(
buttonList
);
tuple
.
setValue
(
buttonList
);
return
tuple
;
return
tuple
;
case
"CANCEL_LOAN"
:
case
"CANCEL_LOAN"
:
tuple
.
setKey
(
"已关单"
);
tuple
.
setKey
(
"已关单"
);
tuple
.
setValue
(
buttonList
);
tuple
.
setValue
(
buttonList
);
return
tuple
;
return
tuple
;
case
"CANCEL_AFTER_LOAN"
:
case
"CANCEL_AFTER_LOAN"
:
tuple
.
setKey
(
"存管提现超时或贷后关单"
);
tuple
.
setKey
(
"存管提现超时或贷后关单"
);
tuple
.
setValue
(
buttonList
);
tuple
.
setValue
(
buttonList
);
return
tuple
;
return
tuple
;
...
@@ -800,20 +800,16 @@ public class OrderServiceImpl implements OrderService{
...
@@ -800,20 +800,16 @@ public class OrderServiceImpl implements OrderService{
return
calendar
;
return
calendar
;
}
}
private
Map
<
String
,
Object
>
getApproveObjectMap
(
ApproveVo
approveVo
,
ClfOrderMapping
orderMapping
,
XUser
xUser
,
String
fundFormat
,
QuotaProduct
quotaProduct
)
{
private
Map
<
String
,
Object
>
getApproveObjectMap
(
ApproveVo
approveVo
,
ClfOrderMapping
orderMapping
,
XUser
xUser
,
String
fundFormat
,
Integer
bizType
)
{
Map
<
String
,
Object
>
data
=
new
HashMap
<>(
16
);
Map
<
String
,
Object
>
data
=
new
HashMap
<>(
16
);
data
.
put
(
"code"
,
0
);
data
.
put
(
"code"
,
0
);
data
.
put
(
"msg"
,
"success"
);
data
.
put
(
"msg"
,
"success"
);
data
.
put
(
"bizChannel"
,
orderMapping
.
getRegisteredFrom
());
data
.
put
(
"bizChannel"
,
orderMapping
.
getRegisteredFrom
());
data
.
put
(
"uuid"
,
xUser
.
getUuid
());
data
.
put
(
"uuid"
,
xUser
.
getUuid
());
data
.
put
(
"bizNo"
,
orderMapping
.
getApplyNo
());
data
.
put
(
"bizNo"
,
orderMapping
.
getApplyNo
());
if
(
Objects
.
isNull
(
quotaProduct
)){
data
.
put
(
"bizType"
,
"9"
);
data
.
put
(
"bizType"
,
bizType
);
}
else
{
data
.
put
(
"bizType"
,
quotaProduct
.
getProductType
());
}
data
.
put
(
"auditResult"
,
approveVo
.
getIsPass
());
data
.
put
(
"auditResult"
,
approveVo
.
getIsPass
());
data
.
put
(
"amount"
,
approveVo
.
getAmount
());
data
.
put
(
"amount"
,
approveVo
.
getAmount
());
data
.
put
(
"deadLine"
,
getCalendar
().
getTime
().
getTime
());
data
.
put
(
"deadLine"
,
getCalendar
().
getTime
().
getTime
());
...
...
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