From dabe131f942bfb0006c72d8137c915ccba3a2ca3 Mon Sep 17 00:00:00 2001 From: Derran Date: Tue, 3 Feb 2026 16:58:03 +0800 Subject: [PATCH] =?UTF-8?q?=E7=9B=B4=E6=92=AD=E7=BA=A2=E5=A8=98=E4=BB=BB?= =?UTF-8?q?=E5=8A=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../constant/ProductSubCategoryEnum.java | 6 ++++++ .../VirtualAccountApplicationService.java | 19 +++++++++++-------- 2 files changed, 17 insertions(+), 8 deletions(-) diff --git a/dating-agency-mall-constant/src/main/java/com/qniao/dam/domian/aggregate/product/constant/ProductSubCategoryEnum.java b/dating-agency-mall-constant/src/main/java/com/qniao/dam/domian/aggregate/product/constant/ProductSubCategoryEnum.java index 42c3760..c05c46d 100644 --- a/dating-agency-mall-constant/src/main/java/com/qniao/dam/domian/aggregate/product/constant/ProductSubCategoryEnum.java +++ b/dating-agency-mall-constant/src/main/java/com/qniao/dam/domian/aggregate/product/constant/ProductSubCategoryEnum.java @@ -28,6 +28,12 @@ public enum ProductSubCategoryEnum { CHAT_CARD(501, "聊天卡"), + PROFILE_CARD(502, "资料卡"), + + CONTACT_CARD(503, "联系卡"), + + MATCH_CARD(504, "匹配卡"), + VIP(601, "会员"), VIP_TRIAL_CARD(602, "VIP体验卡"), 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 776e1df..7d2c2d3 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 @@ -14,6 +14,7 @@ import com.qniao.dam.domain.aggregate.productspec.entity.ProductSpec; import com.qniao.dam.domain.aggregate.productspec.valueobj.ProductSpecTerm; import com.qniao.dam.domain.aggregate.revenuereward.entity.RevenueReward; import com.qniao.dam.domain.aggregate.revenuereward.valueobj.RevenueRewardRecord; +import com.qniao.dam.domain.aggregate.rewardconfig.entity.RewardConfig; import com.qniao.dam.domain.aggregate.virtualaccount.VirtualAccountAggregate; import com.qniao.dam.domain.aggregate.virtualaccount.entity.VirtualAccount; import com.qniao.dam.domain.aggregate.walletaccount.WalletAccountAggregate; @@ -28,6 +29,7 @@ import com.qniao.dam.domian.aggregate.order.constant.OrderStatusEnum; import com.qniao.dam.domian.aggregate.order.constant.OrderTypeEnum; import com.qniao.dam.domian.aggregate.product.constant.ProductSubCategoryEnum; import com.qniao.dam.domian.aggregate.productspec.constant.ProductSpecTermNameEnum; +import com.qniao.dam.domian.aggregate.rewardconfig.constant.RewardTypeEnum; import com.qniao.dam.domian.aggregate.virtualaccount.constant.VirtualAccountTradeTypeEnum; import com.qniao.dam.domian.aggregate.walletaccount.constant.IdentityTypeEnum; import com.qniao.dam.domian.aggregate.walletaccount.constant.TradeSceneEnum; @@ -90,9 +92,6 @@ public class VirtualAccountApplicationService extends BaseApplicationService { @Resource private AcquireRevenueRewardDomainService acquireRevenueRewardDomainService; - @Value("${virtual-unit-price:0.1}") - private BigDecimal virtualUnitPrice; - public void create(VirtualAccount virtualAccount) { virtualAccountAggregate.create(virtualAccount); } @@ -200,8 +199,9 @@ public class VirtualAccountApplicationService extends BaseApplicationService { if (Objects.isNull(revenueReward)) { revenueReward = RevenueReward.initUser(toUserId); } + RewardConfig worthRewardConfig = rewardConfigQueryService.queryByRewardType(RewardTypeEnum.VIRTUAL_ACCOUNT_WORTH); //营收额 - BigDecimal revenue = BigDecimal.valueOf(costBalance).multiply(virtualUnitPrice).multiply(BigDecimal.valueOf(0.4)).setScale(2, RoundingMode.HALF_UP); + BigDecimal revenue = BigDecimal.valueOf(costBalance).multiply(new BigDecimal(worthRewardConfig.getValue())).multiply(BigDecimal.valueOf(0.4)).setScale(2, RoundingMode.HALF_UP); RevenueRewardRecord revenueRewardRecord = RevenueRewardRecord.build(TradeTypeEnum.IM_GIFT_REWARD, TradeSceneEnum.ONLINE, revenue, BigDecimal.valueOf(100), BigDecimal.ZERO, revenue, BigDecimal.valueOf(costBalance)); @@ -265,8 +265,9 @@ public class VirtualAccountApplicationService extends BaseApplicationService { if (Objects.isNull(toRevenueReward)) { toRevenueReward = RevenueReward.initUser(toUserId); } + RewardConfig worthRewardConfig = rewardConfigQueryService.queryByRewardType(RewardTypeEnum.VIRTUAL_ACCOUNT_WORTH); //营收额 todo - BigDecimal toRevenue = BigDecimal.valueOf(costBalance).multiply(virtualUnitPrice).multiply(BigDecimal.valueOf(0.1)).setScale(2, RoundingMode.HALF_UP); + BigDecimal toRevenue = BigDecimal.valueOf(costBalance).multiply(new BigDecimal(worthRewardConfig.getValue())).multiply(BigDecimal.valueOf(0.1)).setScale(2, RoundingMode.HALF_UP); RevenueRewardRecord toRevenueRewardRecord = RevenueRewardRecord.build(TradeTypeEnum.CHANNEL_GIFT_REWARD, TradeSceneEnum.ONLINE, toRevenue, BigDecimal.valueOf(100), BigDecimal.ZERO, toRevenue, BigDecimal.valueOf(costBalance)); //todo @@ -288,7 +289,7 @@ public class VirtualAccountApplicationService extends BaseApplicationService { //营收额 BigDecimal giftRewardPct = rewardConfigQueryService.queryMatchmakerChannelGiftPct(anchorId, channelCreatorTodayCrossMicCount); giftRewardPct = giftRewardPct.subtract(BigDecimal.valueOf(10)); - BigDecimal anchorRevenue = BigDecimal.valueOf(costBalance).multiply(virtualUnitPrice).multiply(giftRewardPct) + BigDecimal anchorRevenue = BigDecimal.valueOf(costBalance).multiply(new BigDecimal(worthRewardConfig.getValue())).multiply(giftRewardPct) .divide(BigDecimal.valueOf(100), 2, RoundingMode.HALF_UP); RevenueRewardRecord anchorRevenueRewardRecord = RevenueRewardRecord.build(TradeTypeEnum.CHANNEL_GIFT_REWARD, TradeSceneEnum.ONLINE, anchorRevenue, BigDecimal.valueOf(100), BigDecimal.ZERO, anchorRevenue, BigDecimal.valueOf(costBalance)); @@ -331,9 +332,10 @@ public class VirtualAccountApplicationService extends BaseApplicationService { if (Objects.isNull(revenueReward)) { revenueReward = RevenueReward.initUser(toUserId); } + RewardConfig worthRewardConfig = rewardConfigQueryService.queryByRewardType(RewardTypeEnum.VIRTUAL_ACCOUNT_WORTH); //营收额 todo BigDecimal giftRewardPct = rewardConfigQueryService.queryMatchmakerChannelGiftPct(toUserId, channelCreatorTodayCrossMicCount); - BigDecimal revenue = BigDecimal.valueOf(costBalance).multiply(virtualUnitPrice).multiply(giftRewardPct) + BigDecimal revenue = BigDecimal.valueOf(costBalance).multiply(new BigDecimal(worthRewardConfig.getValue())).multiply(giftRewardPct) .divide(BigDecimal.valueOf(100), 2, RoundingMode.HALF_UP); RevenueRewardRecord revenueRewardRecord = RevenueRewardRecord.build(TradeTypeEnum.CHANNEL_GIFT_REWARD, TradeSceneEnum.ONLINE, @@ -364,9 +366,10 @@ public class VirtualAccountApplicationService extends BaseApplicationService { if (Objects.isNull(revenueReward)) { revenueReward = RevenueReward.initUser(userId); } + RewardConfig worthRewardConfig = rewardConfigQueryService.queryByRewardType(RewardTypeEnum.VIRTUAL_ACCOUNT_WORTH); //营收额 todo BigDecimal giftRewardPct = rewardConfigQueryService.queryMatchmakerChannelGiftPct(userId, channelCreatorTodayCrossMicCount); - BigDecimal revenue = BigDecimal.valueOf(costBalance).multiply(virtualUnitPrice).multiply(giftRewardPct) + BigDecimal revenue = BigDecimal.valueOf(costBalance).multiply(new BigDecimal(worthRewardConfig.getValue())).multiply(giftRewardPct) .divide(BigDecimal.valueOf(100), 2, RoundingMode.HALF_UP); RevenueRewardRecord revenueRewardRecord = RevenueRewardRecord.build(TradeTypeEnum.LINK_MIC_REWARD, TradeSceneEnum.ONLINE, revenue, BigDecimal.valueOf(100), BigDecimal.ZERO, revenue, BigDecimal.valueOf(costBalance));