package com.xiaopeng.api.factory.payFront; import com.xiaopeng.api.dto.payFront.CreditOrderCancelDto; import com.xiaopeng.api.dto.payFront.CreditOrderCreateDto; import com.xiaopeng.api.dto.payFront.CreditOrderQueryDto; import com.xiaopeng.api.dto.payFront.CreditOrderWxPayDto; import com.xiaopeng.api.dto.payFront.CreditPaySignDto; import com.xiaopeng.api.dto.payFront.CreditPaySignQueryDto; import com.xiaopeng.api.dto.payFront.CreditPrecreateDto; import com.xiaopeng.api.dto.payFront.PayOrderQueryDto; import com.xiaopeng.api.dto.payFront.RefundRequestDto; import com.xiaopeng.api.dto.payFront.UnsignCreditPayDto; import com.xiaopeng.api.feignClient.payFront.XpPayFrontClient; import com.xiaopeng.api.vo.payFront.CreditOrderCancelVo; import com.xiaopeng.api.vo.payFront.CreditOrderCreateVo; import com.xiaopeng.api.vo.payFront.CreditOrderQueryVo; import com.xiaopeng.api.vo.payFront.CreditOrderWxPayVo; import com.xiaopeng.api.vo.payFront.CreditPaySignQueryVo; import com.xiaopeng.api.vo.payFront.CreditPaySignVo; import com.xiaopeng.api.vo.payFront.CreditPrecreateVo; import com.xiaopeng.api.vo.payFront.PayOrderQueryVo; import com.xiaopeng.api.vo.payFront.RefundVo; import com.xiaopeng.api.vo.payFront.UnsignCreditPayVo; import com.xiaopeng.common.core.domain.R; import lombok.extern.slf4j.Slf4j; import org.springframework.cloud.openfeign.FallbackFactory; import org.springframework.stereotype.Component; /** * Pay front Feign fallback factory. * * @author mitao */ @Slf4j @Component public class XpPayFrontClientFallbackFactory implements FallbackFactory { @Override public XpPayFrontClient create(Throwable cause) { log.error("pay front service call failed: {}", cause.getMessage()); return new XpPayFrontClient() { @Override public R creditPaySign(CreditPaySignDto dto) { return fail("credit pay sign failed"); } @Override public R queryCreditPaySign(CreditPaySignQueryDto dto) { return fail("credit pay sign query failed"); } @Override public R createCreditOrder(CreditOrderCreateDto dto) { return fail("credit order create failed"); } @Override public R creditOrderWxPay(CreditOrderWxPayDto dto) { return fail("credit order wxPay failed"); } @Override public R cancelCreditOrder(CreditOrderCancelDto dto) { return fail("credit order cancel failed"); } @Override public R queryCreditOrder(CreditOrderQueryDto dto) { return fail("credit order query failed"); } @Override public R refund(RefundRequestDto dto) { return fail("refund failed"); } @Override public R precreate(CreditPrecreateDto dto) { return fail("precreate failed"); } @Override public R queryPayOrder(PayOrderQueryDto dto) { return fail("pay order query failed"); } @Override public R unsign(UnsignCreditPayDto dto) { return fail("credit pay unsign failed"); } private R fail(String message) { log.error("{}: {}", message, cause.getMessage()); return R.fail(message); } }; } }