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
7f6bafa3
Commit
7f6bafa3
authored
Jul 06, 2020
by
王向伟
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
审核接口添加动态利率
parent
bfc4a674
Changes
6
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
189 additions
and
8 deletions
+189
-8
OrderServiceImpl.java
.../cashloanflowboss/api/order/service/OrderServiceImpl.java
+52
-8
OrderUtil.java
...quantgroup/cashloanflowboss/api/order/util/OrderUtil.java
+1
-0
ApplyScenarioInfoEntity.java
...loanflowboss/spi/xyqb/entity/ApplyScenarioInfoEntity.java
+103
-0
IApplyScenarioInfoRepository.java
...oss/spi/xyqb/repository/IApplyScenarioInfoRepository.java
+22
-0
XYQBCenterService.java
.../cashloanflowboss/spi/xyqb/service/XYQBCenterService.java
+2
-0
XYQBCenterServiceImpl.java
...hloanflowboss/spi/xyqb/service/XYQBCenterServiceImpl.java
+9
-0
No files found.
src/main/java/cn/quantgroup/cashloanflowboss/api/order/service/OrderServiceImpl.java
View file @
7f6bafa3
...
...
@@ -28,10 +28,7 @@ import cn.quantgroup.cashloanflowboss.spi.clotho.service.ClothoCenterService;
import
cn.quantgroup.cashloanflowboss.spi.jolyne.JolyneService
;
import
cn.quantgroup.cashloanflowboss.spi.opapi.OPCenter
;
import
cn.quantgroup.cashloanflowboss.spi.user.service.XyqbUserService
;
import
cn.quantgroup.cashloanflowboss.spi.xyqb.entity.Contract
;
import
cn.quantgroup.cashloanflowboss.spi.xyqb.entity.FinanceProduct
;
import
cn.quantgroup.cashloanflowboss.spi.xyqb.entity.LoanApplicationHistory
;
import
cn.quantgroup.cashloanflowboss.spi.xyqb.entity.QuotaProduct
;
import
cn.quantgroup.cashloanflowboss.spi.xyqb.entity.*
;
import
cn.quantgroup.cashloanflowboss.spi.xyqb.repository.CancelPreLoanRepository
;
import
cn.quantgroup.cashloanflowboss.spi.xyqb.service.XYQBCenterService
;
import
cn.quantgroup.cashloanflowboss.utils.JSONTools
;
...
...
@@ -53,6 +50,7 @@ import org.springframework.transaction.annotation.Transactional;
import
javax.annotation.PostConstruct
;
import
javax.persistence.criteria.Predicate
;
import
java.math.BigDecimal
;
import
java.text.DecimalFormat
;
import
java.util.*
;
import
java.util.concurrent.ConcurrentMap
;
import
java.util.stream.Collectors
;
...
...
@@ -111,7 +109,7 @@ public class OrderServiceImpl implements OrderService {
private
List
<
Long
>
channels
;
@PostConstruct
public
void
init
(){
public
void
init
()
{
channels
=
Stream
.
of
(
multipleOrderChannel
.
split
(
","
)).
map
(
Long:
:
valueOf
).
collect
(
Collectors
.
toList
());
}
...
...
@@ -219,8 +217,18 @@ public class OrderServiceImpl implements OrderService {
FinanceProduct
financeProduct
=
xyqbCenterService
.
getByFundCorpId
(
Long
.
valueOf
(
fundId
));
log
.
info
(
"approveOpt审批,fundProductId={}"
,
financeProduct
.
getId
());
// 资方 及 期数额度规则
String
fundFormat
=
String
.
format
(
OrderUtil
.
financeProductsFormat
,
approveVo
.
getAmount
(),
approveVo
.
getAmount
(),
approveVo
.
getPeriod
(),
fundId
,
financeProduct
.
getId
());
BigDecimal
fundRate
=
getFundRate
(
orderMapping
.
getApplyNo
());
String
fundFormat
=
null
;
if
(
Objects
.
isNull
(
fundRate
)){
fundFormat
=
String
.
format
(
OrderUtil
.
financeProductsFormat
,
approveVo
.
getAmount
(),
approveVo
.
getAmount
(),
approveVo
.
getPeriod
(),
fundId
,
financeProduct
.
getId
());
}
else
{
fundFormat
=
String
.
format
(
OrderUtil
.
financeProductsWithFundRateFormat
,
approveVo
.
getAmount
(),
approveVo
.
getAmount
(),
approveVo
.
getPeriod
(),
fundId
,
fundRate
.
toString
(),
financeProduct
.
getId
());
}
saveOrUpdateOrderApprove
(
approveVo
,
orderMapping
,
fundId
);
ClfChannelConfiguration
clfChannelConfiguration
=
clfCenterService
.
findChannelConfigurationByChannelId
(
orderMapping
.
getRegisteredFrom
());
if
(
clfChannelConfiguration
==
null
)
{
...
...
@@ -231,7 +239,7 @@ public class OrderServiceImpl implements OrderService {
if
(
channels
.
contains
(
orderMapping
.
getRegisteredFrom
()))
{
data
=
getApproveObjectMap
(
approveVo
,
orderMapping
,
xUser
,
fundFormat
,
9
);
}
else
{
}
else
{
quotaProduct
=
xyqbCenterService
.
getXyqbProduct
(
clfChannelConfiguration
.
getXyqbProductId
());
if
(
quotaProduct
==
null
)
{
return
new
Tuple
(
false
,
"审批失败,xyqb.quota_product配置为空("
.
concat
(
clfChannelConfiguration
.
getXyqbProductId
()).
concat
(
")"
));
...
...
@@ -850,4 +858,40 @@ public class OrderServiceImpl implements OrderService {
}
}
/**
*
* @param applyNo
* @return
*/
private
BigDecimal
getFundRate
(
String
applyNo
)
{
log
.
info
(
"getFundRate 通过授信订单号获取动态年利率 applyNo={}"
,
applyNo
);
ApplyScenarioInfoEntity
applyScenarioInfoEntity
=
xyqbCenterService
.
findFirstByApplyNo
(
applyNo
);
if
(
Objects
.
isNull
(
applyScenarioInfoEntity
))
{
log
.
info
(
"getFundRate applyNo={} 没有动态年利率"
,
applyNo
);
return
null
;
}
String
scenarioData
=
applyScenarioInfoEntity
.
getScenarioData
();
if
(
StringUtils
.
isBlank
(
scenarioData
))
{
log
.
error
(
"getFundRate 场景数据为空 applyScenarioInfo={}"
,
applyScenarioInfoEntity
);
return
null
;
}
JSONObject
jsonObject
=
JSONObject
.
parseObject
(
scenarioData
);
BigDecimal
rate
=
jsonObject
.
getBigDecimal
(
"rate"
);
if
(
Objects
.
isNull
(
rate
))
{
log
.
error
(
"getFundRate 获取年利率为空 applyScenarioInfo={}"
,
applyScenarioInfoEntity
);
return
null
;
}
BigDecimal
result
=
rate
.
divide
(
new
BigDecimal
(
"100"
));
DecimalFormat
format6
=
new
DecimalFormat
(
"#####0.000000"
);
String
format
=
format6
.
format
(
result
);
return
new
BigDecimal
(
format
);
}
}
src/main/java/cn/quantgroup/cashloanflowboss/api/order/util/OrderUtil.java
View file @
7f6bafa3
...
...
@@ -24,6 +24,7 @@ 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\"}]}]}]";
public
static
final
String
financeProductsFormat
=
"[{\"min\":%s,\"max\":%s,\"terms\":[{\"term\":%s,\"fundInfo\":[{\"fundId\":%s,\"rate\":\"0\",\"rateType\":1,\"priority\":\"1\",\"feeType\":\"1\",\"fundProductId\":%s}]}]}]"
;
public
static
final
String
financeProductsWithFundRateFormat
=
"[{\"min\":%s,\"max\":%s,\"terms\":[{\"term\":%s,\"fundInfo\":[{\"fundId\":%s,\"fundRate\":%s,\"rate\":\"0\",\"rateType\":1,\"priority\":\"1\",\"feeType\":\"1\",\"fundProductId\":%s}]}]}]"
;
/**
*
* @param kaNoticeType
...
...
src/main/java/cn/quantgroup/cashloanflowboss/spi/xyqb/entity/ApplyScenarioInfoEntity.java
0 → 100644
View file @
7f6bafa3
package
cn
.
quantgroup
.
cashloanflowboss
.
spi
.
xyqb
.
entity
;
import
lombok.Data
;
import
lombok.extern.slf4j.Slf4j
;
import
javax.persistence.*
;
import
java.math.BigDecimal
;
import
java.sql.Timestamp
;
/**
* 渠道申请场景数据实体类
* @author chenglong.han
* @date 2020/5/8
*/
@Data
@Entity
@Slf4j
@Table
(
name
=
"apply_scenario_info"
)
public
class
ApplyScenarioInfoEntity
{
@Id
@Column
(
name
=
"id"
)
@GeneratedValue
(
strategy
=
GenerationType
.
IDENTITY
)
private
Long
id
;
/**
* 用户id
*/
@Column
(
name
=
"user_id"
)
private
Long
userId
;
/**
* 授信订单号
*/
@Column
(
name
=
"order_no"
)
private
String
orderNo
;
/**
* 申请渠道
*/
@Column
(
name
=
"channel_id"
)
private
Long
channelId
;
/**
* 申请产品id
*/
@Column
(
name
=
"quota_product_id"
)
private
Long
quotaProductId
;
/**
* 账单出账日
*/
@Column
(
name
=
"bill_day"
)
private
Integer
billDay
;
/**
* 账单还款日
*/
@Column
(
name
=
"repay_day"
)
private
Integer
repayDay
;
/**
* 申请金额
*/
@Column
(
name
=
"apply_amount"
)
private
BigDecimal
applyAmount
;
/**
* 申请期数
*/
@Column
(
name
=
"apply_term"
)
private
Integer
applyTerm
;
/**
* JSON场景数据
*/
@Column
(
name
=
"scenario_data"
)
private
String
scenarioData
;
/**
* 创建时间
*/
@Column
(
name
=
"created_at"
)
private
Timestamp
createdAt
;
/**
* 更新时间
*/
@Column
(
name
=
"updated_at"
)
private
Timestamp
updatedAt
;
@PrePersist
public
void
prePersist
()
{
Timestamp
timestamp
=
new
Timestamp
(
System
.
currentTimeMillis
());
createdAt
=
timestamp
;
updatedAt
=
timestamp
;
}
@PreUpdate
public
void
preUpdate
()
{
updatedAt
=
new
Timestamp
(
System
.
currentTimeMillis
());
}
}
src/main/java/cn/quantgroup/cashloanflowboss/spi/xyqb/repository/IApplyScenarioInfoRepository.java
0 → 100644
View file @
7f6bafa3
package
cn
.
quantgroup
.
cashloanflowboss
.
spi
.
xyqb
.
repository
;
import
cn.quantgroup.cashloanflowboss.spi.xyqb.entity.ApplyScenarioInfoEntity
;
import
org.springframework.data.jpa.repository.JpaRepository
;
/**
* 场景数据DAO
*
* @author chenglong.han
* @date 2020/5/8
*/
public
interface
IApplyScenarioInfoRepository
extends
JpaRepository
<
ApplyScenarioInfoEntity
,
Long
>
{
/**
* 根据申请单号查询记录
*
* @param applyOrderNo
* @return
*/
ApplyScenarioInfoEntity
findFirstByOrderNo
(
String
applyOrderNo
);
}
src/main/java/cn/quantgroup/cashloanflowboss/spi/xyqb/service/XYQBCenterService.java
View file @
7f6bafa3
...
...
@@ -61,4 +61,6 @@ public interface XYQBCenterService {
*/
FinanceProduct
getByFundCorpId
(
Long
fundCorpId
);
ApplyScenarioInfoEntity
findFirstByApplyNo
(
String
applyNo
);
}
src/main/java/cn/quantgroup/cashloanflowboss/spi/xyqb/service/XYQBCenterServiceImpl.java
View file @
7f6bafa3
...
...
@@ -61,6 +61,9 @@ public class XYQBCenterServiceImpl implements XYQBCenterService {
@Autowired
private
XYQBCenter
xyqbCenter
;
@Autowired
private
IApplyScenarioInfoRepository
applyScenarioInfoRepository
;
/**
* 更新合同状态
...
...
@@ -279,4 +282,10 @@ public class XYQBCenterServiceImpl implements XYQBCenterService {
public
FinanceProduct
getByFundCorpId
(
Long
fundCorpId
)
{
return
financeProductRepository
.
findByFundCorpId
(
fundCorpId
);
}
@Override
public
ApplyScenarioInfoEntity
findFirstByApplyNo
(
String
applyNo
)
{
return
applyScenarioInfoRepository
.
findFirstByOrderNo
(
applyNo
);
}
}
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