package com.ruoyi.payment.api.factory; import com.ruoyi.common.core.domain.R; import com.ruoyi.payment.api.feignClient.IcbcPaymentClient; import com.ruoyi.payment.api.vo.IcbcPaymentReq; import com.ruoyi.payment.api.vo.IcbcPaymentResp; import com.ruoyi.payment.api.vo.IcbcRefundReq; import com.ruoyi.payment.api.vo.IcbcRefundResp; import com.ruoyi.payment.api.vo.IcbcSubOrderQueryReq; import com.ruoyi.payment.api.vo.IcbcSubOrderQueryResp; import com.ruoyi.payment.api.vo.IcbcSubOrderRefundReq; import com.ruoyi.payment.api.vo.IcbcSubOrderRefundResp; import com.ruoyi.payment.api.vo.IcbcSubOrderSplitReq; import com.ruoyi.payment.api.vo.IcbcSubOrderSplitResp; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.cloud.openfeign.FallbackFactory; import org.springframework.stereotype.Component; /** * 工行支付调用降级处理。 */ @Component public class IcbcPaymentFallbackFactory implements FallbackFactory { private static final Logger log = LoggerFactory.getLogger(IcbcPaymentFallbackFactory.class); @Override public IcbcPaymentClient create(Throwable throwable) { log.error("工行支付调用失败:{}", throwable.getMessage()); return new IcbcPaymentClient() { @Override public R payment(IcbcPaymentReq req) { return R.fail("调起工行支付失败:" + throwable.getMessage()); } @Override public R query(String outTradeNo) { return R.fail("查询工行支付订单失败:" + throwable.getMessage()); } @Override public R close(String outTradeNo) { return R.fail("关闭工行支付订单失败:" + throwable.getMessage()); } @Override public R refund(IcbcRefundReq req) { return R.fail("工行退款失败:" + throwable.getMessage()); } @Override public R splitSubOrder(IcbcSubOrderSplitReq req) { return R.fail("工行小订单拆分失败:" + throwable.getMessage()); } @Override public R refundSubOrder(IcbcSubOrderRefundReq req) { return R.fail("工行小订单拆分退款失败:" + throwable.getMessage()); } @Override public R querySubOrder(IcbcSubOrderQueryReq req) { return R.fail("查询工行子订单失败:" + throwable.getMessage()); } }; } }