diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/statis/controller/manager/CuBonusVertexStatisTotalController.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/statis/controller/manager/CuBonusVertexStatisTotalController.java index 32a60204..7e0ecada 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/member/statis/controller/manager/CuBonusVertexStatisTotalController.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/statis/controller/manager/CuBonusVertexStatisTotalController.java @@ -106,7 +106,9 @@ public class CuBonusVertexStatisTotalController extends BaseController { itm.setIntroduceBonusRate(itm.getIntroduceBonus().multiply(cuBonusVertexStaticTotalVO.getPerCent()).divide(itm.getFirstPurchaseAll(), 4, RoundingMode.HALF_UP)); itm.setOrgBonusRate(itm.getOrgBonus().multiply(cuBonusVertexStaticTotalVO.getPerCent()).divide(itm.getFirstPurchaseAll(), 4, RoundingMode.HALF_UP)); itm.setLeaderBonusRate(itm.getLeaderBonus().multiply(cuBonusVertexStaticTotalVO.getPerCent()).divide(itm.getFirstPurchaseAll(), 4, RoundingMode.HALF_UP)); - itm.setServiceBonusRate(itm.getServiceBonus().multiply(cuBonusVertexStaticTotalVO.getPerCent()).divide(itm.getFirstPurchaseAll(), 4, RoundingMode.HALF_UP)); + } + if (itm.getRegAmount().compareTo(BigDecimal.ZERO) > 0) { + itm.setServiceBonusRate(itm.getServiceBonus().multiply(cuBonusVertexStaticTotalVO.getPerCent()).divide(itm.getRegAmount(), 4, RoundingMode.HALF_UP)); } if (itm.getRepurchaseAllAmount().compareTo(BigDecimal.ZERO) > 0) { itm.setRepurRangeBonusRate(itm.getRepurRangeBonus().multiply(cuBonusVertexStaticTotalVO.getPerCent()).divide(itm.getRepurchaseAllAmount(), 4, RoundingMode.HALF_UP)); @@ -186,7 +188,9 @@ public class CuBonusVertexStatisTotalController extends BaseController { itm.setIntroduceBonusRate(itm.getIntroduceBonus().multiply(cuBonusVertexStaticTotalVO.getPerCent()).divide(itm.getFirstPurchaseAll(), 4, RoundingMode.HALF_UP)); itm.setOrgBonusRate(itm.getOrgBonus().multiply(cuBonusVertexStaticTotalVO.getPerCent()).divide(itm.getFirstPurchaseAll(), 4, RoundingMode.HALF_UP)); itm.setLeaderBonusRate(itm.getLeaderBonus().multiply(cuBonusVertexStaticTotalVO.getPerCent()).divide(itm.getFirstPurchaseAll(), 4, RoundingMode.HALF_UP)); - itm.setServiceBonusRate(itm.getServiceBonus().multiply(cuBonusVertexStaticTotalVO.getPerCent()).divide(itm.getFirstPurchaseAll(), 4, RoundingMode.HALF_UP)); + } + if (itm.getRegAmount().compareTo(BigDecimal.ZERO) > 0) { + itm.setServiceBonusRate(itm.getServiceBonus().multiply(cuBonusVertexStaticTotalVO.getPerCent()).divide(itm.getRegAmount(), 4, RoundingMode.HALF_UP)); } if (itm.getRepurchaseAllAmount().compareTo(BigDecimal.ZERO) > 0) { itm.setRepurRangeBonusRate(itm.getRepurRangeBonus().multiply(cuBonusVertexStaticTotalVO.getPerCent()).divide(itm.getRepurchaseAllAmount(), 4, RoundingMode.HALF_UP)); diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/statis/vo/CuBonusVertexStaticTotalVO.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/statis/vo/CuBonusVertexStaticTotalVO.java index b36557fd..3bae362b 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/member/statis/vo/CuBonusVertexStaticTotalVO.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/statis/vo/CuBonusVertexStaticTotalVO.java @@ -215,6 +215,11 @@ public class CuBonusVertexStaticTotalVO implements Serializable { */ private Integer pkVertex; + /** + * 注册金额(用于处理服务补贴波比使用) + */ + private BigDecimal regAmount; + /** * 注册新增PV MAIN_REG_PV */ diff --git a/bd-business/bd-business-member/src/main/resources/mapper/member/statis/CuBonusVertexStatisMapper.xml b/bd-business/bd-business-member/src/main/resources/mapper/member/statis/CuBonusVertexStatisMapper.xml index 2cfa6e00..7d7959f4 100644 --- a/bd-business/bd-business-member/src/main/resources/mapper/member/statis/CuBonusVertexStatisMapper.xml +++ b/bd-business/bd-business-member/src/main/resources/mapper/member/statis/CuBonusVertexStatisMapper.xml @@ -360,6 +360,7 @@ sum (cbs.REPUR_RANGE_BONUS) repurRangeBonus, sum (cbs.REPUR_ORG_BONUS) repurOrgBonus, sum (cbs.REPUR_LEADER_BONUS) repurLeaderBonus, + sum (cbs.MAIN_REG_AMOUNT + cbs.SPECIAL_REGISTER_AMOUNT) regAmount,, sum(cbs.MAIN_REG_AMOUNT + cbs.MAIN_UP_AMOUNT + cbs.SPECIAL_REGISTER_AMOUNT + cbs.SPECIAL_UPGRADE_AMOUNT + cbs.FICTITIOUS_AMOUNT) AS firstPurchaseAll, @@ -479,10 +480,10 @@ / sum(cbs.MAIN_REG_AMOUNT + cbs.MAIN_UP_AMOUNT + cbs.SPECIAL_REGISTER_AMOUNT + cbs.SPECIAL_UPGRADE_AMOUNT + cbs.FICTITIOUS_AMOUNT), 4) end AS leaderBonusRate, case - WHEN sum(cbs.MAIN_REG_AMOUNT + cbs.MAIN_UP_AMOUNT + cbs.SPECIAL_REGISTER_AMOUNT + cbs.SPECIAL_UPGRADE_AMOUNT + cbs.FICTITIOUS_AMOUNT) = 0 + WHEN sum(cbs.MAIN_REG_AMOUNT + cbs.SPECIAL_REGISTER_AMOUNT) = 0 THEN 0 ELSE ROUND(#{perCent} * sum(cbs.SERVICE_BONUS) - / sum(cbs.MAIN_REG_AMOUNT + cbs.MAIN_UP_AMOUNT + cbs.SPECIAL_REGISTER_AMOUNT + cbs.SPECIAL_UPGRADE_AMOUNT + cbs.FICTITIOUS_AMOUNT), 4) + / sum(cbs.MAIN_REG_AMOUNT + cbs.SPECIAL_REGISTER_AMOUNT), 4) end AS serviceBonusRate, case