diff --git a/dating-agency-mall-event/src/main/java/com/qniao/dam/domian/aggregate/ora/event/OrderRefundApplicationOperationAuditedEvent.java b/dating-agency-mall-event/src/main/java/com/qniao/dam/domian/aggregate/ora/event/OrderRefundApplicationOperationAuditedEvent.java new file mode 100644 index 0000000..4636260 --- /dev/null +++ b/dating-agency-mall-event/src/main/java/com/qniao/dam/domian/aggregate/ora/event/OrderRefundApplicationOperationAuditedEvent.java @@ -0,0 +1,20 @@ +package com.qniao.dam.domian.aggregate.ora.event; + +import com.qniao.dam.domian.aggregate.ora.constant.OrderRefundApplicationStatus; +import com.qniao.domain.BaseDomainEvent; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; + +@Data +@AllArgsConstructor +@NoArgsConstructor +@EqualsAndHashCode(callSuper = true) +public class OrderRefundApplicationOperationAuditedEvent extends BaseDomainEvent { + + private Long id; + + private OrderRefundApplicationStatus status; +} + diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/application/handler/ora/OrderRefundApplicationEventHandler.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/application/handler/ora/OrderRefundApplicationEventHandler.java index 340c861..f729825 100644 --- a/dating-agency-mall-server/src/main/java/com/qniao/dam/application/handler/ora/OrderRefundApplicationEventHandler.java +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/application/handler/ora/OrderRefundApplicationEventHandler.java @@ -11,6 +11,7 @@ import com.qniao.dam.domian.aggregate.eso.constant.EntrustServiceStatusEnum; import com.qniao.dam.domian.aggregate.ora.constant.OrderRefundApplicationStatus; import com.qniao.dam.domian.aggregate.ora.constant.RefundOrderTypeEnum; import com.qniao.dam.domian.aggregate.ora.event.OrderRefundApplicationAuditedEvent; +import com.qniao.dam.domian.aggregate.ora.event.OrderRefundApplicationOperationAuditedEvent; import com.qniao.dam.infrastructure.persistent.dao.eso.EntrustServiceOrderDao; import com.qniao.dam.infrastructure.persistent.dao.ora.OrderRefundApplicationDao; import com.qniao.domain.BaseApplicationService; @@ -44,7 +45,17 @@ public class OrderRefundApplicationEventHandler extends BaseApplicationService { } else if (orderRefundApplication.getRefundOrderType().equals(RefundOrderTypeEnum.ENTRUST_SERVICE)) { entrustServiceOrderApplicationService.refundConfirm(orderRefundApplication.getOrderId()); } - } else { + } + } catch (Exception e) { + log.error("订单退款申请审核处理异常:", e); + } + } + + @Subscribe + public void handle(OrderRefundApplicationOperationAuditedEvent event) { + try { + OrderRefundApplication orderRefundApplication = orderRefundApplicationDao.selectById(event.getId()); + if (orderRefundApplication.getOperationStatus().equals(OrderRefundApplicationStatus.REJECTED)) { if (orderRefundApplication.getRefundOrderType().equals(RefundOrderTypeEnum.ENTRUST_SERVICE)) { EntrustServiceOrder entrustServiceOrder = entrustServiceOrderDao.selectById(orderRefundApplication.getOrderId()); entrustServiceOrder.setStatus(entrustServiceOrder.getOriginalStatus()); @@ -56,5 +67,4 @@ public class OrderRefundApplicationEventHandler extends BaseApplicationService { log.error("订单退款申请审核处理异常:", e); } } - } diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/application/service/ora/OrderRefundApplicationApplicationService.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/application/service/ora/OrderRefundApplicationApplicationService.java index 5cd7c6c..aad9a55 100644 --- a/dating-agency-mall-server/src/main/java/com/qniao/dam/application/service/ora/OrderRefundApplicationApplicationService.java +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/application/service/ora/OrderRefundApplicationApplicationService.java @@ -48,7 +48,8 @@ public class OrderRefundApplicationApplicationService extends BaseApplicationSer public void audit(OrderRefundApplication orderRefundApplication) { OrderRefundApplication existOrderRefundApplication = orderRefundApplicationDao.selectById(orderRefundApplication.getId()); - if (Objects.nonNull(existOrderRefundApplication) && existOrderRefundApplication.getStatus().equals(OrderRefundApplicationStatus.UNAUDITED)) { + if (Objects.nonNull(existOrderRefundApplication) && existOrderRefundApplication.getStatus().equals(OrderRefundApplicationStatus.UNAUDITED) + && existOrderRefundApplication.getOperationStatus().equals(OrderRefundApplicationStatus.APPROVED)) { BaseDomainEvent event = orderRefundApplicationAggregate.audit(orderRefundApplication); this.sendEvent(event); } @@ -57,7 +58,8 @@ public class OrderRefundApplicationApplicationService extends BaseApplicationSer public void auditByOperation(OrderRefundApplication orderRefundApplication) { OrderRefundApplication existOrderRefundApplication = orderRefundApplicationDao.selectById(orderRefundApplication.getId()); if (Objects.nonNull(existOrderRefundApplication) && existOrderRefundApplication.getOperationStatus().equals(OrderRefundApplicationStatus.UNAUDITED)) { - orderRefundApplicationAggregate.update(orderRefundApplication); + BaseDomainEvent event = orderRefundApplicationAggregate.auditByOperation(orderRefundApplication); + this.sendEvent(event); } } } \ No newline at end of file diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/domain/aggregate/ora/OrderRefundApplicationAggregate.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/domain/aggregate/ora/OrderRefundApplicationAggregate.java index 6c7b661..7273b94 100644 --- a/dating-agency-mall-server/src/main/java/com/qniao/dam/domain/aggregate/ora/OrderRefundApplicationAggregate.java +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/domain/aggregate/ora/OrderRefundApplicationAggregate.java @@ -3,6 +3,7 @@ package com.qniao.dam.domain.aggregate.ora; import com.qniao.dam.domain.aggregate.ora.entity.OrderRefundApplication; import com.qniao.dam.domain.aggregate.ora.repository.OrderRefundApplicationRepository; import com.qniao.dam.domian.aggregate.ora.event.OrderRefundApplicationAuditedEvent; +import com.qniao.dam.domian.aggregate.ora.event.OrderRefundApplicationOperationAuditedEvent; import com.qniao.domain.BaseDomainEvent; import com.qniao.framework.utils.TypeConvertUtils; import org.springframework.stereotype.Service; @@ -32,4 +33,9 @@ public class OrderRefundApplicationAggregate { public void update(OrderRefundApplication entity) { repository.save(entity); } + + public BaseDomainEvent auditByOperation(OrderRefundApplication entity) { + repository.save(entity); + return TypeConvertUtils.convert(entity, OrderRefundApplicationOperationAuditedEvent.class); + } }