From 28cf328a098334b51a3e9d2d56f983fb8c862211 Mon Sep 17 00:00:00 2001
From: yujian <yujian@163.com>
Date: 星期六, 23 五月 2020 09:54:38 +0800
Subject: [PATCH] 足迹、收藏订单兼容新需求

---
 fanli/src/main/java/com/yeshi/fanli/service/impl/order/OrderHongBaoMoneyComputeServiceImpl.java |  407 +++++++++++++++++++++++++++++++++++++++++++--------------
 1 files changed, 305 insertions(+), 102 deletions(-)

diff --git a/fanli/src/main/java/com/yeshi/fanli/service/impl/order/OrderHongBaoMoneyComputeServiceImpl.java b/fanli/src/main/java/com/yeshi/fanli/service/impl/order/OrderHongBaoMoneyComputeServiceImpl.java
index 658b9f5..5ae1c42 100644
--- a/fanli/src/main/java/com/yeshi/fanli/service/impl/order/OrderHongBaoMoneyComputeServiceImpl.java
+++ b/fanli/src/main/java/com/yeshi/fanli/service/impl/order/OrderHongBaoMoneyComputeServiceImpl.java
@@ -1,18 +1,25 @@
 package com.yeshi.fanli.service.impl.order;
 
 import java.math.BigDecimal;
+import java.util.ArrayList;
 import java.util.Date;
+import java.util.List;
 
 import javax.annotation.Resource;
 
 import org.springframework.stereotype.Service;
 
+import com.yeshi.fanli.dto.ConfigParamsDTO;
+import com.yeshi.fanli.dto.order.UserTeamLevel;
+import com.yeshi.fanli.dto.order.UserTeamRate;
 import com.yeshi.fanli.entity.bus.user.vip.UserLevelEnum;
 import com.yeshi.fanli.entity.order.CommonOrder;
 import com.yeshi.fanli.service.inter.order.OrderHongBaoMoneyComputeService;
 import com.yeshi.fanli.service.inter.order.config.HongBaoManageService;
 import com.yeshi.fanli.util.Constant;
 import com.yeshi.fanli.util.MoneyBigDecimalUtil;
+import com.yeshi.fanli.util.TimeUtil;
+import com.yeshi.fanli.util.VersionUtil;
 import com.yeshi.fanli.util.user.UserLevelUtil;
 
 @Service
@@ -42,24 +49,13 @@
 
 	// 鑾峰彇鍩虹浣i噾
 	private BigDecimal getBaseCommission(CommonOrder order) {
-
-		if (order.getThirdCreateTime().getTime() >= Constant.NEW_ORDER_FANLI_RULE_TIME) {
-			BigDecimal rate = hongBaoManageService.getBaseFanliRate(order.getThirdCreateTime().getTime());
-			if (order.getState() == CommonOrder.STATE_JS || order.getState() == CommonOrder.STATE_WQ)
-				return MoneyBigDecimalUtil.div(MoneyBigDecimalUtil.mul(rate, order.geteIncome()), new BigDecimal(100));
-			else if (order.getEstimate() != null)
-				return MoneyBigDecimalUtil.div(MoneyBigDecimalUtil.mul(rate, order.getEstimate()), new BigDecimal(100));
-			else
-				return null;
-		} else {
-			BigDecimal rate = hongBaoManageService.getFanLiRate(order.getThirdCreateTime().getTime());
-			if (order.getState() == CommonOrder.STATE_JS || order.getState() == CommonOrder.STATE_WQ)
-				return MoneyBigDecimalUtil.div(MoneyBigDecimalUtil.mul(rate, order.geteIncome()), new BigDecimal(100));
-			else if (order.getEstimate() != null)
-				return MoneyBigDecimalUtil.div(MoneyBigDecimalUtil.mul(rate, order.getEstimate()), new BigDecimal(100));
-			else
-				return null;
-		}
+		BigDecimal rate = hongBaoManageService.getBaseFanliRate(order.getThirdCreateTime().getTime());
+		if (order.getState() == CommonOrder.STATE_JS || order.getState() == CommonOrder.STATE_WQ)
+			return MoneyBigDecimalUtil.div(MoneyBigDecimalUtil.mul(rate, order.geteIncome()), new BigDecimal(100));
+		else if (order.getEstimate() != null)
+			return MoneyBigDecimalUtil.div(MoneyBigDecimalUtil.mul(rate, order.getEstimate()), new BigDecimal(100));
+		else
+			return null;
 	}
 
 	@Override
