补充大师傅的子订单的提现时间

This commit is contained in:
Hawking 2023-05-18 23:45:34 +08:00
parent 12438386bd
commit db206b6577
1 changed files with 17 additions and 7 deletions

View File

@ -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);