no message

This commit is contained in:
cb 2025-04-27 22:02:09 +08:00
parent c832f2632e
commit 3ff590511d
1 changed files with 77 additions and 59 deletions

View File

@ -660,21 +660,39 @@ public class OrderDetailServiceImpl implements OrderDetailService {
// 没有罚金 自己承担手续费
divMembers.add(new DivMember(memberId, MoneyUtil.toS(odMoney), false));
// 平台金额部分抽出来部分承担手续费
BigDecimal payCommissionMoney= new BigDecimal(0.01);
payCommissionMoney=odMoney.multiply(payCommissionMoney).setScale(6,RoundingMode.HALF_UP);
payMoney=payMoney.setScale(6,RoundingMode.HALF_UP).subtract(payCommissionMoney);
// 1. 使用字符串构造精确的BigDecimal避免double精度问题
BigDecimal payCommissionRate = new BigDecimal("0.01");
// 2. 计算佣金时强制指定精度和舍入模式双重保障
BigDecimal commissionAmount = odMoney.multiply(payCommissionRate)
.setScale(6, RoundingMode.HALF_UP) // 第一次精度控制
.setScale(6, RoundingMode.DOWN); // 第二次强制截断关键修复点
// 3. 对齐payMoney的精度确保减法一致性
payMoney = payMoney.setScale(6, RoundingMode.DOWN); // 统一截断模式
// 4. 执行减法操作Z
payMoney = payMoney.subtract(commissionAmount);
// 5. 更新数据保持精度一致
fdUpdate.setPayMoney(payMoney);
divMembers.add(new DivMember("0", MoneyUtil.toS(payCommissionMoney.setScale(6)), true));
divMembers.add(new DivMember(
"0",
// 显式传递舍入模式给工具类
commissionAmount.toString(),
true
));
financialDetailService.updateFinancialDetail(fdUpdate);
odMoney=odMoney.add(payCommissionMoney);
odMoney = odMoney.add(payCommissionRate);
// 增加手续费财务子单
FinancialDetail financialDetail1 = new FinancialDetail();
financialDetail1.setOrderDetailId(orderDetailId);
financialDetail1.setFinancialDetailType(6);
financialDetail1.setPayMoney(payCommissionMoney);
financialDetail1.setPayMoney(payCommissionRate);
financialDetail1.setPayTime(new Date());
financialDetailService.insertFinancialDetail(financialDetail1);
logger.info("平台的抽成减去承担手续费后的金额{},平台手续费{},增加的财务子单{}", payMoney,payCommissionMoney,financialDetail1);
logger.info("平台的抽成减去承担手续费后的金额{},平台手续费{},增加的财务子单{}", payMoney, payCommissionRate, financialDetail1);
}
logger.info("子单的罚金处理后的总额{}", dtx);
@ -1086,9 +1104,9 @@ public class OrderDetailServiceImpl implements OrderDetailService {
/**
* <p>构建各分销所得金额</p>
*
* @param deptGoodsCategory 三级类目用来计算扣点
* @param financialChangeRecord 加价记录
*
*/
private void buildSettle(FinancialChangeRecord financialChangeRecord, DeptGoodsCategory deptGoodsCategory, Worker workerMaster) {
// 一级分销追加扣点