Browse Source

基础配置

master
张彭杰 1 year ago
parent
commit
de6bb89270
4 changed files with 90 additions and 30 deletions
  1. 25
      dating-agency-mall-event/src/main/java/com/qniao/dam/domian/aggregate/marriagebounty/event/MarriageBountyOrderConfirmedMeetingEvent.java
  2. 24
      dating-agency-mall-server/src/main/java/com/qniao/dam/application/handler/marriagebounty/MarriageBountyOrderEventHandle.java
  3. 62
      dating-agency-mall-server/src/main/java/com/qniao/dam/application/service/marriagebounty/MarriageBountyOrderApplicationService.java
  4. 9
      dating-agency-mall-server/src/main/java/com/qniao/dam/domain/aggregate/marriagebounty/MarriageBountyOrderAggregate.java

25
dating-agency-mall-event/src/main/java/com/qniao/dam/domian/aggregate/marriagebounty/event/MarriageBountyOrderConfirmedMeetingEvent.java

@ -17,18 +17,25 @@ public class MarriageBountyOrderConfirmedMeetingEvent extends BaseDomainEvent {
@ApiModelProperty("悬赏招亲订单奖励标识")
private Long marriageBountyOrderRewardId;
@ApiModelProperty("见面嘉宾标识")
private Long meetingMiId;
private List<Long> orderIdRelList;
@ApiModelProperty("奖励类型")
private RewardTypeEnum rewardType;
private List<MarriageBountyOrderRewardReceiveRecordEvent> rewardReceiveRecordList;
@ApiModelProperty("领取人标识")
private Long receiver;
@ApiModelProperty("领取金额")
private BigDecimal receivedAmount;
@Data
public static class MarriageBountyOrderRewardReceiveRecordEvent {
private List<Long> orderIdRelList;
@ApiModelProperty("关联嘉宾")
private Long associatedMiId;
@ApiModelProperty("奖励类型")
private RewardTypeEnum rewardType;
@ApiModelProperty("领取人标识")
private Long receiver;
@ApiModelProperty("领取金额")
private BigDecimal receivedAmount;
}
}

24
dating-agency-mall-server/src/main/java/com/qniao/dam/application/handler/marriagebounty/MarriageBountyOrderEventHandle.java

