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 |   47 +++++++++++++++++++++++++----------------------
 1 files changed, 25 insertions(+), 22 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 133133a..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
@@ -18,6 +18,7 @@
 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;
 
@@ -48,25 +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(UserLevelEnum.daRen,
-					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
@@ -174,14 +163,16 @@
 			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.getBaseFanliRate(date.getTime());
+		BigDecimal baseRate = hongBaoManageService.getBaseFanliRateCache(
+				TimeUtil.convertToTimeTemp(TimeUtil.getGernalTime(date.getTime(), "yyyy-MM-dd HH"), "yyyy-MM-dd HH"));
 
 		BigDecimal subsidyRate = getOfficialSubsidyRate(date, level, false);
 
@@ -379,8 +370,13 @@
 	}
 
 	private BigDecimal getFanliRate(Date time, UserLevelEnum userLevel) {
-		BigDecimal rate = hongBaoManageService.getBaseFanliRate(time.getTime())
+		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;
 	}
 
@@ -401,4 +397,11 @@
 		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