From a1d6f90837b518dde97a8a9835162acc7831b45b Mon Sep 17 00:00:00 2001 From: cb <275647614@qq.com> Date: Wed, 23 Apr 2025 18:10:14 +0800 Subject: [PATCH] no message --- .../service/impl/OrderDetailServiceImpl.java | 27 ++++++++++++++----- 1 file changed, 21 insertions(+), 6 deletions(-) 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 d12f08d9..676b2d21 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 @@ -600,7 +600,7 @@ public class OrderDetailServiceImpl implements OrderDetailService { BigDecimal dtx2 = changePaymentConfirm(fcRecord, orderDetailId, orderDetail.getWorkerId(), deptId, memberId, masterMemberId, teamRete, teamMoney, deptRate, deptMoney, saleRateThree, placeId, saleRateTwo, parentPlaceId); dtx = dtx.add(dtx2); - logger.info("子订单加价记录{}",dtx1); + logger.info("子订单加价记录{}加价完毕{}",dtx2,dtx); } } @@ -611,7 +611,7 @@ public class OrderDetailServiceImpl implements OrderDetailService { logger.info("附件费分账金额{}",orderAttachmentRecordList); if(CollectionUtils.isNotEmpty(orderAttachmentRecordList)){ // 附件费分账. - attachPaymentConfirm(orderAttachmentRecordList.get(0), orderDetailId, orderDetail.getWorkerId(), deptId); + attachPaymentConfirm(orderAttachmentRecordList.get(0), orderDetailId, orderDetail.getWorkerId(), deptId,orderDetail.getCustomerId()); } // --------------------- 子财务单分账部分 start --------------------- // 子单的实际金额 @@ -643,6 +643,7 @@ public class OrderDetailServiceImpl implements OrderDetailService { ArrayList divMembers = new ArrayList<>(); // 是否有罚金 boolean haveFine = MoneyUtil.gt0(fineMoney); + logger.info("子单的罚金{},是否有罚金{}",fineMoney,haveFine); if (haveFine) { // 有罚金 从罚金里扣除手续费 // 平台的分账信息 用来承担罚金 divMembers.add(new DivMember("0", MoneyUtil.toS(fineMoney), true)); @@ -656,8 +657,9 @@ public class OrderDetailServiceImpl implements OrderDetailService { divMembers.add(new DivMember(memberId, MoneyUtil.toS(odMoney), true)); // 平台金额部分抽出来部分承担手续费 } + logger.info("子单的罚金处理后的总额{}",dtx); String orderNo = "OD_" + orderDetailId + "_" + System.currentTimeMillis(); - logger.info("子订单[{}]发起分账: {}", orderDetailId, JSON.toJSONString(divMembers)); + logger.info("子订单[{}]发起分账: {} 分账人员{}", orderDetailId, JSON.toJSONString(divMembers),orderDetail.getWorkerName()); JSONObject response = adapayService.paymentConfirm(deptId, orderPayment.getId(), orderNo, MoneyUtil.toS(odMoney), divMembers, null, null); logger.info("子订单[{}]的分账结果: {}", orderDetailId, response.toString()); boolean status = AdapayStatusEnum.succeeded.code.equals(response.getString("status")); @@ -665,11 +667,12 @@ public class OrderDetailServiceImpl implements OrderDetailService { Assert.isTrue(status, response.toString()); // 分账成功 把罚金状态改为已扣除 fineIds.forEach(fineRecordId -> orderFineRecordMapper.updateFineStatus(fineRecordId, 1)); - + logger.info("子单的实际金额{}",odMoney); if (!haveFine) { String feeAmt = response.getString("fee_amt"); dtx = dtx.add(odMoney).subtract(new BigDecimal(feeAmt)); } + logger.info("子单的没有罚金的实际金额{}",dtx); } // --------------------- 子财务单分账部分 end --------------------- @@ -791,6 +794,9 @@ public class OrderDetailServiceImpl implements OrderDetailService { logger.info("子订单[{}]的[改价单]分账成功", orderDetailId); // 分账成功 把罚金状态改为已扣除 fineIds.forEach(fineRecordId -> orderFineRecordMapper.updateFineStatus(fineRecordId, 1)); + //获取当前订单的 一级 二级分销 + drawCash(orderDetailId,deptId,placeOne, AdapayUtils.bigDecimalToString(placeOneMoney)); + drawCash(orderDetailId,deptId,placeTwo, AdapayUtils.bigDecimalToString(placeTwoMoney)); } else { // 分账失败 if (AdapayErrorCode.CONFIRM_AMT_OVER_LIMIT.equals(response.getString("error_code"))) { // 当前确认金额 > 支付金额 - 已支付确认金额 - 已支付撤销金额 @@ -807,7 +813,7 @@ public class OrderDetailServiceImpl implements OrderDetailService { return workerFee; } - private void attachPaymentConfirm(OrderAttachmentRecord orderAttachmentRecord, Long orderDetailId, Long workerId, Long deptId) throws BaseAdaPayException { + private void attachPaymentConfirm(OrderAttachmentRecord orderAttachmentRecord, Long orderDetailId, Long workerId, Long deptId,Long customerId) throws BaseAdaPayException { BigDecimal attachMoney = orderAttachmentRecord.getAttachMoney(); // 扣除罚金后的上门师傅报酬 // workerFee = workerFee.subtract(fineMoney); @@ -815,9 +821,14 @@ public class OrderDetailServiceImpl implements OrderDetailService { // platformFee = platformFee.add(fineMoney); ArrayList divMembers = new ArrayList<>(); // 承担手续费的标志 如果平台抽成为0则大师傅承担手续费 如果大师傅抽成也为0 则由上门师傅自己承担手续费 + String memberId = AdapayUtils.getCustomerMemberId(customerId, deptId); boolean feeFlag = false; + BigDecimal one = null; if (MoneyUtil.gt0(attachMoney)) { - divMembers.add(new DivMember("0", MoneyUtil.toS(attachMoney), true)); + one = attachMoney.multiply(new BigDecimal(0.99)).setScale(2, RoundingMode.DOWN); + divMembers.add(new DivMember(memberId, MoneyUtil.toS(one), false)); + divMembers.add(new DivMember(memberId, MoneyUtil.toS(attachMoney.subtract(one)), true)); + logger.info("子订单[{}]的[附件费]提现金额", one); feeFlag = true; } String orderNo = "FCR_" + orderAttachmentRecord.getId() + "_" + System.currentTimeMillis(); @@ -827,6 +838,10 @@ public class OrderDetailServiceImpl implements OrderDetailService { logger.info("子订单[{}]的[附件费]分账结果: {}", orderDetailId, response.toString()); if (AdapayStatusEnum.succeeded.code.equals(response.getString("status"))) { // 分账成功 logger.info("子订单[{}]的[附件费]分账成功", orderDetailId); + logger.info("子订单[{}]的[附件费]提现金额", one); + if (feeFlag){ + drawCash(orderDetailId,deptId,memberId,AdapayUtils.bigDecimalToString(one)); + } } else { // 分账失败 if (AdapayErrorCode.CONFIRM_AMT_OVER_LIMIT.equals(response.getString("error_code"))) { // 当前确认金额 > 支付金额 - 已支付确认金额 - 已支付撤销金额