From 21049ebc6eb8532f5b1096b7ec06ec6d8f1f1857 Mon Sep 17 00:00:00 2001 From: Derran Date: Thu, 15 Jan 2026 16:11:32 +0800 Subject: [PATCH] =?UTF-8?q?=E7=8E=AB=E7=91=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../request/SettleOneOnOneRtcBySdkDto.java | 2 ++ .../user/request/SettleOneOnOneRtcDto.java | 2 ++ .../VirtualAccountApplicationService.java | 17 ++++++++++------- .../SettleOneOnOneRtcDomainService.java | 5 ++++- 4 files changed, 18 insertions(+), 8 deletions(-) diff --git a/dating-agency-mall-sdk/src/main/java/com/qniao/dam/application/request/SettleOneOnOneRtcBySdkDto.java b/dating-agency-mall-sdk/src/main/java/com/qniao/dam/application/request/SettleOneOnOneRtcBySdkDto.java index 8e907dd..e56266d 100644 --- a/dating-agency-mall-sdk/src/main/java/com/qniao/dam/application/request/SettleOneOnOneRtcBySdkDto.java +++ b/dating-agency-mall-sdk/src/main/java/com/qniao/dam/application/request/SettleOneOnOneRtcBySdkDto.java @@ -14,6 +14,8 @@ public class SettleOneOnOneRtcBySdkDto { private Long profitUserId; + private Boolean hasProfit; + private Integer consumeBalance; private Integer consumeCount; diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/virtualaccount/user/request/SettleOneOnOneRtcDto.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/virtualaccount/user/request/SettleOneOnOneRtcDto.java index 4bb9d6c..0c2e18e 100644 --- a/dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/virtualaccount/user/request/SettleOneOnOneRtcDto.java +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/virtualaccount/user/request/SettleOneOnOneRtcDto.java @@ -12,6 +12,8 @@ public class SettleOneOnOneRtcDto { private Long profitUserId; + private Boolean hasProfit; + private Integer consumeBalance; private Integer consumeCount; 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 eab9776..3a2b7b9 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 @@ -376,7 +376,7 @@ public class VirtualAccountApplicationService extends BaseApplicationService { WalletAccountRecord walletAccountRecord = WalletAccountRecord.build(TradeTypeEnum.LINK_MIC_REWARD, revenue, true, originalBalance, walletAccount.getTotalBalance()); walletAccount.setRecordList(Collections.singletonList(walletAccountRecord)); - acquireRevenueRewardDomainService.handle(revenueReward,walletAccount); + acquireRevenueRewardDomainService.handle(revenueReward, walletAccount); } /** @@ -481,12 +481,15 @@ public class VirtualAccountApplicationService extends BaseApplicationService { virtualAccountAggregate.handleFrozenData(virtualAccount, dto.getConsumeBalance(), VirtualAccountTradeTypeEnum.ONE_ON_ONE_VIDEO, "与" + profitMarriageInformation.getNickName() + "1V1视频"); } - WalletAccount walletAccount = walletAccountQueryService.queryByType(dto.getProfitUserId(), IdentityTypeEnum.INDIVIDUAL); - BigDecimal income = BigDecimal.valueOf(1.5).multiply(BigDecimal.valueOf(dto.getConsumeCount())); - if (RtcChannelTypeEnum.ONE_ON_ONE_VOICE.equals(dto.getRtcChannelType())) { - walletAccountAggregate.handleIncomeData(walletAccount, income, TradeTypeEnum.ONE_ON_ONE_VOICE, "与" + payerMarriageInformation.getNickName() + "1V1语音"); - } else { - walletAccountAggregate.handleIncomeData(walletAccount, income, TradeTypeEnum.ONE_ON_ONE_VIDEO, "与" + payerMarriageInformation.getNickName() + "1V1视频"); + WalletAccount walletAccount = null; + if (dto.getHasProfit()) { + walletAccount = walletAccountQueryService.queryByType(dto.getProfitUserId(), IdentityTypeEnum.INDIVIDUAL); + BigDecimal income = BigDecimal.valueOf(1.5).multiply(BigDecimal.valueOf(dto.getConsumeCount())); + if (RtcChannelTypeEnum.ONE_ON_ONE_VOICE.equals(dto.getRtcChannelType())) { + walletAccountAggregate.handleIncomeData(walletAccount, income, TradeTypeEnum.ONE_ON_ONE_VOICE, "与" + payerMarriageInformation.getNickName() + "1V1语音"); + } else { + walletAccountAggregate.handleIncomeData(walletAccount, income, TradeTypeEnum.ONE_ON_ONE_VIDEO, "与" + payerMarriageInformation.getNickName() + "1V1视频"); + } } settleOneOnOneRtcDomainService.handle(virtualAccount, walletAccount); vo.setFlag(true); 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 d40ca3a..e50f14f 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 @@ -8,6 +8,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; +import java.util.Objects; @Service public class SettleOneOnOneRtcDomainService { @@ -21,6 +22,8 @@ public class SettleOneOnOneRtcDomainService { public void handle(VirtualAccount virtualAccount, WalletAccount walletAccount) { virtualAccountAggregate.edit(virtualAccount); - walletAccountAggregate.save(walletAccount); + if (Objects.nonNull(walletAccount)) { + walletAccountAggregate.save(walletAccount); + } } }