From c7cdc29ca6d0bf78533970c0e5a86beb8039eb0a Mon Sep 17 00:00:00 2001 From: Derran Date: Sat, 18 Apr 2026 10:14:59 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BA=A2=E5=A8=98=E7=9B=B4=E6=92=AD=E4=BB=BB?= =?UTF-8?q?=E5=8A=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../rewardconfig/constant/RewardTypeEnum.java | 4 ++++ .../VirtualAccountApplicationService.java | 15 +++++++++++---- 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/dating-agency-mall-constant/src/main/java/com/qniao/dam/domian/aggregate/rewardconfig/constant/RewardTypeEnum.java b/dating-agency-mall-constant/src/main/java/com/qniao/dam/domian/aggregate/rewardconfig/constant/RewardTypeEnum.java index 2fb0e86..9063f3f 100644 --- a/dating-agency-mall-constant/src/main/java/com/qniao/dam/domian/aggregate/rewardconfig/constant/RewardTypeEnum.java +++ b/dating-agency-mall-constant/src/main/java/com/qniao/dam/domian/aggregate/rewardconfig/constant/RewardTypeEnum.java @@ -154,6 +154,10 @@ public enum RewardTypeEnum { CHAT_PROFIT_PCT_50(604, "聊天收益百分比-50"), + CHAT_PROFIT_BY_GIFT(605, "聊天礼物收益"), + + RTC_PROFIT_BY_ONE_ON_ONE(606, "一对一RTC收益"), + //红娘礼物收益 CONTRACT_MATCHMAKER_GIFT_PCT(701, "签约红娘直播礼物收益百分比"), diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/application/service/virtualaccount/VirtualAccountApplicationService.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/application/service/virtualaccount/VirtualAccountApplicationService.java index 7210192..bacd8c6 100644 --- a/dating-agency-mall-server/src/main/java/com/qniao/dam/application/service/virtualaccount/VirtualAccountApplicationService.java +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/application/service/virtualaccount/VirtualAccountApplicationService.java @@ -202,8 +202,10 @@ public class VirtualAccountApplicationService extends BaseApplicationService { revenueReward = RevenueReward.initUser(toUserId); } RewardConfig worthRewardConfig = rewardConfigQueryService.queryByRewardType(RewardTypeEnum.VIRTUAL_ACCOUNT_WORTH); + RewardConfig giftRewardConfig = rewardConfigQueryService.queryByRewardType(RewardTypeEnum.CHAT_PROFIT_BY_GIFT); //营收额 - BigDecimal revenue = BigDecimal.valueOf(costBalance).multiply(new BigDecimal(worthRewardConfig.getValue())).multiply(BigDecimal.valueOf(0.4)).setScale(2, RoundingMode.HALF_UP); + BigDecimal revenue = BigDecimal.valueOf(costBalance).multiply(new BigDecimal(worthRewardConfig.getValue())); + revenue = giftRewardConfig.calculateReward(revenue); RevenueRewardRecord revenueRewardRecord = RevenueRewardRecord.build(TradeTypeEnum.IM_GIFT_REWARD, TradeSceneEnum.ONLINE, revenue, BigDecimal.valueOf(100), BigDecimal.ZERO, revenue, BigDecimal.valueOf(costBalance)); @@ -307,7 +309,7 @@ public class VirtualAccountApplicationService extends BaseApplicationService { anchorWalletAccount.setRecordList(Collections.singletonList(anchorWalletAccountRecord)); List eventList = costGiftRewardDomainService.handle(order, virtualAccount, costBalance, toRevenueReward, toWalletAccount, anchorRevenueReward, anchorWalletAccount); - eventList.add(new ChannelCostGiftEvent(anchorId,order.getSettlementAmount().intValue())); + eventList.add(new ChannelCostGiftEvent(anchorId, order.getSettlementAmount().intValue())); vo.setSuccess(true); this.sendEvent(eventList); return vo; @@ -357,7 +359,7 @@ public class VirtualAccountApplicationService extends BaseApplicationService { List eventList = costGiftRewardDomainService.handle(order, virtualAccount, costBalance, revenueReward, walletAccount); //补充直播间礼物玫瑰数量时间 - eventList.add(new ChannelCostGiftEvent(toUserId,order.getSettlementAmount().intValue())); + eventList.add(new ChannelCostGiftEvent(toUserId, order.getSettlementAmount().intValue())); vo.setSuccess(true); this.sendEvent(eventList); return vo; @@ -498,7 +500,12 @@ public class VirtualAccountApplicationService extends BaseApplicationService { WalletAccount walletAccount = null; if (dto.getHasProfit()) { walletAccount = walletAccountQueryService.queryByType(dto.getProfitUserId(), IdentityTypeEnum.INDIVIDUAL); - BigDecimal income = BigDecimal.valueOf(1.05).multiply(BigDecimal.valueOf(dto.getConsumeCount())); + RewardConfig worthRewardConfig = rewardConfigQueryService.queryByRewardType(RewardTypeEnum.VIRTUAL_ACCOUNT_WORTH); + RewardConfig rtcRewardConfig = rewardConfigQueryService.queryByRewardType(RewardTypeEnum.RTC_PROFIT_BY_ONE_ON_ONE); + + BigDecimal income = BigDecimal.valueOf(dto.getConsumeBalance()).multiply(new BigDecimal(worthRewardConfig.getValue())); + income = rtcRewardConfig.calculateReward(income); + if (RtcChannelTypeEnum.ONE_ON_ONE_VOICE.equals(dto.getRtcChannelType())) { walletAccountAggregate.handleIncomeData(walletAccount, income, TradeTypeEnum.ONE_ON_ONE_VOICE, "与" + payerMarriageInformation.getNickName() + "1V1语音"); } else {