package com.xiaopeng.api.factory.operation; import com.xiaopeng.api.feignClient.operation.SysMenuClient; import com.xiaopeng.api.model.operation.SysMenu; import com.xiaopeng.common.core.domain.R; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.cloud.openfeign.FallbackFactory; import org.springframework.stereotype.Component; import java.util.ArrayList; import java.util.List; @Component public class RemoteMenuFallbackFactory implements FallbackFactory { private static final Logger log = LoggerFactory.getLogger(RemoteMenuFallbackFactory.class); @Override public SysMenuClient create(Throwable cause) { log.error("菜单服务调用失败: {}", cause.getMessage()); return new SysMenuClient(){ @Override public R> getMenusByMenuIds(List menuIds) { log.error("获取菜单列表失败,menuIds: {}, 原因: {}", menuIds, cause.getMessage()); // 降级返回空列表,避免登录失败 return R.ok(new ArrayList<>()); } }; } }