房间流水和家族 CP ACTIVITY礼物百分比处理

This commit is contained in:
tianfeng 2026-01-08 17:01:19 +08:00
parent 258f6af4d2
commit 00a108f265

View File

@ -173,18 +173,10 @@ public class GiftCountStrategy implements GiftStrategy {
List<Long> activityDoubleGiftIds = activityConfigService.listProcessingGiftIds(ids); List<Long> activityDoubleGiftIds = activityConfigService.listProcessingGiftIds(ids);
boolean isDoubleLevelExpActivity = activityDoubleGiftIds.contains(runningWater.getGiftId()); boolean isDoubleLevelExpActivity = activityDoubleGiftIds.contains(runningWater.getGiftId());
//log.warn("幸运礼物id{}",isDoubleLevelExpActivity);
log.info("礼物统计{}", runningWater);
boolean isLuckyGift = isLuckyGift(giftValue);
BigDecimal actualAmount = BigDecimal.valueOf(
getActualAmount(isLuckyGift, giftValue.getActualAmount(),
luckyGiftRatio));
boolean isHighPriceGift = checkHighPriceGift(runningWater); boolean isHighPriceGift = checkHighPriceGift(runningWater);
BigDecimal giftValueCount = BigDecimal.valueOf(getActualAmount(isLuckyGift, BigDecimal giftValueCount = BigDecimal.valueOf(getActualAmount(giftValue, giftValue.getGiftValue()));
giftValue.getGiftValue(), luckyGiftRatio));
runningWater.getAcceptUsers().forEach(accept -> { runningWater.getAcceptUsers().forEach(accept -> {
@ -204,7 +196,7 @@ public class GiftCountStrategy implements GiftStrategy {
// 家族 // 家族
processFamily(runningWater, isLuckyGift, luckyGiftRatio); processFamily(runningWater);
// Spins 送礼物任务 // Spins 送礼物任务
handleSpinsGiftTask(runningWater); handleSpinsGiftTask(runningWater);
@ -384,14 +376,8 @@ public class GiftCountStrategy implements GiftStrategy {
return; return;
} }
BigDecimal luckyGiftRatio = gameLuckyGiftCommon.getLuckyGiftShareRatio(roomProfile.getSysOrigin());
log.info("GiftCountStrategy.roomContribution---幸运礼物比例:{}", luckyGiftRatio);
log.info("礼物统计{}", runningWater); log.info("礼物统计{}", runningWater);
BigDecimal actualAmount = BigDecimal.valueOf( BigDecimal actualAmount = BigDecimal.valueOf(getActualAmount(runningWater.getGiftValue(), runningWater.getGiftValue().getActualAmount()));
getActualAmount(isLuckyGift(runningWater.getGiftValue()),
runningWater.getGiftValue().getActualAmount(), luckyGiftRatio)
);
roomContributionRankCountService.incr(roomProfile.getSysOrigin(), roomContributionRankCountService.incr(roomProfile.getSysOrigin(),
roomProfile.getId(), roomProfile.getId(),
@ -409,35 +395,13 @@ public class GiftCountStrategy implements GiftStrategy {
BigDecimal luckyGiftTargetRatio = gameLuckyGiftCommon.getLuckyGiftTargetRatio( BigDecimal luckyGiftTargetRatio = gameLuckyGiftCommon.getLuckyGiftTargetRatio(
runningWater.getSysOrigin()); runningWater.getSysOrigin());
log.info("礼物统计{}", runningWater); log.info("礼物统计{}", runningWater);
BigDecimal actualTargetAmount = BigDecimal.valueOf( BigDecimal actualTargetAmount = BigDecimal.valueOf(getActualAmount(runningWater.getGiftValue(), runningWater.getGiftValue().getActualAmount()));
getActualAmount(isLuckyGift(runningWater.getGiftValue()),
runningWater.getGiftValue().getActualAmount(), luckyGiftTargetRatio));
// 活动 2022.11.1 - 2036.11.30 // 活动 2022.11.1 - 2036.11.30
roomContributionActivityCountService.incrQuantity(roomProfile.getId(), actualTargetAmount); roomContributionActivityCountService.incrQuantity(roomProfile.getId(), actualTargetAmount);
} }
/**
* 累计金币活动 20230719-20230801.
*/
private void consumeActivity(GiftGiveRunningWater runningWater, boolean isLuckyGift,
BigDecimal luckyGiftRatio) {
int nowInt = ZonedDateTimeAsiaRiyadhUtils.nowDateToInt();
if (nowInt >= 20230719 && nowInt < 20230801) {
consumeActivityCountService.incrTarget(runningWater.getUserId(),
userRegionGateway.getRegionId(runningWater.getUserId()),
getActualAmount(isLuckyGift, runningWater.getGiftValue().getActualAmount(),
luckyGiftRatio));
}
}
/** /**
* 处理 房间pk礼物 * 处理 房间pk礼物
*/ */
@ -458,10 +422,8 @@ public class GiftCountStrategy implements GiftStrategy {
return; return;
} }
log.info("礼物统计{}", runningWater); log.info("礼物统计{}", runningWater);
boolean isLuckyGift = isLuckyGift(runningWater.getGiftValue());
BigDecimal actualAmount = BigDecimal.valueOf(getActualAmount(isLuckyGift, BigDecimal actualAmount = BigDecimal.valueOf(getActualAmount(runningWater.getGiftValue(), runningWater.getGiftValue().getActualAmount()));
runningWater.getGiftValue().getActualAmount(), luckyGiftRatio));
//保存房间与房间之间的PK //保存房间与房间之间的PK
if (Objects.equals(roomPkCache.getPkType(), GamePkTypeEnum.ROOM_VS_ROOM.name())) { if (Objects.equals(roomPkCache.getPkType(), GamePkTypeEnum.ROOM_VS_ROOM.name())) {
@ -480,8 +442,7 @@ public class GiftCountStrategy implements GiftStrategy {
return; return;
} }
Long giftValue = getActualAmount(isLuckyGift, runningWater.getGiftValue().getGiftValue(), Long giftValue = getActualAmount(runningWater.getGiftValue(), runningWater.getGiftValue().getGiftValue());
luckyGiftRatio);
//保存用户对用户之间的Pk //保存用户对用户之间的Pk
for (GiftAcceptUser acceptUser : runningWater.getAcceptUsers()) { for (GiftAcceptUser acceptUser : runningWater.getAcceptUsers()) {
@ -511,8 +472,7 @@ public class GiftCountStrategy implements GiftStrategy {
log.info("礼物统计{}", runningWater); log.info("礼物统计{}", runningWater);
gameIndoorTeamPkCommon.calculatePoints(runningWater.getAcceptUsers(), roomId, gameIndoorTeamPkCommon.calculatePoints(runningWater.getAcceptUsers(), roomId,
runningWater.getUserId(), BigDecimal.valueOf( runningWater.getUserId(), BigDecimal.valueOf(
getActualAmount(isLuckyGift(runningWater.getGiftValue()), getActualAmount(runningWater.getGiftValue(), runningWater.getGiftValue().getGiftValue())));
runningWater.getGiftValue().getGiftValue(), luckyGiftRatio)));
} }
/** /**
@ -584,8 +544,7 @@ public class GiftCountStrategy implements GiftStrategy {
private void processUserFriendCard(GiftGiveRunningWater runningWater, boolean isLuckyGift, private void processUserFriendCard(GiftGiveRunningWater runningWater, boolean isLuckyGift,
BigDecimal luckyGiftRatio) { BigDecimal luckyGiftRatio) {
Long giftValue = getActualAmount(isLuckyGift, runningWater.getGiftValue().getGiftValue(), Long giftValue = getActualAmount(runningWater.getGiftValue(), runningWater.getGiftValue().getGiftValue());
luckyGiftRatio);
List<Long> acceptUserIds = runningWater.getAcceptUsers().stream() List<Long> acceptUserIds = runningWater.getAcceptUsers().stream()
.map(GiftAcceptUser::getAcceptUserId) .map(GiftAcceptUser::getAcceptUserId)
@ -618,15 +577,14 @@ public class GiftCountStrategy implements GiftStrategy {
} }
private void processFamily(GiftGiveRunningWater runningWater, boolean isLuckyGift, private void processFamily(GiftGiveRunningWater runningWater) {
BigDecimal luckyGiftRatio) { Long actualAmount = getActualAmount(runningWater.getGiftValue(), runningWater.getGiftValue().getActualAmount());
Long actualAmount = getActualAmount(isLuckyGift, runningWater.getGiftValue().getActualAmount(), luckyGiftRatio);
familyCommon.addFamilyExpAndLevelUp(runningWater.getUserId(), runningWater.getSysOrigin(), actualAmount); familyCommon.addFamilyExpAndLevelUp(runningWater.getUserId(), runningWater.getSysOrigin(), actualAmount);
runningWater.getAcceptUsers().forEach(acceptUser -> { runningWater.getAcceptUsers().forEach(acceptUser -> {
Long exp = getActualAmount(isLuckyGift, acceptUser.getGiftValue(), luckyGiftRatio); Long exp = getActualAmount(runningWater.getGiftValue(), runningWater.getGiftValue().getActualAmount());
familyCommon.addFamilyExpAndLevelUp(acceptUser.getAcceptUserId(), runningWater.getSysOrigin(), exp); familyCommon.addFamilyExpAndLevelUp(acceptUser.getAcceptUserId(), runningWater.getSysOrigin(), exp);
}); });
@ -667,17 +625,39 @@ public class GiftCountStrategy implements GiftStrategy {
return giftValue.getGiftType().contains(GiftTabEnum.LUCKY_GIFT.name()); return giftValue.getGiftType().contains(GiftTabEnum.LUCKY_GIFT.name());
} }
/**
* 判断是否为活动礼物
*/
private boolean isActivityGift(GiftValue giftValue) {
return giftValue.getGiftType() != null &&
giftValue.getGiftType().contains(GiftTabEnum.ACTIVITY.name());
}
/**
* 判断是否为CP礼物
*/
private boolean isCpGift(GiftValue giftValue) {
return giftValue.getGiftType() != null &&
giftValue.getGiftType().contains(GiftTabEnum.CP.name());
}
/** /**
* 获得礼物额度. * 获得礼物额度.
*/ */
private Long getActualAmount(boolean checkLuckyGift, BigDecimal amount, private Long getActualAmount(GiftValue giftValue, BigDecimal acceptAmount) {
BigDecimal luckyGiftRatio) {
log.warn("==-=-=-=--=是否是幸运礼物 {},{},{}", checkLuckyGift,amount,luckyGiftRatio); if (isLuckyGift(giftValue)) {
if (checkLuckyGift) { BigDecimal ratio = gameLuckyGiftCommon.getLuckyGiftShareRatio(SysOriginPlatformEnum.LIKEI.name());
return amount.multiply(luckyGiftRatio).setScale(0, RoundingMode.DOWN).longValue(); return acceptAmount.multiply(ratio).setScale(0, RoundingMode.DOWN).longValue();
} }
return amount.longValue();
if (isActivityGift(giftValue) || isCpGift(giftValue)) {
BigDecimal ratio = new BigDecimal("0.7");
return acceptAmount.multiply(ratio).setScale(0, RoundingMode.DOWN).longValue();
}
return acceptAmount.longValue();
} }
/** /**