diff --git a/dating-agency-mall-constant/src/main/java/com/qniao/dam/domian/aggregate/rewardconfig/constant/RewardTypeEnum.java b/dating-agency-mall-constant/src/main/java/com/qniao/dam/domian/aggregate/rewardconfig/constant/RewardTypeEnum.java index c2689e0..5231545 100644 --- a/dating-agency-mall-constant/src/main/java/com/qniao/dam/domian/aggregate/rewardconfig/constant/RewardTypeEnum.java +++ b/dating-agency-mall-constant/src/main/java/com/qniao/dam/domian/aggregate/rewardconfig/constant/RewardTypeEnum.java @@ -18,6 +18,8 @@ public enum RewardTypeEnum { MATCHMAKER_JOIN_RECOMMEND(104, "红娘入驻推荐"), + MARRIAGE_BOUNTY_MEETING_FEE(105, "悬赏招亲见面费用"), + PLATFORM_SERVICE_FEE(201, "平台服务费"); @EnumValue diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/application/handler/paymentorderrefund/PaymentOrderRefundEventHandler.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/application/handler/paymentorderrefund/PaymentOrderRefundEventHandler.java index f9bbd43..e76ce8b 100644 --- a/dating-agency-mall-server/src/main/java/com/qniao/dam/application/handler/paymentorderrefund/PaymentOrderRefundEventHandler.java +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/application/handler/paymentorderrefund/PaymentOrderRefundEventHandler.java @@ -4,6 +4,7 @@ import com.google.common.eventbus.Subscribe; import com.qniao.dam.domain.aggregate.marriagebounty.MarriageBountyOrderAggregate; import com.qniao.dam.domain.aggregate.marriagebounty.entity.MarriageBountyOrder; import com.qniao.dam.domain.aggregate.marriagebounty.valueobj.MarriageBountyOrderRel; +import com.qniao.dam.domian.aggregate.marriagebount.constant.MarriageBountyOrderStatusEnum; import com.qniao.dam.domian.aggregate.marriagebounty.event.MarriageBountyOrderCancelledMQ; import com.qniao.dam.domian.aggregate.paymentorderrefund.constant.PaymentOrderRefundStatusEnum; import com.qniao.dam.domian.aggregate.paymentorderrefund.event.PaymentOrderRefundRefundedEvent; @@ -45,14 +46,17 @@ public class PaymentOrderRefundEventHandler extends BaseApplicationService { if (Objects.nonNull(marriageBountyOrder)) { List tradeOrderIdList = marriageBountyOrder.getOrderRelList().stream().map(MarriageBountyOrderRel::getOrderId).collect(Collectors.toList()); if (paymentOrderRefundQueryService.checkRefunded(tradeOrderIdList)) { + MarriageBountyOrderStatusEnum status = marriageBountyOrder.getStatus(); MarriageBountyOrder refundMarriageBountyOrder = new MarriageBountyOrder(); refundMarriageBountyOrder.setId(marriageBountyOrder.getId()); marriageBountyOrderAggregate.refund(refundMarriageBountyOrder); - //todo 主动发起退款 - MarriageBountyOrderCancelledMQ cancelledMQ = TypeConvertUtils.convert(marriageBountyOrder, MarriageBountyOrderCancelledMQ.class); - cancelledMQ.setMarriageBountyOrderId(event.getId()); - // 发送mq事件 - amqpTemplate.convertAndSend(MqExchange.MARRIAGE_BOUNTY_ORDER_CANCELLED, null, cancelledMQ); + //主动发起退款 + if (MarriageBountyOrderStatusEnum.MATCHMAKING.equals(status)) { + MarriageBountyOrderCancelledMQ cancelledMQ = TypeConvertUtils.convert(marriageBountyOrder, MarriageBountyOrderCancelledMQ.class); + cancelledMQ.setMarriageBountyOrderId(event.getId()); + // 发送mq事件 + amqpTemplate.convertAndSend(MqExchange.MARRIAGE_BOUNTY_ORDER_CANCELLED, null, cancelledMQ); + } } } } diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/application/service/marriagebounty/MarriageBountyOrderApplicationService.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/application/service/marriagebounty/MarriageBountyOrderApplicationService.java index b89323d..78209e6 100644 --- a/dating-agency-mall-server/src/main/java/com/qniao/dam/application/service/marriagebounty/MarriageBountyOrderApplicationService.java +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/application/service/marriagebounty/MarriageBountyOrderApplicationService.java @@ -1,5 +1,6 @@ package com.qniao.dam.application.service.marriagebounty; +import cn.hutool.core.collection.CollUtil; import com.qniao.dam.api.query.marriagebounty.user.response.UserGetMarriageBountyOrderPreRefundInfoVo; import com.qniao.dam.application.service.paymentorderrefund.PaymentOrderRefundApplicationService; import com.qniao.dam.domain.aggregate.marriagebounty.MarriageBountyOrderAggregate; @@ -149,4 +150,18 @@ public class MarriageBountyOrderApplicationService extends BaseApplicationServic paymentOrderRefundApplicationService.refund(paymentOrderRefundList); } } + + /** + * 悬赏招亲 确认见面 领取奖励 + */ + public void confirmMeeting(Long marriageBountyOrderId, Long receiver) { + MarriageBountyOrder existMarriageBountyOrder = marriageBountyOrderRepository.load(marriageBountyOrderId); + if (Objects.nonNull(existMarriageBountyOrder) && MarriageBountyOrderStatusEnum.MATCHMAKING.equals(existMarriageBountyOrder.getStatus())) { + if (CollUtil.isNotEmpty(existMarriageBountyOrder.getOrderRewardList())) { + MarriageBountyOrderReward marriageBountyOrderReward = existMarriageBountyOrder.getOrderRewardList().stream() + .filter(orderReward -> !orderReward.getIsReceive()).findFirst().get(); + } + } + } + } diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/query/marriagebounty/impl/MarriageBountyOrderQueryServiceImpl.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/query/marriagebounty/impl/MarriageBountyOrderQueryServiceImpl.java index 12e158c..e6f5fcb 100644 --- a/dating-agency-mall-server/src/main/java/com/qniao/dam/query/marriagebounty/impl/MarriageBountyOrderQueryServiceImpl.java +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/query/marriagebounty/impl/MarriageBountyOrderQueryServiceImpl.java @@ -102,12 +102,6 @@ public class MarriageBountyOrderQueryServiceImpl implements MarriageBountyOrderQ productInfoVo = new UserGetMarriageBountyOrderProductInfoVo(); productInfoVo.setMarriageBountyOrderId(marriageBountyOrder.getId()); productInfoVo.setRewardAmount(marriageBountyOrder.getRewardAmount()); - Product meetingFeeProduct = productQueryService.queryBy(marriageBountyOrder.getUserId(), marriageBountyOrder.getMiId(), ProductSubCategoryEnum.MARRIAGE_BOUNTY_MEETING_FEE); - List meetingFeeProductSpecList = productQueryService.listProductSpecBy(meetingFeeProduct.getId()); - productInfoVo.setMeetingFee(meetingFeeProductSpecList.get(0).getUnitSellingPrice()); - Product resultGiftProduct = productQueryService.queryBy(marriageBountyOrder.getUserId(), marriageBountyOrder.getMiId(), ProductSubCategoryEnum.MARRIAGE_BOUNTY_RESULT_GIFT); - List resultGiftProductSpecList = productQueryService.listProductSpecBy(resultGiftProduct.getId()); - productInfoVo.setResultGift(resultGiftProductSpecList.get(0).getUnitSellingPrice()); int usedMeetingQuantity = 0; int usableMeetingQuantity = 0; for (MarriageBountyOrderReward orderReward : marriageBountyOrder.getOrderRewardList()) { @@ -116,7 +110,10 @@ public class MarriageBountyOrderQueryServiceImpl implements MarriageBountyOrderQ usedMeetingQuantity++; } else { usableMeetingQuantity++; + productInfoVo.setMeetingFee(orderReward.getRewardAmount()); } + } else if (ProductSubCategoryEnum.MARRIAGE_BOUNTY_RESULT_GIFT.equals(orderReward.getRewardCategory())) { + productInfoVo.setResultGift(orderReward.getRewardAmount()); } } productInfoVo.setUsedMeetingQuantity(usedMeetingQuantity);