package cn.lili.event.impl; import cn.lili.event.AfterSaleStatusChangeEvent; import cn.lili.event.OrderStatusChangeEvent; import cn.lili.modules.distribution.service.DistributionOrderService; import cn.lili.modules.order.aftersale.entity.dos.AfterSale; import cn.lili.modules.order.order.entity.dto.OrderMessage; import cn.lili.modules.order.trade.entity.enums.AfterSaleStatusEnum; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; /** * 分销订单入库 * * @author Chopper * @since 2020-07-03 11:20 */ @Slf4j @Service public class DistributionOrderExecute implements OrderStatusChangeEvent, AfterSaleStatusChangeEvent { /** * 分销订单 */ @Autowired private DistributionOrderService distributionOrderService; @Override public void orderChange(OrderMessage orderMessage) { switch (orderMessage.getNewStatus()) { //订单带校验/订单代发货/待自提,则记录分销信息 case TAKE: case STAY_PICKED_UP: case UNDELIVERED: { //记录分销订单 distributionOrderService.calculationDistribution(orderMessage.getOrderSn()); break; } case CANCELLED: { //修改分销订单状态 distributionOrderService.cancelOrder(orderMessage.getOrderSn()); break; } default: { break; } } } @Override public void afterSaleStatusChange(AfterSale afterSale) { if (afterSale.getServiceStatus().equals(AfterSaleStatusEnum.COMPLETE.name())) { distributionOrderService.refundOrder(afterSale); } } }