package com.xiaopeng.api.factory.account; import com.xiaopeng.api.dto.account.XpOperationsUserQueryDTO; import com.xiaopeng.api.feignClient.account.XpOperationUserClient; import com.xiaopeng.api.model.account.XpOperationsRole;import com.xiaopeng.api.model.account.XpOperationsUser; import com.xiaopeng.api.vo.account.XpOperationsUserWithRoleVO; 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.util.ArrayList; import java.util.Collection; import java.util.Collections; import java.util.List; @Slf4j @Component public class XpOperationUserClientFallbackFactory implements FallbackFactory { @Override public XpOperationUserClient create(Throwable cause) { return new XpOperationUserClient() { @Override public R> listByIds(Collection ids) { log.error("批量查询运维人员用户信息失败,原因: {}", cause.getMessage()); // 降级返回空列表 return R.ok(new ArrayList<>()); } @Override public R queryById(Long id) { log.error("根据id查询运维人员用户信息失败,原因: {}", cause.getMessage()); // 降级返回空列表 return R.ok(null); } @Override public R> listByName(String nickName) { log.error("根据昵称查询运维用户信息失败,原因:{}", cause.getMessage()); return R.fail("根据昵称查询运维用户信息失败:" + cause.getMessage()); } @Override public R> listByIdsWithRole(List ids) { log.error("根据id列表获取运维人员列表失败,原因:{}", cause.getMessage()); return R.fail("根据id列表获取运维人员列表失败"); } @Override public R> queryByConditions(XpOperationsUserQueryDTO dto) { log.error("根据条件查询运维用户信息失败,原因:{}", cause.getMessage()); return R.fail("根据条件查询运维用户信息失败:" + cause.getMessage()); } @Override public R> getXpOperationsRoleByRoleId(Long roleId) { log.error("根据角色ID获取运维人员列表失败,原因:{}", cause.getMessage()); return R.fail("根据角色ID获取运维人员列表失败:" + cause.getMessage()); } @Override public R> listAllEnabled() { log.error("获取启用状态运维用户列表失败,原因:{}", cause.getMessage()); return R.ok(new ArrayList<>()); } @Override public R> getXpOperationsRoleByRoleIds(List roleIds) { log.error("根据角色ID列表获取运维人员ID列表失败,原因:{}", cause.getMessage()); return R.fail("根据角色ID列表获取运维人员ID列表失败:" + cause.getMessage()); } @Override public R> getByPhoneNumber(String phoneNumber) { log.error("根据手机号模糊查询用户失败,原因:{}", cause.getMessage()); return R.ok(Collections.emptyList()); } @Override public R getByExactPhone(String phoneNumber) { log.error("根据手机号精确查询运维用户失败,原因:{}", cause.getMessage()); return R.fail("根据手机号精确查询运维用户失败:" + cause.getMessage()); } }; } }