|
|
@ -18,6 +18,7 @@ import com.qniao.dam.domain.aggregate.paymentchannelorder.entity.PaymentChannelO |
|
|
import com.qniao.dam.domain.aggregate.paymentorder.entity.PaymentOrder; |
|
|
import com.qniao.dam.domain.aggregate.paymentorder.entity.PaymentOrder; |
|
|
import com.qniao.dam.domain.aggregate.paymentorderrefund.entity.PaymentOrderRefund; |
|
|
import com.qniao.dam.domain.aggregate.paymentorderrefund.entity.PaymentOrderRefund; |
|
|
import com.qniao.dam.domain.aggregate.productspec.entity.ProductSpec; |
|
|
import com.qniao.dam.domain.aggregate.productspec.entity.ProductSpec; |
|
|
|
|
|
import com.qniao.dam.domain.aggregate.rewardconfig.entity.RewardConfig; |
|
|
import com.qniao.dam.domian.aggregate.marriagebount.constant.MarriageBountyOrderPaymentStatusEnum; |
|
|
import com.qniao.dam.domian.aggregate.marriagebount.constant.MarriageBountyOrderPaymentStatusEnum; |
|
|
import com.qniao.dam.domian.aggregate.marriagebount.constant.MarriageBountyOrderStatusEnum; |
|
|
import com.qniao.dam.domian.aggregate.marriagebount.constant.MarriageBountyOrderStatusEnum; |
|
|
import com.qniao.dam.domian.aggregate.paymentorder.constant.PaymentOrderStatusEnum; |
|
|
import com.qniao.dam.domian.aggregate.paymentorder.constant.PaymentOrderStatusEnum; |
|
|
@ -27,6 +28,7 @@ import com.qniao.dam.infrastructure.persistent.dao.domain.ProductSpecDao; |
|
|
import com.qniao.dam.query.marriagebounty.MarriageBountyOrderQueryService; |
|
|
import com.qniao.dam.query.marriagebounty.MarriageBountyOrderQueryService; |
|
|
import com.qniao.dam.query.paymentchannelorder.PaymentChannelOrderQueryService; |
|
|
import com.qniao.dam.query.paymentchannelorder.PaymentChannelOrderQueryService; |
|
|
import com.qniao.dam.query.paymentorder.PaymentOrderQueryService; |
|
|
import com.qniao.dam.query.paymentorder.PaymentOrderQueryService; |
|
|
|
|
|
import com.qniao.dam.query.rewardconfig.RewardConfigQueryService; |
|
|
import com.qniao.domain.BaseApplicationService; |
|
|
import com.qniao.domain.BaseApplicationService; |
|
|
import com.qniao.domain.BaseDomainEvent; |
|
|
import com.qniao.domain.BaseDomainEvent; |
|
|
import com.qniao.framework.exception.BizException; |
|
|
import com.qniao.framework.exception.BizException; |
|
|
@ -55,6 +57,8 @@ public class MarriageBountyOrderApplicationService extends BaseApplicationServic |
|
|
private PaymentChannelOrderQueryService paymentChannelOrderQueryService; |
|
|
private PaymentChannelOrderQueryService paymentChannelOrderQueryService; |
|
|
@Resource |
|
|
@Resource |
|
|
private PaymentOrderRefundApplicationService paymentOrderRefundApplicationService; |
|
|
private PaymentOrderRefundApplicationService paymentOrderRefundApplicationService; |
|
|
|
|
|
@Resource |
|
|
|
|
|
private RewardConfigQueryService rewardConfigQueryService; |
|
|
|
|
|
|
|
|
public void save(Long orderId) { |
|
|
public void save(Long orderId) { |
|
|
Order order = orderRepository.load(orderId); |
|
|
Order order = orderRepository.load(orderId); |
|
|
@ -159,8 +163,8 @@ public class MarriageBountyOrderApplicationService extends BaseApplicationServic |
|
|
public void confirmMeeting(Long marriageBountyOrderId, Long receiver, Long meetingMiId) { |
|
|
public void confirmMeeting(Long marriageBountyOrderId, Long receiver, Long meetingMiId) { |
|
|
MarriageBountyOrder existMarriageBountyOrder = marriageBountyOrderRepository.load(marriageBountyOrderId); |
|
|
MarriageBountyOrder existMarriageBountyOrder = marriageBountyOrderRepository.load(marriageBountyOrderId); |
|
|
if (Objects.nonNull(existMarriageBountyOrder) && MarriageBountyOrderStatusEnum.MATCHMAKING.equals(existMarriageBountyOrder.getStatus())) { |
|
|
if (Objects.nonNull(existMarriageBountyOrder) && MarriageBountyOrderStatusEnum.MATCHMAKING.equals(existMarriageBountyOrder.getStatus())) { |
|
|
if (CollUtil.isNotEmpty(existMarriageBountyOrder.getOrderRewardList())&& |
|
|
|
|
|
existMarriageBountyOrder.getOrderRewardList().stream().noneMatch(orderReward->meetingMiId.equals(orderReward.getMeetingMiId()))) { |
|
|
|
|
|
|
|
|
if (CollUtil.isNotEmpty(existMarriageBountyOrder.getOrderRewardList()) && |
|
|
|
|
|
existMarriageBountyOrder.getOrderRewardList().stream().noneMatch(orderReward -> meetingMiId.equals(orderReward.getMeetingMiId()))) { |
|
|
MarriageBountyOrderReward marriageBountyOrderReward = null; |
|
|
MarriageBountyOrderReward marriageBountyOrderReward = null; |
|
|
for (MarriageBountyOrderReward orderReward : existMarriageBountyOrder.getOrderRewardList()) { |
|
|
for (MarriageBountyOrderReward orderReward : existMarriageBountyOrder.getOrderRewardList()) { |
|
|
if (ProductSubCategoryEnum.MARRIAGE_BOUNTY_MEETING_FEE.equals(orderReward.getRewardCategory())) { |
|
|
if (ProductSubCategoryEnum.MARRIAGE_BOUNTY_MEETING_FEE.equals(orderReward.getRewardCategory())) { |
|
|
@ -186,4 +190,82 @@ public class MarriageBountyOrderApplicationService extends BaseApplicationServic |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
|
* 确认匹配 |
|
|
|
|
|
* |
|
|
|
|
|
* @param marriageBountyOrderId 悬赏招亲订单 |
|
|
|
|
|
* @param rewardInviteUserId 榜单邀请用户的红娘用户 |
|
|
|
|
|
* @param rewardPublishMatchmakerUserId 榜单发布红娘用户 |
|
|
|
|
|
* @param guestsInviteUserId 嘉宾邀请用户的红娘用户 |
|
|
|
|
|
* @param guestsMatchmakerUserId 嘉宾邀请用户匹配榜单的红娘用户 |
|
|
|
|
|
*/ |
|
|
|
|
|
public void confirmMatch(Long marriageBountyOrderId, |
|
|
|
|
|
Long rewardInviteUserId, |
|
|
|
|
|
Long rewardPublishMatchmakerUserId, |
|
|
|
|
|
Long guestsInviteMiId, |
|
|
|
|
|
Long guestsInviteUserId, |
|
|
|
|
|
Long guestsMatchmakerUserId) { |
|
|
|
|
|
MarriageBountyOrder existMarriageBountyOrder = marriageBountyOrderRepository.load(marriageBountyOrderId); |
|
|
|
|
|
if (Objects.nonNull(existMarriageBountyOrder) && MarriageBountyOrderStatusEnum.MATCHMAKING.equals(existMarriageBountyOrder.getStatus())) { |
|
|
|
|
|
MarriageBountyOrderReward marriageBountyOrderReward = null; |
|
|
|
|
|
for (MarriageBountyOrderReward orderReward : existMarriageBountyOrder.getOrderRewardList()) { |
|
|
|
|
|
if (ProductSubCategoryEnum.MARRIAGE_BOUNTY_RESULT_GIFT.equals(orderReward.getRewardCategory())) { |
|
|
|
|
|
if (!orderReward.getIsReceive()) { |
|
|
|
|
|
marriageBountyOrderReward = orderReward; |
|
|
|
|
|
break; |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
if (Objects.nonNull(marriageBountyOrderReward)) { |
|
|
|
|
|
MarriageBountyOrder marriageBountyOrder = new MarriageBountyOrder(); |
|
|
|
|
|
marriageBountyOrder.setId(marriageBountyOrderId); |
|
|
|
|
|
marriageBountyOrderReward.setIsReceive(true); |
|
|
|
|
|
List<MarriageBountyOrderRewardReceiveRecord> rewardReceiveRecordList = new ArrayList<>(); |
|
|
|
|
|
//分润 嘉宾实名认证 |
|
|
|
|
|
RewardConfig guestCertificationReward = rewardConfigQueryService.queryByRewardType(RewardTypeEnum.GUEST_CERTIFICATION); |
|
|
|
|
|
if (Objects.nonNull(guestCertificationReward)) { |
|
|
|
|
|
if (Objects.nonNull(rewardInviteUserId)) { |
|
|
|
|
|
BigDecimal receivedAmount = guestCertificationReward.calculate(marriageBountyOrderReward.getRewardAmount()); |
|
|
|
|
|
MarriageBountyOrderRewardReceiveRecord rewardReceiveRecord = MarriageBountyOrderRewardReceiveRecord.build( |
|
|
|
|
|
RewardTypeEnum.GUEST_CERTIFICATION, rewardInviteUserId, receivedAmount); |
|
|
|
|
|
rewardReceiveRecord.setAssociatedMiId(existMarriageBountyOrder.getMiId()); |
|
|
|
|
|
rewardReceiveRecordList.add(rewardReceiveRecord); |
|
|
|
|
|
} |
|
|
|
|
|
if (Objects.nonNull(guestsInviteUserId)) { |
|
|
|
|
|
BigDecimal receivedAmount = guestCertificationReward.calculate(marriageBountyOrderReward.getRewardAmount()); |
|
|
|
|
|
MarriageBountyOrderRewardReceiveRecord rewardReceiveRecord = MarriageBountyOrderRewardReceiveRecord.build( |
|
|
|
|
|
RewardTypeEnum.GUEST_CERTIFICATION, guestsInviteUserId, receivedAmount); |
|
|
|
|
|
rewardReceiveRecord.setAssociatedMiId(guestsInviteMiId); |
|
|
|
|
|
rewardReceiveRecordList.add(rewardReceiveRecord); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
//分润 发布悬赏招亲 |
|
|
|
|
|
RewardConfig publishMarriageBountyReward = rewardConfigQueryService.queryByRewardType(RewardTypeEnum.PUBLISH_MARRIAGE_BOUNTY); |
|
|
|
|
|
if (Objects.nonNull(publishMarriageBountyReward)) { |
|
|
|
|
|
if (Objects.nonNull(rewardPublishMatchmakerUserId)) { |
|
|
|
|
|
BigDecimal receivedAmount = guestCertificationReward.calculate(marriageBountyOrderReward.getRewardAmount()); |
|
|
|
|
|
MarriageBountyOrderRewardReceiveRecord rewardReceiveRecord = MarriageBountyOrderRewardReceiveRecord.build( |
|
|
|
|
|
RewardTypeEnum.PUBLISH_MARRIAGE_BOUNTY, rewardPublishMatchmakerUserId, receivedAmount); |
|
|
|
|
|
rewardReceiveRecord.setAssociatedMiId(existMarriageBountyOrder.getMiId()); |
|
|
|
|
|
rewardReceiveRecordList.add(rewardReceiveRecord); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
//分润 发布悬赏招亲 |
|
|
|
|
|
RewardConfig matchMarriageBountyReward = rewardConfigQueryService.queryByRewardType(RewardTypeEnum.MATCH_MARRIAGE_BOUNTY); |
|
|
|
|
|
if (Objects.nonNull(matchMarriageBountyReward)) { |
|
|
|
|
|
if (Objects.nonNull(guestsMatchmakerUserId)) { |
|
|
|
|
|
BigDecimal receivedAmount = guestCertificationReward.calculate(marriageBountyOrderReward.getRewardAmount()); |
|
|
|
|
|
MarriageBountyOrderRewardReceiveRecord rewardReceiveRecord = MarriageBountyOrderRewardReceiveRecord.build( |
|
|
|
|
|
RewardTypeEnum.MATCH_MARRIAGE_BOUNTY, guestsMatchmakerUserId, receivedAmount); |
|
|
|
|
|
rewardReceiveRecord.setAssociatedMiId(guestsInviteMiId); |
|
|
|
|
|
rewardReceiveRecordList.add(rewardReceiveRecord); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
marriageBountyOrderReward.setRewardReceiveRecordList(rewardReceiveRecordList); |
|
|
|
|
|
marriageBountyOrder.setUpdateOrderRewardList(Collections.singletonList(marriageBountyOrderReward)); |
|
|
|
|
|
BaseDomainEvent event = marriageBountyOrderAggregate.confirmMatch(marriageBountyOrder, existMarriageBountyOrder.getOrderRelList()); |
|
|
|
|
|
this.sendEvent(event); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
} |
|
|
} |