yyy
2026-04-20 00b60600a83190fd0660a6ccb0cab015904189de
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
package com.xiaopeng.api.factory.vehicleConvoy;
 
import com.xiaopeng.api.feignClient.vehicleConvoy.XpFleetOperationsClient;
import com.xiaopeng.api.model.vehicleConvoy.XpFleet;
import com.xiaopeng.api.model.vehicleConvoy.XpFleetOperations;
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.List;
 
/**
 * 车队车辆Feign客户端降级工厂
 *
 * @author mitao
 */
@Slf4j
@Component
public class XpFleetOperationsClientFallbackFactory implements FallbackFactory<XpFleetOperationsClient> {
 
    @Override
    public XpFleetOperationsClient create(Throwable cause) {
        log.error("车队人员服务调用失败: {}", cause.getMessage());
        return new XpFleetOperationsClient() {
            @Override
            public R<List<Long>> getVehicleByUserId(Long vehicleId) {
                log.error("根据人员id 获取所属车队下关联的车辆ids,人员ID: {},原因: {}", vehicleId, cause.getMessage());
                return R.ok(new ArrayList<>());
            }
 
            @Override
            public R<List<XpFleet>> getFleetByUserId(Long id) {
                log.error("根据人员id 获取所属车队,人员ID: {},原因: {}", id, cause.getMessage());
                return R.ok(new ArrayList<>());
            }
 
            @Override
            public R<List<Long>> getFleetIdsByUserId(Long userId) {
                log.error("根据人员ID获取车队信息失败 {}",  cause.getMessage());
                return R.fail("根据人员ID获取车队信息失败");
            }
 
 
            @Override
            public R<List<Long>> getOperationsIdsByFleetId(Long fleetId) {
                log.error("根据车队ID获取人员信息失败 {}",  cause.getMessage());
                return R.fail("根据车队ID获取人员信息失败");
            }
 
            @Override
            public R<List<XpFleetOperations>> getOperationsIdsByFleetIds(List<Long> fleetIds) {
                log.error("根据车队ID集合查询关联的运维人员ID列表失败 {}",  cause.getMessage());
                return R.fail("根据车队ID集合查询关联的运维人员ID列表失败");
            }
        };
    }
}