魅力值处理

This commit is contained in:
tianfeng 2026-01-08 16:12:31 +08:00
parent 3fc79799d5
commit 5676085e91

View File

@ -783,25 +783,21 @@ public class GiveGiftsListener implements MessageListener {
//先获取房间redis值 //先获取房间redis值
List<LiveHeartbeatCache> liveHeartbeatCaches = liveHeartbeatCacheService.listLiveHeartbeat( List<LiveHeartbeatCache> liveHeartbeatCaches = liveHeartbeatCacheService.listLiveHeartbeat(
event.getRoomId()); event.getRoomId());
//组装一下心动值数据 key 用户id //组装一下魅力值数据 key 用户id
Map<Long, LiveHeartbeatCache> liveHeartbeatCacheMap = getLiveHeartbeatCacheMap(liveHeartbeatCaches); Map<Long, LiveHeartbeatCache> liveHeartbeatCacheMap = getLiveHeartbeatCacheMap(liveHeartbeatCaches);
Map<Long, LiveHeartbeatCache> cacheMap = acceptsUserIds.stream().map(userId -> { Map<Long, LiveHeartbeatCache> cacheMap = acceptsUserIds.stream().map(userId -> {
// 礼物比例 // 礼物比例
BigDecimal giftRatio = BigDecimal.valueOf(1L); BigDecimal giftRatio = calcGiftRatio(event);
if (event.checkLuckyGift()) { //总的魅力值
// 幸运礼物比例 BigDecimal amountTotal = event.countSingleGiftGolds().multiply(giftRatio);
giftRatio = gameLuckyGiftCommon.getLuckyGiftTargetRatio(event.getSysOrigin().name());
}
//总的心动值
BigDecimal amountTotal = event.countSingleGiftGolds().multiply(giftRatio);
LiveHeartbeatCache liveHeartbeatCache = new LiveHeartbeatCache(); LiveHeartbeatCache liveHeartbeatCache = new LiveHeartbeatCache();
liveHeartbeatCache.setId(userId); liveHeartbeatCache.setId(userId);
liveHeartbeatCache.setHeartbeatVal(getHeartbeatTotal(amountTotal, liveHeartbeatCache.setHeartbeatVal(getHeartbeatTotal(amountTotal,
Objects.nonNull(liveHeartbeatCacheMap.get(userId)) ? liveHeartbeatCacheMap.get(userId) Objects.nonNull(liveHeartbeatCacheMap.get(userId)) ?
.getHeartbeatVal() : null)); liveHeartbeatCacheMap.get(userId).getHeartbeatVal() : null));
return liveHeartbeatCache; return liveHeartbeatCache;
}).collect(Collectors.toMap(LiveHeartbeatCache::getId, v -> v)); }).collect(Collectors.toMap(LiveHeartbeatCache::getId, v -> v));
liveHeartbeatCacheMap.putAll(cacheMap); liveHeartbeatCacheMap.putAll(cacheMap);
@ -810,6 +806,18 @@ public class GiveGiftsListener implements MessageListener {
} }
} }
private BigDecimal calcGiftRatio(GiveAwayGiftBatchEvent event) {
if (event.checkLuckyGift()) {
// 幸运礼物比例
return gameLuckyGiftCommon.getLuckyGiftTargetRatio(event.getSysOrigin().name());
}
if (event.checkCpGift()) {
return getAssistCpGiftGoldRatio("").multiply(new BigDecimal("10").max(new BigDecimal("0.7")));
}
return BigDecimal.valueOf(1L);
}
private Map<Long,LiveHeartbeatCache> getLiveHeartbeatCacheMap(List<LiveHeartbeatCache> list) { private Map<Long,LiveHeartbeatCache> getLiveHeartbeatCacheMap(List<LiveHeartbeatCache> list) {
return Optional.ofNullable( return Optional.ofNullable(