|
|
|
@ -5,10 +5,12 @@ import com.qniao.dam.domain.aggregate.order.entity.Order; |
|
|
|
import com.qniao.dam.domain.aggregate.paymentorder.PaymentOrderAggregate; |
|
|
|
import com.qniao.dam.domain.aggregate.paymentorder.entity.PaymentOrder; |
|
|
|
import com.qniao.dam.domian.aggregate.paymentorder.constant.PaymentOrderStatusEnum; |
|
|
|
import com.qniao.domain.BaseDomainEvent; |
|
|
|
import org.springframework.stereotype.Service; |
|
|
|
import org.springframework.transaction.annotation.Transactional; |
|
|
|
|
|
|
|
import javax.annotation.Resource; |
|
|
|
import java.math.BigDecimal; |
|
|
|
|
|
|
|
@Service |
|
|
|
public class SubmitOrderDomainService { |
|
|
|
@ -19,9 +21,15 @@ public class SubmitOrderDomainService { |
|
|
|
private PaymentOrderAggregate paymentOrderAggregate; |
|
|
|
|
|
|
|
@Transactional(rollbackFor = Exception.class) |
|
|
|
public void handle(Order order, PaymentOrder paymentOrder) { |
|
|
|
orderAggregate.submit(order); |
|
|
|
paymentOrder.setOrderId(order.getId()); |
|
|
|
paymentOrderAggregate.create(paymentOrder); |
|
|
|
public BaseDomainEvent handle(Order order, PaymentOrder paymentOrder) { |
|
|
|
BaseDomainEvent event = null; |
|
|
|
if (order.getSettlementAmount().compareTo(BigDecimal.ZERO) == 0) { |
|
|
|
event = orderAggregate.complete(order); |
|
|
|
} else { |
|
|
|
orderAggregate.submit(order); |
|
|
|
paymentOrder.setOrderId(order.getId()); |
|
|
|
paymentOrderAggregate.create(paymentOrder); |
|
|
|
} |
|
|
|
return event; |
|
|
|
} |
|
|
|
} |