TRX 1 rok temu
rodzic
commit
54ce1913dd

+ 12 - 0
FullCardClient/src/main/java/com/zhongshu/card/client/model/paySetting/paySetting/ProjectPaySettingInfoModel.java

@@ -90,4 +90,16 @@ public class ProjectPaySettingInfoModel extends SuperModel {
 
     @Schema(description = "是否是默认的")
     private Boolean isDefault = Boolean.FALSE;
+
+    private String defaultStr = "";
+
+    public String getDefaultStr() {
+        if (isDefault != null) {
+            if (isDefault) {
+                return "主账户";
+            }
+            return "子账户";
+        }
+        return "";
+    }
 }

+ 3 - 0
FullCardServer/src/main/java/com/zhongshu/card/server/core/domain/payment/ExpenseFlow.java

@@ -170,6 +170,9 @@ public class ExpenseFlow extends SuperMain {
 
     //------------------支付结果 start-------------------------
 
+    @Schema(description = "失败时的重复次数")
+    private Integer repeatTime = 0;
+
     @Schema(description = "支付订单状态")
     private String paymentStatus;
 

+ 12 - 3
FullCardServer/src/main/java/com/zhongshu/card/server/core/service/payment/PayCallService.java

@@ -73,8 +73,7 @@ public class PayCallService extends SuperService {
 
         com.github.microservice.pay.client.ret.ResultContent<List<TransactionLogModel>> resultContent = balancePayService.balancePay(
                 entity.getProjectOid(), entity.getShopOid(), entity.getUserId(),
-                entity.getPayAmount(), entity.getPaymentNo(), entity.getRemark()
-        );
+                entity.getPayAmount(), entity.getPaymentNo(), entity.getRemark());
         if (resultContent.getState() == ResultState.Success) {
             // 关联参数
             String msg = "支付成功";
@@ -84,6 +83,8 @@ public class PayCallService extends SuperService {
             entity.setIsPaySuccess(Boolean.TRUE);
             entity.setPayRemark(msg);
             entity.setOrderType(OrderState.HAVE_PAID);
+
+            // 日志
             logsAddParam.setMessageType(MessageType.Info);
             logsAddParam.setLevel(LogsLevel.Low);
             logsAddParam.setContent(msg);
@@ -92,7 +93,13 @@ public class PayCallService extends SuperService {
             if (StringUtils.isNotEmpty(msg) && msg.contains("Connection reset")) {
                 msg = "调用支付中心失败";
             } else {
-                msg = PayExceptionToShowUtil.convertException(resultContent.getException().getCls());
+                String cls = resultContent.getException().getCls();
+                if (cls.contains("UncategorizedMongoDbException") && entity.getRepeatTime() <= 1) {
+                    // 如果是并发引起的问题,则重复一次
+                    entity.setRepeatTime(entity.getRepeatTime() + 1);
+                    return balancePay(entity);
+                }
+                msg = PayExceptionToShowUtil.convertException(cls);
             }
             if (StringUtils.isEmpty(msg)) {
                 msg = "支付中心失败";
@@ -106,7 +113,9 @@ public class PayCallService extends SuperService {
             logsAddParam.setLevel(LogsLevel.Middle);
             logsAddParam.setContent(msg);
         }
+        // 保存日志
         operationLogsService.addLog(logsAddParam);
+
         entity.setPayEndTime(System.currentTimeMillis());
         entity.setPayMillis(entity.getPayEndTime() - entity.getPayStartTime());
         return ResultContent.buildSuccess();