|
|
|
@ -1,9 +1,11 @@ |
|
|
|
package com.qniao.dam.application.handler.order; |
|
|
|
|
|
|
|
import cn.hutool.core.collection.CollUtil; |
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
|
|
|
import com.google.common.eventbus.Subscribe; |
|
|
|
import com.qniao.dam.application.service.marriagebounty.MarriageBountyOrderApplicationService; |
|
|
|
import com.qniao.dam.application.service.right.RightApplicationService; |
|
|
|
import com.qniao.dam.domain.aggregate.externalorder.valueobj.ExternalOrderRel; |
|
|
|
import com.qniao.dam.domain.aggregate.order.entity.Order; |
|
|
|
import com.qniao.dam.domain.aggregate.order.entity.OrderItem; |
|
|
|
import com.qniao.dam.domain.aggregate.order.repository.OrderRepository; |
|
|
|
@ -15,11 +17,15 @@ import com.qniao.dam.domain.aggregate.right.RightAggregate; |
|
|
|
import com.qniao.dam.domain.aggregate.right.entity.Right; |
|
|
|
import com.qniao.dam.domian.aggregate.order.constant.OrderBelongingEnum; |
|
|
|
import com.qniao.dam.domian.aggregate.order.constant.OrderTypeEnum; |
|
|
|
import com.qniao.dam.domian.aggregate.order.event.ExternalOrderCompletedMQEvent; |
|
|
|
import com.qniao.dam.domian.aggregate.order.event.OrderCompletedEvent; |
|
|
|
import com.qniao.dam.domian.aggregate.product.constant.ProductTypeEnum; |
|
|
|
import com.qniao.dam.infrastructure.constant.MqExchange; |
|
|
|
import com.qniao.dam.infrastructure.persistent.dao.domain.ExternalOrderRelDao; |
|
|
|
import com.qniao.dau.application.UecServerApplicationService; |
|
|
|
import com.qniao.domain.BaseApplicationService; |
|
|
|
import lombok.extern.slf4j.Slf4j; |
|
|
|
import org.springframework.amqp.core.AmqpTemplate; |
|
|
|
import org.springframework.stereotype.Component; |
|
|
|
import org.springframework.transaction.annotation.Transactional; |
|
|
|
|
|
|
|
@ -46,6 +52,10 @@ public class OrderEventHandler extends BaseApplicationService { |
|
|
|
private UecServerApplicationService uecServerApplicationService; |
|
|
|
@Resource |
|
|
|
private MarriageBountyOrderApplicationService marriageBountyOrderApplicationService; |
|
|
|
@Resource |
|
|
|
private ExternalOrderRelDao externalOrderRelDao; |
|
|
|
@Resource |
|
|
|
private AmqpTemplate amqpTemplate; |
|
|
|
|
|
|
|
/** |
|
|
|
* 订单已完成事件 -> 兑换权益 |
|
|
|
@ -79,6 +89,17 @@ public class OrderEventHandler extends BaseApplicationService { |
|
|
|
if (OrderTypeEnum.MARRIAGE_BOUNTY.equals(order.getOrderType())) { |
|
|
|
marriageBountyOrderApplicationService.save(order.getId()); |
|
|
|
} |
|
|
|
//外部订单处理 |
|
|
|
ExternalOrderRel externalOrderRel = externalOrderRelDao.selectOne(new LambdaQueryWrapper<ExternalOrderRel>() |
|
|
|
.eq(ExternalOrderRel::getOrderId, order.getId())); |
|
|
|
if (Objects.nonNull(externalOrderRel)) { |
|
|
|
ExternalOrderCompletedMQEvent completedMQEvent = new ExternalOrderCompletedMQEvent(); |
|
|
|
completedMQEvent.setExternalId(externalOrderRel.getExternalId()); |
|
|
|
completedMQEvent.setOrderId(externalOrderRel.getOrderId()); |
|
|
|
completedMQEvent.setUserId(order.getUserId()); |
|
|
|
completedMQEvent.setMiId(order.getMiId()); |
|
|
|
amqpTemplate.convertAndSend(MqExchange.EXTERNAL_ORDER_COMPLETED, null, completedMQEvent); |
|
|
|
} |
|
|
|
} catch (Exception e) { |
|
|
|
log.error("订单已完成事件处理异常"); |
|
|
|
} |
|
|
|
|