|
@@ -45,6 +45,7 @@ import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
import java.math.BigDecimal;
|
|
|
import java.util.*;
|
|
|
+import java.util.concurrent.Executors;
|
|
|
import java.util.concurrent.ThreadPoolExecutor;
|
|
|
import java.util.concurrent.atomic.AtomicInteger;
|
|
|
import java.util.stream.Collectors;
|
|
@@ -446,17 +447,28 @@ public class StudentPaymentOrderServiceImpl extends BaseServiceImpl<Long, Studen
|
|
|
|
|
|
order.setPaymentBusinessChannel(rpMap.get("channelType"));
|
|
|
order.setTenantId(this.get(order.getId()).getTenantId());
|
|
|
- TenantContextHolder.setTenantId(order.getTenantId());
|
|
|
|
|
|
- callOrderCallBack(order);
|
|
|
+ StudentPaymentOrder finalOrder = order;
|
|
|
+ Executors.newCachedThreadPool().submit(() -> {
|
|
|
+
|
|
|
+ try {
|
|
|
+ TenantContextHolder.setTenantId(finalOrder.getTenantId());
|
|
|
+
|
|
|
+ callOrderCallBack(finalOrder);
|
|
|
+
|
|
|
+ if (status.equals(DealStatusEnum.SUCCESS)
|
|
|
+ && StringUtils.isNotBlank(finalOrder.getPaymentChannel())
|
|
|
+ && finalOrder.getPaymentChannel().equals("ADAPAY")
|
|
|
+ && !rpMap.containsKey("simulation")) {
|
|
|
+ confirmOrder(finalOrder);
|
|
|
+ }
|
|
|
+ TenantContextHolder.clearTenantId();
|
|
|
+ } catch (Exception e) {
|
|
|
+ logger.error("updateOrder 订单回调流程, order={}", JSON.toJSONString(finalOrder), e);
|
|
|
+ }
|
|
|
+
|
|
|
+ });
|
|
|
|
|
|
- if (status.equals(DealStatusEnum.SUCCESS)
|
|
|
- && StringUtils.isNotBlank(order.getPaymentChannel())
|
|
|
- && order.getPaymentChannel().equals("ADAPAY")
|
|
|
- && !rpMap.containsKey("simulation")) {
|
|
|
- confirmOrder(order);
|
|
|
- }
|
|
|
- TenantContextHolder.clearTenantId();
|
|
|
}
|
|
|
|
|
|
private Boolean confirmOrder(StudentPaymentOrder order) {
|