no message
This commit is contained in:
parent
c832f2632e
commit
3ff590511d
|
|
@ -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) {
|
||||
// 一级分销追加扣点
|
||||
|
|
|
|||
Loading…
Reference in New Issue