no message

This commit is contained in:
cb 2025-04-24 09:59:15 +08:00
parent 3ef7b08c95
commit 2c3328b320
1 changed files with 24 additions and 18 deletions

View File

@ -611,7 +611,7 @@ public class OrderDetailServiceImpl implements OrderDetailService {
logger.info("附件费分账金额{}",orderAttachmentRecordList); logger.info("附件费分账金额{}",orderAttachmentRecordList);
if(CollectionUtils.isNotEmpty(orderAttachmentRecordList)){ if(CollectionUtils.isNotEmpty(orderAttachmentRecordList)){
// 附件费分账. // 附件费分账.
attachPaymentConfirm(orderAttachmentRecordList.get(0), orderDetailId, orderDetail.getWorkerId(), deptId,orderDetail.getCustomerId()); attachPaymentConfirm(orderAttachmentRecordList.get(0), orderDetailId, orderDetail.getWorkerId(), deptId,memberId);
} }
// --------------------- 子财务单分账部分 start --------------------- // --------------------- 子财务单分账部分 start ---------------------
// 子单的实际金额 // 子单的实际金额
@ -719,9 +719,7 @@ public class OrderDetailServiceImpl implements OrderDetailService {
// 如果提成>追加金额 则去掉固定提成 只计算比例提成 // 如果提成>追加金额 则去掉固定提成 只计算比例提成
if (MoneyUtil.lt(masterFee.add(platformFee), changeMoney)) { if (MoneyUtil.lt(masterFee.add(platformFee), changeMoney)) {
platformFee = changeMoney.multiply(deptRate).setScale(2, RoundingMode.UP); platformFee = changeMoney.multiply(deptRate).setScale(2, RoundingMode.UP);
masterFee = changeMoney.multiply(teamRete).setScale(2, RoundingMode.UP);
} }
// 分销抽成 // 分销抽成
// 1级分销 // 1级分销
if (MoneyUtil.lt(oneRate, changeMoney)) { if (MoneyUtil.lt(oneRate, changeMoney)) {
@ -732,10 +730,7 @@ public class OrderDetailServiceImpl implements OrderDetailService {
placeTwoMoney = changeMoney.multiply(twoRate).setScale(2, RoundingMode.UP); placeTwoMoney = changeMoney.multiply(twoRate).setScale(2, RoundingMode.UP);
} }
// 如果是大师傅自己接单,则不需要抽成
if(AdapayUtils.getWorkerMemberId(workerId, deptId).equals(masterMemberId)){
masterFee = BigDecimal.ZERO;
}
logger.info("子订单改价分账1级{}2级{}",placeOneMoney,placeTwoMoney); logger.info("子订单改价分账1级{}2级{}",placeOneMoney,placeTwoMoney);
// 上门师傅的报酬 // 上门师傅的报酬
BigDecimal workerFee = changeMoney; BigDecimal workerFee = changeMoney;
@ -769,11 +764,7 @@ public class OrderDetailServiceImpl implements OrderDetailService {
workerFee = workerFee.subtract(platformFee); workerFee = workerFee.subtract(platformFee);
feeFlag = true; feeFlag = true;
} }
if (MoneyUtil.gt0(masterFee)) {
divMembers.add(new DivMember(masterMemberId, MoneyUtil.toS(masterFee), !feeFlag));
workerFee = workerFee.subtract(masterFee);
feeFlag = true;
}
if (MoneyUtil.gt0(placeOneMoney) && StringUtils.isNotEmpty(placeOne)) { if (MoneyUtil.gt0(placeOneMoney) && StringUtils.isNotEmpty(placeOne)) {
divMembers.add(new DivMember(placeOne, MoneyUtil.toS(placeOneMoney), !feeFlag)); divMembers.add(new DivMember(placeOne, MoneyUtil.toS(placeOneMoney), !feeFlag));
workerFee = workerFee.subtract(placeOneMoney); workerFee = workerFee.subtract(placeOneMoney);
@ -785,6 +776,20 @@ public class OrderDetailServiceImpl implements OrderDetailService {
if (MoneyUtil.gt0(workerFee)) { if (MoneyUtil.gt0(workerFee)) {
divMembers.add(new DivMember(memberId, MoneyUtil.toS(workerFee), !feeFlag)); divMembers.add(new DivMember(memberId, MoneyUtil.toS(workerFee), !feeFlag));
} }
masterFee=workerFee.multiply(teamRete).add(teamMoney).setScale(2, RoundingMode.UP);
if (MoneyUtil.lt(masterFee.add(platformFee), workerFee)) {
masterFee = workerFee.multiply(teamRete).setScale(2, RoundingMode.UP);
}
// 如果是大师傅自己接单,则不需要抽成
if(AdapayUtils.getWorkerMemberId(workerId, deptId).equals(masterMemberId)){
masterFee = BigDecimal.ZERO;
}
if (MoneyUtil.gt0(masterFee)) {
divMembers.add(new DivMember(masterMemberId, MoneyUtil.toS(masterFee), !feeFlag));
workerFee = workerFee.subtract(masterFee);
feeFlag = true;
}
logger.info("大师傅的扣点{},最终的扣完之后的金额{}",masterFee,workerFee);
String orderNo = "FCR_" + fcRecord.getId() + "_" + System.currentTimeMillis(); String orderNo = "FCR_" + fcRecord.getId() + "_" + System.currentTimeMillis();
//调用分账 //调用分账
logger.info("子订单[{}]的[改价单]发起分账", orderDetailId); logger.info("子订单[{}]的[改价单]发起分账", orderDetailId);
@ -813,7 +818,7 @@ public class OrderDetailServiceImpl implements OrderDetailService {
return workerFee; return workerFee;
} }
private void attachPaymentConfirm(OrderAttachmentRecord orderAttachmentRecord, Long orderDetailId, Long workerId, Long deptId,Long customerId) throws BaseAdaPayException { private void attachPaymentConfirm(OrderAttachmentRecord orderAttachmentRecord, Long orderDetailId, Long workerId, Long deptId,String customerId) throws BaseAdaPayException {
BigDecimal attachMoney = orderAttachmentRecord.getAttachMoney(); BigDecimal attachMoney = orderAttachmentRecord.getAttachMoney();
// 扣除罚金后的上门师傅报酬 // 扣除罚金后的上门师傅报酬
// workerFee = workerFee.subtract(fineMoney); // workerFee = workerFee.subtract(fineMoney);
@ -821,13 +826,14 @@ public class OrderDetailServiceImpl implements OrderDetailService {
// platformFee = platformFee.add(fineMoney); // platformFee = platformFee.add(fineMoney);
ArrayList<DivMember> divMembers = new ArrayList<>(); ArrayList<DivMember> divMembers = new ArrayList<>();
// 承担手续费的标志 如果平台抽成为0则大师傅承担手续费 如果大师傅抽成也为0 则由上门师傅自己承担手续费 // 承担手续费的标志 如果平台抽成为0则大师傅承担手续费 如果大师傅抽成也为0 则由上门师傅自己承担手续费
String memberId = AdapayUtils.getCustomerMemberId(customerId, deptId);
boolean feeFlag = false; boolean feeFlag = false;
BigDecimal one = null; BigDecimal one = null;
if (MoneyUtil.gt0(attachMoney)) { if (MoneyUtil.gt0(attachMoney)) {
one = attachMoney.multiply(new BigDecimal(0.99)).setScale(2, RoundingMode.DOWN); BigDecimal rate = BigDecimal.valueOf(0.99);
divMembers.add(new DivMember(memberId, MoneyUtil.toS(one), false)); one = attachMoney.multiply(rate).setScale(2, RoundingMode.DOWN);
divMembers.add(new DivMember(memberId, MoneyUtil.toS(attachMoney.subtract(one)), true)); divMembers.add(new DivMember(customerId, MoneyUtil.toS(one), false));
divMembers.add(new DivMember("0", MoneyUtil.toS(attachMoney.subtract(one)), true));
logger.info("子订单[{}]的[附件费]提现金额", one); logger.info("子订单[{}]的[附件费]提现金额", one);
feeFlag = true; feeFlag = true;
} }
@ -840,7 +846,7 @@ public class OrderDetailServiceImpl implements OrderDetailService {
logger.info("子订单[{}]的[附件费]分账成功", orderDetailId); logger.info("子订单[{}]的[附件费]分账成功", orderDetailId);
logger.info("子订单[{}]的[附件费]提现金额", one); logger.info("子订单[{}]的[附件费]提现金额", one);
if (feeFlag){ if (feeFlag){
drawCash(orderDetailId,deptId,memberId,AdapayUtils.bigDecimalToString(one)); drawCash(orderDetailId,deptId,customerId,AdapayUtils.bigDecimalToString(one));
} }
} else { // 分账失败 } else { // 分账失败
if (AdapayErrorCode.CONFIRM_AMT_OVER_LIMIT.equals(response.getString("error_code"))) { if (AdapayErrorCode.CONFIRM_AMT_OVER_LIMIT.equals(response.getString("error_code"))) {