admin
2020-04-15 d4588f4e43336b26b356b869c29d0c76390167d5
fanli/src/main/java/com/yeshi/fanli/controller/client/v2/UserOrderControllerV2.java
@@ -480,24 +480,6 @@
         dividend = new BigDecimal(0);
         // 总团队奖励
         teamMoney = bonus.add(subsidy).add(dividend);
         JSONObject paramsFanli = new JSONObject();
         paramsFanli.put("type", "1");
         data.put("paramsFanli", paramsFanli);
         data.put("jumpFanli", jumpDetailV2Service.getByTypeCache("fanli_share_statistics",
               Constant.getPlatformCode(acceptData.getPlatform()), Integer.parseInt(acceptData.getVersion())));
         JSONObject paramsShare = new JSONObject();
         paramsShare.put("type", "2");
         data.put("paramsShare", paramsShare);
         data.put("jumpShare", jumpDetailV2Service.getByTypeCache("fanli_share_statistics",
               Constant.getPlatformCode(acceptData.getPlatform()), Integer.parseInt(acceptData.getVersion())));
         JSONObject paramsTeam = new JSONObject();
         paramsTeam.put("type", "3");
         data.put("paramsTeam", paramsTeam);
         data.put("jumpTeam", jumpDetailV2Service.getByTypeCache("team_statistics",
               Constant.getPlatformCode(acceptData.getPlatform()), Integer.parseInt(acceptData.getVersion())));
      }
      data.put("inviteMoney", teamMoney.setScale(2, BigDecimal.ROUND_DOWN).toString());
      out.print(JsonUtil.loadTrueResult(data));
@@ -591,8 +573,7 @@
            hongBao = MoneyBigDecimalUtil.sub(hongBao, weiQuanMoney);
         }
      }
      orderRebateVO.setFanLiDesc(predictDesc + typeName);
      orderRebateVO.setFanLi("¥" + hongBao.setScale(2, BigDecimal.ROUND_DOWN));
      
      HongBaoV2 hongBaoV2 = hoList.get(0).getHongBaoV2();
      UserLevelEnum userLevel = UserLevelUtil.getByOrderRank(hongBaoV2.getUrank());
@@ -648,6 +629,9 @@
         }
      }
         
      CommonOrder commonOrder = hoList.get(0).getCommonOrder();
      Date downTime = commonOrder.getThirdCreateTime();
      // 团队补贴
      if (type == 3) {
         BigDecimal teamSubsidy = null;
@@ -655,16 +639,27 @@
         InviteOrderSubsidy inviteOrderSubsidy = inviteOrderSubsidyServiceV2.getByOrderNoAndType(uid, orderNo, sourceType);
         if (inviteOrderSubsidy != null) {
            teamSubsidy = inviteOrderSubsidy.getMoney();
            Integer urank = commonOrder.getUrank();
            UserLevelEnum buyerUserLevel = UserLevelUtil.getByOrderRank(urank);
            boolean direct = false;
            if (hongBaoV2.getType() == HongBaoV2.TYPE_YIJI || hongBaoV2.getType() == HongBaoV2.TYPE_SHARE_YIJI) {
               direct = true;
            }
            BigDecimal originRate = orderHongBaoMoneyComputeService.getTeamSubsidyRate(downTime,buyerUserLevel, userLevel, direct);
            // 计算达人补贴
            if (userLevel != UserLevelEnum.daRen) {
               CommonOrder commonOrder = hoList.get(0).getCommonOrder();
               Integer urank = commonOrder.getUrank();
               UserLevelEnum buyerUserLevel = UserLevelUtil.getByOrderRank(urank);
               boolean direct = false;
               if (hongBaoV2.getType() == HongBaoV2.TYPE_YIJI || hongBaoV2.getType() == HongBaoV2.TYPE_SHARE_YIJI) {
                  direct = true;
               }
               // 计算上一级补贴
               lowerSubsidy = getLowerSubsidy(inviteOrderSubsidy.getMoney(), commonOrder.getThirdCreateTime(), buyerUserLevel, userLevel, direct);
               BigDecimal daRenRate = orderHongBaoMoneyComputeService.getTeamSubsidyRate(downTime,   buyerUserLevel,
                     UserLevelEnum.daRen, direct);
               lowerSubsidy = MoneyBigDecimalUtil.div(teamSubsidy.multiply(daRenRate), originRate);
            }
            if (userLevel != UserLevelEnum.superVIP && userLevel != UserLevelEnum.superVIP) {
               BigDecimal vipRate = orderHongBaoMoneyComputeService.getTeamSubsidyRate(downTime,   buyerUserLevel,
                     UserLevelEnum.superVIP, direct);
               upperTotalMoney = upperTotalMoney.add(MoneyBigDecimalUtil.div(teamSubsidy.multiply(vipRate), originRate));
               System.out.println(upperTotalMoney);
            }
         } else {
            teamSubsidy = BigDecimal.valueOf(0.00);
@@ -677,13 +672,20 @@
         orderRebateVO.setSubsidyDesc("团队补贴");
         orderRebateVO.setSubsidy("¥" + teamSubsidy.setScale(2, BigDecimal.ROUND_DOWN) +"");
         
         upperTotalMoney = upperTotalMoney.add(teamSubsidy);
         hongBao = hongBao.add(teamSubsidy);
      }
      orderRebateVO.setFanLiDesc(predictDesc + typeName);
      orderRebateVO.setFanLi("¥" + hongBao.setScale(2, BigDecimal.ROUND_DOWN));
      
      orderRebateVO.setType(type);
      orderRebateVO.setStateDesc(stateDesc);
      orderRebateVO.setListGoods(voList);
      orderRebateVO.setUserLevel(userLevel.name());
      if (downTime.getTime() < Constant.NEW_ORDER_FANLI_RULE_TIME) {
         orderRebateVO.setUserLevel(UserLevelEnum.superVIP.name()); // 隐藏
      } else {
         orderRebateVO.setUserLevel(userLevel.name());
      }
      
      // 上级返利
      if (upperLevel != null) {
@@ -709,7 +711,6 @@
               freeState = state;
               break;
            }
         }
      }
      
@@ -765,18 +766,6 @@
      JSONObject data = new JSONObject();
      data.put("result", orderRebateVO);
      JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
   }
   private BigDecimal getLowerSubsidy(BigDecimal money, Date downTime,  UserLevelEnum buyerUserLevel, UserLevelEnum userLevel, boolean direct) {
      // 原始比例
      BigDecimal originRate = orderHongBaoMoneyComputeService.getTeamSubsidyRate(downTime,
            buyerUserLevel, userLevel, direct);
      // 小一级比例
      BigDecimal darenRate = orderHongBaoMoneyComputeService.getTeamSubsidyRate(downTime,   buyerUserLevel, UserLevelEnum.daRen, direct);
      return MoneyBigDecimalUtil.mul(MoneyBigDecimalUtil.div(money,originRate), darenRate);
   }