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/config/HongBaoManageServiceImpl.java |  114 ++++++++++++++++++++++++++++++++++++++++++++++----------
 1 files changed, 93 insertions(+), 21 deletions(-)

diff --git a/fanli/src/main/java/com/yeshi/fanli/service/impl/order/config/HongBaoManageServiceImpl.java b/fanli/src/main/java/com/yeshi/fanli/service/impl/order/config/HongBaoManageServiceImpl.java
index 2c9599d..45b1b16 100644
--- a/fanli/src/main/java/com/yeshi/fanli/service/impl/order/config/HongBaoManageServiceImpl.java
+++ b/fanli/src/main/java/com/yeshi/fanli/service/impl/order/config/HongBaoManageServiceImpl.java
@@ -12,9 +12,13 @@
 import org.springframework.transaction.annotation.Transactional;
 
 import com.yeshi.fanli.dao.mybatis.HongBaoManageMapper;
+import com.yeshi.fanli.dto.ConfigParamsDTO;
 import com.yeshi.fanli.entity.bus.user.HongBaoManage;
+import com.yeshi.fanli.entity.bus.user.vip.UserLevelEnum;
 import com.yeshi.fanli.log.LogHelper;
 import com.yeshi.fanli.service.inter.order.config.HongBaoManageService;
+import com.yeshi.fanli.util.Constant;
+import com.yeshi.fanli.util.VersionUtil;
 
 @Service
 public class HongBaoManageServiceImpl implements HongBaoManageService {
@@ -33,8 +37,31 @@
 	public String get(final String key) {
 		HongBaoManage hongBaoManage = hongBaoManageMapper.selectByKey(key);
 		if (hongBaoManage != null)
-			hongBaoManage.getValue();
+			return hongBaoManage.getValue();
 		return null;
+	}
+
+	/**
+	 * 鏍规嵁閿�间笌鏃堕棿鏌ヨ姣斾緥
+	 * 
+	 * @param key
+	 * @param time
+	 * @return
+	 */
+	public BigDecimal getByKeyAndMaxTime(String key, Long time) {
+		if (time == null)
+			time = System.currentTimeMillis();
+		HongBaoManage hongBaoManage = hongBaoManageMapper.selectByKeyAndMaxValidTime(key, time);
+		if (hongBaoManage == null)
+			hongBaoManage = hongBaoManageMapper.selectByKey(key);
+		if (hongBaoManage != null)
+			return new BigDecimal(hongBaoManage.getValue());
+		return null;
+	}
+
+	@Cacheable(value = "homeBaoManage", key = "'getByKeyAndMaxTime-'+#key+'-'+#time")
+	public BigDecimal getByKeyAndMaxTimeCache(String key, Long time) {
+		return getByKeyAndMaxTime(key, time);
 	}
 
 	@Cacheable(value = "homeBaoManage", key = "'convertMap'")
@@ -48,38 +75,34 @@
 	}
 
 	@Override
-	public BigDecimal getFanLiRate(long time) {
-		String key = "hongbao_goods_proportion";
+	public BigDecimal getFanLiRate(UserLevelEnum level, long time) {
 
-		HongBaoManage hongBaoManage = hongBaoManageMapper.selectByKeyAndMaxValidTime(key, time);
-		if (hongBaoManage == null)
-			hongBaoManage = hongBaoManageMapper.selectByKey(key);
-		if (hongBaoManage != null)
-			return new BigDecimal(hongBaoManage.getValue());
-		LogHelper.error("鑾峰彇杩斿埄鍒嗘垚姣斾緥鍑洪敊");
-		return null;
+		return getBaseFanliRate(time).add(new BigDecimal(get("official_subsidy_zigou_" + level.getLevel())));
 	}
 
 	@Override
-	public BigDecimal getShareRate(long time) {
-		String key = "share_proportion";
-		HongBaoManage hongBaoManage = hongBaoManageMapper.selectByKeyAndMaxValidTime(key, time);
-		if (hongBaoManage == null)
-			hongBaoManage = hongBaoManageMapper.selectByKey(key);
-		if (hongBaoManage != null)
-			return new BigDecimal(hongBaoManage.getValue());
-		LogHelper.error("鑾峰彇鍒嗕韩璧氬垎鎴愭瘮渚嬪嚭閿�");
-		return null;
+	public BigDecimal getShareRate(UserLevelEnum level, long time) {
+		return getBaseFanliRate(time).add(new BigDecimal(get("official_subsidy_share_" + level.getLevel())));
+	}
+
+	@Override
+	public BigDecimal getFanLiRate(UserLevelEnum level) {
+		return getFanLiRate(level, System.currentTimeMillis());
 	}
 
 	@Override
 	public BigDecimal getFanLiRate() {
-		return getFanLiRate(System.currentTimeMillis());
+		return getFanLiRate(UserLevelEnum.daRen);
+	}
+
+	@Override
+	public BigDecimal getShareRate(UserLevelEnum level) {
+		return getShareRate(level, System.currentTimeMillis());
 	}
 
 	@Override
 	public BigDecimal getShareRate() {
-		return getShareRate(System.currentTimeMillis());
+		return getShareRate(UserLevelEnum.daRen);
 	}
 
 	@Override
@@ -211,4 +234,53 @@
 		return new BigDecimal(0);
 	}
 
+	@Override
+	public ConfigParamsDTO getShowComputeRate(String platform, String version, UserLevelEnum userLevel) {
+
+		BigDecimal fanLiRate = getFanLiRate(userLevel);
+		BigDecimal shareRate = getShareRate(userLevel);
+		ConfigParamsDTO paramsDTO = new ConfigParamsDTO(fanLiRate, shareRate, Constant.MAX_REWARD_RATE,
+				getFanLiRate(UserLevelEnum.superVIP));
+		if (VersionUtil.greaterThan_2_0_5(platform, version)) {
+			paramsDTO.setMaxRewardRate(null);
+		}
+		return paramsDTO;
+	}
+
+	@Override
+	public ConfigParamsDTO getShowComputeRate(String platform, String version) {
+
+		BigDecimal fanLiRate = getFanLiRate(UserLevelEnum.daRen);
+		BigDecimal shareRate = getShareRate(UserLevelEnum.daRen);
+		ConfigParamsDTO paramsDTO = new ConfigParamsDTO(fanLiRate, shareRate, Constant.MAX_REWARD_RATE,
+				getFanLiRate(UserLevelEnum.superVIP));
+		if (VersionUtil.greaterThan_2_0_5(platform, version)) {
+			paramsDTO.setMaxRewardRate(null);
+		}
+		return paramsDTO;
+	}
+
+	@Override
+	public BigDecimal getBaseFanliRate(long time) {
+		String key = "base_fanli_rate";
+		HongBaoManage hongBaoManage = hongBaoManageMapper.selectByKeyAndMaxValidTime(key, time);
+		if (hongBaoManage == null)
+			hongBaoManage = hongBaoManageMapper.selectByKey(key);
+		if (hongBaoManage != null)
+			return new BigDecimal(hongBaoManage.getValue());
+		LogHelper.error("鑾峰彇鍩虹杩斿埄姣斾緥鍑洪敊");
+		return null;
+	}
+
+	@Override
+	public BigDecimal getBaseFanliRate() {
+		return getBaseFanliRate(System.currentTimeMillis());
+	}
+	
+	@Cacheable(value = "homeBaoManage", key = "'getBaseFanliRate'+#time")
+	@Override
+	public BigDecimal getBaseFanliRateCache(long time) {
+		return getBaseFanliRate(System.currentTimeMillis());
+	}
+
 }

--
Gitblit v1.8.0