package com.xiaopeng.api.factory.account; import com.xiaopeng.api.dto.account.GetUserCouponDto; import com.xiaopeng.api.dto.account.UseUserCouponDto; import com.xiaopeng.api.dto.statistics.StatisticsQueryDTO; import com.xiaopeng.api.dto.statistics.UserStatisticsDTO; import com.xiaopeng.api.feignClient.account.XpAppUserClient; import com.xiaopeng.api.feignClient.account.XpAppUserCouponClient; import com.xiaopeng.api.vo.account.UserCouponVo; 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 XpAppUserCouponClientFallbackFactory implements FallbackFactory { @Override public XpAppUserCouponClient create(Throwable cause) { log.error("用户优惠券服务调用失败: {}", cause.getMessage()); return new XpAppUserCouponClient() { @Override public R getUserCoupon(GetUserCouponDto dto) { UserCouponVo userCouponVo = new UserCouponVo(); return R.ok(userCouponVo); } @Override public R useUserCoupon(UseUserCouponDto dto) { log.error("优惠券使用失败,原因: {}", cause.getMessage()); return R.fail("优惠券使用失败,"+cause.getMessage()); } @Override public R backUserCoupon(UseUserCouponDto dto) { log.error("优惠券退回失败,原因: {}", cause.getMessage()); return null; } @Override public boolean isHolding(Long id) { log.error("优惠券服务繁忙,原因: {}", cause.getMessage()); return false; } @Override public R sendSave(UseUserCouponDto dto) { log.error("优惠券服务繁忙,原因: {}", cause.getMessage()); return null; } }; } }