فهرست منبع

内部状态请求接口延迟,支付时间处理

785834757 2 سال پیش
والد
کامیت
d07387db46

+ 16 - 9
src/main/java/com/ydtech/modules/xxl/handler/QueryStatusHandler.java

@@ -25,6 +25,7 @@ import java.time.LocalDateTime;
 import java.time.format.DateTimeFormatter;
 import java.util.HashMap;
 import java.util.List;
+import java.util.Random;
 
 /**
  * 状态查询 并更新内部状态 定时任务
@@ -68,7 +69,7 @@ public class QueryStatusHandler {
 
     @XxlJob("queryStatusHandler")
     public void queryStatus() {
-
+        Random random = new Random();
         HashMap<String,Object> components = getComponents();
         HashMap<String,String> time = get24HourTime();
         //获取24小时内未支付的订单
@@ -76,15 +77,21 @@ public class QueryStatusHandler {
         noPayList.forEach(insAreaCompany -> {
             if(insAreaCompany.getAgreementId() != null) {
                 //实例化
-                BaseQueryStatusService queryStatusService = QueryStatusFactory.getQueryStatusService(components,insAreaCompany.getCompanyId());
-                if (queryStatusService != null) {
-                    QueryStatusResult queryStatusResult = queryStatusService.queryStatus(insAreaCompany);
-                    if (queryStatusResult.getStatus()) {
-                        //更新 ins_area_company
-                        insAreaCompany.setInsideOrderStatus(Integer.parseInt(InsOrderStatusEnum.ACCEPT_INSURANCE.getCode()));
-                        insAreaCompany.setInsidePayTime(queryStatusResult.getPayTime());
-                        insAreaCompanyMapper.updateById(insAreaCompany);
+                try {
+                    //添加延迟
+                    Thread.sleep((random.nextInt(5) + 1) * 1000);
+                    BaseQueryStatusService queryStatusService = QueryStatusFactory.getQueryStatusService(components, insAreaCompany.getCompanyId());
+                    if (queryStatusService != null) {
+                        QueryStatusResult queryStatusResult = queryStatusService.queryStatus(insAreaCompany);
+                        if (queryStatusResult.getStatus()) {
+                            //更新 ins_area_company
+                            insAreaCompany.setInsideOrderStatus(Integer.parseInt(InsOrderStatusEnum.ACCEPT_INSURANCE.getCode()));
+                            insAreaCompany.setInsidePayTime(queryStatusResult.getPayTime());
+                            insAreaCompanyMapper.updateById(insAreaCompany);
+                        }
                     }
+                }catch(Exception e){
+                    e.printStackTrace();
                 }
             }
         });

+ 9 - 1
src/main/java/com/ydtech/modules/xxl/service/impl/YongChengQueryStatusService.java

@@ -29,6 +29,8 @@ import org.springframework.stereotype.Component;
 import org.springframework.stereotype.Service;
 
 import java.math.BigDecimal;
+import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
 
 @Service
 @RequiredArgsConstructor
@@ -93,10 +95,16 @@ public class YongChengQueryStatusService implements BaseQueryStatusService {
                 queryStatusResult.setStatus(true);
                 if (StringUtils.isNotEmpty(param.getPay_date())) {
                     queryStatusResult.setPayTime(param.getPay_date());
+                }else{
+                    // 获取当前时间
+                    LocalDateTime currentDateTime = LocalDateTime.now();
+                    // 设置日期时间格式
+                    DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
+                    queryStatusResult.setPayTime(currentDateTime.format(formatter));
                 }
             }
         } catch (Exception e) {
-            throw new RuntimeException(e);
+            return queryStatusResult;
         }
         return queryStatusResult;
     }