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
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
胡慧
cash-loan-flow-boss
Commits
1a1d5ffa
Commit
1a1d5ffa
authored
Sep 12, 2019
by
suntao
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
二次风控回调
parent
27fe8341
Changes
6
Show whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
195 additions
and
88 deletions
+195
-88
OrderService.java
...roup/cashloanflowboss/api/order/service/OrderService.java
+31
-19
FundLending.java
...ntgroup/cashloanflowboss/spi/xyqb/entity/FundLending.java
+0
-51
WaitingFundingCorpOperatePeople.java
...boss/spi/xyqb/entity/WaitingFundingCorpOperatePeople.java
+82
-0
FundingCorpProgress.java
.../cashloanflowboss/spi/xyqb/model/FundingCorpProgress.java
+41
-0
WaitingFundingCorpOperatePeopleRepository.java
...repository/WaitingFundingCorpOperatePeopleRepository.java
+32
-0
XYQBCenterService.java
.../cashloanflowboss/spi/xyqb/service/XYQBCenterService.java
+9
-18
No files found.
src/main/java/cn/quantgroup/cashloanflowboss/api/order/service/OrderService.java
View file @
1a1d5ffa
package
cn
.
quantgroup
.
cashloanflowboss
.
api
.
order
.
service
;
import
cn.quantgroup.cashloanflowboss.api.optlog.entity.OptHistoryLog
;
import
cn.quantgroup.cashloanflowboss.api.optlog.service.OptHistoryLogService
;
import
cn.quantgroup.cashloanflowboss.api.user.model.UserDetailInfo
;
import
cn.quantgroup.cashloanflowboss.api.user.service.UserService
;
import
cn.quantgroup.cashloanflowboss.spi.clf.entity.CallbackFailRecord
;
import
cn.quantgroup.cashloanflowboss.spi.clf.model.LoanProgress
;
import
cn.quantgroup.cashloanflowboss.spi.clf.model.CallbackRouter
;
import
cn.quantgroup.cashloanflowboss.spi.clf.model.KANoticeType
;
import
cn.quantgroup.cashloanflowboss.api.channel.entity.ChannelConf
;
import
cn.quantgroup.cashloanflowboss.api.channel.repository.ChannelConfRepository
;
...
...
@@ -25,11 +21,10 @@ import cn.quantgroup.cashloanflowboss.spi.clf.repository.ClfOrderMappingReposito
import
cn.quantgroup.cashloanflowboss.spi.clf.service.CLFCenterService
;
import
cn.quantgroup.cashloanflowboss.spi.clotho.service.ClothoCenterService
;
import
cn.quantgroup.cashloanflowboss.spi.jolyne.JolyneCenter
;
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.entity.WaitingFundingCorpOperatePeople
;
import
cn.quantgroup.cashloanflowboss.spi.xyqb.service.XYQBCenterService
;
import
cn.quantgroup.cashloanflowboss.utils.JSONTools
;
import
cn.quantgroup.user.retbean.XUser
;
...
...
@@ -336,8 +331,17 @@ public class OrderService {
// 更新合同状态
Contract
conscont
=
xyqbCenterService
.
findContractByUserId
(
orderMapping
.
getQgUserId
());
if
(
conscont
!=
null
)
{
if
(
conscont
.
getGenerateStatus
()
!=
2
)
{
log
.
info
(
"secondAudit,合同为空,channelOrderNumber="
.
concat
(
channelOrderNumber
));
optHistoryLog
.
setOptName
(
"二次审批操作"
);
optHistoryLog
.
setOptLogDetail
(
"合同未生成,请更换新的身份证尝试"
);
optHistoryLog
.
setOptResult
(
false
);
optHistoryLog
.
setCreateTime
(
new
Date
());
optHistoryLogService
.
save
(
optHistoryLog
);
conscont
.
setGenerateStatus
(
2
);
xyqbCenterService
.
saveContract
(
conscont
);
}
}
else
{
// 合同为空 log表记录问题,UI用户查询
log
.
info
(
"secondAudit,合同为空,channelOrderNumber="
.
concat
(
channelOrderNumber
));
...
...
@@ -388,12 +392,12 @@ public class OrderService {
}
// 更新待放款时间(5分钟之前)
FundLending
fundLending
=
xyqbCenterService
.
findFundLending
ByLoanId
(
orderMapping
.
getLoanId
());
if
(
fundLending
!=
null
)
{
LocalDateTime
localDateTime
=
LocalDateTime
.
now
();
localDateTime
.
plusMinutes
(-
5
L
);
fundLending
.
setCreateTime
(
new
Date
(
localDateTime
.
atZone
(
ZoneId
.
systemDefault
()).
toInstant
().
toEpochMilli
()));
xyqbCenterService
.
save
FundLending
(
fundLending
);
WaitingFundingCorpOperatePeople
waitingFundingCorpOperatePeopledb
=
xyqbCenterService
.
findWaitingFundingCorpOperatePeople
ByLoanId
(
orderMapping
.
getLoanId
());
if
(
waitingFundingCorpOperatePeopledb
!=
null
)
{
LocalDateTime
localDateTime
=
waitingFundingCorpOperatePeopledb
.
getCreatedAt
().
toLocalDateTime
();
LocalDateTime
createdAt
=
localDateTime
.
plusMinutes
(-
6
L
);
waitingFundingCorpOperatePeopledb
.
setCreatedAt
(
new
Timestamp
(
createdAt
.
atZone
(
ZoneId
.
systemDefault
()).
toInstant
().
toEpochMilli
()));
xyqbCenterService
.
save
WaitingFundingCorpOperatePeople
(
waitingFundingCorpOperatePeopledb
);
}
optHistoryLog
.
setOptLogDetail
(
"二次风控操作成功"
);
...
...
@@ -436,7 +440,7 @@ public class OrderService {
Contract
conscont
=
xyqbCenterService
.
findContractByUserId
(
orderMapping
.
getQgUserId
());
if
(
conscont
==
null
)
{
// 合同为空 log表记录问题,UI用户查询
optDetail
=
optDetail
.
concat
(
"合同未生成,请注意,需要不用身份证才能自动生成合同"
);
optDetail
=
optDetail
.
concat
(
"合同未生成,请注意,需要不用身份证才能自动生成合同
,
"
);
}
...
...
@@ -447,7 +451,7 @@ public class OrderService {
}
else
{
// p2p
Map
data
=
this
.
xyqbCenterService
.
queryLendingRecordCount
(
orderApprove
.
getFundId
(),
0
);
Map
data
=
this
.
xyqbCenterService
.
queryLendingRecordCount
(
Long
.
valueOf
(
orderApprove
.
getFundId
())
);
log
.
info
(
"[order_lending][queryLendingRecordCount]查询待打款数量,channelOrderNumber={}, data={}"
,
lendingFormModel
.
getChannelOrderNumber
(),
data
);
if
(
data
.
size
()
>
0
)
{
if
(
Objects
.
nonNull
(
data
.
get
(
"totalAmount"
))
&&
Objects
.
nonNull
(
data
.
get
(
"totalCount"
)))
{
...
...
@@ -458,10 +462,10 @@ public class OrderService {
}
if
(
result
)
{
optDetail
=
optDetail
.
concat
(
"
,
放款操作成功"
);
optDetail
=
optDetail
.
concat
(
"放款操作成功"
);
optHistoryLog
.
setOptResult
(
true
);
}
else
{
optDetail
=
optDetail
.
concat
(
"
,
放款操作失败"
);
optDetail
=
optDetail
.
concat
(
"放款操作失败"
);
optHistoryLog
.
setOptResult
(
false
);
}
log
.
info
(
"[order_lending]放款操作 最后结果,channelOrderNumber={}, result={}"
,
lendingFormModel
.
getChannelOrderNumber
(),
result
);
...
...
@@ -738,11 +742,19 @@ public class OrderService {
buttonList
.
add
(
buttonBeforeCancel
);
tuple
.
setValue
(
buttonList
);
return
tuple
;
case
"FUND_WAITING_WITHDRAW"
:
tuple
.
setKey
(
"放款到存管账户,待二次提现"
);
OrderVo
.
OptButton
cancelAfterButton0
=
new
OrderVo
.
OptButton
();
cancelAfterButton0
.
setAction
(
OrderVo
.
OptButtonAction
.
cancel_after
.
name
());
cancelAfterButton0
.
setName
(
OrderVo
.
OptButtonAction
.
cancel_after
.
getDesc
());
buttonList
.
add
(
cancelAfterButton0
);
tuple
.
setValue
(
buttonList
);
return
tuple
;
case
"FUND_SUCC"
:
OrderApprove
orderApprove2
=
orderApproveRepository
.
findByCreditNumber
(
orderMapping
.
getApplyNo
());
if
(
orderApprove2
!=
null
&&
orderApprove2
.
getFundType
()
!=
0
)
{
// 是存管
tuple
.
setKey
(
"放款到存管,待提现"
);
tuple
.
setKey
(
"放款到存管,待
二次
提现"
);
OrderVo
.
OptButton
cancelAfterButton
=
new
OrderVo
.
OptButton
();
cancelAfterButton
.
setAction
(
OrderVo
.
OptButtonAction
.
cancel_after
.
name
());
cancelAfterButton
.
setName
(
OrderVo
.
OptButtonAction
.
cancel_after
.
getDesc
());
...
...
src/main/java/cn/quantgroup/cashloanflowboss/spi/xyqb/entity/FundLending.java
deleted
100644 → 0
View file @
27fe8341
package
cn
.
quantgroup
.
cashloanflowboss
.
spi
.
xyqb
.
entity
;
import
lombok.Data
;
import
javax.persistence.*
;
import
java.math.BigDecimal
;
import
java.util.Date
;
/**
* Created by WeiWei on 2019/8/12.
*/
@Data
@Entity
@Table
(
name
=
"waiting_funding_corp_operate_people"
)
public
class
FundLending
{
@Id
@GeneratedValue
(
strategy
=
GenerationType
.
AUTO
)
private
Long
id
;
/**
* 借款订单号
*/
@Column
(
name
=
"loan_application_history_id"
)
private
Long
loanId
;
/**
* 放款金额
*/
@Column
(
name
=
"fund_amount"
)
private
BigDecimal
amount
;
/**
* 资方ID
*/
@Column
(
name
=
"funding_corp_id"
)
private
Integer
fundId
;
/**
* 进度
*/
@Column
(
name
=
"funding_corp_progress"
)
private
Integer
progress
;
/**
* 创建时间
*/
@Column
(
name
=
"created_at"
)
private
Date
createTime
;
}
src/main/java/cn/quantgroup/cashloanflowboss/spi/xyqb/entity/WaitingFundingCorpOperatePeople.java
0 → 100644
View file @
1a1d5ffa
package
cn
.
quantgroup
.
cashloanflowboss
.
spi
.
xyqb
.
entity
;
import
cn.quantgroup.cashloanflowboss.spi.xyqb.model.FundingCorpProgress
;
import
lombok.Getter
;
import
lombok.Setter
;
import
lombok.ToString
;
import
javax.persistence.*
;
import
java.io.Serializable
;
import
java.math.BigDecimal
;
import
java.sql.Timestamp
;
/**
* Created by Miraculous on 16/4/11.
*/
@Entity
@Getter
@Setter
@ToString
@Table
(
name
=
"waiting_funding_corp_operate_people"
)
public
class
WaitingFundingCorpOperatePeople
implements
Serializable
{
private
static
final
long
serialVersionUID
=
-
1L
;
@Id
@GeneratedValue
(
strategy
=
GenerationType
.
IDENTITY
)
@Column
(
name
=
"id"
)
private
Long
id
;
@Column
(
name
=
"loan_application_history_id"
)
private
Long
loanApplicationHistoryId
;
@Column
(
name
=
"channel_id"
)
private
Long
channelId
;
@Column
(
name
=
"fund_amount"
)
private
BigDecimal
fundAmount
;
@Column
(
name
=
"funding_corp_progress"
)
private
FundingCorpProgress
fundingCorpProgress
=
FundingCorpProgress
.
WAITING_FUNDING_CORP_REVIEW
;
@Column
(
name
=
"is_enable"
)
private
Boolean
isEnable
;
@Column
(
name
=
"funding_corp_id"
)
private
Long
fundingCorpId
;
@Column
(
name
=
"corp_loan_id"
)
private
String
corpLoanId
;
@Column
(
name
=
"request_id"
)
private
String
requestId
;
@Column
(
name
=
"created_at"
)
private
Timestamp
createdAt
;
public
enum
FundStatus
{
SUCC
(
"SUCC"
,
"放款成功"
),
FAIL
(
"FAIL"
,
"放款失败"
),
HANDING
(
"HANDING"
,
"处理中"
),
DEPOSITORY_SUCC
(
"DEPOSITORY_SUCC"
,
"存管提现成功"
),
DEPOSITORY_FAIL
(
"DEPOSITORY_FAIL"
,
"存管提现失败"
),
DEPOSITORY_HANDING
(
"DEPOSITORY_HANDING"
,
"存管提现中"
);
private
String
status
;
private
String
desc
;
FundStatus
(
String
status
,
String
desc
)
{
this
.
status
=
status
;
this
.
desc
=
desc
;
}
public
String
getStatus
()
{
return
status
;
}
public
String
getDesc
()
{
return
desc
;
}
}
}
src/main/java/cn/quantgroup/cashloanflowboss/spi/xyqb/model/FundingCorpProgress.java
0 → 100644
View file @
1a1d5ffa
package
cn
.
quantgroup
.
cashloanflowboss
.
spi
.
xyqb
.
model
;
/**
* Created by Miraculous on 16/4/11.
*/
public
enum
FundingCorpProgress
{
WAITING_FUNDING_CORP_REVIEW
(
"等待资金方审核"
),
FUNDING_CORP_RESPONSE_ERROR
(
"资金方审核通信失败"
),
FUNDING_CORP_EMPTY_RESPONSE
(
"资金方审核返回空结果"
),
FUNDING_CORP_REVIEW_REJECT
(
"资金方审核失败"
),
FUNDING_CORP_AGREE
(
"资金方同意放款"
),
FUNDING_CORP_FUNDED
(
"资金方已放款"
),
FUNDING_CORP_FUNDED_FAIL
(
"资金方放款失败"
),
FUNDING_CORP_REVIEW_ERROR
(
"资金方审核异常"
),
FUNDING_CORP_REVIEW_8
(
"888"
),
FUNDING_CORP_REVIEW_FETCHING
(
"正在获取资金方放款结果"
),
//已经使用
IN_LOAN_QUEUE
(
"在放款队列中"
);
//已经使用
String
description
;
FundingCorpProgress
(
String
descrption
)
{
this
.
description
=
descrption
;
}
public
String
getDescription
()
{
return
description
;
}
public
void
setDescription
(
String
description
)
{
this
.
description
=
description
;
}
@Override
public
String
toString
()
{
final
StringBuilder
sb
=
new
StringBuilder
(
"FundingCorpProgress{"
);
sb
.
append
(
"description='"
).
append
(
description
).
append
(
'\''
);
sb
.
append
(
'}'
);
return
sb
.
toString
();
}
}
\ No newline at end of file
src/main/java/cn/quantgroup/cashloanflowboss/spi/xyqb/repository/
FundLending
Repository.java
→
src/main/java/cn/quantgroup/cashloanflowboss/spi/xyqb/repository/
WaitingFundingCorpOperatePeople
Repository.java
View file @
1a1d5ffa
package
cn
.
quantgroup
.
cashloanflowboss
.
spi
.
xyqb
.
repository
;
import
cn.quantgroup.cashloanflowboss.spi.xyqb.entity.
FundLending
;
import
cn.quantgroup.cashloanflowboss.spi.xyqb.entity.
WaitingFundingCorpOperatePeople
;
import
cn.quantgroup.cashloanflowboss.spi.xyqb.source.XYQBDataSource
;
import
org.hibernate.annotations.SQLUpdate
;
import
org.springframework.data.jpa.repository.Modifying
;
import
org.springframework.data.jpa.repository.JpaRepository
;
import
org.springframework.data.jpa.repository.Query
;
import
org.springframework.data.repository.CrudRepository
;
import
org.springframework.data.repository.query.Param
;
import
org.springframework.stereotype.Repository
;
import
org.springframework.transaction.annotation.Transactional
;
import
java.util.Date
;
import
java.util.Map
;
/**
...
...
@@ -18,30 +15,18 @@ import java.util.Map;
*/
@XYQBDataSource
@Repository
public
interface
FundLendingRepository
extends
CrudRepository
<
FundLending
,
Integer
>
{
public
interface
WaitingFundingCorpOperatePeopleRepository
extends
CrudRepository
<
WaitingFundingCorpOperatePeople
,
Long
>,
JpaRepository
<
WaitingFundingCorpOperatePeople
,
Long
>
{
/**
* 更新资方待放款创建时间
*
* @param loanId
* @param time
* @return
*/
@Modifying
@Transactional
@Query
(
"update FundLending set createTime = ?2 where loanId = ?1"
)
boolean
updateCreateTime
(
@Param
(
"loanId"
)
Long
loanId
,
@Param
(
"createTime"
)
Date
time
);
/**
* 查询待放款记录
*
* @param fundId
* @param progress
* @return
*/
@Query
(
"select sum(amount) as totalAmount ,count(fundId) as totalCount from FundLending where progress = ?2 and fundId = ?1"
)
Map
queryLendingRecordCount
(
@Param
(
"fundId"
)
Integer
fundId
,
@Param
(
"progress"
)
Integer
progress
);
@Query
(
value
=
"select sum(fund_amount) ,count(*) from xyqb.waiting_funding_corp_operate_people where funding_corp_progress=0 and funding_corp_id= ?1"
,
nativeQuery
=
true
)
Map
queryLendingRecordCount
(
Long
fundId
);
FundLending
findByLoan
Id
(
Long
loanId
);
WaitingFundingCorpOperatePeople
findByLoanApplicationHistory
Id
(
Long
loanId
);
}
\ No newline at end of file
src/main/java/cn/quantgroup/cashloanflowboss/spi/xyqb/service/XYQBCenterService.java
View file @
1a1d5ffa
...
...
@@ -14,8 +14,8 @@ import lombok.extern.slf4j.Slf4j;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
javax.transaction.Transactional
;
import
java.util.Date
;
import
java.util.Map
;
...
...
@@ -27,7 +27,7 @@ import java.util.Map;
public
class
XYQBCenterService
{
@Autowired
private
FundLendingRepository
fundLending
Repository
;
private
WaitingFundingCorpOperatePeopleRepository
waitingFundingCorpOperatePeople
Repository
;
@Autowired
private
ContractRepository
contractRepository
;
@Autowired
...
...
@@ -46,14 +46,6 @@ public class XYQBCenterService {
@Autowired
private
XYQBCenter
xyqbCenter
;
/**
* 更新资方待放款创建时间
*
* @return
*/
public
boolean
updateFundLendingTime
(
Long
loanId
)
{
return
this
.
fundLendingRepository
.
updateCreateTime
(
loanId
,
new
Date
());
}
/**
* 更新合同状态
...
...
@@ -61,7 +53,6 @@ public class XYQBCenterService {
* @param userId
* @return
*/
@Transactional
public
int
updateContractStatus
(
Long
userId
,
Integer
status
)
{
return
this
.
contractRepository
.
updateContractStatus
(
userId
,
status
);
}
...
...
@@ -70,11 +61,10 @@ public class XYQBCenterService {
* 查询放款记录
*
* @param fundId
* @param progress
* @return
*/
public
Map
queryLendingRecordCount
(
Integer
fundId
,
Integer
progress
)
{
return
this
.
fundLendingRepository
.
queryLendingRecordCount
(
fundId
,
progress
);
public
Map
queryLendingRecordCount
(
Long
fundId
)
{
return
this
.
waitingFundingCorpOperatePeopleRepository
.
queryLendingRecordCount
(
fundId
);
}
...
...
@@ -105,12 +95,13 @@ public class XYQBCenterService {
contractRepository
.
save
(
contract
);
}
public
FundLending
findFundLending
ByLoanId
(
Long
loanId
)
{
return
fundLendingRepository
.
findByLoan
Id
(
loanId
);
public
WaitingFundingCorpOperatePeople
findWaitingFundingCorpOperatePeople
ByLoanId
(
Long
loanId
)
{
return
waitingFundingCorpOperatePeopleRepository
.
findByLoanApplicationHistory
Id
(
loanId
);
}
public
void
saveFundLending
(
FundLending
fundLending
)
{
fundLendingRepository
.
save
(
fundLending
);
@Transactional
public
void
saveWaitingFundingCorpOperatePeople
(
WaitingFundingCorpOperatePeople
waitingFundingCorpOperatePeople
)
{
waitingFundingCorpOperatePeopleRepository
.
saveAndFlush
(
waitingFundingCorpOperatePeople
);
}
...
...
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