增加子单金额的分账

This commit is contained in:
cb 2025-06-08 18:13:17 +08:00
parent 18b6d5325d
commit 9a722c8da2
1 changed files with 13 additions and 1 deletions

View File

@ -621,8 +621,20 @@ public class OrderDetailServiceImpl implements OrderDetailService {
// 子单的实际金额
BigDecimal odMoney = financialDetail.getPayMoney().subtract(changeMoney);
logger.info("子单的实际金额{}", odMoney);
if (MoneyUtil.lte0(odMoney)) {
ArrayList<DivMember> 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<OrderTimeoutRecord> fineRecords = orderFineRecordMapper.selectUnFine(orderDetail.getWorkerId(), orderMaster.getDeptId());