房间流水和家族 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);
|
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();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user