房间流水和家族 CP ACTIVITY礼物百分比处理
This commit is contained in:
parent
258f6af4d2
commit
00a108f265
@ -173,18 +173,10 @@ public class GiftCountStrategy implements GiftStrategy {
|
||||
List<Long> 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<Long> 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();
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user