diff --git a/jsowell-pile/src/main/java/com/jsowell/adapay/dto/SplitData.java b/jsowell-pile/src/main/java/com/jsowell/adapay/dto/SplitData.java index e9b56ea0c..c45492d8d 100644 --- a/jsowell-pile/src/main/java/com/jsowell/adapay/dto/SplitData.java +++ b/jsowell-pile/src/main/java/com/jsowell/adapay/dto/SplitData.java @@ -1,6 +1,9 @@ package com.jsowell.adapay.dto; +import lombok.AllArgsConstructor; +import lombok.Builder; import lombok.Data; +import lombok.NoArgsConstructor; import java.math.BigDecimal; @@ -8,6 +11,9 @@ import java.math.BigDecimal; * 订单分账数据 */ @Data +@NoArgsConstructor +@AllArgsConstructor +@Builder public class SplitData { // 分账用户 Member对象 的 id;若是商户本身时,传入0 private String memberId; diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java index 092ffef69..f42f88bc5 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java @@ -1236,13 +1236,7 @@ public class OrderBasicInfoServiceImpl implements OrderBasicInfoService { for (OrderBasicInfo orderBasicInfo : orderBasicInfos) { try { OrderSplitResult orderSettleResult = getOrderSplitResult(orderBasicInfo, adapayMemberAccount, appId); - // if (OrderPayModeEnum.PAYMENT_OF_PRINCIPAL_BALANCE.getValue().equals(orderBasicInfo.getPayMode())) { - // // 余额支付的订单 - // orderSettleResult = doBalancePaymentWithDelay(orderBasicInfo, adapayMemberAccount, appId); - // } else { - // // 在线支付,进行支付确认分账 - // orderSettleResult = doPaymentConfirmWithDelay(orderBasicInfo, adapayMemberAccount, appId); - // } + // 记录详情 ClearingBillDetail clearingBillDetail = ClearingBillDetail.builder() .clearingBillCode(clearingBillCode) @@ -1586,9 +1580,21 @@ public class OrderBasicInfoServiceImpl implements OrderBasicInfoService { // 校验订单是否分账 状态为非交易完成的时候,进行分账处理 if (!AdapayStatusEnum.SUCCEEDED.getValue().equals(result.getStatus())) { + DivMember divMember = new DivMember(); + divMember.setMemberId(adapayMemberAccount.getAdapayMemberId()); + divMember.setAmount(AdapayUtil.formatAmount(settleAmount)); + divMember.setFeeFlag(Constants.Y); + PaymentConfirmParam param = PaymentConfirmParam.builder() + .paymentId(paymentId) + .divMemberList(Lists.newArrayList(divMember)) + .confirmAmt(settleAmount) + .orderCode(orderCode) + .wechatAppId(wechatAppId) + .build(); // 调汇付的分账接口 确认交易 - PaymentConfirmResponse paymentConfirmResponse = adapayService.createPaymentConfirmRequest(paymentId, - adapayMemberAccount, settleAmount, orderCode, wechatAppId); + PaymentConfirmResponse paymentConfirmResponse = adapayService.createPaymentConfirmRequest(param); + // PaymentConfirmResponse paymentConfirmResponse = adapayService.createPaymentConfirmRequest(paymentId, + // adapayMemberAccount, settleAmount, orderCode, wechatAppId); // 分账接口返回的信息 result = new OrderSplitResult(); @@ -1597,6 +1603,24 @@ public class OrderBasicInfoServiceImpl implements OrderBasicInfoService { result.setFeeAmt(paymentConfirmResponse.getFee_amt()); result.setOrderCode(orderCode); result.setSettleAmt(settleAmount.toString()); + + // 保存订单分账数据 + OrderDetail orderDetail = this.getOrderDetailByOrderCode(orderCode); + if (orderDetail != null) { + List splitDataList = Lists.newArrayList(); + SplitData splitData = SplitData.builder() + .memberId(adapayMemberAccount.getAdapayMemberId()) + .amount(settleAmount.toString()) + .feeFlag(Constants.Y) + .appId(wechatAppId) + .elecRatio(new BigDecimal(100)) + .elecAmount(orderDetail.getTotalElectricityAmount()) + .serviceRatio(new BigDecimal(100)) + .serviceAmount(orderDetail.getTotalServiceAmount()) + .build(); + splitDataList.add(splitData); + orderSplitRecordService.saveOrderSplitRecord(param, paymentConfirmResponse.getId(), splitDataList); + } } return result; }