no message

This commit is contained in:
cb 2025-06-09 17:53:46 +08:00
parent 9a722c8da2
commit f68eb53363
1 changed files with 20 additions and 19 deletions

View File

@ -619,22 +619,12 @@ public class OrderDetailServiceImpl implements OrderDetailService {
}
// --------------------- 子财务单分账部分 start ---------------------
// 子单的实际金额
BigDecimal odMoney = financialDetail.getPayMoney().subtract(changeMoney);
BigDecimal odMoney = financialDetail.getPayMoney();
logger.info("子单的实际金额{}", odMoney);
BigDecimal commissionAmount=BigDecimal.ZERO;
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());
// 分账成功 把罚金状态改为已扣除
logger.info("子财务单[{}] 应支付金额={} 不需要分账", financialDetail.getId(), odMoney);
} else {
// 查询师傅的超时扣款记录
List<OrderTimeoutRecord> fineRecords = orderFineRecordMapper.selectUnFine(orderDetail.getWorkerId(), orderMaster.getDeptId());
@ -670,13 +660,21 @@ public class OrderDetailServiceImpl implements OrderDetailService {
}
} else {
// 没有罚金 自己承担手续费
divMembers.add(new DivMember(memberId, MoneyUtil.toS(odMoney), false));
divMembers.add(new DivMember(memberId, MoneyUtil.toS(odMoney), false));
// 平台金额部分抽出来部分承担手续费
BigDecimal payCommissionRate = new BigDecimal("0.01");
BigDecimal commissionAmount = odMoney.multiply(payCommissionRate)
commissionAmount = odMoney.multiply(payCommissionRate)
.setScale(2, RoundingMode.UP); // 第一次精度控制
if (commissionAmount.compareTo(payMoney) > 0){
for (FinancialDetail financialDetail1:details){
payMoney=financialDetail1.getPayMoney();
if (payMoney.compareTo(commissionAmount)>0){
fdUpdate.setId(financialDetail1.getId());
break;
}
}
}
payMoney = payMoney.subtract(commissionAmount);
fdUpdate.setPayMoney(payMoney);
divMembers.add(new DivMember("0", MoneyUtil.toS(commissionAmount), true));
@ -705,6 +703,9 @@ public class OrderDetailServiceImpl implements OrderDetailService {
// 分账成功 把罚金状态改为已扣除
fineIds.forEach(fineRecordId -> orderFineRecordMapper.updateFineStatus(fineRecordId, 1));
logger.info("子单的实际金额{}", odMoney);
if (commissionAmount.compareTo(BigDecimal.ZERO)>0){
odMoney=odMoney.subtract(commissionAmount);
}
if (!haveFine) {
String feeAmt = response.getString("fee_amt");
dtx = dtx.add(odMoney).subtract(new BigDecimal(feeAmt));
@ -828,8 +829,6 @@ public class OrderDetailServiceImpl implements OrderDetailService {
}
}
logger.info("子师傅的费用{}子师傅抽成比例{}", detailFee, BigDecimal.ONE.subtract(teamRete));
logger.info("大师傅的扣点{},最终的扣完之后的金额{}", masterFee, workerFee);
logger.info("改价单各个金额{}{}{}{}", placeOneMoney, placeTwoMoney, masterFee, workerFee);
String orderNo = "FCR_" + fcRecord.getId() + "_" + System.currentTimeMillis();
//调用分账
logger.info("子订单[{}]的[改价单]发起分账", orderDetailId);
@ -1147,8 +1146,10 @@ public class OrderDetailServiceImpl implements OrderDetailService {
teamMoney = MoneyUtil.lt0(teamMoney) ? BigDecimal.ZERO : teamMoney;
BigDecimal endMoney=financialChangeRecord.getChangeMoney().subtract(saleOneMoney)
.subtract(saleTwoMoney).subtract(saleThreeMoney).subtract(deptChangeMoney);
BigDecimal workerMoney=endMoney.multiply(BigDecimal.ONE.subtract(teamRete).setScale(2, RoundingMode.DOWN));
BigDecimal workerMoney=endMoney.multiply(BigDecimal.ONE.subtract(teamRete)).setScale(2, RoundingMode.DOWN);
BigDecimal leaderMoney = endMoney.subtract(workerMoney).add(teamMoney);
logger.info("减去所有返点的金额{}大师傅的金额{}子师傅的金额{}子师傅的费率{}",endMoney,leaderMoney,workerMoney,BigDecimal.ONE.subtract(teamRete));
financialChangeRecord.setLeaderMoney(leaderMoney);
// 截留扣点 暂不需要