Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
C
clx-performance
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
姜武杰
clx-performance
Commits
86aa7059
提交
86aa7059
authored
1月 23, 2024
作者:
huyufan
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
借款相关
上级
1c8ae207
隐藏空白字符变更
内嵌
并排
正在显示
7 个修改的文件
包含
74 行增加
和
42 行删除
+74
-42
PerformanceResultEnum.java
...java/com/clx/performance/enums/PerformanceResultEnum.java
+1
-0
RunningWaterTypeEnum.java
.../java/com/clx/performance/enums/RunningWaterTypeEnum.java
+3
-1
TempBankController.java
...m/clx/performance/controller/temp/TempBankController.java
+1
-1
OwnerLoanAccountRunningWaterRecord.java
...rmance/model/loan/OwnerLoanAccountRunningWaterRecord.java
+1
-1
OwnerLoanRecordServiceImpl.java
...ormance/service/impl/loan/OwnerLoanRecordServiceImpl.java
+57
-28
NbBankServiceImpl.java
...nce/service/impl/thirdparty/nbbank/NbBankServiceImpl.java
+10
-10
NbBankService.java
.../performance/service/thirdparty/nbbank/NbBankService.java
+1
-1
没有找到文件。
performance-api/src/main/java/com/clx/performance/enums/PerformanceResultEnum.java
浏览文件 @
86aa7059
...
...
@@ -119,6 +119,7 @@ public enum PerformanceResultEnum implements ResultEnum {
NB_BANK_API_ERROR
(
1800
,
"宁波银行api调用失败"
),
NB_BANK_NOTIFY_ERROR
(
1801
,
"宁波银行回调失败"
),
NB_BANK_PAY_TYPE_ERROR
(
1802
,
"支付方式不支持"
),
NB_BANK_ORDER_PAY_ERROR
(
1803
,
"宁波银行订单支付失败"
),
;
private
final
int
code
;
...
...
performance-api/src/main/java/com/clx/performance/enums/RunningWaterTypeEnum.java
浏览文件 @
86aa7059
...
...
@@ -19,7 +19,9 @@ public enum RunningWaterTypeEnum {
TAKE_OUT
(
40
,
"扣除"
),
CASE_OUT_FROZEN
(
50
,
"提现冻结"
),
CASE_OUT_SUCCESS
(
60
,
"提现成功"
),
CASE_OUT_FAIL
(
70
,
"提现失败"
)
CASE_OUT_FAIL
(
70
,
"提现失败"
),
ORDER_CHILD_WRITE_OFF
(
80
,
"运单核销"
),
LOAN
(
90
,
"借款"
),
;
private
final
Integer
code
;
private
final
String
msg
;
...
...
performance-web/src/main/java/com/clx/performance/controller/temp/TempBankController.java
浏览文件 @
86aa7059
...
...
@@ -37,7 +37,7 @@ public class TempBankController {
@RequestMapping
(
value
=
"/orderDirectPay"
,
method
=
RequestMethod
.
POST
)
public
Result
<
NbBankOrderPayResultVO
>
orderDirectPay
()
{
return
Result
.
ok
(
bankService
.
orderDirectPay
(
2
,
"313332082914"
,
"86041110000076809"
,
"黑玫瑰"
));
return
Result
.
ok
(
bankService
.
orderDirectPay
(
null
,
2
,
"313332082914"
,
"86041110000076809"
,
"黑玫瑰"
));
}
@ApiOperation
(
value
=
"查询"
,
notes
=
"<br>By:艾庆国"
)
...
...
performance-web/src/main/java/com/clx/performance/model/loan/OwnerLoanAccountRunningWaterRecord.java
浏览文件 @
86aa7059
...
...
@@ -30,7 +30,7 @@ public class OwnerLoanAccountRunningWaterRecord implements HasKey<Integer> {
@TableField
(
"owner_user_no"
)
@ApiModelProperty
(
"货主编码"
)
private
Stri
ng
ownerUserNo
;
private
Lo
ng
ownerUserNo
;
@TableField
(
"owner_user_name"
)
@ApiModelProperty
(
"货主名称"
)
...
...
performance-web/src/main/java/com/clx/performance/service/impl/loan/OwnerLoanRecordServiceImpl.java
浏览文件 @
86aa7059
...
...
@@ -5,12 +5,16 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import
com.clx.performance.component.IdGenerateSnowFlake
;
import
com.clx.performance.dao.OwnerBindCardRecordDao
;
import
com.clx.performance.dao.loan.OwnerLoanAccountDao
;
import
com.clx.performance.dao.loan.OwnerLoanAccountRunningWaterRecordDao
;
import
com.clx.performance.dao.loan.OwnerLoanRecordDao
;
import
com.clx.performance.dao.loan.OwnerRepaymentDao
;
import
com.clx.performance.enums.RunningWaterTypeEnum
;
import
com.clx.performance.enums.loan.OwnerLoanRecordEnum
;
import
com.clx.performance.enums.loan.OwnerRePaymentEnum
;
import
com.clx.performance.model.OwnerBindCardRecord
;
import
com.clx.performance.model.OwnerRunningWaterRecord
;
import
com.clx.performance.model.loan.OwnerLoanAccount
;
import
com.clx.performance.model.loan.OwnerLoanAccountRunningWaterRecord
;
import
com.clx.performance.model.loan.OwnerLoanRecord
;
import
com.clx.performance.model.loan.OwnerRepayment
;
import
com.clx.performance.param.pc.loan.carrier.CarrierOwnerLoanRecordApproveParam
;
...
...
@@ -56,6 +60,8 @@ public class OwnerLoanRecordServiceImpl implements OwnerLoanRecordService {
private
final
OwnerBindCardRecordDao
ownerBindCardRecordDao
;
private
final
NbBankService
bankService
;
private
final
OwnerLoanAccountRunningWaterRecordDao
ownerLoanAccountRunningWaterRecordDao
;
@Override
public
IPage
<
OwnerLoanRecordVO
>
pageOwnerLoanRecord
(
PageCarrierOwnerLoanRecordParam
param
)
{
...
...
@@ -107,53 +113,76 @@ public class OwnerLoanRecordServiceImpl implements OwnerLoanRecordService {
if
(
OwnerLoanRecordEnum
.
LoanType
.
FUND
.
getCode
().
equals
(
param
.
getLoanType
()))
{
//资金 TODO 调中信银企直连的产品,从诚联信账户中给鑫祥和执行转账
NbBankOrderPayResultVO
orderPayResultVO
=
bankService
.
orderDirectPay
(
null
,
""
,
""
,
""
);
NbBankOrderPayResultVO
orderPayResultVO
=
bankService
.
orderDirectPay
(
param
.
getLoanNo
()
,
ownerLoanRecord
.
getLoanBalance
().
intValue
(),
""
,
""
,
""
);
ownerLoanRecord
.
setRunningWaterOpenNo
(
orderPayResultVO
.
getTransSeqNo
());
ownerLoanRecord
.
setMerchantRunningWaterNo
(
orderPayResultVO
.
getMerSeqNo
());
ownerLoanRecord
.
setStatus
(
OwnerLoanRecordEnum
.
Status
.
PAYING
.
getCode
());
//创建还款记录
OwnerRepayment
ownerRepayment
=
initOwnerRepayment
(
ownerLoanRecord
);
ownerRepaymentDao
.
saveEntity
(
ownerRepayment
);
ownerLoanRecordDao
.
updateEntityByKey
(
ownerLoanRecord
);
}
else
{
// 虚拟币 直接增加 更改状态审批通过
ownerLoanRecord
.
setStatus
(
OwnerLoanRecordEnum
.
Status
.
APPROVE_PASS
.
getCode
());
}
// 虚拟币 直接增加
Long
ownerUserNo
=
ownerLoanRecord
.
getOwnerUserNo
();
BigDecimal
loanBalance
=
ownerLoanRecord
.
getLoanBalance
();
while
(
true
)
{
OwnerLoanAccount
ownerLoanAccount
=
ownerLoanAccountDao
.
getOneByField
(
OwnerLoanAccount:
:
getOwnerUserNo
,
ownerUserNo
).
get
();
OwnerLoanAccount
entity
=
new
OwnerLoanAccount
();
entity
.
setId
(
ownerLoanAccount
.
getId
());
entity
.
setVirtuallyAmount
(
loanBalance
);
entity
.
setFundingAmount
(
BigDecimal
.
ZERO
);
entity
.
setModifiedTime
(
ownerLoanAccount
.
getModifiedTime
());
Integer
flag
=
ownerLoanAccountDao
.
updateAccountCAS
(
entity
,
LocalDateTime
.
now
(),
true
);
if
(
flag
==
1
)
{
ownerLoanRecordDao
.
updateEntityByKey
(
ownerLoanRecord
);
return
;
}
while
(
true
)
{
OwnerLoanAccount
ownerLoanAccount
=
ownerLoanAccountDao
.
getOneByField
(
OwnerLoanAccount:
:
getOwnerUserNo
,
ownerLoanRecord
.
getOwnerUserNo
()).
get
();
OwnerLoanAccount
entity
=
new
OwnerLoanAccount
();
entity
.
setId
(
ownerLoanAccount
.
getId
());
entity
.
setVirtuallyAmount
(
ownerLoanRecord
.
getLoanBalance
());
entity
.
setFundingAmount
(
BigDecimal
.
ZERO
);
entity
.
setModifiedTime
(
ownerLoanAccount
.
getModifiedTime
());
Integer
flag
=
ownerLoanAccountDao
.
updateAccountCAS
(
entity
,
LocalDateTime
.
now
(),
true
);
if
(
flag
==
1
)
{
//生成借款流水
initOwnerLoanRunningWaterRecord
(
ownerLoanRecord
);
//生成还款记录
initOwnerRepayment
(
ownerLoanRecord
);
break
;
}
}
}
else
{
//拒绝
ownerLoanRecord
.
setLoanType
(
param
.
getLoanType
());
ownerLoanRecord
.
setStatus
(
OwnerLoanRecordEnum
.
Status
.
APPROVE_REFUSE
.
getCode
());
}
//更新借款记录
ownerLoanRecordDao
.
updateEntityByKey
(
ownerLoanRecord
);
}
@Override
public
IPage
<
OwnerLoanRecordVO
>
pageOwnerLoanRecordOfOwner
(
PageOwnerLoanRecordOfOwner
param
)
{
return
ownerLoanRecordDao
.
pageByParam
(
param
);
}
private
OwnerRepayment
initOwnerRepayment
(
OwnerLoanRecord
ownerLoanRecord
)
{
/**
* 生成借款流水
* @param ownerLoanRecord
*/
private
void
initOwnerLoanRunningWaterRecord
(
OwnerLoanRecord
ownerLoanRecord
)
{
OwnerLoanAccount
ownerLoanAccount
;
ownerLoanAccount
=
ownerLoanAccountDao
.
getOneByField
(
OwnerLoanAccount:
:
getOwnerUserNo
,
ownerLoanRecord
.
getOwnerUserNo
()).
get
();
ownerLoanRecordDao
.
updateEntityByKey
(
ownerLoanRecord
);
OwnerLoanAccountRunningWaterRecord
record
=
new
OwnerLoanAccountRunningWaterRecord
()
.
setOwnerUserNo
(
ownerLoanRecord
.
getOwnerUserNo
())
.
setOwnerUserName
(
ownerLoanRecord
.
getOwnerUserName
())
.
setMobile
(
ownerLoanRecord
.
getMobile
())
.
setRunningWaterNo
(
idGenerateSnowFlake
.
nextId
(
2L
))
.
setLoanNo
(
ownerLoanRecord
.
getLoanNo
())
.
setRunningWaterType
(
RunningWaterTypeEnum
.
Status
.
LOAN
.
getCode
())
.
setAlterationBalance
(
ownerLoanRecord
.
getLoanBalance
())
.
setAccountBalance
(
ownerLoanAccount
.
getFundingAmount
().
add
(
ownerLoanAccount
.
getVirtuallyAmount
()))
.
setCreateBy
(
"系统"
);
ownerLoanAccountRunningWaterRecordDao
.
saveEntity
(
record
);
}
/**
* 生成还款记录
* @param ownerLoanRecord
*/
private
void
initOwnerRepayment
(
OwnerLoanRecord
ownerLoanRecord
)
{
OwnerRepayment
ownerRepayment
=
new
OwnerRepayment
();
ownerRepayment
.
setLoanRepaymentTime
(
ownerLoanRecord
.
getLoanRepaymentTime
());
ownerRepayment
.
setMobile
(
ownerLoanRecord
.
getMobile
());
...
...
@@ -173,6 +202,6 @@ public class OwnerLoanRecordServiceImpl implements OwnerLoanRecordService {
ownerRepayment
.
setBeOverdue
(
OwnerRePaymentEnum
.
BeOverdue
.
NO
.
getCode
());
ownerRepayment
.
setCreateBy
(
"系统"
);
ownerRepayment
.
setStatus
(
OwnerRePaymentEnum
.
Status
.
PAY_WAIT
.
getCode
());
return
ownerRepayment
;
ownerRepaymentDao
.
saveEntity
(
ownerRepayment
)
;
}
}
performance-web/src/main/java/com/clx/performance/service/impl/thirdparty/nbbank/NbBankServiceImpl.java
浏览文件 @
86aa7059
...
...
@@ -2,11 +2,13 @@ package com.clx.performance.service.impl.thirdparty.nbbank;
import
com.alibaba.fastjson.JSONObject
;
import
com.clx.performance.component.IdGenerateSnowFlake
;
import
com.clx.performance.enums.PerformanceResultEnum
;
import
com.clx.performance.service.thirdparty.nbbank.NbBankService
;
import
com.clx.performance.service.thirdparty.nbbank.NbBankThirdpartyService
;
import
com.clx.performance.utils.LocalDateTimeUtils
;
import
com.clx.performance.vo.pc.nbbank.NbBankOrderPayResultVO
;
import
com.clx.performance.vo.pc.nbbank.NbBankOrderResultVO
;
import
com.msl.common.exception.ServiceSystemException
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
...
...
@@ -36,7 +38,7 @@ public class NbBankServiceImpl implements NbBankService {
*/
@Override
public
NbBankOrderPayResultVO
orderTransferPay
(
Integer
amount
)
{
String
merSeqNo
=
merSeqNoGenerate
(
);
String
merSeqNo
=
idGenerateSnowFlake
.
nextIdToString
(
3L
);
String
merDtTm
=
LocalDateTimeUtils
.
formatTime
();
JSONObject
data
=
bankThirdpartyService
.
directBankTransferOrder
(
merSeqNo
,
merDtTm
,
amount
);
...
...
@@ -56,13 +58,14 @@ public class NbBankServiceImpl implements NbBankService {
/**
* 订单支付
* @param loanNo 借款单号
* @param amount 金额分
* @param payAcctOpenBankId 开户行号
* @param payAcctNo 付款账号
* @param payAcctNm 付款户名
*/
@Override
public
NbBankOrderPayResultVO
orderDirectPay
(
Integer
amount
,
public
NbBankOrderPayResultVO
orderDirectPay
(
Long
loanNo
,
Integer
amount
,
String
payAcctOpenBankId
,
String
payAcctNo
,
String
payAcctNm
)
{
String
merSeqNo
=
idGenerateSnowFlake
.
nextIdToString
(
3L
);
...
...
@@ -71,6 +74,10 @@ public class NbBankServiceImpl implements NbBankService {
payAcctOpenBankId
,
payAcctNo
,
payAcctNm
);
String
transSeqNo
=
data
.
getString
(
"transSeqNo"
);
if
(
StringUtils
.
isBlank
(
transSeqNo
))
{
log
.
info
(
"宁波银行订单支付失败,借款单号{},返回结果:{}"
,
loanNo
,
data
);
throw
new
ServiceSystemException
(
PerformanceResultEnum
.
NB_BANK_ORDER_PAY_ERROR
);
}
NbBankOrderPayResultVO
result
=
new
NbBankOrderPayResultVO
();
result
.
setAmount
(
amount
);
result
.
setMerDtTm
(
merDtTm
);
...
...
@@ -152,7 +159,7 @@ public class NbBankServiceImpl implements NbBankService {
*/
@Override
public
NbBankOrderResultVO
refund
(
String
orgMerSeqNo
,
Integer
amount
,
String
orgTransSeqNo
)
{
String
merSeqNo
=
merSeqNoGenerate
(
);
String
merSeqNo
=
idGenerateSnowFlake
.
nextIdToString
(
3L
);
String
merDtTm
=
LocalDateTimeUtils
.
formatTime
();
JSONObject
data
=
bankThirdpartyService
.
refund
(
merSeqNo
,
merDtTm
,
amount
,
...
...
@@ -217,11 +224,4 @@ public class NbBankServiceImpl implements NbBankService {
}
/**
* 创建流水号
*/
private
String
merSeqNoGenerate
(){
return
LocalDateTime
.
now
().
format
(
DateTimeFormatter
.
ofPattern
(
"yyyyMMddHHmmss"
));
}
}
performance-web/src/main/java/com/clx/performance/service/thirdparty/nbbank/NbBankService.java
浏览文件 @
86aa7059
...
...
@@ -10,7 +10,7 @@ public interface NbBankService {
NbBankOrderPayResultVO
orderTransferPay
(
Integer
amount
);
NbBankOrderPayResultVO
orderDirectPay
(
Integer
amount
,
NbBankOrderPayResultVO
orderDirectPay
(
Long
loanNo
,
Integer
amount
,
String
payAcctOpenBankId
,
String
payAcctNo
,
String
payAcctNm
);
NbBankOrderResultVO
getResult
(
String
merSeqNo
);
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论