@ -55,9 +55,14 @@ public class MarriageBountyOrderEventHandle extends BaseApplicationService {
public void handle(MarriageBountyOrderConfirmedMeetingEvent event) {
try {
//红娘获取奖励
if (Objects.nonNull(event.getMarriageBountyOrderRewardId())) {
AcquireMatchmakerConfirmMeetingRewardDto confirmMeetingRewardDto = TypeConvertUtils.convert(event, AcquireMatchmakerConfirmMeetingRewardDto.class);
rewardApplicationService.acquireMatchmakerConfirmMeetingReward(confirmMeetingRewardDto);
if (Objects.nonNull(event.getMarriageBountyOrderRewardId()) && CollUtil.isNotEmpty(event.getRewardReceiveRecordList())) {
for (MarriageBountyOrderConfirmedMeetingEvent.MarriageBountyOrderRewardReceiveRecordEvent rewardReceiveRecordEvent : event.getRewardReceiveRecordList()) {
AcquireMatchmakerConfirmMeetingRewardDto confirmMeetingRewardDto =
TypeConvertUtils.convert(rewardReceiveRecordEvent, AcquireMatchmakerConfirmMeetingRewardDto.class);
rewardApplicationService.acquireMatchmakerConfirmMeetingReward(confirmMeetingRewardDto);
confirmMeetingRewardDto.setOrderIdRelList(event.getOrderIdRelList());
rewardApplicationService.acquireMatchmakerConfirmMeetingReward(confirmMeetingRewardDto);
}
}
} catch (Exception e) {
log.error("悬赏招亲订单确认见面事件处理异常", e);
@ -79,7 +84,7 @@ public class MarriageBountyOrderEventHandle extends BaseApplicationService {
marriageBountyOrderApplicationService.refund(event.getId());
}
} catch (Exception e) {
log.error("悬赏招亲订单确认pip事件处理异常", e);
log.error("悬赏招亲订单确认匹配事件处理异常", e);
}
}
@ -87,11 +92,12 @@ public class MarriageBountyOrderEventHandle extends BaseApplicationService {
@RabbitListener(bindings = @QueueBinding(value = @Queue(MqQueue.REWARD_SELECTED_GUEST),
exchange = @Exchange(value = MqExchange.REWARD_SELECTED_GUEST,
type = ExchangeTypes.FANOUT)))
public void handle(RewardSelectedGuestEvent event) {
public void handleConfirmMeeting(MatchSuccessfullyEvent event) {
try {
//悬赏招亲确认见面
marriageBountyOrderApplicationService.confirmMeeting(event.getMarriageBountyOrderId(), event.getMatchmakerUserId(), event.getMiId());
log.error("接收到MQ事件:{}", event);
marriageBountyOrderApplicationService.confirmMeeting(event.getMarriageBountyOrderId(), event.getRewardInviteUserId(), event.getRewardPublishMatchmakerUserId(),
event.getGuestsInviteMiId(), event.getGuestsInviteUserId(), event.getGuestsMatchmakerUserId());
log.error("接收到悬赏招亲确认见面事件:{}", event);
} catch (Exception e) {
log.error("悬赏招亲确认见面处理异常", e);
}
@ -100,12 +106,12 @@ public class MarriageBountyOrderEventHandle extends BaseApplicationService {
@RabbitListener(bindings = @QueueBinding(value = @Queue(MqQueue.REWARD_MATCH_SUCCESSFULLY),
exchange = @Exchange(value = MqExchange.REWARD_MATCH_SUCCESSFULLY,
type = ExchangeTypes.FANOUT)))
public void handle(MatchSuccessfullyEvent event) {
public void handleConfirmMatch(MatchSuccessfullyEvent event) {
try {
//悬赏招亲匹配成功
marriageBountyOrderApplicationService.confirmMatch(event.getMarriageBountyOrderId(), event.getRewardInviteUserId(), event.getRewardPublishMatchmakerUserId(),
event.getGuestsInviteMiId(), event.getGuestsInviteUserId(), event.getGuestsMatchmakerUserId());
log.error("接收到MQ事件:{}", event);
log.error("接收到悬赏招亲匹配成功事件:{}", event);
} catch (Exception e) {
log.error("悬赏招亲匹配成功处理异常", e);
}

62
dating-agency-mall-server/src/main/java/com/qniao/dam/application/service/marriagebounty/MarriageBountyOrderApplicationService.java

@ -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);

9
dating-agency-mall-server/src/main/java/com/qniao/dam/domain/aggregate/marriagebounty/MarriageBountyOrderAggregate.java

@ -52,12 +52,9 @@ public class MarriageBountyOrderAggregate {
MarriageBountyOrderConfirmedMeetingEvent event = new MarriageBountyOrderConfirmedMeetingEvent();
event.setId(marriageBountyOrder.getId());
MarriageBountyOrderReward marriageBountyOrderReward = marriageBountyOrder.getUpdateOrderRewardList().get(0);
MarriageBountyOrderRewardReceiveRecord rewardReceiveRecord = marriageBountyOrderReward.getRewardReceiveRecordList().get(0);
event.setMarriageBountyOrderRewardId(rewardReceiveRecord.getMarriageBountyOrderRewardId());
event.setMeetingMiId(marriageBountyOrderReward.getMeetingMiId());
event.setRewardType(rewardReceiveRecord.getRewardType());
event.setReceiver(rewardReceiveRecord.getReceiver());
event.setReceivedAmount(rewardReceiveRecord.getReceivedAmount());
event.setMarriageBountyOrderRewardId(marriageBountyOrderReward.getId());
event.setRewardReceiveRecordList(TypeConvertUtils.convert(marriageBountyOrderReward.getRewardReceiveRecordList(),
MarriageBountyOrderConfirmedMeetingEvent.MarriageBountyOrderRewardReceiveRecordEvent.class));
event.setOrderIdRelList(orderRelList.stream().map(MarriageBountyOrderRel::getOrderId).collect(Collectors.toList()));
return event;
}

Loading…
Cancel
Save