|
|
|
@ -12,10 +12,8 @@ import com.qniao.dam.domian.aggregate.paymentorder.constant.PaymentOrderStatusEn |
|
|
|
import com.qniao.dam.infrastructure.constant.MqExchange; |
|
|
|
import com.qniao.dam.infrastructure.constant.MqQueue; |
|
|
|
import com.qniao.dam.infrastructure.persistent.dao.domain.ExternalOrderRelDao; |
|
|
|
import com.qniao.dam.infrastructure.persistent.dao.domain.SiteActivityDao; |
|
|
|
import com.qniao.dam.query.paymentchannelorder.PaymentChannelOrderQueryService; |
|
|
|
import com.qniao.dam.query.paymentorder.PaymentOrderQueryService; |
|
|
|
import com.qniao.das.domian.aggregate.siteactivity.SiteActivity; |
|
|
|
import com.qniao.das.domian.aggregate.siteactivity.event.SiteActivityCancelEvent; |
|
|
|
import com.qniao.domain.BaseApplicationService; |
|
|
|
import lombok.extern.slf4j.Slf4j; |
|
|
|
@ -46,8 +44,6 @@ public class ExternalOrderEventHandler extends BaseApplicationService { |
|
|
|
private PaymentOrderRefundApplicationService paymentOrderRefundApplicationService; |
|
|
|
@Resource |
|
|
|
private ExternalOrderRelAggregate externalOrderRelAggregate; |
|
|
|
@Resource |
|
|
|
private SiteActivityDao siteActivityDao; |
|
|
|
|
|
|
|
@RabbitListener(bindings = @QueueBinding(value = @Queue(MqQueue.CANCEL_SITE_ACTIVITY), |
|
|
|
exchange = @Exchange(value = MqExchange.CANCEL_SITE_ACTIVITY, |
|
|
|
@ -55,30 +51,27 @@ public class ExternalOrderEventHandler extends BaseApplicationService { |
|
|
|
public void handleConfirmMeeting(SiteActivityCancelEvent event) { |
|
|
|
try { |
|
|
|
log.error("接收到线下活动订单取消事件:{}", event); |
|
|
|
SiteActivity siteActivity = siteActivityDao.selectById(event.getExternalId()); |
|
|
|
//社群活动允许退款 |
|
|
|
if (Objects.nonNull(siteActivity.getActivityType()) && siteActivity.getActivityType() == 1) { |
|
|
|
ExternalOrderRel externalOrderRel = externalOrderRelDao.queryCompletedBy(event.getExternalId(), event.getUserId(), ExternalOrderTypeEnum.SITE_ACTIVITY); |
|
|
|
if (Objects.nonNull(externalOrderRel)) { |
|
|
|
externalOrderRel.setStatus(ExternalOrderRelStatus.CANCELED); |
|
|
|
externalOrderRelAggregate.save(externalOrderRel); |
|
|
|
List<PaymentOrderRefund> paymentOrderRefundList = new ArrayList<>(); |
|
|
|
List<PaymentOrder> paymentOrderList = paymentOrderQueryService.listByOrderId(Collections.singletonList(externalOrderRel.getOrderId()), PaymentOrderStatusEnum.PAID); |
|
|
|
for (PaymentOrder paymentOrder : paymentOrderList) { |
|
|
|
PaymentOrderRefund paymentOrderRefund = new PaymentOrderRefund(); |
|
|
|
PaymentChannelOrder paymentChannelOrder = paymentChannelOrderQueryService.queryByTxnOrderId(paymentOrder.getId()); |
|
|
|
paymentOrderRefund.setTradeOrderId(paymentOrder.getOrderId()); |
|
|
|
paymentOrderRefund.setPaymentOrderId(paymentOrder.getId()); |
|
|
|
paymentOrderRefund.setPaymentChannelOrder(paymentChannelOrder.getId()); |
|
|
|
paymentOrderRefund.setPaymentMethod(paymentOrder.getPaymentMethod()); |
|
|
|
paymentOrderRefund.setTransactionId(paymentChannelOrder.getExtOrderNo()); |
|
|
|
paymentOrderRefund.setOrderAmount(paymentChannelOrder.getAmount()); |
|
|
|
paymentOrderRefund.setRefundAmount(paymentChannelOrder.getAmount()); |
|
|
|
paymentOrderRefundList.add(paymentOrderRefund); |
|
|
|
} |
|
|
|
//发起微信退款 |
|
|
|
paymentOrderRefundApplicationService.refund(paymentOrderRefundList); |
|
|
|
ExternalOrderRel externalOrderRel = externalOrderRelDao.queryCompletedBy(event.getExternalId(), event.getUserId(), ExternalOrderTypeEnum.SITE_ACTIVITY); |
|
|
|
if (Objects.nonNull(externalOrderRel)) { |
|
|
|
externalOrderRel.setStatus(ExternalOrderRelStatus.CANCELED); |
|
|
|
externalOrderRelAggregate.save(externalOrderRel); |
|
|
|
List<PaymentOrderRefund> paymentOrderRefundList = new ArrayList<>(); |
|
|
|
List<PaymentOrder> paymentOrderList = paymentOrderQueryService.listByOrderId(Collections.singletonList(externalOrderRel.getOrderId()), PaymentOrderStatusEnum.PAID); |
|
|
|
for (PaymentOrder paymentOrder : paymentOrderList) { |
|
|
|
PaymentOrderRefund paymentOrderRefund = new PaymentOrderRefund(); |
|
|
|
PaymentChannelOrder paymentChannelOrder = paymentChannelOrderQueryService.queryByTxnOrderId(paymentOrder.getId()); |
|
|
|
paymentOrderRefund.setTradeOrderId(paymentOrder.getOrderId()); |
|
|
|
paymentOrderRefund.setPaymentOrderId(paymentOrder.getId()); |
|
|
|
paymentOrderRefund.setPaymentChannelOrder(paymentChannelOrder.getId()); |
|
|
|
paymentOrderRefund.setPaymentMethod(paymentOrder.getPaymentMethod()); |
|
|
|
paymentOrderRefund.setTransactionId(paymentChannelOrder.getExtOrderNo()); |
|
|
|
paymentOrderRefund.setOrderAmount(paymentChannelOrder.getAmount()); |
|
|
|
paymentOrderRefund.setRefundAmount(paymentChannelOrder.getAmount()); |
|
|
|
paymentOrderRefundList.add(paymentOrderRefund); |
|
|
|
} |
|
|
|
//发起微信退款 |
|
|
|
paymentOrderRefundApplicationService.refund(paymentOrderRefundList); |
|
|
|
} |
|
|
|
} catch (Exception e) { |
|
|
|
log.error("接收到线下活动订单取消事件处理异常", e); |
|
|
|
|