From 8eb1a93f56ce6ebb176f59d62b236f97e8e3b10e Mon Sep 17 00:00:00 2001 From: Derran Date: Tue, 6 Jan 2026 18:28:59 +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 --- .../MallServerApplicationService.java | 5 ++++ .../QueryOneOnOneRtcConsumeBySdkDto.java | 12 ++++++++++ .../QueryOneOnOneRtcConsumeBySdkVo.java | 16 +++++++++++++ .../VirtualAccountUserCommandController.java | 11 +++++---- .../request/QueryOneOnOneRtcConsumeDto.java | 14 +++++++++++ .../response/QueryOneOnOneRtcConsumeVo.java | 16 +++++++++++++ .../VirtualAccountApplicationService.java | 24 +++++++++++++++---- 7 files changed, 90 insertions(+), 8 deletions(-) create mode 100644 dating-agency-mall-sdk/src/main/java/com/qniao/dam/application/request/QueryOneOnOneRtcConsumeBySdkDto.java create mode 100644 dating-agency-mall-sdk/src/main/java/com/qniao/dam/application/response/QueryOneOnOneRtcConsumeBySdkVo.java create mode 100644 dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/virtualaccount/user/request/QueryOneOnOneRtcConsumeDto.java create mode 100644 dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/virtualaccount/user/response/QueryOneOnOneRtcConsumeVo.java diff --git a/dating-agency-mall-sdk/src/main/java/com/qniao/dam/application/MallServerApplicationService.java b/dating-agency-mall-sdk/src/main/java/com/qniao/dam/application/MallServerApplicationService.java index a08d41a..90894b6 100644 --- a/dating-agency-mall-sdk/src/main/java/com/qniao/dam/application/MallServerApplicationService.java +++ b/dating-agency-mall-sdk/src/main/java/com/qniao/dam/application/MallServerApplicationService.java @@ -69,4 +69,9 @@ public interface MallServerApplicationService { @IgnoreResponseAdvice FreezeOneOnOneRtcConsumeBySdkVo freezeOneOnOneRtcConsumeBySdk(@RequestBody FreezeOneOnOneRtcConsumeBySdkDto dto); + @PostMapping("/user/query/one-on-one-rtc-consume/by/sdk") + @IgnoreResponseAdvice + QueryOneOnOneRtcConsumeBySdkVo queryOneOnOneRtcConsumeBySdk(@RequestBody QueryOneOnOneRtcConsumeBySdkDto dto); + + } diff --git a/dating-agency-mall-sdk/src/main/java/com/qniao/dam/application/request/QueryOneOnOneRtcConsumeBySdkDto.java b/dating-agency-mall-sdk/src/main/java/com/qniao/dam/application/request/QueryOneOnOneRtcConsumeBySdkDto.java new file mode 100644 index 0000000..2a238fa --- /dev/null +++ b/dating-agency-mall-sdk/src/main/java/com/qniao/dam/application/request/QueryOneOnOneRtcConsumeBySdkDto.java @@ -0,0 +1,12 @@ +package com.qniao.dam.application.request; + +import com.qniao.daca.domian.aggregate.rtcchannel.constant.RtcChannelTypeEnum; +import lombok.Data; + +@Data +public class QueryOneOnOneRtcConsumeBySdkDto { + + private Long userId; + + private RtcChannelTypeEnum rtcChannelType; +} diff --git a/dating-agency-mall-sdk/src/main/java/com/qniao/dam/application/response/QueryOneOnOneRtcConsumeBySdkVo.java b/dating-agency-mall-sdk/src/main/java/com/qniao/dam/application/response/QueryOneOnOneRtcConsumeBySdkVo.java new file mode 100644 index 0000000..347ea3f --- /dev/null +++ b/dating-agency-mall-sdk/src/main/java/com/qniao/dam/application/response/QueryOneOnOneRtcConsumeBySdkVo.java @@ -0,0 +1,16 @@ +package com.qniao.dam.application.response; + +import lombok.Data; + +import java.math.BigDecimal; + +@Data +public class QueryOneOnOneRtcConsumeBySdkVo { + + private Integer freezeBalance; + + private Integer availableBalance; + + private BigDecimal unitSellingPrice; + +} diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/virtualaccount/user/VirtualAccountUserCommandController.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/virtualaccount/user/VirtualAccountUserCommandController.java index fa384a1..44f7c2f 100644 --- a/dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/virtualaccount/user/VirtualAccountUserCommandController.java +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/virtualaccount/user/VirtualAccountUserCommandController.java @@ -1,10 +1,7 @@ package com.qniao.dam.api.command.virtualaccount.user; import com.qniao.dam.api.command.virtualaccount.user.request.*; -import com.qniao.dam.api.command.virtualaccount.user.response.CheckOneOnOneRtcConsumeVo; -import com.qniao.dam.api.command.virtualaccount.user.response.CostGiftVo; -import com.qniao.dam.api.command.virtualaccount.user.response.FreezeOneOnOneRtcConsumeVo; -import com.qniao.dam.api.command.virtualaccount.user.response.UserConsumeVirtualAccountVo; +import com.qniao.dam.api.command.virtualaccount.user.response.*; import com.qniao.dam.application.service.virtualaccount.VirtualAccountApplicationService; import com.qniao.framework.annotation.IgnoreResponseAdvice; import io.swagger.annotations.Api; @@ -53,4 +50,10 @@ public class VirtualAccountUserCommandController { return virtualAccountApplicationService.freezeOneOnOneRtcConsume(dto.getUserId(), dto.getRtcChannelType()); } + @PostMapping("/query/one-on-one-rtc-consume/by/sdk") + @IgnoreResponseAdvice + public QueryOneOnOneRtcConsumeVo queryOneOnOneRtcConsumeBySdk(@RequestBody QueryOneOnOneRtcConsumeDto dto) { + return virtualAccountApplicationService.queryOneOnOneRtcConsume(dto.getUserId(), dto.getRtcChannelType()); + } + } diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/virtualaccount/user/request/QueryOneOnOneRtcConsumeDto.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/virtualaccount/user/request/QueryOneOnOneRtcConsumeDto.java new file mode 100644 index 0000000..b769e31 --- /dev/null +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/virtualaccount/user/request/QueryOneOnOneRtcConsumeDto.java @@ -0,0 +1,14 @@ +package com.qniao.dam.api.command.virtualaccount.user.request; + +import com.qniao.daca.domian.aggregate.rtcchannel.constant.RtcChannelTypeEnum; +import lombok.Data; + +@Data +public class QueryOneOnOneRtcConsumeDto { + + private Long userId; + + private RtcChannelTypeEnum rtcChannelType; + +} + diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/virtualaccount/user/response/QueryOneOnOneRtcConsumeVo.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/virtualaccount/user/response/QueryOneOnOneRtcConsumeVo.java new file mode 100644 index 0000000..8fa7d78 --- /dev/null +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/virtualaccount/user/response/QueryOneOnOneRtcConsumeVo.java @@ -0,0 +1,16 @@ +package com.qniao.dam.api.command.virtualaccount.user.response; + +import lombok.Data; + +import java.math.BigDecimal; + +@Data +public class QueryOneOnOneRtcConsumeVo { + + private Integer freezeBalance; + + private Integer availableBalance; + + private BigDecimal unitSellingPrice; + +} 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 14a4b15..6be7c7c 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 @@ -4,10 +4,7 @@ import com.qniao.daca.domian.aggregate.rtcchannel.constant.RtcChannelTypeEnum; import com.qniao.dam.api.command.virtualaccount.user.request.UserConsumeVirtualAccountDto; import com.qniao.dam.api.command.virtualaccount.user.request.UserCostChannelGiftDto; import com.qniao.dam.api.command.virtualaccount.user.request.UserCostIMGiftDto; -import com.qniao.dam.api.command.virtualaccount.user.response.CheckOneOnOneRtcConsumeVo; -import com.qniao.dam.api.command.virtualaccount.user.response.CostGiftVo; -import com.qniao.dam.api.command.virtualaccount.user.response.FreezeOneOnOneRtcConsumeVo; -import com.qniao.dam.api.command.virtualaccount.user.response.UserConsumeVirtualAccountVo; +import com.qniao.dam.api.command.virtualaccount.user.response.*; import com.qniao.dam.api.query.product.user.response.UserGetProductByCategoryVo; import com.qniao.dam.domain.aggregate.order.entity.Order; import com.qniao.dam.domain.aggregate.order.entity.OrderItem; @@ -394,9 +391,28 @@ public class VirtualAccountApplicationService extends BaseApplicationService { vo.setAvailableBalance(virtualAccount.getBalance()); vo.setUnitSellingPrice(productSpec.getUnitSellingPrice()); } else { + vo.setFreezeBalance(0); vo.setAvailableBalance(Objects.nonNull(virtualAccount) ? virtualAccount.getBalance() : 0); vo.setUnitSellingPrice(productSpec.getUnitSellingPrice()); } return vo; } + + public QueryOneOnOneRtcConsumeVo queryOneOnOneRtcConsume(Long userId, RtcChannelTypeEnum rtcChannelType) { + QueryOneOnOneRtcConsumeVo vo = new QueryOneOnOneRtcConsumeVo(); + UserGetProductByCategoryVo productSpec = null; + if (RtcChannelTypeEnum.ONE_ON_ONE_VOICE.equals(rtcChannelType)) { + //一对一语音 + productSpec = productQueryService.getProductByCategory(ProductSubCategoryEnum.CHAT_VOICE_FEE.getValue()); + } else if (RtcChannelTypeEnum.ONE_ON_ONE_VIDEO.equals(rtcChannelType)) { + //一对一视频 + productSpec = productQueryService.getProductByCategory(ProductSubCategoryEnum.CHAT_VIDEO_FEE.getValue()); + } + vo.setUnitSellingPrice(productSpec.getUnitSellingPrice()); + VirtualAccount virtualAccount = virtualAccountQueryService.queryBy(userId); + if (Objects.nonNull(virtualAccount)) { + vo.setAvailableBalance(virtualAccount.getBalance()); + } + return vo; + } } \ No newline at end of file