diff --git a/ghy-common/src/main/java/com/ghy/common/utils/MoneyUtil.java b/ghy-common/src/main/java/com/ghy/common/utils/MoneyUtil.java index aefb573c..6fa2477d 100644 --- a/ghy-common/src/main/java/com/ghy/common/utils/MoneyUtil.java +++ b/ghy-common/src/main/java/com/ghy/common/utils/MoneyUtil.java @@ -1,6 +1,7 @@ package com.ghy.common.utils; import java.math.BigDecimal; +import java.math.RoundingMode; /** * 处理金额工具类 @@ -74,4 +75,7 @@ public class MoneyUtil { return lte(a, BigDecimal.ZERO); } + public static String toS(BigDecimal money) { + return money.setScale(2, RoundingMode.UNNECESSARY).toString(); + } } diff --git a/ghy-order/src/main/java/com/ghy/order/service/impl/OrderDetailServiceImpl.java b/ghy-order/src/main/java/com/ghy/order/service/impl/OrderDetailServiceImpl.java index 41bba76f..70cd084b 100644 --- a/ghy-order/src/main/java/com/ghy/order/service/impl/OrderDetailServiceImpl.java +++ b/ghy-order/src/main/java/com/ghy/order/service/impl/OrderDetailServiceImpl.java @@ -1,5 +1,6 @@ package com.ghy.order.service.impl; +import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.ghy.common.adapay.AdapayErrorCode; import com.ghy.common.adapay.model.AdapayStatusEnum; @@ -454,6 +455,22 @@ public class OrderDetailServiceImpl implements OrderDetailService { // 子单收款人的memberId String memberId = AdapayUtils.getWorkerMemberId(financialDetail.getPayeeId(), financialDetail.getDeptId()); + List oasList = orderAddSubtractMapper.select(new OrderAddSubtract() + .setOrderDetailId(orderDetailId).setPayStatus(PayStatus.PAID.getCode())); + // --------------------- 追加分账部分 start --------------------- + List adds = oasList.stream().filter(oas -> MoneyUtil.gt0(oas.getMoney())).collect(Collectors.toList()); + for (OrderAddSubtract oas : adds) { + String orderNo = payment.getOrderNo() + "_" + oas.getPaymentId() + "_" + System.currentTimeMillis(); + ArrayList divMembers = new ArrayList<>(); + divMembers.add(new DivMember(memberId, MoneyUtil.toS(oas.getMoney()), true)); + //调用分账 + logger.info("子订单[{}]的追加单[{}]发起分账: {}", orderDetailId, oas.getId(), JSON.toJSONString(divMembers)); + JSONObject response = adapayService.paymentConfirm(financialDetail.getDeptId(), oas.getPaymentId(), + orderNo, MoneyUtil.toS(oas.getMoney()), divMembers, null, null); + logger.info("子订单[{}]的追加单[{}]分账结果: {}", orderDetailId, oas.getId(), response.toString()); + } + // --------------------- 追加分账部分 end --------------------- + // --------------------- 改价单分账部分 start --------------------- // 查询子订单的加价记录 List financialChangeRecords = financialChangeRecordService.selectByDetailIds(String.valueOf(orderDetailId));