diff --git a/jsowell-admin/src/main/java/com/jsowell/service/TempService.java b/jsowell-admin/src/main/java/com/jsowell/service/TempService.java index 039f09014..37046bfef 100644 --- a/jsowell-admin/src/main/java/com/jsowell/service/TempService.java +++ b/jsowell-admin/src/main/java/com/jsowell/service/TempService.java @@ -13,6 +13,7 @@ import com.jsowell.adapay.response.QueryPaymentConfirmDetailResponse; import com.jsowell.adapay.service.AdapayService; import com.jsowell.adapay.vo.OrderSettleResult; import com.jsowell.adapay.vo.PaymentInfo; +import com.jsowell.common.enums.adapay.AdapayStatusEnum; import com.jsowell.common.enums.ykc.*; import com.jsowell.common.exception.BusinessException; import com.jsowell.common.util.StringUtils; @@ -507,11 +508,40 @@ public class TempService { return; } + List paymentIdList = Lists.newArrayList(); + BigDecimal total = BigDecimal.ZERO; + for (AdaPayment adaPayment : adaPayments) { String pay_mode = adaPayment.getPay_mode(); if (StringUtils.isBlank(pay_mode)) { + // 实时分账的不检查 + continue; + } + String status = adaPayment.getStatus(); + if (!StringUtils.equals(status, AdapayStatusEnum.SUCCEEDED.getValue())) { + // 不是交易成功的不检查 + continue; + } + + // 交易金额 + BigDecimal payAmt = new BigDecimal(adaPayment.getPay_amt()); + + // 若为延时分账时,已发起支付撤销的总金额 + BigDecimal reservedAmt = new BigDecimal(adaPayment.getReserved_amt()); + + // 若为延时分账时,已发起支付确认的总金额 + BigDecimal confirmedAmt = new BigDecimal(adaPayment.getConfirmed_amt()); + + BigDecimal subtract = payAmt.subtract(reservedAmt).subtract(confirmedAmt); + + if (subtract.compareTo(BigDecimal.ZERO) > 0) { + paymentIdList.add(adaPayment.getId()); + total = total.add(subtract); + logger.info("支付单:{}, 支付金额:{}, 总撤销金额:{}, 总确认金额:{}, 剩余金额:{}", + adaPayment.getId(), payAmt, reservedAmt, confirmedAmt, subtract); } } + logger.info("{} - {} 期间,共有{}笔支付单存在剩余金额, 共计:{},list:{}", dto.getStartTime(), dto.getEndTime(), paymentIdList.size(), total, JSON.toJSONString(paymentIdList)); } }