From 5e7b0ed4a154ad067cbcf4aa1a1c7cce32f9864c Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期五, 26 四月 2024 18:02:17 +0800
Subject: [PATCH] 唯品会链接解析升级

---
 fanli/src/main/java/com/yeshi/fanli/service/impl/order/config/HongBaoManageServiceImpl.java |  632 ++++++++++++++++++++++++++-------------------------------
 1 files changed, 287 insertions(+), 345 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 86ab526..883c949 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
@@ -1,345 +1,287 @@
-package com.yeshi.fanli.service.impl.order.config;
-
-import java.math.BigDecimal;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import javax.annotation.Resource;
-
-import org.springframework.cache.annotation.Cacheable;
-import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Transactional;
-
-import com.yeshi.fanli.dao.mybatis.HongBaoManageMapper;
-import com.yeshi.fanli.dto.order.OrderHongBaoRateParams;
-import com.yeshi.fanli.entity.bus.user.HongBaoManage;
-import com.yeshi.fanli.entity.order.CommonOrder;
-import com.yeshi.fanli.exception.order.HongBaoException;
-import com.yeshi.fanli.log.LogHelper;
-import com.yeshi.fanli.service.inter.order.config.HongBaoManageService;
-
-@Service
-public class HongBaoManageServiceImpl implements HongBaoManageService {
-
-	@Resource
-	private HongBaoManageMapper hongBaoManageMapper;
-
-	@Transactional
-	public void update(List<HongBaoManage> hongBaoManageList) {
-		for (HongBaoManage hongBaoManage : hongBaoManageList) {
-			hongBaoManageMapper.updateByPrimaryKeySelective(hongBaoManage);
-		}
-	}
-
-	@Cacheable(value = "homeBaoManage", key = "#p0")
-	public String get(final String key) {
-		HongBaoManage hongBaoManage = hongBaoManageMapper.selectByKey(key);
-		if (hongBaoManage != null)
-			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 = "'convertMap'")
-	public Map<String, String> convertMap() {
-		List<HongBaoManage> list = hongBaoManageMapper.listAll();
-		Map<String, String> map = new HashMap<String, String>();
-		for (HongBaoManage hongBaoManage : list) {
-			map.put(hongBaoManage.getKey(), hongBaoManage.getValue());
-		}
-		return map;
-	}
-
-	@Override
-	public BigDecimal getFanLiRate(long time) {
-		String key = "hongbao_goods_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;
-	}
-
-	@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;
-	}
-
-	@Override
-	public BigDecimal getFanLiRate() {
-		return getFanLiRate(System.currentTimeMillis());
-	}
-
-	@Override
-	public BigDecimal getShareRate() {
-		return getShareRate(System.currentTimeMillis());
-	}
-
-	@Override
-	public BigDecimal getFirstInviteRate(int urank) {
-		return getFirstInviteRate(urank, System.currentTimeMillis());
-	}
-
-	@Override
-	public BigDecimal getFirstInviteRate(int urank, long time) {
-		String key = "sale_6_" + urank;
-
-		HongBaoManage hongBaoManage = hongBaoManageMapper.selectByKeyAndMaxValidTime(key, time);
-		if (hongBaoManage == null)
-			hongBaoManage = hongBaoManageMapper.selectByKey(key);
-		if (hongBaoManage != null)
-			return new BigDecimal(hongBaoManage.getValue());
-		return new BigDecimal(0);
-	}
-
-	@Override
-	public BigDecimal getSecondInviteRate(int urank) {
-		return getSecondInviteRate(urank, System.currentTimeMillis());
-	}
-
-	@Override
-	public BigDecimal getSecondInviteRate(int urank, long time) {
-		String key = "sale_7_" + urank;
-
-		HongBaoManage hongBaoManage = hongBaoManageMapper.selectByKeyAndMaxValidTime(key, time);
-		if (hongBaoManage == null)
-			hongBaoManage = hongBaoManageMapper.selectByKey(key);
-		if (hongBaoManage != null)
-			return new BigDecimal(hongBaoManage.getValue());
-		LogHelper.error("鑾峰彇杩斿埄鍒嗘垚姣斾緥鍑洪敊");
-		return new BigDecimal(0);
-	}
-
-	@Override
-	public BigDecimal getFirstShareRate(int urank) {
-		String key = "share_21_" + urank;
-		HongBaoManage hongBaoManage = hongBaoManageMapper.selectByKeyAndMaxValidTime(key, System.currentTimeMillis());
-		if (hongBaoManage == null)
-			hongBaoManage = hongBaoManageMapper.selectByKey(key);
-		if (hongBaoManage != null)
-			return new BigDecimal(hongBaoManage.getValue());
-		LogHelper.error("鑾峰彇杩斿埄鍒嗘垚姣斾緥鍑洪敊");
-		return new BigDecimal(0);
-	}
-
-	@Override
-	public BigDecimal getFirstShareRate(int urank, long time) {
-		String key = "share_21_" + urank;
-		HongBaoManage hongBaoManage = hongBaoManageMapper.selectByKeyAndMaxValidTime(key, time);
-		if (hongBaoManage == null)
-			hongBaoManage = hongBaoManageMapper.selectByKey(key);
-		if (hongBaoManage != null)
-			return new BigDecimal(hongBaoManage.getValue());
-		LogHelper.error("鑾峰彇杩斿埄鍒嗘垚姣斾緥鍑洪敊");
-		return new BigDecimal(0);
-	}
-
-	@Override
-	public BigDecimal getSecondShareRate(int urank) {
-		String key = "share_22_" + urank;
-		HongBaoManage hongBaoManage = hongBaoManageMapper.selectByKeyAndMaxValidTime(key, System.currentTimeMillis());
-		if (hongBaoManage == null)
-			hongBaoManage = hongBaoManageMapper.selectByKey(key);
-		if (hongBaoManage != null)
-			return new BigDecimal(hongBaoManage.getValue());
-		LogHelper.error("鑾峰彇杩斿埄鍒嗘垚姣斾緥鍑洪敊");
-		return new BigDecimal(0);
-	}
-
-	@Override
-	public BigDecimal getSecondShareRate(int urank, long time) {
-		String key = "share_22_" + urank;
-		HongBaoManage hongBaoManage = hongBaoManageMapper.selectByKeyAndMaxValidTime(key, time);
-		if (hongBaoManage == null)
-			hongBaoManage = hongBaoManageMapper.selectByKey(key);
-		if (hongBaoManage != null)
-			return new BigDecimal(hongBaoManage.getValue());
-		LogHelper.error("鑾峰彇杩斿埄鍒嗘垚姣斾緥鍑洪敊");
-		return new BigDecimal(0);
-	}
-
-	@Override
-	public BigDecimal getTLJFanLiRate() {
-		String key = "tlj_fanli_proportion";
-		HongBaoManage hongBaoManage = hongBaoManageMapper.selectByKeyAndMaxValidTime(key, System.currentTimeMillis());
-		if (hongBaoManage == null)
-			hongBaoManage = hongBaoManageMapper.selectByKey(key);
-		if (hongBaoManage != null)
-			return new BigDecimal(hongBaoManage.getValue());
-		LogHelper.error("鑾峰彇娣樼ぜ閲戣繑鍒╁垎鎴愭瘮渚嬪嚭閿�");
-		return null;
-	}
-
-	@Override
-	public BigDecimal getTLJShareRate(long time) {
-		String key = "tlj_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;
-	}
-
-	@Override
-	public BigDecimal getInviteFirstLevelSubsidyRate(Long time) {
-		String key = "invite_subsidy_6";
-		HongBaoManage hongBaoManage = hongBaoManageMapper.selectByKeyAndMaxValidTime(key, time);
-		if (hongBaoManage == null)
-			hongBaoManage = hongBaoManageMapper.selectByKey(key);
-		if (hongBaoManage != null)
-			return new BigDecimal(hongBaoManage.getValue());
-		return new BigDecimal(0);
-	}
-
-	@Override
-	public BigDecimal getInviteSecondLevelSubsidyRate(Long time) {
-		String key = "invite_subsidy_7";
-		HongBaoManage hongBaoManage = hongBaoManageMapper.selectByKeyAndMaxValidTime(key, time);
-		if (hongBaoManage == null)
-			hongBaoManage = hongBaoManageMapper.selectByKey(key);
-		if (hongBaoManage != null)
-			return new BigDecimal(hongBaoManage.getValue());
-		return new BigDecimal(0);
-	}
-
-	@Override
-	public BigDecimal getVIPFanLiRate(long time) {
-		String key = "hongbao_goods_proportion_vip";
-		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 getVIPShareRate(long time) {
-		String key = "share_proportion_vip";
-		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 getVIPFanLiRate() {
-		return getVIPFanLiRate(System.currentTimeMillis());
-	}
-
-	@Override
-	public BigDecimal getVIPShareRate() {
-		return getVIPShareRate(System.currentTimeMillis());
-	}
-
-	/**
-	 * 鑾峰彇姣斾緥
-	 * 
-	 * @param level
-	 *            0-鏈骇 1-涓嬬骇 2-涓嬩笅绾�
-	 * @param orderType
-	 * @param isVip鏈骇鏄惁涓篤IP
-	 * @param isWorkerVip涓嬬骇鏄惁涓篤IP
-	 * @return
-	 */
-	public BigDecimal getRate(OrderHongBaoRateParams params) throws HongBaoException {
-		if (params == null)
-			throw new HongBaoException(1, "姣斾緥鍙傛暟閿欒");
-
-		long time = params.getOrderCreateTime().getTime();
-
-		if (params.getLevel() == 0) {// 鏈骇
-
-			if (params.getOrderType() == CommonOrder.ORDER_TYPE_ZIGOU) {
-				if (params.isVip())
-					return getVIPFanLiRate(time);
-				else
-					return getFanLiRate(time);
-			} else {
-				if (params.isVip())
-					return getVIPShareRate(time);
-				else
-					return getShareRate(time);
-			}
-
-		} else if (params.getLevel() == 1) {// 涓婄骇
-			if (params.getOrderType() == CommonOrder.ORDER_TYPE_ZIGOU) {// 鑷喘
-				if (params.isSubsidy()) {// 琛ヨ创姣斾緥
-					if (params.isVip()) {// 涓嬬骇涓轰細鍛樹笉琛ヨ创
-						return new BigDecimal("0");
-					} else {
-						return getInviteFirstLevelSubsidyRate(time);
-					}
-				} else {// 濂栭噾姣斾緥
-					if (params.isVip()) {
-						return getByKeyAndMaxTime("new_invite_vip_6", time);
-					} else {
-						return getByKeyAndMaxTime("new_invite_6", time);
-					}
-				}
-			} else {// 鍒嗕韩
-				if (params.isVip()) {
-					return getByKeyAndMaxTime("new_share_vip_21", time);
-				} else {
-					return getByKeyAndMaxTime("new_share_21", time);
-				}
-			}
-		} else if (params.getLevel() == 2) {// 涓婁笂绾�
-			if (params.getOrderType() == CommonOrder.ORDER_TYPE_ZIGOU) {// 鑷喘
-				if (params.isSubsidy()) {// 琛ヨ创姣斾緥
-					if (params.isVip()) {// 涓嬩笅绾т负浼氬憳涓嶈ˉ璐�
-						return new BigDecimal("0");
-					} else {
-						return getInviteSecondLevelSubsidyRate(time);
-					}
-				} else {// 濂栭噾姣斾緥
-					if (params.isVip())
-						return new BigDecimal("0");
-					else
-						return getByKeyAndMaxTime("new_invite_7", time);
-				}
-			} else {// 鍒嗕韩
-				if (params.isVip())
-					return new BigDecimal("0");
-				else
-					return getByKeyAndMaxTime("new_share_22", time);
-			}
-		}
-		throw new HongBaoException(2, "鏈尮閰嶅埌姣斾緥鍙傛暟");
-	}
-
-}
+package com.yeshi.fanli.service.impl.order.config;
+
+import java.math.BigDecimal;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import javax.annotation.Resource;
+
+import com.yeshi.fanli.entity.SystemEnum;
+import org.springframework.cache.annotation.Cacheable;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import com.yeshi.fanli.dao.mybatis.HongBaoManageMapper;
+import com.yeshi.fanli.dto.GoodsMoneyConfigParamsDTO;
+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 {
+
+    @Resource
+    private HongBaoManageMapper hongBaoManageMapper;
+
+    @Transactional
+    public void update(List<HongBaoManage> hongBaoManageList) {
+        for (HongBaoManage hongBaoManage : hongBaoManageList) {
+            hongBaoManageMapper.updateByPrimaryKeySelective(hongBaoManage);
+        }
+    }
+
+    @Cacheable(value = "homeBaoManage", key = "'get-'+#key+'-'+#system")
+    public String get(final String key, SystemEnum system) {
+        HongBaoManage hongBaoManage = hongBaoManageMapper.selectByKey(key, system);
+        if (hongBaoManage != null)
+            return hongBaoManage.getValue();
+        return null;
+    }
+
+    /**
+     * 鏍规嵁閿�间笌鏃堕棿鏌ヨ姣斾緥
+     *
+     * @param key
+     * @param time
+     * @return
+     */
+    public BigDecimal getByKeyAndMaxTime(String key, Long time, SystemEnum system) {
+        if (time == null)
+            time = System.currentTimeMillis();
+        HongBaoManage hongBaoManage = hongBaoManageMapper.selectByKeyAndMaxValidTime(key, time, system);
+        if (hongBaoManage == null)
+            hongBaoManage = hongBaoManageMapper.selectByKey(key, system);
+        if (hongBaoManage != null)
+            return new BigDecimal(hongBaoManage.getValue());
+        return null;
+    }
+
+    @Cacheable(value = "homeBaoManage", key = "'getByKeyAndMaxTime-'+#key+'-'+#time+'-'+#system")
+    public BigDecimal getByKeyAndMaxTimeCache(String key, Long time, SystemEnum system) {
+        return getByKeyAndMaxTime(key, time, system);
+    }
+
+    @Cacheable(value = "homeBaoManage", key = "'convertMap-'+#system")
+    public Map<String, String> convertMap(SystemEnum system) {
+        List<HongBaoManage> list = hongBaoManageMapper.listAll(system);
+        Map<String, String> map = new HashMap<String, String>();
+        for (HongBaoManage hongBaoManage : list) {
+            map.put(hongBaoManage.getKey(), hongBaoManage.getValue());
+        }
+        return map;
+    }
+
+    @Override
+    public BigDecimal getFanLiRate(UserLevelEnum level, long time, SystemEnum system) {
+
+        return getBaseFanliRate(time,system).add(new BigDecimal(get("official_subsidy_zigou_" + level.getLevel(),system)));
+    }
+
+    @Override
+    public BigDecimal getShareRate(UserLevelEnum level, long time, SystemEnum system) {
+        return getBaseFanliRate(time,system).add(new BigDecimal(get("official_subsidy_share_" + level.getLevel(),system)));
+    }
+
+    @Override
+    public BigDecimal getFanLiRate(UserLevelEnum level, SystemEnum system) {
+        return getFanLiRate(level, System.currentTimeMillis(),system);
+    }
+
+    @Override
+    public BigDecimal getFanLiRate(SystemEnum system) {
+        return getFanLiRate(UserLevelEnum.daRen,system);
+    }
+
+    @Override
+    public BigDecimal getShareRate(UserLevelEnum level, SystemEnum system) {
+        return getShareRate(level, System.currentTimeMillis(),system);
+    }
+
+    @Override
+    public BigDecimal getShareRate( SystemEnum system) {
+        return getShareRate(UserLevelEnum.daRen,system);
+    }
+
+    @Override
+    public BigDecimal getFirstInviteRate(int urank, SystemEnum system) {
+        return getFirstInviteRate(urank, System.currentTimeMillis(),system);
+    }
+
+    @Override
+    public BigDecimal getFirstInviteRate(int urank, long time, SystemEnum system) {
+        String key = "sale_6_" + urank;
+
+        HongBaoManage hongBaoManage = hongBaoManageMapper.selectByKeyAndMaxValidTime(key, time,system);
+        if (hongBaoManage == null)
+            hongBaoManage = hongBaoManageMapper.selectByKey(key,system);
+        if (hongBaoManage != null)
+            return new BigDecimal(hongBaoManage.getValue());
+        return new BigDecimal(0);
+    }
+
+    @Override
+    public BigDecimal getSecondInviteRate(int urank, SystemEnum system) {
+        return getSecondInviteRate(urank, System.currentTimeMillis(),system);
+    }
+
+    @Override
+    public BigDecimal getSecondInviteRate(int urank, long time, SystemEnum system) {
+        String key = "sale_7_" + urank;
+
+        HongBaoManage hongBaoManage = hongBaoManageMapper.selectByKeyAndMaxValidTime(key, time,system);
+        if (hongBaoManage == null)
+            hongBaoManage = hongBaoManageMapper.selectByKey(key,system);
+        if (hongBaoManage != null)
+            return new BigDecimal(hongBaoManage.getValue());
+        LogHelper.error("鑾峰彇杩斿埄鍒嗘垚姣斾緥鍑洪敊");
+        return new BigDecimal(0);
+    }
+
+    @Override
+    public BigDecimal getFirstShareRate(int urank, SystemEnum system) {
+        String key = "share_21_" + urank;
+        HongBaoManage hongBaoManage = hongBaoManageMapper.selectByKeyAndMaxValidTime(key, System.currentTimeMillis(),system);
+        if (hongBaoManage == null)
+            hongBaoManage = hongBaoManageMapper.selectByKey(key,system);
+        if (hongBaoManage != null)
+            return new BigDecimal(hongBaoManage.getValue());
+        LogHelper.error("鑾峰彇杩斿埄鍒嗘垚姣斾緥鍑洪敊");
+        return new BigDecimal(0);
+    }
+
+    @Override
+    public BigDecimal getFirstShareRate(int urank, long time, SystemEnum system) {
+        String key = "share_21_" + urank;
+        HongBaoManage hongBaoManage = hongBaoManageMapper.selectByKeyAndMaxValidTime(key, time,system);
+        if (hongBaoManage == null)
+            hongBaoManage = hongBaoManageMapper.selectByKey(key,system);
+        if (hongBaoManage != null)
+            return new BigDecimal(hongBaoManage.getValue());
+        LogHelper.error("鑾峰彇杩斿埄鍒嗘垚姣斾緥鍑洪敊");
+        return new BigDecimal(0);
+    }
+
+    @Override
+    public BigDecimal getSecondShareRate(int urank, SystemEnum system) {
+        String key = "share_22_" + urank;
+        HongBaoManage hongBaoManage = hongBaoManageMapper.selectByKeyAndMaxValidTime(key, System.currentTimeMillis(),system);
+        if (hongBaoManage == null)
+            hongBaoManage = hongBaoManageMapper.selectByKey(key,system);
+        if (hongBaoManage != null)
+            return new BigDecimal(hongBaoManage.getValue());
+        LogHelper.error("鑾峰彇杩斿埄鍒嗘垚姣斾緥鍑洪敊");
+        return new BigDecimal(0);
+    }
+
+    @Override
+    public BigDecimal getSecondShareRate(int urank, long time, SystemEnum system) {
+        String key = "share_22_" + urank;
+        HongBaoManage hongBaoManage = hongBaoManageMapper.selectByKeyAndMaxValidTime(key, time,system);
+        if (hongBaoManage == null)
+            hongBaoManage = hongBaoManageMapper.selectByKey(key,system);
+        if (hongBaoManage != null)
+            return new BigDecimal(hongBaoManage.getValue());
+        LogHelper.error("鑾峰彇杩斿埄鍒嗘垚姣斾緥鍑洪敊");
+        return new BigDecimal(0);
+    }
+
+    @Override
+    public BigDecimal getTLJFanLiRate( SystemEnum system) {
+        String key = "tlj_fanli_proportion";
+        HongBaoManage hongBaoManage = hongBaoManageMapper.selectByKeyAndMaxValidTime(key, System.currentTimeMillis(),system);
+        if (hongBaoManage == null)
+            hongBaoManage = hongBaoManageMapper.selectByKey(key,system);
+        if (hongBaoManage != null)
+            return new BigDecimal(hongBaoManage.getValue());
+        LogHelper.error("鑾峰彇娣樼ぜ閲戣繑鍒╁垎鎴愭瘮渚嬪嚭閿�");
+        return null;
+    }
+
+    @Override
+    public BigDecimal getTLJShareRate(long time, SystemEnum system) {
+        String key = "tlj_share_proportion";
+        HongBaoManage hongBaoManage = hongBaoManageMapper.selectByKeyAndMaxValidTime(key, time,system);
+        if (hongBaoManage == null)
+            hongBaoManage = hongBaoManageMapper.selectByKey(key,system);
+        if (hongBaoManage != null)
+            return new BigDecimal(hongBaoManage.getValue());
+        LogHelper.error("鑾峰彇娣樼ぜ閲戝垎浜禋鍒嗘垚姣斾緥鍑洪敊");
+        return null;
+    }
+
+    @Override
+    public BigDecimal getInviteFirstLevelSubsidyRate(Long time, SystemEnum system) {
+        String key = "invite_subsidy_6";
+        HongBaoManage hongBaoManage = hongBaoManageMapper.selectByKeyAndMaxValidTime(key, time,system);
+        if (hongBaoManage == null)
+            hongBaoManage = hongBaoManageMapper.selectByKey(key,system);
+        if (hongBaoManage != null)
+            return new BigDecimal(hongBaoManage.getValue());
+        return new BigDecimal(0);
+    }
+
+    @Override
+    public BigDecimal getInviteSecondLevelSubsidyRate(Long time, SystemEnum system) {
+        String key = "invite_subsidy_7";
+        HongBaoManage hongBaoManage = hongBaoManageMapper.selectByKeyAndMaxValidTime(key, time,system);
+        if (hongBaoManage == null)
+            hongBaoManage = hongBaoManageMapper.selectByKey(key,system);
+        if (hongBaoManage != null)
+            return new BigDecimal(hongBaoManage.getValue());
+        return new BigDecimal(0);
+    }
+
+    @Override
+    public GoodsMoneyConfigParamsDTO getShowComputeRate(String platform, String version, UserLevelEnum userLevel, SystemEnum system) {
+
+        BigDecimal fanLiRate = getFanLiRate(userLevel,system);
+        BigDecimal shareRate = getShareRate(userLevel,system);
+        GoodsMoneyConfigParamsDTO paramsDTO = new GoodsMoneyConfigParamsDTO(fanLiRate, shareRate, Constant.MAX_REWARD_RATE,
+                getFanLiRate(UserLevelEnum.superVIP,system));
+        if (VersionUtil.greaterThan_2_0_5(platform, version)) {
+            paramsDTO.setMaxRewardRate(null);
+        }
+        return paramsDTO;
+    }
+
+    @Override
+    public GoodsMoneyConfigParamsDTO getShowComputeRate(String platform, String version, SystemEnum system) {
+
+        BigDecimal fanLiRate = getFanLiRate(UserLevelEnum.daRen,system);
+        BigDecimal shareRate = getShareRate(UserLevelEnum.daRen,system);
+        GoodsMoneyConfigParamsDTO paramsDTO = new GoodsMoneyConfigParamsDTO(fanLiRate, shareRate, Constant.MAX_REWARD_RATE,
+                getFanLiRate(UserLevelEnum.superVIP,system));
+        if (VersionUtil.greaterThan_2_0_5(platform, version)) {
+            paramsDTO.setMaxRewardRate(null);
+        }
+        return paramsDTO;
+    }
+
+    @Override
+    public BigDecimal getBaseFanliRate(long time, SystemEnum system) {
+        String key = "base_fanli_rate";
+        HongBaoManage hongBaoManage = hongBaoManageMapper.selectByKeyAndMaxValidTime(key, time,system);
+        if (hongBaoManage == null)
+            hongBaoManage = hongBaoManageMapper.selectByKey(key,system);
+        if (hongBaoManage != null)
+            return new BigDecimal(hongBaoManage.getValue());
+        LogHelper.error("鑾峰彇鍩虹杩斿埄姣斾緥鍑洪敊");
+        return null;
+    }
+
+    @Override
+    public BigDecimal getBaseFanliRate(SystemEnum system) {
+        return getBaseFanliRate(System.currentTimeMillis(),system);
+    }
+
+    @Cacheable(value = "homeBaoManage", key = "'getBaseFanliRate'+#time+'-'+#system")
+    @Override
+    public BigDecimal getBaseFanliRateCache(long time, SystemEnum system) {
+        return getBaseFanliRate(System.currentTimeMillis(),system);
+    }
+
+}

--
Gitblit v1.8.0