From 00a108f2659550f131e5552b5dc38ab083ed8f78 Mon Sep 17 00:00:00 2001 From: tianfeng <769204422@qq.com> Date: Thu, 8 Jan 2026 17:01:19 +0800 Subject: [PATCH] =?UTF-8?q?=E6=88=BF=E9=97=B4=E6=B5=81=E6=B0=B4=E5=92=8C?= =?UTF-8?q?=E5=AE=B6=E6=97=8F=20CP=20ACTIVITY=E7=A4=BC=E7=89=A9=E7=99=BE?= =?UTF-8?q?=E5=88=86=E6=AF=94=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../gift/strategy/GiftCountStrategy.java | 98 ++++++++----------- 1 file changed, 39 insertions(+), 59 deletions(-) diff --git a/rc-service/rc-service-other/other-application/src/main/java/com/red/circle/other/app/listener/gift/strategy/GiftCountStrategy.java b/rc-service/rc-service-other/other-application/src/main/java/com/red/circle/other/app/listener/gift/strategy/GiftCountStrategy.java index 44586448..d64f62e7 100644 --- a/rc-service/rc-service-other/other-application/src/main/java/com/red/circle/other/app/listener/gift/strategy/GiftCountStrategy.java +++ b/rc-service/rc-service-other/other-application/src/main/java/com/red/circle/other/app/listener/gift/strategy/GiftCountStrategy.java @@ -173,18 +173,10 @@ public class GiftCountStrategy implements GiftStrategy { List activityDoubleGiftIds = activityConfigService.listProcessingGiftIds(ids); 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); - BigDecimal giftValueCount = BigDecimal.valueOf(getActualAmount(isLuckyGift, - giftValue.getGiftValue(), luckyGiftRatio)); + BigDecimal giftValueCount = BigDecimal.valueOf(getActualAmount(giftValue, giftValue.getGiftValue())); runningWater.getAcceptUsers().forEach(accept -> { @@ -204,7 +196,7 @@ public class GiftCountStrategy implements GiftStrategy { // 家族 - processFamily(runningWater, isLuckyGift, luckyGiftRatio); + processFamily(runningWater); // Spins 送礼物任务 handleSpinsGiftTask(runningWater); @@ -384,14 +376,8 @@ public class GiftCountStrategy implements GiftStrategy { return; } - BigDecimal luckyGiftRatio = gameLuckyGiftCommon.getLuckyGiftShareRatio(roomProfile.getSysOrigin()); - log.info("GiftCountStrategy.roomContribution---幸运礼物比例:{}", luckyGiftRatio); - log.info("礼物统计{}", runningWater); - BigDecimal actualAmount = BigDecimal.valueOf( - getActualAmount(isLuckyGift(runningWater.getGiftValue()), - runningWater.getGiftValue().getActualAmount(), luckyGiftRatio) - ); + BigDecimal actualAmount = BigDecimal.valueOf(getActualAmount(runningWater.getGiftValue(), runningWater.getGiftValue().getActualAmount())); roomContributionRankCountService.incr(roomProfile.getSysOrigin(), roomProfile.getId(), @@ -409,35 +395,13 @@ public class GiftCountStrategy implements GiftStrategy { BigDecimal luckyGiftTargetRatio = gameLuckyGiftCommon.getLuckyGiftTargetRatio( runningWater.getSysOrigin()); log.info("礼物统计{}", runningWater); - BigDecimal actualTargetAmount = BigDecimal.valueOf( - getActualAmount(isLuckyGift(runningWater.getGiftValue()), - runningWater.getGiftValue().getActualAmount(), luckyGiftTargetRatio)); + BigDecimal actualTargetAmount = BigDecimal.valueOf(getActualAmount(runningWater.getGiftValue(), runningWater.getGiftValue().getActualAmount())); // 活动 2022.11.1 - 2036.11.30 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礼物 */ @@ -458,10 +422,8 @@ public class GiftCountStrategy implements GiftStrategy { return; } log.info("礼物统计{}", runningWater); - boolean isLuckyGift = isLuckyGift(runningWater.getGiftValue()); - BigDecimal actualAmount = BigDecimal.valueOf(getActualAmount(isLuckyGift, - runningWater.getGiftValue().getActualAmount(), luckyGiftRatio)); + BigDecimal actualAmount = BigDecimal.valueOf(getActualAmount(runningWater.getGiftValue(), runningWater.getGiftValue().getActualAmount())); //保存房间与房间之间的PK if (Objects.equals(roomPkCache.getPkType(), GamePkTypeEnum.ROOM_VS_ROOM.name())) { @@ -480,8 +442,7 @@ public class GiftCountStrategy implements GiftStrategy { return; } - Long giftValue = getActualAmount(isLuckyGift, runningWater.getGiftValue().getGiftValue(), - luckyGiftRatio); + Long giftValue = getActualAmount(runningWater.getGiftValue(), runningWater.getGiftValue().getGiftValue()); //保存用户对用户之间的Pk for (GiftAcceptUser acceptUser : runningWater.getAcceptUsers()) { @@ -511,8 +472,7 @@ public class GiftCountStrategy implements GiftStrategy { log.info("礼物统计{}", runningWater); gameIndoorTeamPkCommon.calculatePoints(runningWater.getAcceptUsers(), roomId, runningWater.getUserId(), BigDecimal.valueOf( - getActualAmount(isLuckyGift(runningWater.getGiftValue()), - runningWater.getGiftValue().getGiftValue(), luckyGiftRatio))); + getActualAmount(runningWater.getGiftValue(), runningWater.getGiftValue().getGiftValue()))); } /** @@ -584,8 +544,7 @@ public class GiftCountStrategy implements GiftStrategy { private void processUserFriendCard(GiftGiveRunningWater runningWater, boolean isLuckyGift, BigDecimal luckyGiftRatio) { - Long giftValue = getActualAmount(isLuckyGift, runningWater.getGiftValue().getGiftValue(), - luckyGiftRatio); + Long giftValue = getActualAmount(runningWater.getGiftValue(), runningWater.getGiftValue().getGiftValue()); List acceptUserIds = runningWater.getAcceptUsers().stream() .map(GiftAcceptUser::getAcceptUserId) @@ -618,15 +577,14 @@ public class GiftCountStrategy implements GiftStrategy { } - private void processFamily(GiftGiveRunningWater runningWater, boolean isLuckyGift, - BigDecimal luckyGiftRatio) { - Long actualAmount = getActualAmount(isLuckyGift, runningWater.getGiftValue().getActualAmount(), luckyGiftRatio); + private void processFamily(GiftGiveRunningWater runningWater) { + Long actualAmount = getActualAmount(runningWater.getGiftValue(), runningWater.getGiftValue().getActualAmount()); familyCommon.addFamilyExpAndLevelUp(runningWater.getUserId(), runningWater.getSysOrigin(), actualAmount); 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); }); @@ -667,17 +625,39 @@ public class GiftCountStrategy implements GiftStrategy { 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, - BigDecimal luckyGiftRatio) { + private Long getActualAmount(GiftValue giftValue, BigDecimal acceptAmount) { - log.warn("==-=-=-=--=是否是幸运礼物 {},{},{}", checkLuckyGift,amount,luckyGiftRatio); - if (checkLuckyGift) { - return amount.multiply(luckyGiftRatio).setScale(0, RoundingMode.DOWN).longValue(); + if (isLuckyGift(giftValue)) { + BigDecimal ratio = gameLuckyGiftCommon.getLuckyGiftShareRatio(SysOriginPlatformEnum.LIKEI.name()); + 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(); } /**