diff --git a/ghy-admin/src/main/java/com/ghy/web/controller/goods/GoodsController.java b/ghy-admin/src/main/java/com/ghy/web/controller/goods/GoodsController.java index 1cdfbee7..e6a4c379 100644 --- a/ghy-admin/src/main/java/com/ghy/web/controller/goods/GoodsController.java +++ b/ghy-admin/src/main/java/com/ghy/web/controller/goods/GoodsController.java @@ -205,6 +205,7 @@ public class GoodsController extends BaseController { startPage(); List list = goodsService.selectGoodsList(goods); + logger.info("传入的类目id汇总{},获取到的所有商品{}",goods.getDeptGoodsCategoryIds(),list); list.forEach(one -> { // 补全商品服务区域 List goodsAreas = goodsAreaService.selectByGoodsId(one.getGoodsId()); diff --git a/ghy-order/src/main/java/com/ghy/order/service/impl/OrderDetailServiceImpl.java b/ghy-order/src/main/java/com/ghy/order/service/impl/OrderDetailServiceImpl.java index ebf8c7fe..2e701389 100644 --- a/ghy-order/src/main/java/com/ghy/order/service/impl/OrderDetailServiceImpl.java +++ b/ghy-order/src/main/java/com/ghy/order/service/impl/OrderDetailServiceImpl.java @@ -757,9 +757,9 @@ public class OrderDetailServiceImpl implements OrderDetailService { BigDecimal placeOneMoney = BigDecimal.ZERO; BigDecimal placeTwoMoney = BigDecimal.ZERO; // 平台抽成 - BigDecimal platformFee = changeMoney.multiply(deptRate).add(deptMoney).setScale(2, RoundingMode.UP); + BigDecimal platformFee = changeMoney.multiply(deptRate).add(deptMoney).setScale(2, RoundingMode.DOWN); // 大师傅抽成 - BigDecimal masterFee = changeMoney.multiply(teamRete).add(teamMoney).setScale(2, RoundingMode.UP); + BigDecimal masterFee = changeMoney.multiply(teamRete).add(teamMoney).setScale(2, RoundingMode.DOWN); BigDecimal retainRateMoney=BigDecimal.ZERO; // 如果提成>追加金额 则去掉固定提成 只计算比例提成 @@ -943,24 +943,24 @@ public class OrderDetailServiceImpl implements OrderDetailService { BigDecimal oasMoney = oas.getMoney(); // 平台抽成 - BigDecimal platformFee = oasMoney.multiply(pcDeptRate).add(pcDeptMoney).setScale(2, RoundingMode.UP); + BigDecimal platformFee = oasMoney.multiply(pcDeptRate).add(pcDeptMoney).setScale(2, RoundingMode.DOWN); logger.info("平台抽成{}", platformFee); // 大师傅抽成 - BigDecimal masterFee = oasMoney.multiply(teamRete).add(teamMoney).setScale(2, RoundingMode.UP); + BigDecimal masterFee = oasMoney.multiply(teamRete).add(teamMoney).setScale(2, RoundingMode.DOWN); // 如果提成>追加金额 则去掉固定提成 只计算比例提成 if (MoneyUtil.lt(masterFee.add(platformFee), oasMoney)) { - platformFee = oasMoney.multiply(pcDeptRate).setScale(2, RoundingMode.UP); - masterFee = oasMoney.multiply(teamRete).setScale(2, RoundingMode.UP); + platformFee = oasMoney.multiply(pcDeptRate).setScale(2, RoundingMode.DOWN); + masterFee = oasMoney.multiply(teamRete).setScale(2, RoundingMode.DOWN); } // 分销抽成 // 1级分销 if (MoneyUtil.lt(oneRate, oasMoney)) { - placeOneMoney = oasMoney.multiply(oneRate).setScale(2, RoundingMode.UP); + placeOneMoney = oasMoney.multiply(oneRate).setScale(2, RoundingMode.DOWN); } logger.info("1级分销{}", placeOneMoney); // 2级分销 if (MoneyUtil.lt(twoRate, oasMoney)) { - placeTwoMoney = oasMoney.multiply(twoRate).setScale(2, RoundingMode.UP); + placeTwoMoney = oasMoney.multiply(twoRate).setScale(2, RoundingMode.DOWN); } logger.info("2级分销{}", placeTwoMoney); // 如果是大师傅自己接单,则不需要抽成 @@ -1159,11 +1159,18 @@ public class OrderDetailServiceImpl implements OrderDetailService { teamRete = MoneyUtil.lt0(teamRete) ? BigDecimal.ZERO : teamRete; BigDecimal teamMoney = new BigDecimal(workerMaster.getLeaderTeamMoney()); teamMoney = MoneyUtil.lt0(teamMoney) ? BigDecimal.ZERO : teamMoney; + + //截留扣点 + BigDecimal retainRate = new BigDecimal(deptGoodsCategory.getRetainRate()); + retainRate = MoneyUtil.lt0(retainRate) ? BigDecimal.ZERO : retainRate; + BigDecimal retainMoney = financialChangeRecord.getChangeMoney().multiply(retainRate).setScale(2, RoundingMode.DOWN); + + BigDecimal endMoney=financialChangeRecord.getChangeMoney().subtract(saleOneMoney) - .subtract(saleTwoMoney).subtract(saleThreeMoney).subtract(deptChangeMoney); + .subtract(saleTwoMoney).subtract(saleThreeMoney).subtract(deptChangeMoney).subtract(retainMoney); 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)); + logger.info("截留扣点{}截留扣点金额{}减去所有返点的金额{}大师傅的金额{}子师傅的金额{}子师傅的费率{}",retainRate,retainMoney,endMoney,leaderMoney,workerMoney,BigDecimal.ONE.subtract(teamRete)); financialChangeRecord.setLeaderMoney(leaderMoney);