admin
2020-04-13 dd5b15229cb15459fa7c31ccea77dac28cbfafbd
fanli/src/main/java/com/yeshi/fanli/service/impl/order/OrderHongBaoMoneyComputeServiceImpl.java
@@ -19,6 +19,16 @@
   @Resource
   private HongBaoManageService hongBaoManageService;
   @Override
   public BigDecimal computeBaseFanliMoney(CommonOrder order) {
      return getBaseCommission(order);
   }
   @Override
   public BigDecimal computeBaseShareMoney(CommonOrder order) {
      return getBaseCommission(order);
   }
   // 获取基础佣金
   private BigDecimal getBaseCommission(CommonOrder order) {
      BigDecimal rate = hongBaoManageService.getBaseFanliRate(order.getThirdCreateTime().getTime());
@@ -90,10 +100,10 @@
   public BigDecimal computeFirstTeamSubsidy(BigDecimal fanLiMoney, Date placeOrderTime, UserLevelEnum buyerUserLevel,
         UserLevelEnum userLevel) {
      BigDecimal rate = getTeamSubsidyRate(placeOrderTime, buyerUserLevel, userLevel, true);
      if (rate == null)
      if (rate == null || rate.compareTo(new BigDecimal(0)) == 0)
         return null;
      BigDecimal baseRate = hongBaoManageService.getBaseFanliRate(placeOrderTime.getTime());
      BigDecimal officialSubsidyRate = getOfficialSubsidyRate(placeOrderTime, userLevel, false);
      BigDecimal officialSubsidyRate = getOfficialSubsidyRate(placeOrderTime, buyerUserLevel, false);
      return MoneyBigDecimalUtil.div(fanLiMoney.multiply(baseRate).multiply(rate),
            baseRate.add(officialSubsidyRate).multiply(new BigDecimal(100)));
   }
@@ -102,32 +112,28 @@
   public BigDecimal computeSecondTeamSubsidy(BigDecimal fanLiMoney, Date placeOrderTime, UserLevelEnum buyerUserLevel,
         UserLevelEnum userLevel) {
      BigDecimal rate = getTeamSubsidyRate(placeOrderTime, buyerUserLevel, userLevel, false);
      if (rate == null)
      if (rate == null || rate.compareTo(new BigDecimal(0)) == 0)
         return null;
      BigDecimal baseRate = hongBaoManageService.getBaseFanliRate(placeOrderTime.getTime());
      BigDecimal officialSubsidyRate = getOfficialSubsidyRate(placeOrderTime, userLevel, false);
      BigDecimal officialSubsidyRate = getOfficialSubsidyRate(placeOrderTime, buyerUserLevel, false);
      return MoneyBigDecimalUtil.div(fanLiMoney.multiply(baseRate).multiply(rate),
            baseRate.add(officialSubsidyRate).multiply(new BigDecimal(100)));
   }
   public BigDecimal computeFirstTeamReward(BigDecimal firstTeamSubsidy, Date placeOrderTime,
         BigDecimal secondTeamSubsidy, UserLevelEnum userLevel) {
   @Override
   public BigDecimal computeFirstTeamReward(BigDecimal money, Date placeOrderTime, UserLevelEnum userLevel) {
      if (userLevel != UserLevelEnum.superVIP)
         return null;
      BigDecimal firstRate = getTeamRewardRate(placeOrderTime, userLevel, true);
      BigDecimal secondRate = getTeamRewardRate(placeOrderTime, userLevel, false);
      if (firstRate == null || secondRate == null)
      if (firstRate == null)
         return null;
      BigDecimal firstReward = MoneyBigDecimalUtil.div(MoneyBigDecimalUtil.mul(secondRate, firstTeamSubsidy),
            new BigDecimal(100));
      BigDecimal secondReward = MoneyBigDecimalUtil.div(MoneyBigDecimalUtil.mul(firstRate, secondTeamSubsidy),
            new BigDecimal(100));
      BigDecimal reward = MoneyBigDecimalUtil.div(MoneyBigDecimalUtil.mul(firstRate, money), new BigDecimal(100));
      return firstReward.add(secondReward);
      return reward;
   }
   /**
@@ -164,10 +170,11 @@
    * BigDecimal 返回类型
    * @throws
    */
   private BigDecimal getTeamSubsidyRate(Date date, UserLevelEnum buyerUserLevel, UserLevelEnum userLevel,
         boolean first) {
   @Override
   public BigDecimal getTeamSubsidyRate(Date date, UserLevelEnum buyerUserLevel, UserLevelEnum userLevel,
         boolean direct) {
      String key = null;
      if (first)
      if (direct)
         key = String.format("team_subsidy_6_pre_%s_%s", buyerUserLevel.getLevel(), userLevel.getLevel());
      else
         key = String.format("team_subsidy_7_pre_%s_%s", buyerUserLevel.getLevel(), userLevel.getLevel());