Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
C
clx-performance
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
姜武杰
clx-performance
Commits
04a81113
提交
04a81113
authored
2月 28, 2024
作者:
huyufan
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
bug处理
上级
cf5a92a4
显示空白字符变更
内嵌
并排
正在显示
6 个修改的文件
包含
107 行增加
和
104 行删除
+107
-104
RabbitBeanConfig.java
...ain/java/com/clx/performance/config/RabbitBeanConfig.java
+17
-0
RabbitKeyConstants.java
...java/com/clx/performance/constant/RabbitKeyConstants.java
+2
-2
EventListenerComponent.java
...ava/com/clx/performance/event/EventListenerComponent.java
+12
-25
OwnerLoanAccountThawListener.java
...lx/performance/listener/OwnerLoanAccountThawListener.java
+75
-0
OwnerLoanListener.java
.../java/com/clx/performance/listener/OwnerLoanListener.java
+0
-77
OwnerLoanRecordServiceImpl.java
...ormance/service/impl/loan/OwnerLoanRecordServiceImpl.java
+1
-0
没有找到文件。
performance-web/src/main/java/com/clx/performance/config/RabbitBeanConfig.java
浏览文件 @
04a81113
...
...
@@ -205,4 +205,21 @@ public class RabbitBeanConfig {
}
/**
* 货主借款冻结释放队列
* @return
*/
@Bean
public
Queue
ownerLoanThawQueue
()
{
return
new
Queue
(
RabbitKeyConstants
.
OWNER_LOAN_THAW_QUEUE
,
true
,
false
,
false
);
}
/**
* 货主还款bind
* @return
*/
@Bean
public
Binding
ownerLoanThawBind
()
{
return
BindingBuilder
.
bind
(
ownerLoanThawQueue
()).
to
(
ownerLoanExchange
()).
with
(
RabbitKeyConstants
.
OWNER_LOAN_THAW_ROUTE_KEY
);
}
}
performance-web/src/main/java/com/clx/performance/constant/RabbitKeyConstants.java
浏览文件 @
04a81113
...
...
@@ -90,9 +90,9 @@ public class RabbitKeyConstants {
public
static
final
String
OWNER_LOAN_PAY_QUEUE
=
"clx-performance.loan.pay.queue"
;
public
static
final
String
OWNER_LOAN_
ROUTE_KEY
=
"clx-performance.loan
.route.key"
;
public
static
final
String
OWNER_LOAN_
THAW_ROUTE_KEY
=
"clx-performance.loan.thaw
.route.key"
;
public
static
final
String
OWNER_LOAN_
QUEUE
=
"clx-performance.loan
.queue"
;
public
static
final
String
OWNER_LOAN_
THAW_QUEUE
=
"clx-performance.loan.thaw
.queue"
;
public
static
final
String
OWNER_REPAYMENT_QUEUE
=
"clx-performance.owner.repayment.queue"
;
public
static
final
String
OWNER_REPAYMENT_ROUTE_KEY
=
"clx-performance.owner.repayment.route.key"
;
...
...
performance-web/src/main/java/com/clx/performance/event/EventListenerComponent.java
浏览文件 @
04a81113
...
...
@@ -4,6 +4,7 @@ import cn.hutool.core.collection.CollectionUtil;
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.dao.loan.OrderChildLoanRetryRecordDao
;
import
com.clx.performance.dao.loan.OwnerLoanAccountRunningWaterRecordDao
;
import
com.clx.performance.dao.loan.OwnerRepaymentDao
;
...
...
@@ -11,6 +12,7 @@ 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.OwnerLoanMqDTO
;
import
com.clx.performance.enums.loan.BankTradeEnum
;
import
com.clx.performance.enums.loan.OwnerLoanAccountRunningWaterRecordEnum
;
import
com.clx.performance.enums.loan.OwnerLoanRecordEnum
;
import
com.clx.performance.enums.loan.OwnerRePaymentEnum
;
...
...
@@ -24,6 +26,9 @@ import com.clx.performance.model.settle.SettlementOwnerDetail;
import
com.clx.performance.service.settle.SettlementMqService
;
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.context.ApplicationEventPublisher
;
import
org.springframework.context.event.EventListener
;
import
org.springframework.scheduling.annotation.Async
;
...
...
@@ -35,6 +40,7 @@ import org.springframework.transaction.event.TransactionalEventListener;
import
java.math.BigDecimal
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Objects
;
import
java.util.Set
;
import
java.util.stream.Collectors
;
...
...
@@ -61,6 +67,8 @@ public class EventListenerComponent {
private
final
OwnerLoanAccountRunningWaterRecordDao
ownerLoanAccountRunningWaterRecordDao
;
private
final
RabbitTemplate
rabbitTemplate
;
@EventListener
(
classes
=
{
SettlementUpdateEvent
.
class
})
public
void
listen
(
SettlementUpdateEvent
event
)
{
...
...
@@ -177,33 +185,12 @@ public class EventListenerComponent {
public
void
listen
(
OwnerLoanThawEvent
event
)
{
log
.
info
(
"OwnerLoanThawEvent事件执行"
);
log
.
info
(
"需要解冻借款的的运单号:{}"
,
event
.
getChildNo
());
Message
message
=
MessageBuilder
.
withBody
(
event
.
getChildNo
().
getBytes
()).
build
();
List
<
OwnerLoanAccountRunningWaterRecord
>
runningWaterRecordList
=
ownerLoanAccountRunningWaterRecordDao
.
getListByChildNoAndRunningWaterType
(
event
.
getChildNo
());
if
(
CollectionUtil
.
isEmpty
(
runningWaterRecordList
))
{
return
;
}
Map
<
Integer
,
List
<
OwnerLoanAccountRunningWaterRecord
>>
listMap
=
runningWaterRecordList
.
stream
().
collect
(
Collectors
.
groupingBy
(
OwnerLoanAccountRunningWaterRecord:
:
getRunningWaterType
));
List
<
OwnerLoanAccountRunningWaterRecord
>
thawRecord
=
listMap
.
get
(
OwnerLoanAccountRunningWaterRecordEnum
.
RunWaterType
.
APPROVE_THAW
.
getCode
());
if
(
CollectionUtil
.
isNotEmpty
(
thawRecord
))
{
log
.
info
(
"3.1 有借款解冻记录,说明是是重复记录,直接返回"
);
return
;
}
else
{
runningWaterRecordList
=
listMap
.
get
(
OwnerLoanAccountRunningWaterRecordEnum
.
RunWaterType
.
APPROVE_FROZEN
.
getCode
());
}
Long
ownerUserNo
=
runningWaterRecordList
.
get
(
0
).
getOwnerUserNo
();
log
.
info
(
"当前解冻货主:{},流水记录长度{},流水记录{}"
,
ownerUserNo
,
runningWaterRecordList
.
size
(),
JSONUtil
.
parse
(
runningWaterRecordList
));
for
(
OwnerLoanAccountRunningWaterRecord
record
:
runningWaterRecordList
)
{
Long
loanNo
=
record
.
getLoanNo
();
Integer
loanType
=
record
.
getLoanType
();
String
ownerUserName
=
record
.
getOwnerUserName
();
String
childNo
=
record
.
getChildNo
();
BigDecimal
balance
=
record
.
getAlterationBalance
();
//解冻借款
orderChildLoanComponent
.
thawOwnerLoanAccount
(
loanNo
,
loanType
,
ownerUserNo
,
record
.
getMobile
(),
ownerUserName
,
childNo
,
balance
);
}
rabbitTemplate
.
send
(
RabbitKeyConstants
.
OWNER_LOAN_EXCHANGE
,
RabbitKeyConstants
.
OWNER_LOAN_THAW_ROUTE_KEY
,
message
);
}
}
performance-web/src/main/java/com/clx/performance/listener/OwnerLoanAccountThawListener.java
0 → 100644
浏览文件 @
04a81113
package
com
.
clx
.
performance
.
listener
;
import
cn.hutool.core.collection.CollectionUtil
;
import
cn.hutool.json.JSONUtil
;
import
com.clx.performance.component.OrderChildLoanComponent
;
import
com.clx.performance.constant.RabbitKeyConstants
;
import
com.clx.performance.dao.loan.OwnerLoanAccountRunningWaterRecordDao
;
import
com.clx.performance.dao.settle.SettlementDriverDetailDao
;
import
com.clx.performance.dao.settle.SettlementOwnerDetailDao
;
import
com.clx.performance.dto.OwnerLoanMqDTO
;
import
com.clx.performance.enums.loan.OwnerLoanAccountRunningWaterRecordEnum
;
import
com.clx.performance.enums.loan.OwnerLoanRecordEnum
;
import
com.clx.performance.event.SettlementUpdateEvent
;
import
com.clx.performance.model.OrderChild
;
import
com.clx.performance.model.loan.OwnerLoanAccountRunningWaterRecord
;
import
com.clx.performance.model.settle.SettlementDriverDetail
;
import
com.clx.performance.model.settle.SettlementOwnerDetail
;
import
com.clx.performance.service.settle.SettlementMqService
;
import
lombok.AllArgsConstructor
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.amqp.rabbit.annotation.RabbitListener
;
import
org.springframework.context.ApplicationEventPublisher
;
import
org.springframework.stereotype.Component
;
import
org.springframework.transaction.PlatformTransactionManager
;
import
org.springframework.transaction.TransactionDefinition
;
import
org.springframework.transaction.TransactionStatus
;
import
java.math.BigDecimal
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.stream.Collectors
;
/**
* 处理货主借款冻结释放监听器
*/
@Slf4j
@Component
@AllArgsConstructor
public
class
OwnerLoanAccountThawListener
{
private
final
OrderChildLoanComponent
orderChildLoanComponent
;
private
final
OwnerLoanAccountRunningWaterRecordDao
ownerLoanAccountRunningWaterRecordDao
;
@RabbitListener
(
queues
=
RabbitKeyConstants
.
OWNER_LOAN_THAW_QUEUE
)
public
void
onMessage
(
String
message
)
{
log
.
info
(
"货主借款冻结释放监听器{}"
,
message
);
List
<
OwnerLoanAccountRunningWaterRecord
>
runningWaterRecordList
=
ownerLoanAccountRunningWaterRecordDao
.
getListByChildNoAndRunningWaterType
(
message
);
if
(
CollectionUtil
.
isEmpty
(
runningWaterRecordList
))
{
return
;
}
Map
<
Integer
,
List
<
OwnerLoanAccountRunningWaterRecord
>>
listMap
=
runningWaterRecordList
.
stream
().
collect
(
Collectors
.
groupingBy
(
OwnerLoanAccountRunningWaterRecord:
:
getRunningWaterType
));
List
<
OwnerLoanAccountRunningWaterRecord
>
thawRecord
=
listMap
.
get
(
OwnerLoanAccountRunningWaterRecordEnum
.
RunWaterType
.
APPROVE_THAW
.
getCode
());
if
(
CollectionUtil
.
isNotEmpty
(
thawRecord
))
{
log
.
info
(
"3.1 有借款解冻记录,说明是是重复记录,直接返回"
);
return
;
}
else
{
runningWaterRecordList
=
listMap
.
get
(
OwnerLoanAccountRunningWaterRecordEnum
.
RunWaterType
.
APPROVE_FROZEN
.
getCode
());
}
Long
ownerUserNo
=
runningWaterRecordList
.
get
(
0
).
getOwnerUserNo
();
log
.
info
(
"当前解冻货主:{},流水记录长度{},流水记录{}"
,
ownerUserNo
,
runningWaterRecordList
.
size
(),
JSONUtil
.
parse
(
runningWaterRecordList
));
for
(
OwnerLoanAccountRunningWaterRecord
record
:
runningWaterRecordList
)
{
Long
loanNo
=
record
.
getLoanNo
();
Integer
loanType
=
record
.
getLoanType
();
String
ownerUserName
=
record
.
getOwnerUserName
();
String
childNo
=
record
.
getChildNo
();
BigDecimal
balance
=
record
.
getAlterationBalance
();
//解冻借款
orderChildLoanComponent
.
thawOwnerLoanAccount
(
loanNo
,
loanType
,
ownerUserNo
,
record
.
getMobile
(),
ownerUserName
,
childNo
,
balance
);
}
}
}
performance-web/src/main/java/com/clx/performance/listener/OwnerLoanListener.java
deleted
100644 → 0
浏览文件 @
cf5a92a4
//package com.clx.performance.listener;
//
//import cn.hutool.json.JSONUtil;
//import com.clx.performance.component.OrderChildLoanComponent;
//import com.clx.performance.constant.RabbitKeyConstants;
//import com.clx.performance.dao.settle.SettlementDriverDetailDao;
//import com.clx.performance.dao.settle.SettlementOwnerDetailDao;
//import com.clx.performance.dto.OwnerLoanMqDTO;
//import com.clx.performance.enums.loan.OwnerLoanRecordEnum;
//import com.clx.performance.event.SettlementUpdateEvent;
//import com.clx.performance.model.OrderChild;
//import com.clx.performance.model.settle.SettlementDriverDetail;
//import com.clx.performance.model.settle.SettlementOwnerDetail;
//import com.clx.performance.service.settle.SettlementMqService;
//import lombok.AllArgsConstructor;
//import lombok.extern.slf4j.Slf4j;
//import org.springframework.amqp.rabbit.annotation.RabbitListener;
//import org.springframework.context.ApplicationEventPublisher;
//import org.springframework.stereotype.Component;
//import org.springframework.transaction.PlatformTransactionManager;
//import org.springframework.transaction.TransactionDefinition;
//import org.springframework.transaction.TransactionStatus;
//
///**
// * 处理货主借款监听器
// */
//@Slf4j
//@Component
//@AllArgsConstructor
//public class OwnerLoanListener {
//
// private final OrderChildLoanComponent orderChildLoanComponent;
//
// private final SettlementMqService settlementMqService;
//
// private final ApplicationEventPublisher applicationEventPublisher;
//
// private final SettlementOwnerDetailDao settlementOwnerDetailDao;
//
// private final SettlementDriverDetailDao settlementDriverDetailDao;
//
// private final PlatformTransactionManager platformTransactionManager;
//
// private final TransactionDefinition transactionDefinition;
//
// @RabbitListener(queues = RabbitKeyConstants.OWNER_LOAN_QUEUE)
// public void onMessage(String message) {
// TransactionStatus transactionStatus = platformTransactionManager.getTransaction(transactionDefinition);
//
// log.info("处理货主借款监听器执行,数据为{}", message);
// OwnerLoanMqDTO param = JSONUtil.toBean(message, OwnerLoanMqDTO.class);
// SettlementOwnerDetail settlementOwnerDetail = param.getSettlementOwnerDetail();
// SettlementDriverDetail settlementDriverDetail = param.getSettlementDriverDetail();
// OrderChild orderChild = param.getOrderChild();
//
// try {
// //生成借款标识
// orderChildLoanComponent.childLoanConfirmAfterProcess(settlementDriverDetail, settlementOwnerDetail, orderChild);
// } catch (Exception e) {
// //未借款
// settlementDriverDetail.setLoanFlag(OwnerLoanRecordEnum.LoanFlag.NO_LOAN.getCode());
// applicationEventPublisher.publishEvent(new SettlementUpdateEvent(this, settlementDriverDetail, settlementOwnerDetail));
// log.error("处理货主借款监听器执行异常,数据为{}", message, e);
// platformTransactionManager.commit(transactionStatus);
//
// return;
// }
// log.info("处理货主借款监听器执行成功");
// settlementOwnerDetailDao.updateInvoiceType(settlementOwnerDetail);
// settlementDriverDetailDao.updateInvoiceTypeAndPrepayFreightFlag(settlementDriverDetail);
//
// // 发送mq 通过开票标识
// settlementMqService.invoiceTypeSync(settlementDriverDetail.getChildNo(), settlementDriverDetail.getInvoiceType());
// platformTransactionManager.commit(transactionStatus);
//
// }
//}
performance-web/src/main/java/com/clx/performance/service/impl/loan/OwnerLoanRecordServiceImpl.java
浏览文件 @
04a81113
...
...
@@ -771,6 +771,7 @@ public class OwnerLoanRecordServiceImpl implements OwnerLoanRecordService {
waterRecord
.
setLoanType
(
ownerLoanRecord
.
getLoanType
());
waterRecord
.
setRunningWaterNo
(
idGenerateSnowFlake
.
nextId
(
1L
));
waterRecord
.
setChildNo
(
childNo
);
waterRecord
.
setCreateTime
(
LocalDateTime
.
now
());
waterRecord
.
setRunningWaterType
(
OwnerLoanAccountRunningWaterRecordEnum
.
RunWaterType
.
APPROVE_FROZEN
.
getCode
());
waterRecord
.
setAlterationBalance
(
orderChildPrice
);
OwnerLoanAccount
account
=
ownerLoanAccountDao
.
getOneByField
(
OwnerLoanAccount:
:
getOwnerUserNo
,
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论