diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/application/handler/marriagebounty/MarriageBountyOrderEventHandle.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/application/handler/marriagebounty/MarriageBountyOrderEventHandle.java index 266a946..7cd1321 100644 --- a/dating-agency-mall-server/src/main/java/com/qniao/dam/application/handler/marriagebounty/MarriageBountyOrderEventHandle.java +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/application/handler/marriagebounty/MarriageBountyOrderEventHandle.java @@ -15,8 +15,10 @@ import com.qniao.dam.domian.aggregate.marriagebounty.event.MarriageBountyOrderCo import com.qniao.dam.domian.aggregate.marriagebounty.event.MarriageBountyOrderConfirmedMeetingEvent; import com.qniao.dam.domian.aggregate.marriagebounty.event.MarriageBountyOrderCreatedEvent; import com.qniao.dam.domian.aggregate.marriagebounty.event.MarriageBountyOrderCreatedMQ; +import com.qniao.dam.domian.aggregate.paymentorderrefund.constant.PaymentOrderRefundStatusEnum; import com.qniao.dam.domian.aggregate.pointaccount.event.PointRewardCreatedMQ; import com.qniao.dam.domian.aggregate.prc.constant.PointRewardConfigTypeEnum; +import com.qniao.dam.domian.aggregate.rewardconfig.constant.RewardTypeEnum; import com.qniao.dam.domian.aggregate.walletaccount.constant.IdentityTypeEnum; import com.qniao.dam.infrastructure.constant.MqExchange; import com.qniao.dam.infrastructure.constant.MqQueue; @@ -85,7 +87,7 @@ public class MarriageBountyOrderEventHandle extends BaseApplicationService { mq.setOwnId(matchmaker.getUserId()); mq.setIdentityType(IdentityTypeEnum.INDIVIDUAL); mq.setPointType(PointRewardConfigTypeEnum.INVITE_BOUNTY); - mq.setContent("邀请发榜:" + marriageInformation.getNickName()); + mq.setContent("邀请发榜:" + marriageInformation.getNickName() + "榜单"); mq.setIsIncome(true); mq.setAssociateId(event.getId()); mq.setAmount(marriageBountyOrder.getPaidAmount()); @@ -146,6 +148,35 @@ public class MarriageBountyOrderEventHandle extends BaseApplicationService { } } + @Subscribe + public void handle2(MarriageBountyOrderConfirmedMatchEvent event) { + try { + //红娘获取奖励 + if (Objects.nonNull(event.getMarriageBountyOrderRewardId()) && CollUtil.isNotEmpty(event.getRewardReceiveRecordList())) { + MarriageBountyOrder marriageBountyOrder = marriageBountyOrderDao.selectById(event.getId()); + for (MarriageBountyOrderConfirmedMatchEvent.MarriageBountyOrderRewardReceiveRecordEvent rewardReceiveRecordEvent : event.getRewardReceiveRecordList()) { + if (Objects.nonNull(rewardReceiveRecordEvent.getReceivedAmount()) && rewardReceiveRecordEvent.getReceivedAmount().compareTo(BigDecimal.ZERO) > 0) { + //处理积分奖励 + //积分奖励 + MarriageInformation marriageInformation = marriageInformationDao.selectById(marriageBountyOrder.getMiId()); + PointRewardCreatedMQ mq = new PointRewardCreatedMQ(); + mq.setOwnId(rewardReceiveRecordEvent.getReceiver()); + mq.setIdentityType(IdentityTypeEnum.INDIVIDUAL); + mq.setPointType(transformPointRewardConfigType(rewardReceiveRecordEvent.getRewardType())); + mq.setContent("完成榜单:" + marriageInformation.getNickName() + "榜单"); + mq.setIsIncome(true); + mq.setAssociateId(event.getId()); + mq.setAmount(marriageBountyOrder.getPaidAmount()); + // 发送mq事件 + amqpTemplate.convertAndSend(MqExchange.POINT_REWARD_CREATED, null, mq); + } + } + + } + } catch (Exception e) { + log.error("悬赏招亲订单确认匹配事件处理异常", e); + } + } @RabbitListener(bindings = @QueueBinding(value = @Queue(MqQueue.REWARD_SELECTED_GUEST), exchange = @Exchange(value = MqExchange.REWARD_SELECTED_GUEST, @@ -174,4 +205,27 @@ public class MarriageBountyOrderEventHandle extends BaseApplicationService { log.error("悬赏招亲匹配成功处理异常", e); } } + + public PointRewardConfigTypeEnum transformPointRewardConfigType(RewardTypeEnum rewardType) { + PointRewardConfigTypeEnum pointRewardConfigType = null; + switch (rewardType) { + case GUEST_CERTIFICATION: + case GUEST_CERTIFICATION_BY_ONLINE: + case GUEST_CERTIFICATION_BY_TRAINEE: + pointRewardConfigType = PointRewardConfigTypeEnum.COMPLETE_BOUNTY_AUTHENTICATION; + break; + case PUBLISH_MARRIAGE_BOUNTY: + case PUBLISH_MARRIAGE_BOUNTY_BY_ONLINE: + case PUBLISH_MARRIAGE_BOUNTY_BY_TRAINEE: + pointRewardConfigType = PointRewardConfigTypeEnum.COMPLETE_BOUNTY_PUBLISH; + break; + case MATCH_MARRIAGE_BOUNTY: + case MATCH_MARRIAGE_BOUNTY_BY_ONLINE: + case MATCH_MARRIAGE_BOUNTY_BY_TRAINEE: + pointRewardConfigType = PointRewardConfigTypeEnum.COMPLETE_BOUNTY_MATCH; + break; + default: + } + return pointRewardConfigType; + } }