From ff17d605655ea201d02c4d164eb42c005a4b588b Mon Sep 17 00:00:00 2001 From: Derran Date: Mon, 1 Apr 2024 16:33:19 +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 --- dating-agency-mall-event/pom.xml | 5 ++ .../event/OrderPaymentLogEvent.java | 8 +++ .../OperationLogEventHandler.java | 60 +++++++++++++++++++ .../persistent/dao/domain/UserDao.java | 7 +++ 4 files changed, 80 insertions(+) create mode 100644 dating-agency-mall-event/src/main/java/com/qniao/dam/domian/aggregate/operationlog/event/OrderPaymentLogEvent.java create mode 100644 dating-agency-mall-server/src/main/java/com/qniao/dam/application/handler/operationlog/OperationLogEventHandler.java create mode 100644 dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/dao/domain/UserDao.java diff --git a/dating-agency-mall-event/pom.xml b/dating-agency-mall-event/pom.xml index 5973371..79cadb6 100644 --- a/dating-agency-mall-event/pom.xml +++ b/dating-agency-mall-event/pom.xml @@ -33,5 +33,10 @@ dating-agency-mall-constant 0.0.1-SNAPSHOT + + com.qniao + common-operation-logging + 1.0-dating-SNAPSHOT + \ No newline at end of file diff --git a/dating-agency-mall-event/src/main/java/com/qniao/dam/domian/aggregate/operationlog/event/OrderPaymentLogEvent.java b/dating-agency-mall-event/src/main/java/com/qniao/dam/domian/aggregate/operationlog/event/OrderPaymentLogEvent.java new file mode 100644 index 0000000..d15fb19 --- /dev/null +++ b/dating-agency-mall-event/src/main/java/com/qniao/dam/domian/aggregate/operationlog/event/OrderPaymentLogEvent.java @@ -0,0 +1,8 @@ +package com.qniao.dam.domian.aggregate.operationlog.event; + +import com.qniao.logging.domain.aggregate.operationlog.event.UserOperatedEvent; +import lombok.Data; + +@Data +public class OrderPaymentLogEvent extends UserOperatedEvent { +} diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/application/handler/operationlog/OperationLogEventHandler.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/application/handler/operationlog/OperationLogEventHandler.java new file mode 100644 index 0000000..a621555 --- /dev/null +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/application/handler/operationlog/OperationLogEventHandler.java @@ -0,0 +1,60 @@ +package com.qniao.dam.application.handler.operationlog; + +import com.google.common.eventbus.Subscribe; +import com.qniao.dam.domian.aggregate.operationlog.event.OrderPaymentLogEvent; +import com.qniao.dam.domian.aggregate.order.event.OrderCompletedEvent; +import com.qniao.dam.infrastructure.persistent.dao.domain.UserDao; +import com.qniao.das.domian.aggregate.certificate.constant.CertificationAuditStatusEnum; +import com.qniao.dau.domain.aggregate.user.entity.User; +import com.qniao.domain.BaseApplicationService; +import com.qniao.logging.domain.aggregate.operationlog.constant.OperationLogTypeEnum; +import com.qniao.logging.domain.aggregate.operationlog.event.UserOperatedEvent; +import com.qniao.logging.infrastructure.persistent.constant.OperationLogConstants; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; +import java.time.LocalDateTime; +import java.util.Map; +import java.util.Objects; + +@Component +@Slf4j +public class OperationLogEventHandler extends BaseApplicationService { + + @Resource + private UserDao userDao; + + /** + * 订单已支付事件 + */ + @Subscribe + public void handle(OrderCompletedEvent event) { + try { + OrderPaymentLogEvent logEvent = new OrderPaymentLogEvent(); + //预约单号 + logEvent.setTargetId(event.getId()); + Map logOperatorParams = event.getLogOperatorParams(); + handleOperator(logEvent, logOperatorParams); + //操作时间 + logEvent.setOperateTime(LocalDateTime.now()); + logEvent.setOperationLogType(OperationLogTypeEnum.ORDER_PAYMENT); + logEvent.setEventSummaryName("支付"); + this.sendEvent(logEvent); + } catch (Exception e) { + log.error("订单已支付事件日志处理异常"); + } + } + + public void handleOperator(UserOperatedEvent logEvent, Map logOperatorParams) { + Long userId = (Long) logOperatorParams.get(OperationLogConstants.USER_ID); + if (Objects.nonNull(userId)) { + logEvent.setOperatorId(String.valueOf(userId)); + User user = userDao.selectById(userId); + if (Objects.nonNull(user)) { + String operatorName = user.getRealName() != null ? user.getRealName() : user.getNickName(); + logEvent.setOperatorName(operatorName); + } + } + } +} diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/dao/domain/UserDao.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/dao/domain/UserDao.java new file mode 100644 index 0000000..4019abb --- /dev/null +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/dao/domain/UserDao.java @@ -0,0 +1,7 @@ +package com.qniao.dam.infrastructure.persistent.dao.domain; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.qniao.dau.domain.aggregate.user.entity.User; + +public interface UserDao extends BaseMapper { +}