From 7bdcba9a368ad6af54681a26efd218859c5509cf Mon Sep 17 00:00:00 2001 From: Derran Date: Thu, 30 Apr 2026 13:52:20 +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 --- .../VirtualAccountApplicationService.java | 6 +++-- .../SettleOneOnOneRtcDomainService.java | 25 +++++++++++++++++-- 2 files changed, 27 insertions(+), 4 deletions(-) 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 8553537..39be19a 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 @@ -477,6 +477,7 @@ public class VirtualAccountApplicationService extends BaseApplicationService { } WalletAccount walletAccount = null; + RevenueReward revenueReward = null; if (dto.getHasProfit()) { walletAccount = walletAccountQueryService.queryByType(dto.getAppId(), dto.getProfitUserId(), IdentityTypeEnum.INDIVIDUAL); RewardConfig worthRewardConfig = rewardConfigQueryService.queryByRewardType(RewardTypeEnum.VIRTUAL_ACCOUNT_WORTH); @@ -486,7 +487,7 @@ public class VirtualAccountApplicationService extends BaseApplicationService { income = rtcRewardConfig.calculateReward(income); //收益信息 - RevenueReward revenueReward = revenueRewardQueryService.queryByUserId(dto.getAppId(), dto.getProfitUserId()); + revenueReward = revenueRewardQueryService.queryByUserId(dto.getAppId(), dto.getProfitUserId()); if (Objects.isNull(revenueReward)) { revenueReward = RevenueReward.initUser(dto.getAppId(), dto.getProfitUserId()); } @@ -502,8 +503,9 @@ public class VirtualAccountApplicationService extends BaseApplicationService { walletAccountAggregate.handleIncomeData(walletAccount, income, TradeTypeEnum.ONE_ON_ONE_VIDEO, "与" + payerMarriageInformation.getNickName() + "1V1视频"); } } - settleOneOnOneRtcDomainService.handle(virtualAccount, walletAccount); + List eventList = settleOneOnOneRtcDomainService.handle(virtualAccount, walletAccount,revenueReward); vo.setFlag(true); + this.sendEvent(eventList); } } return vo; diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/domain/service/virtualaccount/SettleOneOnOneRtcDomainService.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/domain/service/virtualaccount/SettleOneOnOneRtcDomainService.java index e50f14f..d43a7a8 100644 --- a/dating-agency-mall-server/src/main/java/com/qniao/dam/domain/service/virtualaccount/SettleOneOnOneRtcDomainService.java +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/domain/service/virtualaccount/SettleOneOnOneRtcDomainService.java @@ -1,13 +1,20 @@ package com.qniao.dam.domain.service.virtualaccount; +import cn.hutool.core.collection.CollUtil; +import com.qniao.dam.domain.aggregate.revenuereward.entity.RevenueReward; 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; import com.qniao.dam.domain.aggregate.walletaccount.entity.WalletAccount; +import com.qniao.dam.domian.aggregate.revenuereward.event.RevenueRewardRecordCreatedEvent; +import com.qniao.domain.BaseDomainEvent; +import com.qniao.framework.utils.TypeConvertUtils; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.List; import java.util.Objects; @Service @@ -19,11 +26,25 @@ public class SettleOneOnOneRtcDomainService { private WalletAccountAggregate walletAccountAggregate; @Transactional(rollbackFor = Exception.class) - public void handle(VirtualAccount virtualAccount, - WalletAccount walletAccount) { + public List handle(VirtualAccount virtualAccount, + WalletAccount walletAccount, + RevenueReward revenueReward) { + List eventList = new ArrayList<>(); virtualAccountAggregate.edit(virtualAccount); if (Objects.nonNull(walletAccount)) { walletAccountAggregate.save(walletAccount); + + walletAccount.getRecordList().forEach(record -> { + record.setAssociateId(revenueReward.getRecordList().get(0).getId()); + }); + walletAccountAggregate.save(walletAccount); + + if (CollUtil.isNotEmpty(revenueReward.getRecordList())) { + revenueReward.getRecordList().forEach(record -> { + eventList.add(TypeConvertUtils.convert(record, RevenueRewardRecordCreatedEvent.class)); + }); + } } + return eventList; } }