update 定时分账的订单保存分账信息

This commit is contained in:
Guoqs
2025-01-09 15:18:51 +08:00
parent e562197c9c
commit 71d911705f
2 changed files with 39 additions and 9 deletions

View File

@@ -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;

View File

@@ -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<SplitData> 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;
}