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