From 5ab87463fd8a72fbd7ebd6e6baac2d4b17f2aced Mon Sep 17 00:00:00 2001 From: Derran Date: Tue, 30 Apr 2024 16:10:25 +0800 Subject: [PATCH] =?UTF-8?q?=E5=9F=BA=E7=A1=80=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../MarriageBountyOrderCreatedEvent.java | 4 +++ .../event/MarriageBountyOrderCreatedMQ.java | 17 ++++++++++ .../MarriageBountyOrderEventHandle.java | 34 +++++++++++++++++++ .../MarriageBountyOrderAggregate.java | 3 +- .../infrastructure/constant/MqExchange.java | 1 + 5 files changed, 58 insertions(+), 1 deletion(-) create mode 100644 dating-agency-mall-event/src/main/java/com/qniao/dam/domian/aggregate/marriagebounty/event/MarriageBountyOrderCreatedMQ.java create mode 100644 dating-agency-mall-server/src/main/java/com/qniao/dam/application/handler/marriagebounty/MarriageBountyOrderEventHandle.java diff --git a/dating-agency-mall-event/src/main/java/com/qniao/dam/domian/aggregate/marriagebounty/event/MarriageBountyOrderCreatedEvent.java b/dating-agency-mall-event/src/main/java/com/qniao/dam/domian/aggregate/marriagebounty/event/MarriageBountyOrderCreatedEvent.java index e19aaca..ef26116 100644 --- a/dating-agency-mall-event/src/main/java/com/qniao/dam/domian/aggregate/marriagebounty/event/MarriageBountyOrderCreatedEvent.java +++ b/dating-agency-mall-event/src/main/java/com/qniao/dam/domian/aggregate/marriagebounty/event/MarriageBountyOrderCreatedEvent.java @@ -14,4 +14,8 @@ public class MarriageBountyOrderCreatedEvent extends BaseDomainEvent { private Long id; + private Long userId; + + private Long miId; + } diff --git a/dating-agency-mall-event/src/main/java/com/qniao/dam/domian/aggregate/marriagebounty/event/MarriageBountyOrderCreatedMQ.java b/dating-agency-mall-event/src/main/java/com/qniao/dam/domian/aggregate/marriagebounty/event/MarriageBountyOrderCreatedMQ.java new file mode 100644 index 0000000..00c53a0 --- /dev/null +++ b/dating-agency-mall-event/src/main/java/com/qniao/dam/domian/aggregate/marriagebounty/event/MarriageBountyOrderCreatedMQ.java @@ -0,0 +1,17 @@ +package com.qniao.dam.domian.aggregate.marriagebounty.event; + +import lombok.Data; + +import java.io.Serializable; + +@Data +public class MarriageBountyOrderCreatedMQ implements Serializable { + + //悬赏订单标识 + private Long marriageBountyOrderId; + + private Long userId; + + private Long miId; + +} 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 new file mode 100644 index 0000000..cf64815 --- /dev/null +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/application/handler/marriagebounty/MarriageBountyOrderEventHandle.java @@ -0,0 +1,34 @@ +package com.qniao.dam.application.handler.marriagebounty; + +import com.google.common.eventbus.Subscribe; +import com.qniao.dam.domian.aggregate.marriagebounty.event.MarriageBountyOrderCreatedEvent; +import com.qniao.dam.domian.aggregate.marriagebounty.event.MarriageBountyOrderCreatedMQ; +import com.qniao.dam.infrastructure.constant.MqExchange; +import com.qniao.domain.BaseApplicationService; +import com.qniao.framework.utils.TypeConvertUtils; +import lombok.extern.slf4j.Slf4j; +import org.springframework.amqp.core.AmqpTemplate; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; + +@Component +@Slf4j +public class MarriageBountyOrderEventHandle extends BaseApplicationService { + + @Resource + private AmqpTemplate amqpTemplate; + + @Subscribe + public void handle(MarriageBountyOrderCreatedEvent event) { + try { + MarriageBountyOrderCreatedMQ createdMQ = TypeConvertUtils.convert(event, MarriageBountyOrderCreatedMQ.class); + createdMQ.setMarriageBountyOrderId(event.getId()); + // 发送mq事件 + amqpTemplate.convertAndSend(MqExchange.MARRIAGE_BOUNTY_ORDER_CREATED, null, createdMQ); + } catch (Exception e) { + log.error("悬赏招亲订单已创建事件处理异常", e); + } + } + +} diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/domain/aggregate/marriagebounty/MarriageBountyOrderAggregate.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/domain/aggregate/marriagebounty/MarriageBountyOrderAggregate.java index 1679ed1..22a1498 100644 --- a/dating-agency-mall-server/src/main/java/com/qniao/dam/domain/aggregate/marriagebounty/MarriageBountyOrderAggregate.java +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/domain/aggregate/marriagebounty/MarriageBountyOrderAggregate.java @@ -5,6 +5,7 @@ import com.qniao.dam.domain.aggregate.marriagebounty.repository.MarriageBountyOr import com.qniao.dam.domian.aggregate.marriagebount.constant.MarriageBountyOrderStatusEnum; import com.qniao.dam.domian.aggregate.marriagebounty.event.MarriageBountyOrderCreatedEvent; import com.qniao.domain.BaseDomainEvent; +import com.qniao.framework.utils.TypeConvertUtils; import org.springframework.stereotype.Service; import javax.annotation.Resource; @@ -18,7 +19,7 @@ public class MarriageBountyOrderAggregate { public BaseDomainEvent create(MarriageBountyOrder marriageBountyOrder) { marriageBountyOrder.setStatus(MarriageBountyOrderStatusEnum.MATCHMAKING); marriageBountyOrderRepository.save(marriageBountyOrder); - return new MarriageBountyOrderCreatedEvent(marriageBountyOrder.getId()); + return TypeConvertUtils.convert(marriageBountyOrder, MarriageBountyOrderCreatedEvent.class); } public void update(MarriageBountyOrder marriageBountyOrder) { diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/constant/MqExchange.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/constant/MqExchange.java index c1a30d1..a665218 100644 --- a/dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/constant/MqExchange.java +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/constant/MqExchange.java @@ -2,5 +2,6 @@ package com.qniao.dam.infrastructure.constant; public interface MqExchange { + String MARRIAGE_BOUNTY_ORDER_CREATED = "fanout.marriageBountyOrderCreated"; }