From 4629584f557b4f897f5f8f9f8c5eccf96f48b073 Mon Sep 17 00:00:00 2001 From: Derran Date: Wed, 3 Dec 2025 18:03:16 +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 --- dating-agency-mall-server/pom.xml | 5 +++ .../order/OrderApplicationService.java | 38 +++++++++++++++++-- .../dao/usermanagement/UserManagementDao.java | 7 ++++ .../UserManagementQueryService.java | 9 +++++ .../impl/UserManagementQueryServiceImpl.java | 24 ++++++++++++ 5 files changed, 80 insertions(+), 3 deletions(-) create mode 100644 dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/dao/usermanagement/UserManagementDao.java create mode 100644 dating-agency-mall-server/src/main/java/com/qniao/dam/query/usermanagement/UserManagementQueryService.java create mode 100644 dating-agency-mall-server/src/main/java/com/qniao/dam/query/usermanagement/impl/UserManagementQueryServiceImpl.java diff --git a/dating-agency-mall-server/pom.xml b/dating-agency-mall-server/pom.xml index 9e64e7d..9b1ccaf 100644 --- a/dating-agency-mall-server/pom.xml +++ b/dating-agency-mall-server/pom.xml @@ -116,6 +116,11 @@ dating-agency-service-sdk 0.0.1-SNAPSHOT + + com.qniao + dating-agency-chat-audio-entity + 0.0.1-SNAPSHOT + taobao.sdk.java diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/application/service/order/OrderApplicationService.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/application/service/order/OrderApplicationService.java index edc1cb7..08a4298 100644 --- a/dating-agency-mall-server/src/main/java/com/qniao/dam/application/service/order/OrderApplicationService.java +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/application/service/order/OrderApplicationService.java @@ -2,6 +2,7 @@ package com.qniao.dam.application.service.order; import cn.hutool.core.collection.CollUtil; import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.qniao.daca.domain.aggregate.usermanagement.entity.UserManagement; import com.qniao.dam.api.command.order.user.request.UserCalculateSiteActivityOrderDto; import com.qniao.dam.api.command.order.user.request.UserSubmitSiteActivityOrderDto; import com.qniao.dam.api.command.order.user.response.UserCalculateMatchmakerOrderFeeVo; @@ -47,6 +48,7 @@ import com.qniao.dam.query.order.OrderQueryService; import com.qniao.dam.query.product.ProductQueryService; import com.qniao.dam.query.rewardconfig.RewardConfigQueryService; import com.qniao.dam.query.right.RightQueryService; +import com.qniao.dam.query.usermanagement.UserManagementQueryService; import com.qniao.dam.query.usermarriageinformation.UserMarriageInformationQueryService; import com.qniao.das.application.DatingAgencyServiceApplicationService; import com.qniao.das.application.request.CalculateSiteActivityFeeDto; @@ -120,6 +122,8 @@ public class OrderApplicationService extends BaseApplicationService { private OrderDiscountConfigQueryService orderDiscountConfigQueryService; @Resource private UserMarriageInformationQueryService userMarriageInformationQueryService; + @Resource + private UserManagementQueryService userManagementQueryService; @Value("${default_marriage_bounty_matchmaker_id}") @@ -492,6 +496,8 @@ public class OrderApplicationService extends BaseApplicationService { */ public UserSubmitOrderVo submitMatchMakerOrder(Order order, MatchmakerOrderTypeEnum matchmakerOrderType) { + //免费红娘直播时长有要求 + checkLiveDuration(order, matchmakerOrderType); //1. 填充订单信息 + 同类型权益,不同规格,限制购买和提醒 fillOrderInfo(order); //2. 结束历史订单 @@ -506,6 +512,32 @@ public class OrderApplicationService extends BaseApplicationService { return new UserSubmitOrderVo(order.getId(), paymentOrder.getId(), false); } + private void checkLiveDuration(Order order, + MatchmakerOrderTypeEnum matchmakerOrderType) { + if (MatchmakerOrderTypeEnum.JOIN.equals(matchmakerOrderType)) { + if (CollUtil.isNotEmpty(order.getOrderItemList())) { + for (OrderItem orderItem : order.getOrderItemList()) { + ProductSpec productSpec = productSpecRepository.load(orderItem.getProductSpecId()); + Product product = productRepository.load(productSpec.getProductId()); + if (ProductSubCategoryEnum.MATCHMAKER_FREE_FEE.equals(product.getSubCategory())) { + //免费红娘 + boolean enable = false; + UserManagement userManagement = userManagementQueryService.queryByUserId(order.getUserId()); + if (Objects.nonNull(userManagement)) { + //todo + if (userManagement.getLiveDurationMins() >= 600) { + enable = true; + } + } + if (!enable) { + throw new BizException("直播时长不足"); + } + } + } + } + } + } + private void cancelHisOrder(Order order) { List orderList = orderQueryService.listHis(order.getUserId(), order.getOrderBelonging(), OrderStatusEnum.UNPAID); if (CollUtil.isNotEmpty(orderList)) { @@ -570,9 +602,9 @@ public class OrderApplicationService extends BaseApplicationService { } } order.calculate(); - if (order.getSettlementAmount().compareTo(BigDecimal.ZERO) <= 0) { - throw new BizException("订单金额应该大于0"); - } +// if (order.getSettlementAmount().compareTo(BigDecimal.ZERO) <= 0) { +// throw new BizException("订单金额应该大于0"); +// } } } diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/dao/usermanagement/UserManagementDao.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/dao/usermanagement/UserManagementDao.java new file mode 100644 index 0000000..b6c7192 --- /dev/null +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/dao/usermanagement/UserManagementDao.java @@ -0,0 +1,7 @@ +package com.qniao.dam.infrastructure.persistent.dao.usermanagement; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.qniao.daca.domain.aggregate.usermanagement.entity.UserManagement; + +public interface UserManagementDao extends BaseMapper { +} diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/query/usermanagement/UserManagementQueryService.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/query/usermanagement/UserManagementQueryService.java new file mode 100644 index 0000000..cc52676 --- /dev/null +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/query/usermanagement/UserManagementQueryService.java @@ -0,0 +1,9 @@ +package com.qniao.dam.query.usermanagement; + +import com.qniao.daca.domain.aggregate.usermanagement.entity.UserManagement; + +public interface UserManagementQueryService { + + UserManagement queryByUserId(Long userId); + +} diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/query/usermanagement/impl/UserManagementQueryServiceImpl.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/query/usermanagement/impl/UserManagementQueryServiceImpl.java new file mode 100644 index 0000000..0de4306 --- /dev/null +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/query/usermanagement/impl/UserManagementQueryServiceImpl.java @@ -0,0 +1,24 @@ +package com.qniao.dam.query.usermanagement.impl; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.qniao.daca.domain.aggregate.usermanagement.entity.UserManagement; +import com.qniao.dam.infrastructure.persistent.dao.usermanagement.UserManagementDao; +import com.qniao.dam.query.usermanagement.UserManagementQueryService; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; + +@Service +public class UserManagementQueryServiceImpl implements UserManagementQueryService { + + @Resource + private UserManagementDao userManagementDao; + + @Override + public UserManagement queryByUserId(Long userId) { + return userManagementDao.selectOne(new LambdaQueryWrapper() + .eq(UserManagement::getUserId, userId) + .last("limit 1")); + } + +}