From 9e12b001ad4800e4d8d43005142959bb01f9ac2f Mon Sep 17 00:00:00 2001 From: Derran Date: Mon, 5 Jan 2026 14:06:50 +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 | 9 ++++---- .../CheckOneOnOneRtcConsumeSdkDto.java | 14 ++++++++++++ .../CheckOneOnOneRtcConsumeSdkVo.java | 14 ++++++++++++ .../VirtualAccountUserCommandController.java | 9 ++++++++ .../request/CheckOneOnOneRtcConsumeDto.java | 13 +++++++++++ .../response/CheckOneOnOneRtcConsumeVo.java | 10 +++++++++ .../VirtualAccountApplicationService.java | 22 +++++++++++++++++++ .../query/product/ProductQueryService.java | 1 + 8 files changed, 88 insertions(+), 4 deletions(-) create mode 100644 dating-agency-mall-sdk/src/main/java/com/qniao/dam/application/request/CheckOneOnOneRtcConsumeSdkDto.java create mode 100644 dating-agency-mall-sdk/src/main/java/com/qniao/dam/application/response/CheckOneOnOneRtcConsumeSdkVo.java create mode 100644 dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/virtualaccount/user/request/CheckOneOnOneRtcConsumeDto.java create mode 100644 dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/virtualaccount/user/response/CheckOneOnOneRtcConsumeVo.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 c0d2609..fff7984 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 @@ -1,10 +1,7 @@ package com.qniao.dam.application; import com.qniao.dam.application.request.*; -import com.qniao.dam.application.response.ConsumeVirtualAccountVo; -import com.qniao.dam.application.response.CostGiftSdkVo; -import com.qniao.dam.application.response.UserCheckEnableRightBySdkVo; -import com.qniao.dam.application.response.UserConsumeRightBySdkVo; +import com.qniao.dam.application.response.*; import com.qniao.framework.annotation.IgnoreResponseAdvice; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.PostMapping; @@ -64,4 +61,8 @@ public interface MallServerApplicationService { @IgnoreResponseAdvice CostGiftSdkVo userCostChannelGiftBySdk(@RequestBody UserCostChannelGiftSdkDto dto); + @PostMapping("/user/check/one-on-one-rtc-consume/by/sdk") + @IgnoreResponseAdvice + CheckOneOnOneRtcConsumeSdkVo checkOneOnOneRtcConsumeBySdk(@RequestBody CheckOneOnOneRtcConsumeSdkDto dto); + } diff --git a/dating-agency-mall-sdk/src/main/java/com/qniao/dam/application/request/CheckOneOnOneRtcConsumeSdkDto.java b/dating-agency-mall-sdk/src/main/java/com/qniao/dam/application/request/CheckOneOnOneRtcConsumeSdkDto.java new file mode 100644 index 0000000..ea5948b --- /dev/null +++ b/dating-agency-mall-sdk/src/main/java/com/qniao/dam/application/request/CheckOneOnOneRtcConsumeSdkDto.java @@ -0,0 +1,14 @@ +package com.qniao.dam.application.request; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class CheckOneOnOneRtcConsumeSdkDto { + + private Long userId; + +} diff --git a/dating-agency-mall-sdk/src/main/java/com/qniao/dam/application/response/CheckOneOnOneRtcConsumeSdkVo.java b/dating-agency-mall-sdk/src/main/java/com/qniao/dam/application/response/CheckOneOnOneRtcConsumeSdkVo.java new file mode 100644 index 0000000..ac86963 --- /dev/null +++ b/dating-agency-mall-sdk/src/main/java/com/qniao/dam/application/response/CheckOneOnOneRtcConsumeSdkVo.java @@ -0,0 +1,14 @@ +package com.qniao.dam.application.response; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class CheckOneOnOneRtcConsumeSdkVo { + + private Boolean flag; + +} 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 a37eac5..3882db3 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,8 +1,10 @@ package com.qniao.dam.api.command.virtualaccount.user; +import com.qniao.dam.api.command.virtualaccount.user.request.CheckOneOnOneRtcConsumeDto; 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.UserConsumeVirtualAccountVo; import com.qniao.dam.application.service.virtualaccount.VirtualAccountApplicationService; @@ -40,4 +42,11 @@ public class VirtualAccountUserCommandController { public CostGiftVo userCostChannelGiftBySdk(@RequestBody UserCostChannelGiftDto dto) { return virtualAccountApplicationService.costChannelGift(dto); } + + @PostMapping("/check/one-on-one-rtc-consume/by/sdk") + @IgnoreResponseAdvice + public CheckOneOnOneRtcConsumeVo checkOneOnOneRtcConsumeBySdk(@RequestBody CheckOneOnOneRtcConsumeDto dto) { + return virtualAccountApplicationService.checkOneOnOneRtcConsume(dto.getUserId(), dto.getRtcChannelType()); + } + } diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/virtualaccount/user/request/CheckOneOnOneRtcConsumeDto.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/virtualaccount/user/request/CheckOneOnOneRtcConsumeDto.java new file mode 100644 index 0000000..13a5f58 --- /dev/null +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/virtualaccount/user/request/CheckOneOnOneRtcConsumeDto.java @@ -0,0 +1,13 @@ +package com.qniao.dam.api.command.virtualaccount.user.request; + +import com.qniao.daca.domian.aggregate.rtcchannel.constant.RtcChannelTypeEnum; +import lombok.Data; + +@Data +public class CheckOneOnOneRtcConsumeDto { + + private Long userId; + + private RtcChannelTypeEnum rtcChannelType; + +} diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/virtualaccount/user/response/CheckOneOnOneRtcConsumeVo.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/virtualaccount/user/response/CheckOneOnOneRtcConsumeVo.java new file mode 100644 index 0000000..e333864 --- /dev/null +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/virtualaccount/user/response/CheckOneOnOneRtcConsumeVo.java @@ -0,0 +1,10 @@ +package com.qniao.dam.api.command.virtualaccount.user.response; + +import lombok.Data; + +@Data +public class CheckOneOnOneRtcConsumeVo { + + private Boolean flag = false; + +} 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 71d1f7f..b22e49f 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 @@ -1,10 +1,13 @@ package com.qniao.dam.application.service.virtualaccount; +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.UserConsumeVirtualAccountVo; +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; import com.qniao.dam.domain.aggregate.product.entity.Product; @@ -21,6 +24,7 @@ import com.qniao.dam.domain.service.virtualaccount.CostGiftRewardDomainService; import com.qniao.dam.domian.aggregate.order.constant.OrderBelongingEnum; 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.virtualaccount.constant.VirtualAccountTradeTypeEnum; import com.qniao.dam.domian.aggregate.walletaccount.constant.IdentityTypeEnum; @@ -346,4 +350,22 @@ public class VirtualAccountApplicationService extends BaseApplicationService { virtualAccountAggregate.edit(virtualAccount); } } + + public CheckOneOnOneRtcConsumeVo checkOneOnOneRtcConsume(Long userId, + RtcChannelTypeEnum rtcChannelType) { + CheckOneOnOneRtcConsumeVo vo = new CheckOneOnOneRtcConsumeVo(); + 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()); + } + VirtualAccount virtualAccount = virtualAccountQueryService.queryBy(userId); + if (virtualAccount != null && virtualAccount.getBalance() >= productSpec.getUnitSellingPrice().intValue()) { + vo.setFlag(true); + } + return vo; + } } \ No newline at end of file diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/query/product/ProductQueryService.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/query/product/ProductQueryService.java index 7c5d129..4b680dd 100644 --- a/dating-agency-mall-server/src/main/java/com/qniao/dam/query/product/ProductQueryService.java +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/query/product/ProductQueryService.java @@ -50,4 +50,5 @@ public interface ProductQueryService { List listGiftProduct(); UserGetProductByCategoryVo getProductByCategory(Integer subCategory); + }