Commit 5656a0b0b728694790d2bc24b7965a840d7cc65e

Authored by YunaiV
1 parent e2d68987

修复支付通知的通知 Transaction 不生效的问题

yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/service/notify/PayNotifyServiceImpl.java
@@ -6,10 +6,10 @@ import cn.hutool.http.HttpResponse; @@ -6,10 +6,10 @@ import cn.hutool.http.HttpResponse;
6 import cn.hutool.http.HttpUtil; 6 import cn.hutool.http.HttpUtil;
7 import cn.iocoder.yudao.framework.common.pojo.CommonResult; 7 import cn.iocoder.yudao.framework.common.pojo.CommonResult;
8 import cn.iocoder.yudao.framework.common.util.date.DateUtils; 8 import cn.iocoder.yudao.framework.common.util.date.DateUtils;
9 -import cn.iocoder.yudao.framework.common.util.date.LocalDateTimeUtils;  
10 import cn.iocoder.yudao.framework.common.util.json.JsonUtils; 9 import cn.iocoder.yudao.framework.common.util.json.JsonUtils;
11 -import cn.iocoder.yudao.framework.common.util.spring.SpringAopUtils;  
12 import cn.iocoder.yudao.framework.tenant.core.util.TenantUtils; 10 import cn.iocoder.yudao.framework.tenant.core.util.TenantUtils;
  11 +import cn.iocoder.yudao.module.pay.api.notify.dto.PayOrderNotifyReqDTO;
  12 +import cn.iocoder.yudao.module.pay.api.notify.dto.PayRefundNotifyReqDTO;
13 import cn.iocoder.yudao.module.pay.dal.dataobject.notify.PayNotifyLogDO; 13 import cn.iocoder.yudao.module.pay.dal.dataobject.notify.PayNotifyLogDO;
14 import cn.iocoder.yudao.module.pay.dal.dataobject.notify.PayNotifyTaskDO; 14 import cn.iocoder.yudao.module.pay.dal.dataobject.notify.PayNotifyTaskDO;
15 import cn.iocoder.yudao.module.pay.dal.dataobject.order.PayOrderDO; 15 import cn.iocoder.yudao.module.pay.dal.dataobject.order.PayOrderDO;
@@ -20,18 +20,14 @@ import cn.iocoder.yudao.module.pay.dal.redis.notify.PayNotifyLockRedisDAO; @@ -20,18 +20,14 @@ import cn.iocoder.yudao.module.pay.dal.redis.notify.PayNotifyLockRedisDAO;
20 import cn.iocoder.yudao.module.pay.enums.notify.PayNotifyStatusEnum; 20 import cn.iocoder.yudao.module.pay.enums.notify.PayNotifyStatusEnum;
21 import cn.iocoder.yudao.module.pay.enums.notify.PayNotifyTypeEnum; 21 import cn.iocoder.yudao.module.pay.enums.notify.PayNotifyTypeEnum;
22 import cn.iocoder.yudao.module.pay.service.notify.dto.PayNotifyTaskCreateReqDTO; 22 import cn.iocoder.yudao.module.pay.service.notify.dto.PayNotifyTaskCreateReqDTO;
23 -import cn.iocoder.yudao.module.pay.api.notify.dto.PayOrderNotifyReqDTO;  
24 -import cn.iocoder.yudao.module.pay.api.notify.dto.PayRefundNotifyReqDTO;  
25 import cn.iocoder.yudao.module.pay.service.order.PayOrderService; 23 import cn.iocoder.yudao.module.pay.service.order.PayOrderService;
26 import cn.iocoder.yudao.module.pay.service.refund.PayRefundService; 24 import cn.iocoder.yudao.module.pay.service.refund.PayRefundService;
27 import lombok.extern.slf4j.Slf4j; 25 import lombok.extern.slf4j.Slf4j;
28 -import org.springframework.context.ApplicationContext;  
29 import org.springframework.context.annotation.Lazy; 26 import org.springframework.context.annotation.Lazy;
30 import org.springframework.scheduling.annotation.Async; 27 import org.springframework.scheduling.annotation.Async;
31 import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; 28 import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
32 import org.springframework.stereotype.Service; 29 import org.springframework.stereotype.Service;
33 import org.springframework.transaction.annotation.Transactional; 30 import org.springframework.transaction.annotation.Transactional;
34 -import org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping;  
35 31
36 import javax.annotation.Resource; 32 import javax.annotation.Resource;
37 import javax.validation.Valid; 33 import javax.validation.Valid;
@@ -44,7 +40,8 @@ import java.util.Objects; @@ -44,7 +40,8 @@ import java.util.Objects;
44 import java.util.concurrent.CountDownLatch; 40 import java.util.concurrent.CountDownLatch;
45 import java.util.concurrent.TimeUnit; 41 import java.util.concurrent.TimeUnit;
46 42
47 -import static cn.iocoder.yudao.framework.common.util.date.LocalDateTimeUtils.*; 43 +import static cn.iocoder.yudao.framework.common.util.date.LocalDateTimeUtils.addTime;
  44 +import static cn.iocoder.yudao.framework.common.util.date.LocalDateTimeUtils.afterNow;
48 import static cn.iocoder.yudao.module.pay.framework.job.config.PayJobConfiguration.NOTIFY_THREAD_POOL_TASK_EXECUTOR; 45 import static cn.iocoder.yudao.module.pay.framework.job.config.PayJobConfiguration.NOTIFY_THREAD_POOL_TASK_EXECUTOR;
49 46
50 /** 47 /**
@@ -88,9 +85,6 @@ public class PayNotifyServiceImpl implements PayNotifyService { @@ -88,9 +85,6 @@ public class PayNotifyServiceImpl implements PayNotifyService {
88 @Lazy // 循环依赖(自己依赖自己),避免报错 85 @Lazy // 循环依赖(自己依赖自己),避免报错
89 private PayNotifyServiceImpl self; 86 private PayNotifyServiceImpl self;
90 87
91 - @Resource  
92 - private ApplicationContext applicationContext;  
93 -  
94 @Override 88 @Override
95 public void createPayNotifyTask(PayNotifyTaskCreateReqDTO reqDTO) { 89 public void createPayNotifyTask(PayNotifyTaskCreateReqDTO reqDTO) {
96 PayNotifyTaskDO task = new PayNotifyTaskDO(); 90 PayNotifyTaskDO task = new PayNotifyTaskDO();
@@ -184,7 +178,7 @@ public class PayNotifyServiceImpl implements PayNotifyService { @@ -184,7 +178,7 @@ public class PayNotifyServiceImpl implements PayNotifyService {
184 } 178 }
185 179
186 // 执行通知 180 // 执行通知
187 - applicationContext.getBean(PayNotifyServiceImpl.class).executeNotify(dbTask); 181 + self.executeNotify(dbTask);
188 }); 182 });
189 } 183 }
190 184