no message
This commit is contained in:
parent
9a722c8da2
commit
f68eb53363
|
|
@ -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);
|
||||
|
||||
// 截留扣点 暂不需要
|
||||
|
|
|
|||
Loading…
Reference in New Issue