From ccc87b5ac3d6271f95bb8bd89d2f38d765365702 Mon Sep 17 00:00:00 2001
From: yujian <yujian@163.com>
Date: 星期四, 21 五月 2020 11:08:29 +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