@@ -68,13 +64,16 @@
 		BigDecimal rate = hongBaoManageService.getBaseFanliRate(order.getThirdCreateTime().getTime())
 				.add(getOfficialSubsidyRate(order.getThirdCreateTime(),
 						getCommonUserLevel(order.getThirdCreateTime(), userLevel), false));
+		if (userLevel == UserLevelEnum.normalVIP) {
+			rate = new BigDecimal("61");
+		}
+
 		if (order.getState() == CommonOrder.STATE_JS || order.getState() == CommonOrder.STATE_WQ)
 			return MoneyBigDecimalUtil.div(MoneyBigDecimalUtil.mul(rate, order.geteIncome()), new BigDecimal(100));
 		else if (order.getEstimate() != null)
 			return MoneyBigDecimalUtil.div(MoneyBigDecimalUtil.mul(rate, order.getEstimate()), new BigDecimal(100));
 		else
 			return null;
-
 	}
 
 	@Override
@@ -82,6 +81,11 @@
 		BigDecimal rate = hongBaoManageService.getBaseFanliRate(order.getThirdCreateTime().getTime())
 				.add(getOfficialSubsidyRate(order.getThirdCreateTime(),
 						getCommonUserLevel(order.getThirdCreateTime(), userLevel), true));
+
+		if (userLevel == UserLevelEnum.normalVIP) {
+			rate = new BigDecimal("61");
+		}
+
 		if (order.getState() == CommonOrder.STATE_JS || order.getState() == CommonOrder.STATE_WQ)
 			return MoneyBigDecimalUtil.div(MoneyBigDecimalUtil.mul(rate, order.geteIncome()), new BigDecimal(100));
 		else if (order.getEstimate() != null)
@@ -91,89 +95,53 @@
 	}
 
 	@Override
