Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
C
clx-performance
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
姜武杰
clx-performance
Commits
9944e1f0
提交
9944e1f0
authored
3月 02, 2024
作者:
huyufan
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
OwnerLoanEvent 加分布式锁进行判断
上级
554f028a
显示空白字符变更
内嵌
并排
正在显示
2 个修改的文件
包含
26 行增加
和
1 行删除
+26
-1
RedissonConstants.java
.../java/com/clx/performance/constant/RedissonConstants.java
+1
-0
EventListenerComponent.java
...ava/com/clx/performance/event/EventListenerComponent.java
+25
-1
没有找到文件。
performance-web/src/main/java/com/clx/performance/constant/RedissonConstants.java
浏览文件 @
9944e1f0
...
...
@@ -14,5 +14,6 @@ public class RedissonConstants {
public
static
final
String
ORDER_CHILD_LOAN_RECORD_LOAN_NO_LOCK
=
"clx-performance:loanRecordApprove:loanNo:"
;
public
static
final
String
OWNER_LOAN_EVENT_USERID_LOCK
=
"clx-performance:ownerLoanEvent:ownerUserId:"
;
}
performance-web/src/main/java/com/clx/performance/event/EventListenerComponent.java
浏览文件 @
9944e1f0
...
...
@@ -5,6 +5,7 @@ import cn.hutool.core.exceptions.ExceptionUtil;
import
cn.hutool.json.JSONUtil
;
import
com.clx.performance.component.OrderChildLoanComponent
;
import
com.clx.performance.constant.RabbitKeyConstants
;
import
com.clx.performance.constant.RedissonConstants
;
import
com.clx.performance.dao.loan.OrderChildLoanRetryRecordDao
;
import
com.clx.performance.dao.loan.OwnerLoanAccountRunningWaterRecordDao
;
import
com.clx.performance.dao.loan.OwnerLoanRecordDao
;
...
...
@@ -12,7 +13,9 @@ import com.clx.performance.dao.loan.OwnerRepaymentDao;
import
com.clx.performance.dao.settle.SettlementDriverDao
;
import
com.clx.performance.dao.settle.SettlementDriverDetailDao
;
import
com.clx.performance.dao.settle.SettlementOwnerDetailDao
;
import
com.clx.performance.dto.LoanBalanceDTO
;
import
com.clx.performance.dto.OwnerLoanMqDTO
;
import
com.clx.performance.enums.PerformanceResultEnum
;
import
com.clx.performance.enums.loan.OwnerLoanAccountRunningWaterRecordEnum
;
import
com.clx.performance.enums.loan.OwnerLoanRecordEnum
;
import
com.clx.performance.enums.loan.OwnerRePaymentEnum
;
...
...
@@ -25,8 +28,11 @@ import com.clx.performance.model.settle.SettlementDriverDetail;
import
com.clx.performance.model.settle.SettlementOwnerDetail
;
import
com.clx.performance.service.settle.SettlementMqService
;
import
com.msl.common.base.Optional
;
import
com.msl.common.exception.ServiceSystemException
;
import
lombok.AllArgsConstructor
;
import
lombok.extern.slf4j.Slf4j
;
import
org.redisson.api.RLock
;
import
org.redisson.api.RedissonClient
;
import
org.springframework.amqp.core.Message
;
import
org.springframework.amqp.core.MessageBuilder
;
import
org.springframework.amqp.rabbit.core.RabbitTemplate
;
...
...
@@ -41,6 +47,7 @@ import java.math.BigDecimal;
import
java.util.LinkedList
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.concurrent.TimeUnit
;
import
java.util.stream.Collectors
;
@Component
...
...
@@ -68,7 +75,7 @@ public class EventListenerComponent {
private
final
RabbitTemplate
rabbitTemplate
;
private
final
OwnerLoanRecordDao
ownerLoanRecordDao
;
private
final
RedissonClient
redissonClient
;
@Async
...
...
@@ -109,6 +116,15 @@ public class EventListenerComponent {
public
void
listen
(
OwnerLoanEvent
event
)
{
log
.
info
(
"OwnerLoanEvent事件执行"
);
OwnerLoanMqDTO
param
=
event
.
getParam
();
RLock
lock
=
null
;
try
{
lock
=
redissonClient
.
getLock
(
RedissonConstants
.
OWNER_LOAN_EVENT_USERID_LOCK
+
param
.
getSettlementOwnerDetail
().
getOwnerUserNo
());
boolean
flag
=
lock
.
tryLock
(
3
,
10
,
TimeUnit
.
SECONDS
);
if
(!
flag
)
{
throw
new
ServiceSystemException
(
PerformanceResultEnum
.
GET_LOAN_RECORD
);
}
SettlementOwnerDetail
settlementOwnerDetail
=
param
.
getSettlementOwnerDetail
();
SettlementDriverDetail
settlementDriverDetail
=
param
.
getSettlementDriverDetail
();
OrderChild
orderChild
=
param
.
getOrderChild
();
...
...
@@ -129,6 +145,14 @@ public class EventListenerComponent {
// 发送mq 通过开票标识
settlementMqService
.
invoiceTypeSync
(
settlementDriverDetail
.
getChildNo
(),
settlementDriverDetail
.
getInvoiceType
());
}
catch
(
Exception
e
)
{
throw
new
ServiceSystemException
(
PerformanceResultEnum
.
GET_LOAN_RECORD
,
e
.
getMessage
());
}
finally
{
if
(
lock
!=
null
&&
lock
.
isLocked
()
&&
lock
.
isHeldByCurrentThread
())
{
lock
.
unlock
();
}
}
}
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论