package com.xiaopeng.api.factory.pushMessage; import com.xiaopeng.api.dto.pushMessage.PushOrderRouteDTO; import com.xiaopeng.api.dto.pushMessage.SendMessageDTO; import com.xiaopeng.api.dto.statistics.OrderStatisticsDTO; import com.xiaopeng.api.dto.statistics.StatisticsQueryDTO; import com.xiaopeng.api.feignClient.order.XpOrderClient; import com.xiaopeng.api.feignClient.pushMessage.XpPushMessageClient; import com.xiaopeng.api.model.order.XpOrder; import com.xiaopeng.common.core.domain.R; import lombok.extern.slf4j.Slf4j; import org.springframework.cloud.openfeign.FallbackFactory; import org.springframework.stereotype.Component; import java.math.BigDecimal; import java.util.ArrayList; /** * 订单Feign客户端降级工厂 * * @author mitao */ @Slf4j @Component public class XpPushMessageClientFallbackFactory implements FallbackFactory { @Override public XpPushMessageClient create(Throwable cause) { log.error("消息服务调用失败: {}", cause.getMessage()); return new XpPushMessageClient() { @Override public R sendStatus(SendMessageDTO dto) { return R.fail("推送订单状态服务失败,"+cause.getMessage()); } @Override public R sendRoute(SendMessageDTO dto) { return R.fail("推送订单路径规划服务失败,"+cause.getMessage()); } @Override public R sendVehicleLocation(SendMessageDTO dto) { return R.fail("推送车辆实时定位失败,"+cause.getMessage()); } @Override public R pushOrderRoute(PushOrderRouteDTO dto) { return R.fail("通过车辆实时定位推送订单轨迹失败,"+cause.getMessage()); } }; } }