From db206b6577eb4174fe4e3f6fee2d081334df60b0 Mon Sep 17 00:00:00 2001 From: Hawking Date: Thu, 18 May 2023 23:45:34 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A1=A5=E5=85=85=E5=A4=A7=E5=B8=88=E5=82=85?= =?UTF-8?q?=E7=9A=84=E5=AD=90=E8=AE=A2=E5=8D=95=E7=9A=84=E6=8F=90=E7=8E=B0?= =?UTF-8?q?=E6=97=B6=E9=97=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/OrderMasterServiceImpl.java | 24 +++++++++++++------ 1 file changed, 17 insertions(+), 7 deletions(-) diff --git a/ghy-order/src/main/java/com/ghy/order/service/impl/OrderMasterServiceImpl.java b/ghy-order/src/main/java/com/ghy/order/service/impl/OrderMasterServiceImpl.java index 870fb45b..91eb7371 100644 --- a/ghy-order/src/main/java/com/ghy/order/service/impl/OrderMasterServiceImpl.java +++ b/ghy-order/src/main/java/com/ghy/order/service/impl/OrderMasterServiceImpl.java @@ -254,12 +254,14 @@ public class OrderMasterServiceImpl implements OrderMasterService { } } + // 大师傅的MemberId + String masterWorkerMemberId = AdapayUtils.getWorkerMemberId(orderMaster.getWorkerId(), orderMaster.getDeptId()); // 罚金分给平台账户 memberMap.merge("0", fineMoney, BigDecimal::add); // 大师傅服务金额减去罚金后剩下的钱 如果小于等于0元 就不用分账给大师傅了 BigDecimal bigWorkerAmtSubtractFine = bigWorkerAmt.subtract(fineMoney); if (BigDecimal.ZERO.compareTo(bigWorkerAmtSubtractFine) < 0) { - memberMap.put(AdapayUtils.getWorkerMemberId(orderMaster.getWorkerId(), orderMaster.getDeptId()), bigWorkerAmtSubtractFine); + memberMap.put(masterWorkerMemberId, bigWorkerAmtSubtractFine); } confirmAmt = confirmAmt.add(bigWorkerAmt); @@ -309,13 +311,21 @@ public class OrderMasterServiceImpl implements OrderMasterService { try { String drawCashId = drawCash(orderMaster.getDeptId(), memberId, amount); - if (drawCashId != null) { - // 给大师傅的子单设置提现状态和提现时间 2023/5/18 - for (OrderDetail orderDetail : orderDetails) { - if (orderMaster.getWorkerId().equals(orderDetail.getWorkerId())) { - orderDetailService.updateDrawCashStatus(drawCashId, 1, new Date(), null); + // 判断是否为大师傅的提现 + if (masterWorkerMemberId.equals(memberId)) { + // 给大师傅的子单设置提现状态和提现时间 丢到线程池里执行 避免影响原业务逻辑 2023/5/18 + executor.execute(() -> { + for (OrderDetail orderDetail : orderDetails) { + if (orderMaster.getWorkerId().equals(orderDetail.getWorkerId())) { + OrderDetail odUpdate = new OrderDetail(); + odUpdate.setId(orderDetail.getId()); + odUpdate.setDrawCashTime(new Date()); + odUpdate.setDrawCashStatus(1); + odUpdate.setDrawCashId(drawCashId); + orderDetailService.updateOrderDetail(odUpdate); + } } - } + }); } } catch (BaseAdaPayException e) { logger.error("自动发起提现失败: orderMasterId={}, memberId={}, cashAmt={}", orderMasterId, memberId, amount, e);