From 9a722c8da2d8ae4a0a7c30688a21f4dd8892f667 Mon Sep 17 00:00:00 2001 From: cb <642514070@qq.com> Date: Sun, 8 Jun 2025 18:13:17 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=AD=90=E5=8D=95=E9=87=91?= =?UTF-8?q?=E9=A2=9D=E7=9A=84=E5=88=86=E8=B4=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../order/service/impl/OrderDetailServiceImpl.java | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) 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 c4ef2768..859b864a 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 @@ -621,8 +621,20 @@ public class OrderDetailServiceImpl implements OrderDetailService { // 子单的实际金额 BigDecimal odMoney = financialDetail.getPayMoney().subtract(changeMoney); logger.info("子单的实际金额{}", odMoney); + + if (MoneyUtil.lte0(odMoney)) { + ArrayList divMembers = new ArrayList<>(); logger.info("子财务单[{}] 应支付金额={} 不需要分账", financialDetail.getId(), odMoney); + divMembers.add(new DivMember("0", MoneyUtil.toS(payMoney), false)); + String orderNo = "OD_" + orderDetailId + "_" + System.currentTimeMillis(); + logger.info("子订单[{}]发起分账: {} 分账人员{}", orderDetailId, JSON.toJSONString(divMembers), orderDetail.getWorkerName()); + JSONObject response = adapayService.paymentConfirm(deptId, orderPayment.getId(), orderNo, MoneyUtil.toS(payMoney), divMembers, null, null); + logger.info("子订单[{}]的分账结果: {}", orderDetailId, response.toString()); + boolean status = AdapayStatusEnum.succeeded.code.equals(response.getString("status")); + // 如果确认支付失败 这里抛出异常 回滚订单状态 + Assert.isTrue(status, response.toString()); + // 分账成功 把罚金状态改为已扣除 } else { // 查询师傅的超时扣款记录 List fineRecords = orderFineRecordMapper.selectUnFine(orderDetail.getWorkerId(), orderMaster.getDeptId()); @@ -679,7 +691,7 @@ public class OrderDetailServiceImpl implements OrderDetailService { financialDetail1.setPayTime(new Date()); financialDetail1.setFinancialMasterId(financialMasterId); int financialDetailInsert= financialDetailService.insertFinancialDetail(financialDetail1); - logger.info("平台的抽成减去承担手续费后的金额{},平台手续费{},子单金额{},是否更新成功{},是否增加成功{}", payMoney, commissionAmount,odMoney,financialDetailUpdate,financialDetailInsert); + logger.info("平台的抽成减去承担手续费后的金额{},平台手续费{},子单金额{},是否更新成功{},是否增加成功{}", payMoney, commissionAmount,odMoney,financialDetailUpdate,financialDetailInsert); } logger.info("子单的罚金处理后的总额{}", dtx);