Просмотр исходного кода

提现及退款 异步改为同步

wujiefeng 1 год назад
Родитель
Сommit
44730b0a8f

+ 7 - 3
FullCardServer/src/main/java/com/zhongshu/card/server/core/service/pay/ChinaumsSenselessPayService.java

@@ -434,11 +434,15 @@ public class ChinaumsSenselessPayService extends SuperService {
                     result.setData(refundQuery.getContent());
                     result.setDone(true);
                     return result;
+                }else if (refundQuery.getContent().getRefundStatus().equals("PROCESSING")) {
+                    if (it.getIndex()>4){
+                        result.setData(refundQuery.getContent());
+                        result.setDone(true);
+                        return result;
+                    }
+                    return null;
                 }
-                long time = System.currentTimeMillis() - it.getStartTime();
-                if (time > 3000L) {
 
-                }
                 log.info("退款状态未知或退款中,继续查询,index:{}", it.getIndex());
                 return null;
             });

+ 23 - 10
FullCardServer/src/main/java/com/zhongshu/card/server/core/service/pay/WithdrawService.java

@@ -35,6 +35,7 @@ import com.zhongshu.card.server.core.domain.org.UserAccount;
 import com.zhongshu.card.server.core.domain.pay.PayAccount;
 import com.zhongshu.card.server.core.domain.pay.WithdrawOrder;
 import com.zhongshu.card.server.core.domain.paySetting.ProjectMainPaySetting;
+import com.zhongshu.card.server.core.model.pay.UnionFrictionlessPayFinishModel;
 import com.zhongshu.card.server.core.service.base.SuperService;
 import com.zhongshu.card.server.core.service.org.UserOrgPermissService;
 import com.zhongshu.card.server.core.service.paySetting.OrgPayAccountService;
@@ -396,16 +397,28 @@ public class WithdrawService extends SuperService {
                 withdrawOrder.setProcessUserId(userAccount.getUserId());
                 withdrawOrder.setProcessTime(System.currentTimeMillis());
                 withdrawOrderDao.save(withdrawOrder);
-//                ExecuteQueueUtil.execute(5, it->{
-//                    return Map.of(1, 1000L, 2, 3000L, 3, 5000L, 4, 5000L, 5, 5000L).getOrDefault(it, )
-//                }, data->{
-//                    com.github.microservice.net.ResultContent<WithdrawStatus> resultContent = withdrawQuery((String) data.get("withdrawUserId"));
-//                    if (resultContent.getState().equals(com.github.microservice.net.ResultState.Success)){
-//                        WithdrawStatus withdrawStatus = resultContent.getContent();
-//                        return !withdrawStatus.equals(WithdrawStatus.Accepted);
-//                    }
-//                    return true;
-//                });
+                WithdrawStatus execute = ExecuteQueueUtil.execute(5, index -> {
+                    return Map.of(1, 1000L, 2, 3000L, 3, 5000L, 4, 5000L, 5, 5000L).getOrDefault(index, 3000L);
+                }, data -> {
+                    var result = new ExecuteQueueUtil.Result<WithdrawStatus>();
+                    com.github.microservice.net.ResultContent<WithdrawStatus> resultContent = withdrawQuery(withdrawOrder.getId());
+                    if (!resultContent.getState().equals(com.github.microservice.net.ResultState.Success)) {
+                        return null;
+                    }
+                    WithdrawStatus withdrawStatus = resultContent.getContent();
+                    if (withdrawStatus.equals(WithdrawStatus.Success) || withdrawStatus.equals(WithdrawStatus.Fail)) {
+                        result.setDone(true);
+                        result.setData(withdrawStatus);
+                        return result;
+                    }
+                    result.setData(withdrawStatus);
+                    long time = System.currentTimeMillis() - data.getStartTime();
+                    if (time>3000L){
+                        result.setAsync(true);
+                        return result;
+                    }
+                    return result;
+                });
                 return com.github.microservice.net.ResultContent.buildSuccess();
             }
         }