From 09a0b0696ce68c2984d3750988b9a2ed5cc25a1f Mon Sep 17 00:00:00 2001 From: Hawking Date: Wed, 24 May 2023 11:27:49 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AD=90=E8=AE=A2=E5=8D=95=E8=BF=BD=E5=8A=A0?= =?UTF-8?q?=E5=88=86=E8=B4=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/ghy/common/utils/MoneyUtil.java | 4 ++++ .../service/impl/OrderDetailServiceImpl.java | 17 +++++++++++++++++ 2 files changed, 21 insertions(+) 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));