|
|
|
@ -161,12 +161,23 @@ public class MarriageBountyOrderApplicationService extends BaseApplicationServic |
|
|
|
|
|
|
|
/** |
|
|
|
* 悬赏招亲 确认见面 领取奖励 |
|
|
|
* |
|
|
|
* @param marriageBountyOrderId 悬赏招亲订单 |
|
|
|
* @param rewardInviteUserId 榜单邀请用户的红娘用户 |
|
|
|
* @param rewardPublishMatchmakerUserId 榜单发布红娘用户 |
|
|
|
* @param guestsInviteUserId 嘉宾邀请用户的红娘用户 |
|
|
|
* @param guestsMatchmakerUserId 嘉宾邀请用户匹配榜单的红娘用户 |
|
|
|
*/ |
|
|
|
public void confirmMeeting(Long marriageBountyOrderId, Long receiver, Long meetingMiId) { |
|
|
|
public void confirmMeeting(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())) { |
|
|
|
if (CollUtil.isNotEmpty(existMarriageBountyOrder.getOrderRewardList()) && |
|
|
|
existMarriageBountyOrder.getOrderRewardList().stream().noneMatch(orderReward -> meetingMiId.equals(orderReward.getMeetingMiId()))) { |
|
|
|
existMarriageBountyOrder.getOrderRewardList().stream().noneMatch(orderReward -> guestsInviteMiId.equals(orderReward.getMeetingMiId()))) { |
|
|
|
MarriageBountyOrderReward marriageBountyOrderReward = null; |
|
|
|
for (MarriageBountyOrderReward orderReward : existMarriageBountyOrder.getOrderRewardList()) { |
|
|
|
if (ProductSubCategoryEnum.MARRIAGE_BOUNTY_MEETING_FEE.equals(orderReward.getRewardCategory())) { |
|
|
|
@ -180,10 +191,49 @@ public class MarriageBountyOrderApplicationService extends BaseApplicationServic |
|
|
|
MarriageBountyOrder marriageBountyOrder = new MarriageBountyOrder(); |
|
|
|
marriageBountyOrder.setId(marriageBountyOrderId); |
|
|
|
marriageBountyOrderReward.setIsReceive(true); |
|
|
|
marriageBountyOrderReward.setMeetingMiId(meetingMiId); |
|
|
|
MarriageBountyOrderRewardReceiveRecord rewardReceiveRecord = MarriageBountyOrderRewardReceiveRecord.build( |
|
|
|
RewardTypeEnum.MARRIAGE_BOUNTY_MEETING_FEE, receiver, marriageBountyOrderReward.getRewardAmount()); |
|
|
|
marriageBountyOrderReward.setRewardReceiveRecordList(Collections.singletonList(rewardReceiveRecord)); |
|
|
|
marriageBountyOrderReward.setMeetingMiId(guestsInviteMiId); |
|
|
|
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.confirmMeeting(marriageBountyOrder, existMarriageBountyOrder.getOrderRelList()); |
|
|
|
this.sendEvent(event); |
|
|
|
|