admin
2020-05-19 744594ef1a2f530fc3e86ea9dc48b62247f79420
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());
   }
}