-	public BigDecimal computeFirstInviteMoney(CommonOrder order, UserLevelEnum buyer) {
-		BigDecimal rate = hongBaoManageService.getByKeyAndMaxTime("new_invite_6", order.getThirdCreateTime().getTime());
-		if (buyer == UserLevelEnum.superVIP || buyer == UserLevelEnum.tearcher)
-			rate = hongBaoManageService.getByKeyAndMaxTime("new_invite_vip_6", order.getThirdCreateTime().getTime());
-
-		if (rate.compareTo(new BigDecimal(0)) == 0)
-			return null;
-
-		if (order.getState() == CommonOrder.STATE_JS || order.getState() == CommonOrder.STATE_WQ)
-			return MoneyBigDecimalUtil.div(MoneyBigDecimalUtil.mul(rate, getBaseCommission(order)),
-					new BigDecimal(100));
-		else if (order.getEstimate() != null)
-			return MoneyBigDecimalUtil.div(MoneyBigDecimalUtil.mul(rate, getBaseCommission(order)),
-					new BigDecimal(100));
-		else
-			return null;
-	}
-
-	@Override
-	public BigDecimal computeSecondInviteMoney(CommonOrder order, UserLevelEnum buyer) {
-		if (buyer == UserLevelEnum.superVIP || buyer == UserLevelEnum.tearcher)
-			return null;
-
-		BigDecimal rate = hongBaoManageService.getByKeyAndMaxTime("new_invite_7", order.getThirdCreateTime().getTime());
-		if (order.getState() == CommonOrder.STATE_JS || order.getState() == CommonOrder.STATE_WQ)
-			return MoneyBigDecimalUtil.div(MoneyBigDecimalUtil.mul(rate, getBaseCommission(order)),
-					new BigDecimal(100));
-		else if (order.getEstimate() != null)
-			return MoneyBigDecimalUtil.div(MoneyBigDecimalUtil.mul(rate, getBaseCommission(order)),
-					new BigDecimal(100));
-		else
-			return null;
-	}
-
-	@Override
-	public BigDecimal computeFirstTeamSubsidy(BigDecimal fanLiMoney, Date placeOrderTime, UserLevelEnum buyerUserLevel,
-			UserLevelEnum userLevel) {
-		BigDecimal rate = getTeamSubsidyRate(placeOrderTime, buyerUserLevel, userLevel, true);
-		if (rate == null || rate.compareTo(new BigDecimal(0)) == 0)
-			return null;
-		BigDecimal baseRate = hongBaoManageService.getBaseFanliRate(placeOrderTime.getTime());
-		BigDecimal officialSubsidyRate = getOfficialSubsidyRate(placeOrderTime, buyerUserLevel, false);
-		return MoneyBigDecimalUtil.div(fanLiMoney.multiply(baseRate).multiply(rate),
-				baseRate.add(officialSubsidyRate).multiply(new BigDecimal(100)));
-	}
-
-	@Override
-	public BigDecimal computeSecondTeamSubsidy(BigDecimal fanLiMoney, Date placeOrderTime, UserLevelEnum buyerUserLevel,
-			UserLevelEnum userLevel) {
-		BigDecimal rate = getTeamSubsidyRate(placeOrderTime, buyerUserLevel, userLevel, false);
-		if (rate == null || rate.compareTo(new BigDecimal(0)) == 0)
-			return null;
-		BigDecimal baseRate = hongBaoManageService.getBaseFanliRate(placeOrderTime.getTime());
-		BigDecimal officialSubsidyRate = getOfficialSubsidyRate(placeOrderTime, buyerUserLevel, false);
-		return MoneyBigDecimalUtil.div(fanLiMoney.multiply(baseRate).multiply(rate),
-				baseRate.add(officialSubsidyRate).multiply(new BigDecimal(100)));
-	}
-
-	/**
-	 * 鑾峰彇绮変笣鐨勮ˉ璐存瘮渚�
-	 * @Title: getSecondTeamSubsidy
-	 * @Description: 
-	 * @param date
-	 * @param buyerUserLevel
-	 * @param userLevel
-	 * @return 
-	 * BigDecimal 杩斿洖绫诲瀷
-	 * @throws
-	 */
-	@Override
-	public BigDecimal getTeamSubsidyRate(Date date, UserLevelEnum buyerUserLevel, UserLevelEnum userLevel,
-			boolean direct) {
-		String key = null;
-		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());
+	public BigDecimal computeFirstInviteMoney(CommonOrder order, UserLevelEnum buyer,
+			List<UserTeamLevel> bossLevelList) {
 		BigDecimal rate = null;
-		if (date != null)
-			rate = hongBaoManageService.getByKeyAndMaxTime(key, date.getTime());
-		else
-			rate = new BigDecimal(hongBaoManageService.get(key));
-		return rate;
+		if (order.getThirdCreateTime().getTime() >= Constant.NEW_ORDER_FANLI_RULE_TIME) {
+			rate = getTeamRewardRate(buyer, bossLevelList, order.getThirdCreateTime(), 1).getRate();
+			if (rate == null)
+				return null;
+			if (order.getState() == CommonOrder.STATE_JS || order.getState() == CommonOrder.STATE_WQ)
+				return MoneyBigDecimalUtil.div(MoneyBigDecimalUtil.mul(rate, order.geteIncome()), new BigDecimal(100));
+			else if (order.getEstimate() != null)
+				return MoneyBigDecimalUtil.div(MoneyBigDecimalUtil.mul(rate, order.getEstimate()), new BigDecimal(100));
+		} else {// 鑰佺殑杩斿埄姣斾緥
+			rate = hongBaoManageService.getByKeyAndMaxTime("new_invite_6", order.getThirdCreateTime().getTime());
+			if (order.getState() == CommonOrder.STATE_JS || order.getState() == CommonOrder.STATE_WQ)
+				return MoneyBigDecimalUtil.div(MoneyBigDecimalUtil.mul(rate, getBaseCommission(order)),
+						new BigDecimal(100));
+			else if (order.getEstimate() != null)
+				return MoneyBigDecimalUtil.div(MoneyBigDecimalUtil.mul(rate, getBaseCommission(order)),
+						new BigDecimal(100));
+		}
+
+		return null;
+	}
+
+	@Override
+	public BigDecimal computeSecondInviteMoney(CommonOrder order, UserLevelEnum buyer,
+			List<UserTeamLevel> bossLevelList) {
+		BigDecimal rate = null;
+		if (order.getThirdCreateTime().getTime() >= Constant.NEW_ORDER_FANLI_RULE_TIME) {
+			rate = getTeamRewardRate(buyer, bossLevelList, order.getThirdCreateTime(), 2).getRate();
+			if (rate == null)
+				return null;
+			if (order.getState() == CommonOrder.STATE_JS || order.getState() == CommonOrder.STATE_WQ)
+				return MoneyBigDecimalUtil.div(MoneyBigDecimalUtil.mul(rate, order.geteIncome()), new BigDecimal(100));
+			else if (order.getEstimate() != null)
+				return MoneyBigDecimalUtil.div(MoneyBigDecimalUtil.mul(rate, order.getEstimate()), new BigDecimal(100));
+		} else {// 鑰佺殑杩斿埄姣斾緥
+			rate = hongBaoManageService.getByKeyAndMaxTime("new_invite_7", order.getThirdCreateTime().getTime());
+			if (order.getState() == CommonOrder.STATE_JS || order.getState() == CommonOrder.STATE_WQ)
+				return MoneyBigDecimalUtil.div(MoneyBigDecimalUtil.mul(rate, getBaseCommission(order)),
+						new BigDecimal(100));
+			else if (order.getEstimate() != null)
+				return MoneyBigDecimalUtil.div(MoneyBigDecimalUtil.mul(rate, getBaseCommission(order)),
+						new BigDecimal(100));
+		}
+
+		return null;
 	}
 
 	/**
@@ -195,10 +163,245 @@
 			key = String.format("official_subsidy_zigou_%s", userLevel.getLevel());
 		BigDecimal rate = null;
 		if (date != null)
-			rate = hongBaoManageService.getByKeyAndMaxTime(key, date.getTime());
+			rate = hongBaoManageService.getByKeyAndMaxTimeCache(key, TimeUtil
+					.convertToTimeTemp(TimeUtil.getGernalTime(date.getTime(), "yyyy-MM-dd HH"), "yyyy-MM-dd HH"));
 		else
 			rate = new BigDecimal(hongBaoManageService.get(key));
 		return rate;
 	}
 
+	private BigDecimal getRateByLevel(UserLevelEnum level, Date date) {
+		BigDecimal baseRate = hongBaoManageService.getBaseFanliRateCache(
+				TimeUtil.convertToTimeTemp(TimeUtil.getGernalTime(date.getTime(), "yyyy-MM-dd HH"), "yyyy-MM-dd HH"));
+
+		BigDecimal subsidyRate = getOfficialSubsidyRate(date, level, false);
+
+		return baseRate.add(subsidyRate);
+	}
+
+	@Override
+	public UserTeamRate getTeamRewardRate(UserLevelEnum buyerLevel, List<UserTeamLevel> bossLevelList, Date date,
+			int deep) {
+		if (deep == 1) {// 鐩存帴閭�璇蜂汉濂栭噾
+			UserTeamLevel boss = bossLevelList.get(0);
+			BigDecimal rate = null;
+			if (bossLevelList == null || bossLevelList.size() < 1)
+				return null;
+
+			if (buyerLevel == UserLevelEnum.daRen && boss.getLevel() == UserLevelEnum.daRen) {
+				rate = hongBaoManageService.getByKeyAndMaxTime("new_invite_daren_6", date.getTime());
+			} else if (buyerLevel == UserLevelEnum.normalVIP && boss.getLevel() == UserLevelEnum.normalVIP) {
+				rate = hongBaoManageService.getByKeyAndMaxTime("new_invite_daren_6", date.getTime());
+			} else {
+				BigDecimal bossRate = getRateByLevel(boss.getLevel(), date);
+				BigDecimal buyerRate = getRateByLevel(buyerLevel, date);
+				rate = bossRate.subtract(buyerRate);
+				if (rate.compareTo(new BigDecimal(0)) < 0)
+					rate = new BigDecimal(0);
+			}
+
+			return new UserTeamRate(boss.getUid(), boss.getLevel(), rate);
+
+		} else if (deep == 2) {// 闂存帴閭�璇蜂汉濂栭噾
+			if (bossLevelList == null || bossLevelList.size() < 2)
+				return null;
+
+			BigDecimal buyerRate = getRateByLevel(buyerLevel, date);
+			BigDecimal firstRate = getTeamRewardRate(buyerLevel, bossLevelList, date, 1).getRate();
+
+			UserTeamLevel boss = bossLevelList.get(1);
+			UserTeamLevel firstBoss = bossLevelList.get(0);
+			BigDecimal rate = null;
+			if (buyerLevel == UserLevelEnum.daRen && firstBoss.getLevel() == UserLevelEnum.daRen) {
+				if (boss.getLevel() == UserLevelEnum.daRen)
+					rate = hongBaoManageService.getByKeyAndMaxTime("new_invite_daren_7", date.getTime());
+				else {
+					rate = null;
+				}
+			} else if (buyerLevel == UserLevelEnum.normalVIP && firstBoss.getLevel() == UserLevelEnum.normalVIP) {
+				if (boss.getLevel() == UserLevelEnum.normalVIP)
+					rate = hongBaoManageService.getByKeyAndMaxTime("new_invite_daren_7", date.getTime());
+				else {
+					rate = null;
+				}
+			} else if (buyerLevel == UserLevelEnum.daRen && firstBoss.getLevel() == UserLevelEnum.normalVIP) {
+				if (boss.getLevel() == UserLevelEnum.normalVIP)
+					rate = hongBaoManageService.getByKeyAndMaxTime("new_invite_daren_7", date.getTime());
+				else {
+					rate = null;
+				}
+			}
+			// 鏋佸樊璁$畻娉�
+			if (rate == null) {
+				rate = getRateByLevel(boss.getLevel(), date).subtract(buyerRate).subtract(firstRate);
+				if (rate.compareTo(new BigDecimal(0)) < 0)
+					rate = new BigDecimal(0);
+			}
+
+			return new UserTeamRate(boss.getUid(), boss.getLevel(), rate);
+		} else
+			return null;
+	}
+
+	@Override
+	public List<UserTeamRate> getTeamRewardMoreThan2LevelRates(UserLevelEnum buyerLevel,
+			List<UserTeamLevel> bossLevelList, Date date) {
+		if (bossLevelList == null || bossLevelList.size() < 3)
+			return null;
+
+		UserTeamRate firstBoss = getTeamRewardRate(buyerLevel, bossLevelList, date, 1);
+		if (firstBoss == null)
+			return null;
+		UserTeamRate secondBoss = getTeamRewardRate(buyerLevel, bossLevelList, date, 2);
+		if (secondBoss == null)
+			return null;
+
+		BigDecimal buyerRate = getRateByLevel(buyerLevel, date);
+
+		BigDecimal totalRate = firstBoss.getRate().add(secondBoss.getRate()).add(buyerRate);
+
+		List<UserTeamRate> rateList = new ArrayList<>();
+
+		for (int i = 2; i < bossLevelList.size(); i++) {
+			BigDecimal rate = getRateByLevel(bossLevelList.get(i).getLevel(), date);
+			if (rate.compareTo(totalRate) > 0) {
+				BigDecimal subRate = rate.subtract(totalRate);
+				totalRate = subRate.add(totalRate);// 绱鍒嗘垚姣斾緥
+				rateList.add(new UserTeamRate(bossLevelList.get(i).getUid(), bossLevelList.get(i).getLevel(), subRate));
+			}
+		}
+
+		return rateList;
+	}
+
+	// 鍥㈤槦鍒嗙孩
+	@Override
+	public List<UserTeamRate> getTeamDividentsRates(UserLevelEnum buyerLevel, List<UserTeamLevel> bossLevelList,
+			Date date) {
+		List<UserTeamRate> rateList = new ArrayList<>();
+
+		List<UserTeamLevel> levelList = new ArrayList<>();
+		levelList.add(new UserTeamLevel(null, buyerLevel));
+		levelList.addAll(bossLevelList);
+		UserLevelEnum maxLevel = buyerLevel;
+
+		List<UserTeamLevel> vipList = new ArrayList<>();
+		List<UserTeamLevel> highList = new ArrayList<>();
+
+		for (int i = 1; i < levelList.size(); i++) {
+			if (maxLevel.getLevel() <= levelList.get(i).getLevel().getLevel()) {
+				maxLevel = levelList.get(i).getLevel();
+				if (levelList.get(i).getLevel() == UserLevelEnum.highVIP)
+					highList.add(levelList.get(i));
+				else if (levelList.get(i).getLevel() == UserLevelEnum.superVIP) {
+					vipList.add(levelList.get(i));
+				}
+			}
+		}
+
+		if (vipList.size() >= 4) {// 鏈�澶氬垎4绾�
+			vipList = vipList.subList(0, 4);
+		}
+
+		if (highList.size() >= 4) {// 鏈�澶氬垎4绾�
+			highList = highList.subList(0, 4);
+		}
+
+		BigDecimal highTotalRate = hongBaoManageService.getByKeyAndMaxTime("dividents_rate_same_level_high",
+				date.getTime());
+		BigDecimal vipTotalRate = hongBaoManageService.getByKeyAndMaxTime("dividents_rate_same_level_super",
+				date.getTime());
+
+		if (vipList.size() > 0 && highList.size() > 0) {
+
+		} else if (vipList.size() == 0) {
+			highTotalRate = highTotalRate.add(vipTotalRate);
+		} else {
+			vipTotalRate = highTotalRate.add(vipTotalRate);
+		}
+
+		// 楂樼骇浼氬憳鍒嗙孩
+		if (highList.size() > 0) {
+			int count = 0;
+			for (int i = 0; i < highList.size(); i++) {
+				count += (4 - i);
+			}
+
+			BigDecimal per = MoneyBigDecimalUtil.div(highTotalRate, new BigDecimal(count), 4);
+			for (int i = 0; i < highList.size(); i++) {
+				BigDecimal rate = MoneyBigDecimalUtil.mul(per, new BigDecimal(4 - i), 4);
+				rateList.add(new UserTeamRate(highList.get(i), rate));
+			}
+		}
+
+		// 瓒呯骇浼氬憳鍒嗙孩
+		if (vipList.size() > 0) {
+			int count = 0;
+			for (int i = 0; i < vipList.size(); i++) {
+				count += (4 - i);
+			}
+
+			BigDecimal per = MoneyBigDecimalUtil.div(vipTotalRate, new BigDecimal(count), 4);
+
+			for (int i = 0; i < vipList.size(); i++) {
+				BigDecimal rate = MoneyBigDecimalUtil.mul(per, new BigDecimal(4 - i), 4);
+				rateList.add(new UserTeamRate(vipList.get(i), rate));
+			}
+
+		}
+
+		// 瀵煎笀鍒嗙孩
+		for (UserTeamLevel level : bossLevelList) {
+			if (level.getLevel() == UserLevelEnum.tearcher) {
+				rateList.add(new UserTeamRate(level,
+						hongBaoManageService.getByKeyAndMaxTime("dividents_rate_tearcher", date.getTime())));
+				break;
+			}
+		}
+
+		return rateList;
+	}
+
+	@Override
+	public UserTeamRate getTearcherSubsidy(UserLevelEnum buyerLevel, BigDecimal money,
+			List<UserTeamLevel> bossLevelList, Date date) {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	private BigDecimal getFanliRate(Date time, UserLevelEnum userLevel) {
+		BigDecimal rate = hongBaoManageService
+				.getBaseFanliRateCache(TimeUtil
+						.convertToTimeTemp(TimeUtil.getGernalTime(time.getTime(), "yyyy-MM-dd HH"), "yyyy-MM-dd HH"))
+				.add(getOfficialSubsidyRate(time, getCommonUserLevel(time, userLevel), false));
+
+		if (userLevel == UserLevelEnum.normalVIP)
+			rate = new BigDecimal("61");
+		return rate;
+	}
+
+	@Override
+	public ConfigParamsDTO getShowComputeRate(String platform, String version, UserLevelEnum userLevel) {
+		BigDecimal fanLiRate = getFanliRate(new Date(), userLevel);
+		BigDecimal shareRate = fanLiRate;
+		ConfigParamsDTO paramsDTO = new ConfigParamsDTO(fanLiRate, shareRate, Constant.MAX_REWARD_RATE,
+				getFanliRate(new Date(), UserLevelEnum.superVIP));
+		if (VersionUtil.greaterThan_2_0_5(platform, version)) {
+			paramsDTO.setMaxRewardRate(null);
+		}
+		return paramsDTO;
+	}
+
+	@Override
+	public ConfigParamsDTO getShowComputeRate(String platform, String version) {
+		return getShowComputeRate(platform, version, UserLevelEnum.daRen);
+	}
+
+	@Override
+	public BigDecimal getFanliRate(UserLevelEnum userLevel, Date date) {
+		BigDecimal rate = hongBaoManageService.getBaseFanliRate(date.getTime())
+				.add(getOfficialSubsidyRate(date, getCommonUserLevel(date, userLevel), false));
+		return rate;
+	}
+
 }

--
Gitblit v1.8.0