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"));
+ }
+
+}