| | |
| | | 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 {
|
| | |
| | | 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'")
|
| | |
| | | }
|
| | |
|
| | | @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
|
| | |
| | | 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());
|
| | | }
|
| | |
|
| | | }
|