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
678a2f56
Commit
678a2f56
authored
Sep 02, 2019
by
suntao
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
资产计划校验
parent
56ea03df
Changes
7
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
188 additions
and
13 deletions
+188
-13
OrderController.java
...ashloanflowboss/api/order/controller/OrderController.java
+10
-1
OrderService.java
...roup/cashloanflowboss/api/order/service/OrderService.java
+17
-9
FundingAssetAllocationsPrograms.java
...boss/spi/xyqb/entity/FundingAssetAllocationsPrograms.java
+30
-0
FundingCorpPolicy.java
...p/cashloanflowboss/spi/xyqb/entity/FundingCorpPolicy.java
+46
-0
FundingAssetAllocationsProgramsRepository.java
...repository/FundingAssetAllocationsProgramsRepository.java
+23
-0
FundingCorpPolicyRepository.java
...boss/spi/xyqb/repository/FundingCorpPolicyRepository.java
+19
-0
XYQBCenterService.java
.../cashloanflowboss/spi/xyqb/service/XYQBCenterService.java
+43
-3
No files found.
src/main/java/cn/quantgroup/cashloanflowboss/api/order/controller/OrderController.java
View file @
678a2f56
...
...
@@ -9,6 +9,8 @@ import cn.quantgroup.cashloanflowboss.core.annotation.ChannelIdInit;
import
cn.quantgroup.cashloanflowboss.core.annotation.CheckChannelRole
;
import
cn.quantgroup.cashloanflowboss.core.annotation.CheckChannelRoleByChannelOrderNumber
;
import
cn.quantgroup.cashloanflowboss.core.base.Result
;
import
cn.quantgroup.cashloanflowboss.core.base.Tuple
;
import
cn.quantgroup.cashloanflowboss.spi.xyqb.service.XYQBCenterService
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.*
;
...
...
@@ -29,6 +31,7 @@ public class OrderController {
@Autowired
private
OrderService
orderService
;
/**
* 订单查询列表接口
*
...
...
@@ -60,7 +63,13 @@ public class OrderController {
@ChannelIdInit
@PostMapping
(
"/approve"
)
public
Result
approveOpt
(
@RequestBody
@Valid
ApproveVo
approveVo
)
{
return
Result
.
buildSuccess
(
orderService
.
approveOpt
(
approveVo
));
Tuple
<
Boolean
,
Boolean
>
booleanBooleanTuple
=
orderService
.
approveOpt
(
approveVo
);
Boolean
approveResult
=
booleanBooleanTuple
.
getKey
();
if
(
approveResult
)
{
return
Result
.
buildSuccess
(
approveResult
,
booleanBooleanTuple
.
getValue
()
?
"审批成功"
:
"请检查资产计划配置,审批成功"
);
}
else
{
return
Result
.
buildSuccess
(
"审批操作失败"
);
}
}
/**
...
...
src/main/java/cn/quantgroup/cashloanflowboss/api/order/service/OrderService.java
View file @
678a2f56
...
...
@@ -39,6 +39,7 @@ import javax.persistence.criteria.Predicate;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.lang3.StringUtils
;
import
org.apache.commons.lang3.exception.ExceptionUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.data.domain.Page
;
import
org.springframework.data.domain.PageRequest
;
...
...
@@ -136,7 +137,8 @@ public class OrderService {
});
}
public
Boolean
approveOpt
(
ApproveVo
approveVo
)
{
public
Tuple
<
Boolean
,
Boolean
>
approveOpt
(
ApproveVo
approveVo
)
{
if
(
StringUtils
.
isEmpty
(
approveVo
.
getAmount
()))
{
// 如果UI 金额为空 默认4000
approveVo
.
setAmount
(
"4000"
);
...
...
@@ -149,24 +151,24 @@ public class OrderService {
ClfOrderMapping
orderMapping
=
clfOrderMappingRepository
.
findByChannelOrderNoLastOne
(
approveVo
.
getChannelOrderNumber
());
if
(
orderMapping
==
null
)
{
log
.
info
(
"approveOpt,审批失败,无订单 channelOrderNumber={}"
,
approveVo
.
getChannelOrderNumber
());
return
false
;
return
new
Tuple
<>(
false
,
false
)
;
}
if
(
Application
.
getPrincipal
().
isChannel
()
&&
!
Application
.
getPrincipal
().
isSameChannel
(
orderMapping
.
getRegisteredFrom
()))
{
log
.
info
(
"approveOpt,审批失败,不是该渠道订单无法审批 channelOrderNumber={}"
,
approveVo
.
getChannelOrderNumber
());
return
false
;
return
new
Tuple
<>(
false
,
false
)
;
}
XUser
xUser
=
xyqbUserService
.
findXUserById
(
orderMapping
.
getQgUserId
());
if
(
xUser
==
null
)
{
log
.
info
(
"approveOpt,审批失败,未找到用户 channelOrderNumber={}"
,
approveVo
.
getChannelOrderNumber
());
return
false
;
return
new
Tuple
<>(
false
,
false
)
;
}
ChannelConf
channelConf
=
channelConfRepository
.
getByChannelId
(
orderMapping
.
getRegisteredFrom
());
if
(
channelConf
==
null
)
{
log
.
info
(
"approveOpt,审批失败,boss渠道配置为空 channelOrderNumber={}"
,
approveVo
.
getChannelOrderNumber
());
return
false
;
return
new
Tuple
<>(
false
,
false
)
;
}
// 额度有效期
...
...
@@ -205,13 +207,19 @@ public class OrderService {
data
.
put
(
"financeProducts"
,
fundFormat
);
// 发起审批
String
approveResult
=
clothoCenterService
.
approve
(
data
);
if
(
"success"
.
equals
(
approveResult
))
{
String
approveStringResult
=
clothoCenterService
.
approve
(
data
);
Boolean
corpPolicyValidate
=
false
;
try
{
corpPolicyValidate
=
xyqbCenterService
.
validateCorpPolicy
(
Long
.
valueOf
(
fundId
),
new
Date
());
}
catch
(
Exception
e
)
{
log
.
error
(
"审批,资方校验异常,channelOrderNumber={},fundId={}, e={}"
,
orderMapping
.
getChannelOrderNo
(),
fundId
,
ExceptionUtils
.
getStackTrace
(
e
));
}
if
(
"success"
.
equals
(
approveStringResult
))
{
log
.
info
(
"审批申请成功,channelOrderNumber={}"
,
orderMapping
.
getChannelOrderNo
());
return
true
;
return
new
Tuple
<>(
true
,
corpPolicyValidate
)
;
}
else
{
log
.
info
(
"审批申请失败,channelOrderNumber={},requestParam={}"
,
orderMapping
.
getChannelOrderNo
(),
JSONTools
.
serialize
(
data
));
return
false
;
return
new
Tuple
<>(
false
,
corpPolicyValidate
)
;
}
}
...
...
src/main/java/cn/quantgroup/cashloanflowboss/spi/xyqb/entity/FundingAssetAllocationsPrograms.java
0 → 100644
View file @
678a2f56
package
cn
.
quantgroup
.
cashloanflowboss
.
spi
.
xyqb
.
entity
;
import
lombok.Data
;
import
javax.persistence.*
;
import
java.util.Date
;
/**
* 资产分配记录表
*/
@Data
@Entity
@Table
(
name
=
"funding_asset_allocations_programs"
)
public
class
FundingAssetAllocationsPrograms
{
/**
* 资金方ID
*/
@Column
(
name
=
"fund_corp_id"
)
private
Long
fundCorpId
;
/**
* 计划日期
*/
@Column
(
name
=
"plan_date"
)
private
Date
planDate
;
}
src/main/java/cn/quantgroup/cashloanflowboss/spi/xyqb/entity/FundingCorpPolicy.java
0 → 100644
View file @
678a2f56
package
cn
.
quantgroup
.
cashloanflowboss
.
spi
.
xyqb
.
entity
;
import
lombok.Data
;
import
javax.persistence.*
;
/**
* 资产分配记录表
*/
@Data
@Entity
@Table
(
name
=
"funding_corp_policy"
)
public
class
FundingCorpPolicy
{
/**
* 资方id
*/
@Column
(
name
=
"funding_corp_id"
)
private
Long
fundingCorpId
;
/**
* 是否启用自动分配
*/
@Column
(
name
=
"is_auto_assign"
)
private
Boolean
isAutoAssign
;
/**
* 是否启动自动拉取分配结果
*/
@Column
(
name
=
"is_auto_fetch"
)
private
Boolean
isAutoFetch
;
/**
* 是否启用自动推送放款
*/
@Column
(
name
=
"is_auto_loan"
)
private
Boolean
isAutoLoan
;
/**
* 是否启动自动拉取放款结果
*/
@Column
(
name
=
"is_auto_loan_fetch"
)
private
Boolean
isAutoLoanFetch
;
}
src/main/java/cn/quantgroup/cashloanflowboss/spi/xyqb/repository/FundingAssetAllocationsProgramsRepository.java
0 → 100644
View file @
678a2f56
package
cn
.
quantgroup
.
cashloanflowboss
.
spi
.
xyqb
.
repository
;
import
cn.quantgroup.cashloanflowboss.spi.xyqb.entity.FundingAssetAllocationsPrograms
;
import
cn.quantgroup.cashloanflowboss.spi.xyqb.source.XYQBDataSource
;
import
org.springframework.data.repository.CrudRepository
;
import
org.springframework.stereotype.Repository
;
import
java.util.Date
;
/**
* 资产计划开关表
* Created by suntao 20190902
*/
@XYQBDataSource
@Repository
public
interface
FundingAssetAllocationsProgramsRepository
extends
CrudRepository
<
FundingAssetAllocationsPrograms
,
Integer
>
{
FundingAssetAllocationsPrograms
findByFundCorpIdAndPlanDate
(
Long
fundCorpId
,
Date
planDate
);
}
\ No newline at end of file
src/main/java/cn/quantgroup/cashloanflowboss/spi/xyqb/repository/FundingCorpPolicyRepository.java
0 → 100644
View file @
678a2f56
package
cn
.
quantgroup
.
cashloanflowboss
.
spi
.
xyqb
.
repository
;
import
cn.quantgroup.cashloanflowboss.spi.xyqb.entity.FundingCorpPolicy
;
import
cn.quantgroup.cashloanflowboss.spi.xyqb.source.XYQBDataSource
;
import
org.springframework.data.repository.CrudRepository
;
import
org.springframework.stereotype.Repository
;
/**
* 资产计划开关表
* Created by suntao 20190902
*/
@XYQBDataSource
@Repository
public
interface
FundingCorpPolicyRepository
extends
CrudRepository
<
FundingCorpPolicy
,
Integer
>
{
FundingCorpPolicy
findByFundingCorpId
(
Long
fundingCorpId
);
}
\ No newline at end of file
src/main/java/cn/quantgroup/cashloanflowboss/spi/xyqb/service/XYQBCenterService.java
View file @
678a2f56
...
...
@@ -6,11 +6,12 @@ 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.
repository.CancelPreLoanRepository
;
import
cn.quantgroup.cashloanflowboss.spi.xyqb.
repository.ContractRepositor
y
;
import
cn.quantgroup.cashloanflowboss.spi.xyqb.repository.
FundLendingRepository
;
import
cn.quantgroup.cashloanflowboss.spi.xyqb.
entity.FundingAssetAllocationsPrograms
;
import
cn.quantgroup.cashloanflowboss.spi.xyqb.
entity.FundingCorpPolic
y
;
import
cn.quantgroup.cashloanflowboss.spi.xyqb.repository.
*
;
import
cn.quantgroup.cashloanflowboss.spi.xyqb.util.SignUtil
;
import
com.google.common.collect.Maps
;
import
org.apache.commons.lang3.time.DateUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
...
...
@@ -31,6 +32,10 @@ public class XYQBCenterService {
private
ContractRepository
contractRepository
;
@Autowired
private
CancelPreLoanRepository
cancelPreLoanRepository
;
@Autowired
private
FundingCorpPolicyRepository
fundingCorpPolicyRepository
;
@Autowired
private
FundingAssetAllocationsProgramsRepository
fundingAssetAllocationsProgramsRepository
;
...
...
@@ -105,6 +110,38 @@ public class XYQBCenterService {
}
/**
* 通过资方id 查找资产计划开关
* @param corpPolicyId
* @return
*/
public
FundingCorpPolicy
findFundingCorpPolicyByCorpPolicyId
(
Long
corpPolicyId
)
{
return
fundingCorpPolicyRepository
.
findByFundingCorpId
(
corpPolicyId
);
}
/**
*
* @param corpPolicyId 资方id
* @param planDate 资产计划日期 精确到天
* @return
*/
public
FundingAssetAllocationsPrograms
findFundingAssetAllocationsProgramsByCorpPolicyIdAndPlanDate
(
Long
corpPolicyId
,
Date
planDate
)
{
return
fundingAssetAllocationsProgramsRepository
.
findByFundCorpIdAndPlanDate
(
corpPolicyId
,
planDate
);
}
/**
* 验证资产计划 是否有效
* @param corpPolicyId
* @param planDate 日期 只能要天
* @return
*/
public
Boolean
validateCorpPolicy
(
Long
corpPolicyId
,
Date
planDate
)
{
Boolean
isValidate
=
true
;
FundingCorpPolicy
fundingCorpPolicy
=
findFundingCorpPolicyByCorpPolicyId
(
corpPolicyId
);
isValidate
=
isValidate
&
fundingCorpPolicy
.
getIsAutoAssign
()
&
fundingCorpPolicy
.
getIsAutoFetch
()
&
fundingCorpPolicy
.
getIsAutoLoan
()
&
fundingCorpPolicy
.
getIsAutoLoanFetch
();
FundingAssetAllocationsPrograms
fundingAssetAllocationsPrograms
=
findFundingAssetAllocationsProgramsByCorpPolicyIdAndPlanDate
(
corpPolicyId
,
planDate
);
return
isValidate
&
(
fundingAssetAllocationsPrograms
!=
null
);
}
/**
* 查询订单当前状态
...
...
@@ -157,4 +194,7 @@ public class XYQBCenterService {
return
"success"
.
equals
(
xyqbCenter
.
pushLendingResult
(
paramMap
));
}
}
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