Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
C
clx-performance
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
姜武杰
clx-performance
Commits
56237241
提交
56237241
authored
2月 27, 2024
作者:
liuhaiquan
浏览文件
操作
浏览文件
下载
差异文件
Merge remote-tracking branch 'origin/v10.7_borrowing_and_repayment_20240118'…
Merge remote-tracking branch 'origin/v10.7_borrowing_and_repayment_20240118' into v10.7_borrowing_and_repayment_20240118
上级
25cadc03
a36a6677
隐藏空白字符变更
内嵌
并排
正在显示
10 个修改的文件
包含
73 行增加
和
34 行删除
+73
-34
PerformanceResultEnum.java
...java/com/clx/performance/enums/PerformanceResultEnum.java
+1
-1
OrderChildLoanComponent.java
...om/clx/performance/component/OrderChildLoanComponent.java
+1
-0
RedissonConstants.java
.../java/com/clx/performance/constant/RedissonConstants.java
+3
-0
CarrierOwnerLoanRecordController.java
...ler/pc/loan/carrier/CarrierOwnerLoanRecordController.java
+27
-1
OrderChildLoanRetryRecordDaoImpl.java
...mance/dao/impl/loan/OrderChildLoanRetryRecordDaoImpl.java
+6
-0
OwnerRepaymentDaoImpl.java
.../clx/performance/dao/impl/loan/OwnerRepaymentDaoImpl.java
+2
-0
OrderChildLoanRetryRecordDao.java
...lx/performance/dao/loan/OrderChildLoanRetryRecordDao.java
+2
-0
EventListenerComponent.java
...ava/com/clx/performance/event/EventListenerComponent.java
+12
-6
OwnerLoanAccountServiceImpl.java
...rmance/service/impl/loan/OwnerLoanAccountServiceImpl.java
+11
-20
OwnerLoanRecordServiceImpl.java
...ormance/service/impl/loan/OwnerLoanRecordServiceImpl.java
+8
-6
没有找到文件。
performance-api/src/main/java/com/clx/performance/enums/PerformanceResultEnum.java
浏览文件 @
56237241
...
...
@@ -132,7 +132,7 @@ public enum PerformanceResultEnum implements ResultEnum {
OWNER_LOAN_RECORD_CANCEL_STATUS_ERROR
(
1851
,
"状态已变更无法取消"
),
OWNER_LOAN_RECORD_ADJUST_STATUS_ERROR
(
1851
,
"状态已变更无法核销"
),
OWNER_LOAN_RECORD_PAY_WAIT_ERROR
(
1852
,
"当前借款单状态不是待付款"
),
OWNER_LOAN_PAYMENT_STATUS_ERROR
(
1851
,
"
状态已变变更
"
),
OWNER_LOAN_PAYMENT_STATUS_ERROR
(
1851
,
"
执行借款审批失败,请稍后重试
"
),
;
private
final
int
code
;
...
...
performance-web/src/main/java/com/clx/performance/component/OrderChildLoanComponent.java
浏览文件 @
56237241
...
...
@@ -179,6 +179,7 @@ public class OrderChildLoanComponent {
param
.
setOrderChildPrice
(
orderChildPrice
);
param
.
setOwnerUserNo
(
ownerLoanAccount
.
getOwnerUserNo
());
param
.
setChildNo
(
childNo
);
param
.
setEventFlag
(
false
);
getLoanBalanceLock
(
param
);
}
...
...
performance-web/src/main/java/com/clx/performance/constant/RedissonConstants.java
浏览文件 @
56237241
...
...
@@ -12,4 +12,7 @@ public class RedissonConstants {
public
static
final
String
ORDER_CHILD_LOAN_OWNER_USERID_LOCK
=
"clx-performance:orderChild:loan:ownerUserId:"
;
public
static
final
String
ORDER_CHILD_LOAN_RECORD_LOAN_NO_LOCK
=
"clx-performance:loanRecordApprove:loanNo:"
;
}
performance-web/src/main/java/com/clx/performance/controller/pc/loan/carrier/CarrierOwnerLoanRecordController.java
浏览文件 @
56237241
package
com
.
clx
.
performance
.
controller
.
pc
.
loan
.
carrier
;
import
cn.hutool.json.JSONUtil
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.clx.performance.constant.RedissonConstants
;
import
com.clx.performance.enums.PerformanceResultEnum
;
import
com.clx.performance.param.pc.loan.carrier.*
;
import
com.clx.performance.param.pc.loan.owner.ExportPaymentApplicationFormParam
;
import
com.clx.performance.service.loan.OwnerLoanRecordService
;
...
...
@@ -10,17 +13,21 @@ import com.clx.performance.vo.pc.loan.carrier.OwnerLoanRecordVO;
import
com.clx.performance.vo.pc.loan.carrier.CarrierTransferPaymentDetailVO
;
import
com.msl.common.base.PageData
;
import
com.msl.common.convertor.aspect.UnitCovert
;
import
com.msl.common.exception.ServiceSystemException
;
import
com.msl.common.result.Result
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
import
lombok.AllArgsConstructor
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.ibatis.annotations.Param
;
import
org.redisson.api.RLock
;
import
org.redisson.api.RedissonClient
;
import
org.springframework.validation.annotation.Validated
;
import
org.springframework.web.bind.annotation.*
;
import
javax.validation.constraints.NotBlank
;
import
javax.validation.constraints.NotNull
;
import
java.util.concurrent.TimeUnit
;
@Slf4j
@RestController
...
...
@@ -32,6 +39,8 @@ public class CarrierOwnerLoanRecordController {
private
final
OwnerLoanRecordService
ownerLoanRecordService
;
private
final
RedissonClient
redissonClient
;
@ApiOperation
(
value
=
"借款审批列表"
,
notes
=
"<br>By:刘海泉"
)
@PostMapping
(
"/pageOwnerLoanRecord"
)
...
...
@@ -44,7 +53,24 @@ public class CarrierOwnerLoanRecordController {
@ApiOperation
(
value
=
"借款审批(虚拟币直接增加,资金需要跳收银台提交申请)"
,
notes
=
"<br>By:胡宇帆"
)
@PostMapping
(
"/ownerLoanRecordApprove"
)
public
Result
<
Object
>
ownerLoanRecordApprove
(
@RequestBody
@Validated
CarrierOwnerLoanRecordApproveParam
param
)
{
ownerLoanRecordService
.
ownerLoanRecordApprove
(
param
);
RLock
lock
=
null
;
try
{
lock
=
redissonClient
.
getLock
(
RedissonConstants
.
ORDER_CHILD_LOAN_RECORD_LOAN_NO_LOCK
+
param
.
getLoanNo
());
boolean
flag
=
lock
.
tryLock
(
5
,
4
,
TimeUnit
.
SECONDS
);
if
(!
flag
)
{
throw
new
ServiceSystemException
(
PerformanceResultEnum
.
OWNER_LOAN_PAYMENT_STATUS_ERROR
);
}
ownerLoanRecordService
.
ownerLoanRecordApprove
(
param
);
}
catch
(
Exception
e
)
{
log
.
info
(
"借款审批异常,param:{}, lock:{}"
,
param
,
JSONUtil
.
parse
(
lock
));
throw
new
ServiceSystemException
(
PerformanceResultEnum
.
OWNER_LOAN_PAYMENT_STATUS_ERROR
,
e
.
getMessage
());
}
finally
{
if
(
lock
!=
null
&&
lock
.
isLocked
()
&&
lock
.
isHeldByCurrentThread
())
{
lock
.
unlock
();
}
}
return
Result
.
ok
();
}
...
...
performance-web/src/main/java/com/clx/performance/dao/impl/loan/OrderChildLoanRetryRecordDaoImpl.java
浏览文件 @
56237241
...
...
@@ -20,4 +20,10 @@ public class OrderChildLoanRetryRecordDaoImpl extends BaseDaoImpl<OrderChildLoan
public
List
<
OrderChildLoanRetryRecord
>
selectListByOwnerUserNoAndIdAsc
(
Long
userNo
)
{
return
baseMapper
.
selectList
(
lQrWrapper
().
eq
(
OrderChildLoanRetryRecord:
:
getOwnerUserNo
,
userNo
).
orderByAsc
(
OrderChildLoanRetryRecord:
:
getId
));
}
@Override
public
OrderChildLoanRetryRecord
selectOneByOwnerIdAndDriverId
(
Integer
ownerId
,
Integer
driverId
)
{
return
baseMapper
.
selectOne
(
lQrWrapper
().
eq
(
OrderChildLoanRetryRecord:
:
getSettlementOwnerId
,
ownerId
)
.
eq
(
OrderChildLoanRetryRecord:
:
getSettlementDriverId
,
driverId
));
}
}
performance-web/src/main/java/com/clx/performance/dao/impl/loan/OwnerRepaymentDaoImpl.java
浏览文件 @
56237241
...
...
@@ -79,6 +79,8 @@ public class OwnerRepaymentDaoImpl extends BaseDaoImpl<OwnerRepaymentMapper, Own
.
set
(
OwnerRepayment:
:
getCloseOrderTime
,
ownerRepayment
.
getCloseOrderTime
())
.
set
(
OwnerRepayment:
:
getPayment
,
ownerRepayment
.
getPayment
())
.
set
(
OwnerRepayment:
:
getPaymentAccount
,
ownerRepayment
.
getPaymentAccount
())
.
set
(
OwnerRepayment:
:
getOperateBy
,
ownerRepayment
.
getOperateBy
())
.
set
(
OwnerRepayment:
:
getOperateTime
,
ownerRepayment
.
getOperateTime
())
);
...
...
performance-web/src/main/java/com/clx/performance/dao/loan/OrderChildLoanRetryRecordDao.java
浏览文件 @
56237241
...
...
@@ -14,4 +14,6 @@ import java.util.List;
public
interface
OrderChildLoanRetryRecordDao
extends
BaseDao
<
OrderChildLoanRetryRecordMapper
,
OrderChildLoanRetryRecord
,
Integer
>
{
List
<
OrderChildLoanRetryRecord
>
selectListByOwnerUserNoAndIdAsc
(
Long
userNo
);
OrderChildLoanRetryRecord
selectOneByOwnerIdAndDriverId
(
Integer
ownerId
,
Integer
driverId
);
}
performance-web/src/main/java/com/clx/performance/event/EventListenerComponent.java
浏览文件 @
56237241
...
...
@@ -67,13 +67,19 @@ public class EventListenerComponent {
log
.
info
(
"当前货主结算信息{},车主结算信息:{}"
,
JSONUtil
.
parse
(
settlementOwnerDetail
),
JSONUtil
.
parse
(
settlementDriverDetail
));
settlementOwnerDetailDao
.
updateInvoiceType
(
settlementOwnerDetail
);
settlementDriverDetailDao
.
updateInvoiceTypeAndPrepayFreightFlag
(
settlementDriverDetail
);
Integer
ownerId
=
settlementOwnerDetail
.
getId
();
Integer
driverId
=
settlementDriverDetail
.
getId
();
OrderChildLoanRetryRecord
record
=
orderChildLoanRetryRecordDao
.
selectOneByOwnerIdAndDriverId
(
ownerId
,
driverId
);
if
(
record
==
null
)
{
OrderChildLoanRetryRecord
entity
=
new
OrderChildLoanRetryRecord
();
entity
.
setSettlementOwnerId
(
ownerId
);
entity
.
setSettlementDriverId
(
driverId
);
entity
.
setOwnerUserNo
(
settlementOwnerDetail
.
getOwnerUserNo
());
// 保存重试记录
orderChildLoanRetryRecordDao
.
saveEntity
(
entity
);
}
OrderChildLoanRetryRecord
entity
=
new
OrderChildLoanRetryRecord
();
entity
.
setSettlementOwnerId
(
settlementOwnerDetail
.
getId
());
entity
.
setSettlementDriverId
(
settlementDriverDetail
.
getId
());
entity
.
setOwnerUserNo
(
settlementOwnerDetail
.
getOwnerUserNo
());
// 保存重试记录
orderChildLoanRetryRecordDao
.
saveEntity
(
entity
);
}
@EventListener
(
classes
=
{
OwnerRepaymentUpdateEvent
.
class
})
...
...
performance-web/src/main/java/com/clx/performance/service/impl/loan/OwnerLoanAccountServiceImpl.java
浏览文件 @
56237241
package
com
.
clx
.
performance
.
service
.
impl
.
loan
;
import
cn.hutool.json.JSONUtil
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.clx.performance.component.OrderChildLoanComponent
;
import
com.clx.performance.constant.RabbitKeyConstants
;
import
com.clx.performance.dao.OrderChildDao
;
import
com.clx.performance.dao.loan.*
;
import
com.clx.performance.dao.settle.SettlementDriverDetailDao
;
import
com.clx.performance.dao.settle.SettlementOwnerDetailDao
;
import
com.clx.performance.dto.OwnerLoanMqDTO
;
import
com.clx.performance.dao.loan.BankTradeDao
;
import
com.clx.performance.dao.loan.OwnerLoanAccountDao
;
import
com.clx.performance.dao.loan.OwnerLoanRecordDao
;
import
com.clx.performance.dao.loan.OwnerRepaymentDao
;
import
com.clx.performance.enums.OwnerAccountEnum
;
import
com.clx.performance.enums.loan.BankTradeEnum
;
import
com.clx.performance.enums.loan.OwnerLoanAccountApproveEnum
;
import
com.clx.performance.enums.loan.OwnerLoanRecordEnum
;
import
com.clx.performance.enums.loan.OwnerRePaymentEnum
;
import
com.clx.performance.extranal.user.OwnerInfoService
;
import
com.clx.performance.model.OrderChild
;
import
com.clx.performance.model.breakcontract.BreakContractSettlementDriver
;
import
com.clx.performance.model.loan.*
;
import
com.clx.performance.model.settle.SettlementDriverDetail
;
import
com.clx.performance.model.settle.SettlementOwnerDetail
;
import
com.clx.performance.model.loan.BankTrade
;
import
com.clx.performance.model.loan.OwnerLoanAccount
;
import
com.clx.performance.model.loan.OwnerLoanRecord
;
import
com.clx.performance.model.loan.OwnerRepayment
;
import
com.clx.performance.param.pc.loan.carrier.OwnerRepaymentParam
;
import
com.clx.performance.param.pc.loan.carrier.PageOwnerLoanAccountParam
;
import
com.clx.performance.service.loan.OwnerLoanAccountService
;
...
...
@@ -33,18 +26,13 @@ import com.msl.common.base.Optional;
import
com.msl.common.convertor.aspect.UnitCovert
;
import
com.msl.user.data.UserSessionData
;
import
com.msl.user.utils.TokenUtil
;
import
io.swagger.models.auth.In
;
import
lombok.AllArgsConstructor
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.amqp.core.Message
;
import
org.springframework.amqp.core.MessageBuilder
;
import
org.springframework.amqp.rabbit.core.RabbitTemplate
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
java.math.BigDecimal
;
import
java.time.LocalDateTime
;
import
java.util.List
;
/**
* @author kavin
...
...
@@ -141,6 +129,9 @@ public class OwnerLoanAccountServiceImpl implements OwnerLoanAccountService {
ownerRepayment
.
setPayment
(
ownerInfo
.
getName
());
ownerRepayment
.
setPaymentAccount
(
ownerInfo
.
getOwnerBankAccount
());
ownerRepayment
.
setOperateBy
(
TokenUtil
.
getLoginUserInfo
().
getUserName
());
ownerRepayment
.
setOperateTime
(
LocalDateTime
.
now
());
// 更新还款支付信息
ownerRepaymentDao
.
updateRePay
(
ownerRepayment
);
...
...
performance-web/src/main/java/com/clx/performance/service/impl/loan/OwnerLoanRecordServiceImpl.java
浏览文件 @
56237241
...
...
@@ -29,7 +29,6 @@ import com.clx.performance.dto.LoanBalanceDTO;
import
com.clx.performance.dao.loan.*
;
import
com.clx.performance.dto.OwnerLoanMqDTO
;
import
com.clx.performance.enums.PerformanceResultEnum
;
import
com.clx.performance.enums.RunningWaterTypeEnum
;
import
com.clx.performance.enums.loan.BankTradeEnum
;
import
com.clx.performance.enums.loan.OwnerLoanAccountRunningWaterRecordEnum
;
import
com.clx.performance.enums.loan.OwnerLoanRecordEnum
;
...
...
@@ -185,7 +184,12 @@ public class OwnerLoanRecordServiceImpl implements OwnerLoanRecordService {
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
void
ownerLoanRecordApprove
(
CarrierOwnerLoanRecordApproveParam
param
)
{
OwnerLoanRecord
ownerLoanRecord
=
ownerLoanRecordDao
.
getOneByField
(
OwnerLoanRecord:
:
getLoanNo
,
param
.
getLoanNo
()).
get
();
if
(!
ownerLoanRecord
.
getStatus
().
equals
(
OwnerLoanRecordEnum
.
Status
.
APPROVE_WAIT
.
getCode
()))
{
log
.
info
(
"当前借款单单号:{},状态:{}"
,
ownerLoanRecord
.
getLoanNo
(),
ownerLoanRecord
.
getStatus
());
throw
new
ServiceSystemException
(
PerformanceResultEnum
.
DATA_NOT_FIND
);
}
if
(
param
.
getStatus
())
{
borrowerConfigDao
.
selectByBorrowerIdAndType
(
ownerLoanRecord
.
getBorrowerId
(),
param
.
getLoanType
())
.
orElseThrow
(
PerformanceResultEnum
.
BORROWER_CONFIG_TYPE_NOT_SUPPORT_ERROR
);
...
...
@@ -315,7 +319,6 @@ public class OwnerLoanRecordServiceImpl implements OwnerLoanRecordService {
*/
private
void
initOwnerLoanRunningWaterRecord
(
OwnerLoanRecord
ownerLoanRecord
)
{
OwnerLoanAccount
ownerLoanAccount
=
ownerLoanAccountDao
.
getOneByField
(
OwnerLoanAccount:
:
getOwnerUserNo
,
ownerLoanRecord
.
getOwnerUserNo
()).
get
();
log
.
info
(
"当前ownerLoanAccount{}"
,
JSONUtil
.
parse
(
ownerLoanAccount
));
ownerLoanRecordDao
.
updateEntityByKey
(
ownerLoanRecord
);
OwnerLoanAccountRunningWaterRecord
record
=
new
OwnerLoanAccountRunningWaterRecord
()
.
setOwnerUserNo
(
ownerLoanRecord
.
getOwnerUserNo
())
...
...
@@ -526,10 +529,9 @@ public class OwnerLoanRecordServiceImpl implements OwnerLoanRecordService {
if
(
orderChildPriceTemp
.
compareTo
(
BigDecimal
.
ZERO
)
!=
0
)
{
//当前钱不够,需要记录,流程卡死,不往下走
if
(
param
.
getEventFlag
())
{
//此刻说明是确认收货后触发的逻辑,需要是否之前冻结的借款
applicationEventPublisher
.
publishEvent
(
new
OwnerLoanThawEvent
(
this
,
param
.
getChildNo
()));
}
log
.
info
(
"当前运单货款不足,运单号{},开始执行解冻操作"
,
childNo
);
applicationEventPublisher
.
publishEvent
(
new
OwnerLoanThawEvent
(
this
,
childNo
));
throw
new
ServiceSystemException
(
PerformanceResultEnum
.
HTTP_ERROR
,
"执行借款发现:货主货款不足"
);
}
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论